《软件架构理论与实践》 —2.2 组成派的主要定义

举报
华章计算机 发表于 2019/12/18 12:06:02 2019/12/18
【摘要】 本节书摘来自华章计算机《软件架构理论与实践》一书中第2章,第2.2节,作者是李必信 廖力 王璐璐 孔祥龙 周颖。

2.2 组成派的主要定义

组成派定义的主要依据是软件架构主要反映系统由哪些部分组成,以及这些部分是如何组成的,强调软件系统的整体结构和配置。这里介绍几种有代表性的组成派定义。

1992年Dewayne和Alexander给出了软件架构最早的定义之一[1],他们认为软件是由架构元素(element)、架构形式(form)和架构原理(rationale)组成的集合,也就是,软件架构={元素,组成,原理},其中元素是指具有一定形式的结构化元素,包括处理元素(processing element)、数据元素(data element)和连接元素(connecting element)。处理元素负责对数据进行加工,数据元素是被加工的信息,连接元素把架构的不同部分组合连接起来。架构组成由加权的属性(weighted property)和关系(weighted relationship)构成,其中加权是指下列两种情况之一:①属性或关系的重要性;②在多个候选项之间选择的必要性,因为某些候选项相比其他的可能更受青睐。属性用来约束架构元素的选择,关系用来约束架构元素的放置(placement)。架构原理是软件架构的基础理论部分,用于指导在定义架构时面临的多种选择。架构原理指导如何准确捕获架构风格、架构元素和架构形式的选择动机。在构建软件架构时,架构原理解释了基本的哲学和美学思想,对架构师有很好的启发作用。

1993年David和Mary定义的软件架构包括组件(component)、连接件(connector)和约束(constraint)三大要素[2],认为软件架构是软件设计过程的层次之一,该层次超越计算过程中的算法设计和数据结构设计。组件可以是一组代码,也可以是独立的程序;连接件可以是过程调用、管道和消息等,用于表示组件之间的相互关系;约束一般为组件连接时的条件。

1994年Jones认为软件架构是组件以及组件之间交互规则的集合[3]。

1994年波音公司(The Boeing Company)和DSG(Defense and Space Group)给出了一个CFRP模型[4]:软件系统由一组元素(element)构成。这组元素分成处理元素和数据元素。每个元素有一个接口(interface),一组元素的互连(connection)构成系统的拓扑结构。元素互连的语义包括静态互连语义(如数据元素的互连)、描述动态连接的信息转换协议(如过程调用、管道等)。

1995年Hayes认为软件架构是一个抽象的系统规范,主要包括由其行为和接口来描述的功能组件以及组件之间的相互连接关系[5]。

1995年David和Dewayne认为软件架构即一个程序或系统各组件的结构、它们之间的相互关系以及进行设计的原则和随时间演化的指导方针等[6]。该定义与系统的整体结构定义没有太大的区别,更加抽象,就是一种哲学思想而已。

1995年Cristina等人认为一个软件架构包括软件系统的组件、互联和约束的集合,系统需求说明的集合,以及说明组件的基本原理等[7]。

1997年Bass等人认为一个程序或计算机系统的软件架构包括软件组件、软件组件外部的可见特性及其相互关系[8]。其中,软件组件外部的可见特性是指软件组件提供的服务、性能、错误处理、共享资源使用等。

2003年Fowler在《Patterns of Enterprise Application Architecture》中对软件架构的定义如下[9]:在较高的层次上将系统分解,其中的决策稳定不变,同一系统的架构可以多种多样,架构上的主要内容会影响整个系统的生命周期,架构归结为所有重要之物。

2004年张友生在《软件体系结构》一书中将软件架构定义为[10]:为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。软件架构不仅指定了系统的组织结构和拓扑结构,而且显示了系统需求和构成系统的元素之间的对应关系,并提供了一些设计决策的基本原理。

2011年ISO/IEC/IEEE标准中[11]定义软件架构为某一系统的基本组织结构,其内容包括软件组件、组件间的联系、组件与其环境间的联系,以及指导上述内容设计与演化的原理。


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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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