组成派与决策派
什么是架构?
组成/结构派:面向客体(软件)
- Mary Shaw:软件系统的架构将系统描述为计算组件以及组件之间的交互
- 卡内基梅隆大学软件工程研究所:计算系统的软件架构是解释该系统所需的结构体的集合,其中包括:软件元素,元素之间的相互关系,以及二者各自的属性。
决策派:面向主体(开发者)
RUP:软件架构包含了关于以下问题的重要决策:
- 软件系统的组织;
- 选择组成系统的结构元素和它们之间的接口,以及当这些元素相互协作时所体现的行为;
- 如何组合这些元素,使它们逐渐合成为更大的子系统;
- 用于指导这个系统组织的架构风格:这些元素以及它们的接口、协作和组合。
软件架构并不仅仅注重软件本身的结构和行为,还注重其他特性:使用、功能性、性能、弹性、重用、可理解性、经济和技术的限制和权衡,以及美学等。
组成派更简洁,决策派更全面。本人倾向于组成派的架构定义。