首先,架构很难被定义.
Martin Fowler是敏捷开发方法的创始人之一,被开发者们尊为"教父"级人物.
软件业的人乐于做这样的事--找一些词汇,并将它们引申到大量微妙而有相互矛盾的含义中.一个最大的受害者就是"架构"这个词.
其次,组成派.
Mary Shaw,卡耐基梅隆大学软件工程研究所,是软件架构领域的先驱.
以Mary Shaw为代表的组成派,对架构是这样定义:软件架构是将系统描述成计算组件及组件之间的交互.
架构=组件+交互
第三,决策派.
Grady Booch,James Rumbaugh和Ivar Jacobson是UML的创始人,均为软件工程界的权威,三人被合称为"UML三友".
架构是一系列重要决策的集合.
这些决策与以下内容有关:
a.软件的组织;
b.构成系统的结构元素及其接口的选择;
c.这些元素在相互协调中明确表现出的行为;
d.这些结构元素和行为元素进一步组合所构成的更大规模的子系统;
e.以及指导这一组织,包括这些元素及其接口,它们的协作和它们的组合--架构风格.
架构 = 重要决策集
第四,组成派 vs 决策派
组成派的观点更关注软件,倾向于组件+交互的思想
决策派的观点更关注人,倾向于重大决策集合的思想,除了结构和行为,还关注一些非功能的因素.
22-06-18