《软件架构理论与实践》 —1.2.2 软件架构的特征
1.2.2 软件架构的特征
(1)注重可重用性
重用是软件开发中避免重复劳动的解决方案,其出发点是应用系统的开发不再采用一切“从零开始”的模式,而是充分利用已有系统开发中积累的知识和经验[4]。通过重用不仅可以提高软件开发效率,而且因为可以避免重新开发引入新的错误,从而可提高当前软件的质量。软件架构中的组件就是重用思想的重要体现,此外有关软件架构风格的研究还提供了架构级别的重用。
(2)利益相关者较多
软件系统通常有多个利益相关者,每个利益相关者都会因为利益关系而对系统有一定的需求,软件系统需要满足每个利益相关者的需求[3]。架构设计工作就是要平衡这些需求并将它们反映到系统中。
(3)关注点分离
关注点分离是计算科学和软件工程在长期实践中确立的一项方法论原则[5],此原则在业界更多的时候以“分而治之”(divide-and-conquer)的形式出现,即将整体看成为部分的组合体并对各部分分别加以处理[6]。模块化(modularization)是其中最有代表性的具体设计原则之一。软件架构的关注点就是指在软件架构设计中对利益相关者的利益来说比较关键或重要的方面。已有的架构方法采用分离关注点的办法来简化复杂性,以此来驱动设计,这种分离被称作“架构视角”。
(4)质量驱动
软件系统的设计已经从传统的功能性需求及数据流驱动逐渐向质量驱动转变,利益相关者的关注点往往体现在质量属性的需求上,如可靠性、可扩展性需求等[3]。质量属性需求是影响软件系统复杂度的关键因素,软件架构是处理质量属性需求和控制复杂性的主要手段,质量属性是软件架构中最为重要的关注点。
(5)提倡概念完整性
软件架构的设计决策是一个持续的过程,每个决策都要在其前面设计决策的基础上进行,既要符合前面设计决策所规定的设计规则和约束,又要解决本身的特定问题和关注点[3]。因此,每个设计决策的上下文环境、规则、约束都是不同的。但是有一个至高的设计规则是所有的设计决策都必须遵守的,即概念完整性。Frederick Brooks首先在软件系统设计中明确提出了概念完整性规则:“我认为概念完整性是系统设计中最重要的考虑因素。一个为了反映一组设计思想而省略不规则特性及改进的系统,要好过一个包含很多虽然好但独立、不协调的设计思想的系统。”[7]简单地说,概念完整性是要求用相似的方法做相似的事情。
(6)循环风格
与建筑架构类似,软件架构也提出了标准的方法来处理反复出现的问题。这些方法的命名被看作不同层次的抽象,常见的如架构风格、架构策略、参考结构、架构模式等[3]。
- 点赞
- 收藏
- 关注作者
评论(0)