概述
1.2 软件架构概念大观
如前所述,将软件架构概念分类的好处是:包容细节差异、明确本质共性、促成概念总体上的清晰。下面我们再列举几个著名的软件架构定义,以期达到下列目的:
(1)体会和证明众多软件架构概念都是围绕“组成”和“决策”两个视角展开的;
(2)开阔视野,说不定和你合作的同事所接受的软件架构概念就是其中的一种。
具体而言,下面的定义1和定义2属于架构概念的“决策派”,而定义3、4、5、6、7属于架构概念的“组成派”。值得说明的是,定义7是来自SEI的Bass等人的相对比较新的定义,它将架构的多视图“本性”体现到了架构的定义当中,本书认为这种做法非常值得肯定。在第4章中,我们将专门讨论软件架构视图这一主题。
1.2.1 Booch、Rumbaugh和Jacobson的定义
架构是一系列重要决策的集合,这些决策与以下内容有关:软件的组织,构成系统的结构元素及其接口的选择,这些元素在相互协作中明确表现出的行为,这些结构元素和行为元素进一步组合所构成的更大规模的子系统,以及指导这一组织——包括这些元素及其接口、它们的协作和它们的组合——架构风格。
1.2.2 Woods的观点
Eoin Woods是这样认为的:软件架构是一系列设计决策,如果作了不正确的决策,你的项目可能最终会被取消(Software architecture is the set of design decisions which, if made incorrectly, may cause your project to be cancelled.)。
1.2.3 Garlan和Shaw的定义
Garlan和Shaw认为:架构包括组件(Component)、连接件(Connector)和约束(Constrain)三大要素。组件可以是一组代码(例如程序模块),也可以是独立的程序(例如数据库服务器)。连接件可以是过程调用、管道和消息等,用于表示组件之间的相互关系。“约束”一般为组件连接时的条件。
1.2.4 Perry和Wolf的定义
Perry和Wolf提出:软件架构是一组具有特定形式的架构元素,这些元素分为三类:负责完成数据加工的处理元素(Processing Elements)、作为被加工信息的数据元素(Data Elements)及用于把架构的不同部分组合在一起的连接元素(Connecting Elements)。
1.2.5 Boehm的定义
Barry Boehm和他的学生提出:软件架构包括系统组件、连接件和约束的集合,反应不同涉众需求的集合,以及原理(Rationale)的集合。其中的原理,用于说明由组件、连接件和约束所定义的系统在实现时,是如何满足不同涉众需求的。
1.2.6 IEEE的定义
IEEE 610.12-1990软件工程标准词汇中是这样定义架构的:架构是以组件、组件之间的关系、组件与环境之间的关系为内容的某一系统的基本组织结构,以及指导上述内容设计与演化的原理(Principle)。
1.2.7 Bass的定义
SEI(Software Engineering Institute, SEI,美国卡内基梅隆大学软件研究所)的Bass等人给架构的定义是:某个软件或计算机系统的软件架构是该系统的一个或多个结构,每个结构均由软件元素、这些元素的外部可见属性、这些元素之间的关系组成(The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them.)。
最后
以上就是满意水杯为你收集整理的1.2 软件架构概念大观的全部内容,希望文章能够帮你解决1.2 软件架构概念大观所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复