《软件架构理论与实践》 —1.2.2 软件架构的特征

举报
华章计算机 发表于 2019/12/18 10:39:15 2019/12/18
【摘要】 本节书摘来自华章计算机《软件架构理论与实践》一书中第1章,第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]。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。