软件体系结构尚处于发展期,对于其定义,目前学术界尚未形成统一意见,不同学者有不同看法。下面介绍几个具有代表性的定义,然后归纳总结出软件体系结构的基本特征。
1.Booch&Rumbaugh&Jacobson定义
软件体系结构={组织,元素,子系统,模式}
体系结构是一系列重要决策的集合,这些决策与以下内容有关:软件的组织、构成系统的结构元素以及其接口的选择,这些元素在相互协作中明确表现出的行为,这些结构元素和行为元素进一步组合构成的更大规模的子系统,和引导这一组织——包括这些元素及其接口、它们的协作、它们的组合——的体系结构模式。
2.Bass定义
Bass等人在《Software Architecture in Practice》一书中提到,程序或计算系统的软件体系结构是系统的一个或多个结构(structure),包括软件构件(components)、构件的外部可视属性(properties)和构件之间的关系(relationships)。
这个定义有以下含义。首先,体系结构定义了构件;同时,明确指出了系统可以包含多个结构;此外,该定义还意味着每一个软件系统都有一个体系结构,并且,只要一个构件的行为可以被其他构件观察或辨明,这个构件就是体系结构的一部分。
3.Shaw定义
Mary Shaw总结了1995年关于软件体系结构的国际专题会议上的观点和定义,将软件体系结构的定义分为四个模型。
(1)结构模型 结构模型认为软件体系结构由构件、构件间的连接和其他限制组成。这些限制包括:①配置(Configuration)、模式(Style);②约束(Constraints)、语义(Se-mantics);③分析(Analyses)、属性(Properties);④原理(Rationale)、需求说明(Re-quirements)、仓库管理员需求(Stakeholders’needs)。
(2)框架模型 框架模型主要强调整个系统的内在结构,而不是它的组成。该模型主要针对特定域问题。
(3)动态模型 动态模型侧重于系统的行为质量,其中的“动态”可以是系统的配置变化、通信和交互通道的设置或取消、计算过程的动态特性等。(www.xing528.com)
(4)过程模型 过程模型侧重于体系结构的构造、构造的步骤及过程。
这些模型互不包含,但也没有本质上的区别。它们代表了软件体系结构的研究广度,并侧重于不同的侧面,如组成构件、整个实体、建立后的行为及建立方式。这些模型一起构成了软件体系结构的面貌。
4.Garlan&Shaw定义
软件体系结构={构件,连接器,约束}
David Garlan和Mary Shaw认为:软件体系结构是由构件和连接器以及对它们的约束组成。软件体系结构属于软件设计级别,具体包括:全局组织和全局控制结构;通信协议、同步和数据存取;为设计构件分配功能;物理分布;设计构件的组合;粒度和性能等。
5.Perry&Wolf定义
软件体系结构={元素,形式,准则}
Perry和Wolf认为:软件体系结构是一些构件的集合,构件有各自的表示形式。构件又分为加工构件、数据构件和连接构件。加工构件对数据构件进行加工,数据是被加工的信息,连接构件将体系结构的不同部分“粘”起来。如过程调用、事件广播、数据共享、消息发送等属于连接构件。
总之,尽管各种定义都从不同的角度关注软件体系结构,研究对象各有侧重,但其核心内容都是软件系统的结构。并且,都涵盖了以下一些实体:构件、构件之间的交互关系、限制、构件和连接器构成的拓扑结构、设计原则和指导方针。同时,这些实体应该满足一定的限制,遵循一定的设计规则,能够在一定的环境下进行演化。
基于以上分析,并考虑到定义的一般适用性和被广泛接受的程度,在本书的后续章节里,如不特别指出,所提到的“软件体系结构”,都以Gavlan&Shaw定义中的概念为基础,即一组构件(components)、构件之间的交互的连接器(connectors)、构件与连接器结合起来的约束(constraints)或者称为配置。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。