软件架构概念分类
组成派:软件系统的架构降系统描述为计算机组件及组件之间的交互。
关注架构实践中的客体--软件,以软件为描述对象
分析了软件的组成,即软件由承担不同计算机任务的组件组成,这些组件通过相互交互完成更高层次的计算
决策派:软件架构是在一些重要方面所做出的决策的集合。
软件系统的组织
选择组成系统的结构元素和它们之间的接口,以及这些元素相互协作时所体现的行为
如何组合这些元素,使它们逐渐合成为最大的子系统
用于指导这个系统组织的架构风格:这些元素以及它们的接口、协作和组合
软件架构并不仅仅注重软件本身的结构和行为,还注重其他特性:使用、功能性、性能、弹性、重用、可理解性、经济和技术的限制及权衡,以及美学等。
组成派:架构 = 组件 + 交互
决策派:架构 = 一组重要决策
架构设计:
- 模块如何划分
- 每个模块的职责为何
- 每个模块的接口如何定义
- 模块间采用何种交互机制
- 开发人员如何选型
- 如何满足约束和质量属性性的需求
- 如何适应可能发生的变化
- 理解需求--此时软件系统是一个黑盒子
- 首轮决策--此时软件系统被高层切分
- 继续决策--此时软件系统被切分更小单元