软件架构学习记录
什么是软件架构?
软件架构所指的就是说相应的系列性的抽象模式,可以为设计大型软件系统的各个方面提供相应的指导。从本质上来看,软件架构是属于一种系统草图。在软件架构所描述的对象就是直接的进行系统抽象组件构成。连接系统的各个组件之间就是做到把组件之间所存在的通讯比较明确与相对细致的实施描述。处于相应的系统实现环节,那么就会使得细化这些抽象组件成为现实的组件,比如可以是具体的某个类或者是对象。从面向对象领域进行分析,那么各个组件之前实施的连接实现往往是接口。
软件架构为软件系统提供了一个结构、行为和属性的高级抽象,由构件的描述、构件的相互作用、指导构件集成的模式以及这些模式的约束组成。软件架构不仅显示了软件需求和软件结构之间的对应关系,而且指定了整个软件系统的组织和拓扑结构,提供了一些设计决策的基本原理。
什么是架构师?
架构师是做架构设计、对系统架构负责的那个人。架构师是一个角色而不是一个角色。
架构师应该具备什么样的能力?
如何进行架构设计?
4+1 架构视图
软件架构是一些元素、形式、关系/约束的组合。软件架构 = {元素,形式,关系/约束}
4 个视图指的是:
逻辑视图:设计的对象模型。主要由系统、子系统、功能模块、子功能模块、接口构成,用来开发组织划分,成本/进度的评估。
过程视图:捕捉设计的并发和同步特征。表示系统运行时进程、线程以及处理队列情况等。
物理视图:描述了软件到硬件的映射,反应了部署的特征。主要物理节点以及节点的通信,表示系统逻辑组件到物理节点的物理部署和节点之间的物理网络配置。
开发视图:描述了在开发环境中软件的静态组织结构。主要描述系统的层、分区、包、框架、系统通用的服务,类和接口、系统平台和相关的基础框架。用来指导开发组织设计和开发实现。
场景视图:最后用一些场景或约束来贯穿整体,从而形成 5 个视图。
评论