软件体系结构4
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
◎
◎ MIL方式对模块化的程序设计和分段编译等程序设计与开发 技术确实发挥了很大的作用。但是由于这些语言处理和描述的 软件设计开发层次过于依赖程序设计语言,因此限制了它们处 理和描述比程序设计语言元素更为抽象的高层次软件体系结构 元素的能力。 3
第四章 软件体系结构描述
4.1 软件体系结构描述方法
17
第四章 软件体系结构描述
4.3 软件体系结构描述语言
◇ 典型元素含义比较
18
第四章 软件体系结构描述
4.3 软件体系结构描述语言
◇ 常见的软件体系结构元素
19
第四章 软件体系结构描述
4.3 软件体系结构描述语言
◇ ADL的构成元素
◎ 构件:构件是一个计算单元或数据存储。可以包含 多种属性,如接口、类型、语义、约束、演化和非功能 属性等; 接口是构件与外部世界的一组交互点,ADL中的构 件接口说明了构件提供的那些服务。
4.4 典型软件体系结构描述语言
◇ Unicon
◎ Unicon的主要目的在于支持对体系结构的描述,对 构件交互模式进行定位和编码,并对需要不同交互模式 的构件的打包加以区别。主要目的:
提供对大量构件和连接件的统一访问; 区分不同类型的构件和连接件,以便对体系结构配臵 进行检查; 支持不同的表示方式和不同开发人员的分析工具; 支持对现有构件的使用。
23
第四章 软件体系结构描述
4.4 典型软件体系结构描述语言
◇ Unicon
◎ 描述构件:Unicon通过定义类型、属性列表 与用于和连接件相连的交互点来描述构件; ◎ 描述连接件 :通过定义类型、属性列表与交 互点来描述连接件。
端口:构件的交互点称为端口。 角色:连接件的交互点称为角色。
24
第四章 软件体系结构描述
27
第四章 软件体系结构描述
4.4 典型软件体系结构描述语言
◇ C2概述
◎ 构件之间的消息交换不能直接进行,而只能通过连接件来 完成。每个构件接口最多只能和一个连接件相连,而连接件 可以和任意数目的构件或连接件相连。
◎ 请求消息只能向上层传送而通知消息只能向下层传送。
◎ 通知消息的传递只对应于构件内部的操作,而和接收消息 的构件的需求无关。 ◎ C2对构件和连接件的实现语言、实现构件的线程控制、构 件的部署以及连接件使用的通讯协议等都不加限制。
4.1 软件体系结构描述方法
◇ 模块内连接语言
◎ 采用将一种或几种传统程序设计语言的模块连接起来的模 块内连接语言(module interconnection language, MIL)。 由于程序设计语言和模块内连接语言具有严格的语义基础, 因此它们能支持对较大的软件单元进行描述,诸如定义/使用 和 扇 入 / 扇 出 等 。 例 如 , Ada 语 言 采 用 use 实 现 包 的 重 用 , Pascal语言采用过程(函数)模块的交互等。
(6) 体系结构原理。
7
概 念 框 架
8
第四章 软件体系结构描述
4.2 软件体系结构描述框架标准
◇ IEEE P1471
◎ IEEE P1471详细介绍了一套体系结构描述的概念框 架,并给出建立框架的思路。但如何描述以及具体的描 述技术等方面缺乏更进一步的指导。
9
第四章 软件体系结构描述
4.2 软件体系结构描述框架标准
13
第四章 软件体系结构描述
4.3 软件体系结构描述语言
Aesop支持体系结构风格的应用; MetaH为设计者提供了关于实时电子控制系统软件的设计 指导; C2支持基于消息传递风格的用户界面系统的描述; Rapide支持体系结构设计的模拟,并提供了分析模拟结果 的工具; SADL提供了关于体系结构细化的形式化基础; Unicon支持异构的构件和连接类型,并提供了关于体系 结构的高层编译器; Wright支持体系结构之间交互的说明和分析。
11
第四章 软件体系结构描述
4.2 软件体系结构描述框架标准
◇ Rational
◎ Rational的建议标准覆盖了“4 + 1”体系结构模型中的4 个视图,并在原则上讨论了视图以及视图之间的映射表示问 题。 ◎该建议标准结合了业界已经广泛采用的建模语言和开发过 程,因而易于推广,可以有效实现在跨组织之间重用体系结 构描述结果。 ◎ 由于将体系结构的描述限于UML和RUP,具有一定的局限性。
14
第四章 软件体系结构描述
4.3 软件体系结构描述语言
这些ADL强调了体系结构不同的侧面,对体系结构的研 究和应用起到了重要的作用,但也有负面的影响。每一种 ADL都以独立的形式存在,描述语法不同且互不兼容,同时 又有许多共同的特征,这使设计人员很难选择一种合适的 ADL,若设计特定领域的软件体系结构又需要从头开始描述。
6
第四章 软件体系结构描述
4.2 软件体系结构描述框架标准
◇ IEEE P1471
◎ 该标准还讨论了体系结构描述实践,在应用体系结构
描述的推荐标准时,应遵循如下具体的要求:
(1) 体系结构的存档要求; (2) 能识别人员及其关系;
(3) 体系结构视点的选择(视点的具体规格说明);
(4) 体系结构视点; (5) 体系结构视点之间的一致性;
16
第四章 软件体系结构描述
4.3 软件体系结构描述语言
◇ ADL与其他语言的比较(2)
◎ 组合能力:ADL使得其描述的每一系统元素都有其自 己的局部结构,这种描述局部结构的特点使得ADL支持软 件系统的动态变化组合; ◎ 异构能力:ADL允许多个不同的体系结构描述关联存 在;
◎ 分析和推理能力:ADL允许对其描述的体系结构进行 多种不同的性能和功能上的多种推理分析。
12
第四章 软件体系结构描述
4.3 软件体系结构描述语言
ADL是在底层语义模型的支持下,为软件系统的概念体系 结构建模提供了具体语法和概念框架。基于底层语义的工具 为体系结构的表示、分析、演化、细化、设计过程等提供支 持。其三个基本元素是:构件、连接件、体系结构配臵。
主要的体系结构描述语言有Aesop、MetaH、C2、Rapide、 SADL、Unicon和Wright等,尽管它们都描述软件体系结构, 却有不同的特点。
21
第四章 软件体系结构描述
4.3 软件体系结构描述语言
◇ ADL的构成元素
◎ 体系结构配臵:体系结构配臵或拓扑是描述体系结 构的构件与连接件的连接图;
体系结构配臵提供信息来确定构件是否正确连接、 接口是否匹配、连接件构成的通信是否正确,并说明实 现要求行为的组合语义。
22
第四章 软件体系结构描述
28
第四章 软件体系结构描述
4.4 典型软件体系结构描述语言
◇ C2对构件的描述
29
第四章 软件体系结构描述
4.4 典型软件体系结构描述语言
◇ C2对构件接口的描述
component_message_interface ::= top_domain_interface bottom_domain_interface
4.4 典型软件体系结构描述语言
◇ Unicon
◎ Unicon描述连接约束:使连接件角色接受指定的构件 的端口。
ROLE output IS Source MAXCONNS(1) ACCEPT(Filter.StreamIn) END output
25
第四章 软件体系结构描述
4.4 典型软件体系结构描述语言
第四章 软件体系结构描述
4.1 软件体系结构描述方法
◇ 描述方法的种类
◎ 图形表达工具 ◎ 模块内连接语言 ◎ 基于软构件的系统描述语言
◎ 软件体系结构描述语言
1
第四章 软件体系结构描述
4.1 软件体系结构描述方法
◇ 图形表达工具
构件 连接件
某软件辅助理解和测 试工作部分体系结构 描述
2
第四章 软件体系结构描述
◇ Unicon
◎ Unicon描述管道
USES p1 PROTOCOL Unix-pipe USES sorter INTERFACE Sort-filter CONNECT sorter.output TO p1.source USES p2 PROTOCOL Unix-pipe USES printer INTERFACE Print-filter CONNECT sorter.input TO p2.sink
20
第四章 软件体系结构描述
4.3 软件体系结构描述语言
◇ ADL的构成元素
◎ 连接件:是用来建立构件间的交互以及支配这些交 互规则的体系结构构造模块。与构件不同,连接件可以 不与实现系统中的编译单元对应。
连接件可以是共享变量、表入口、缓冲区、对连接 器的指令、动态数据结构等等;
连接件同样也有接口。连接件的接口由一组角色组 成,连接件的每一个角色定义了该连接件表示的交互参 与者,二元连接有两个角色,如消息传递连接件的角色 是发送者和接收者。
15
第四章 软件体系结构描述
4.3 软件体系结构描述语言
◇ ADL与其他语言的比较(1)
◎ 构造能力:ADL能够使用较小的独立体系结构元素来 建造大型软件系统;
◎ 抽象能力:ADL使得软件体系结构中的构件和连接件 描述可以只关注它们的抽象特性,而不管其具体的实现 细节; ◎ 重用能力:ADL使得组成软件系统的构件、连接件甚 至是软件体系结构都成为软件系统开发和设计的可重用 部件;
◇ Rational
◎ Rational起草了可重用的软件资产规格说明,专门讨论了 体系结构描述的规格说明,提出了一套易于重用的体系结构 描述规范。该建议草案已经提交OMG。 ◎ Rational建议基于RUP(Rational Unified Process)、 采用UML模型描述软件的体系结构,认为体系结构描述的关键 是定义视点、视图以及建模元素之间的映射关系。
◇ 基于软构件的系统描述语言
◎ 基于软构件的系统描述语言将软件系统描述成一种是由许 多以特定形式相互作用的特殊软件实体构造组成的组织或系统。 ◎ 例如,一种多变配臵语言就可以用来在一个较高的抽象层 次上对系统的体系结构建模,Darwin最初用作设计和构造复杂 分布式系统的配臵说明语言,因具有动态特性,也可用来描述 动态体系结构。 ◎ 缺点:针对的系统元素仍然是一些层次较低的实体单元, 对软件体系结构的描述不太适合。
26
第四章 软件体系结构描述
4.4 典型软件体系结构描述语言
◇ C2概述
◎ C2和其提供的设计环境(Argo)支持采用基于时间 的风格来描述用户界面系统,并支持使用可替换、可重 用的构件开发GUI的体系结构。
◎ 在C2中,连接件负责构件之间消息的传递,而构件 维持状态、执行操作并通过两个名字分别为“ top”和 “bottom”的端口和其它的构件交换信息。 ◎ 每个接口包含一种可发送的消息和一组可接收的消 息。构件之间的消息要么是请求其它构件执行某个操作 的请求消息,要么是通知其他构件自身执行了某个操作 或状态发生改变的通知消息。
5
第四章 软件体系结构描述
4.2 软件体系结构描述框架标准
◇ IEEE P1471
◎ IEEE于1995年8月成立了体系结构工作组,负责 起草了体系结构描述框架标准,即IEEE P1471。 ◎ IEEE P1471于2000年9月通过IEEE-SA标准委员 会评审。 ◎ IEEE P1471适用于软件密集的系统,其目标在 于:便于体系结构的表达与交流,并通过体系结构 要素及其实践标准化,奠定质量与成本的基础。
4
第四章 软件体系结构描述
4.1 软件体系结构描述方法
◇ 软件体系结构描述语言
◎ 软件体系结构的第四种描述和表达方法是参照传统程 序设计语言的设计和开发经验,重新设计、开发和使用针 对软件体系结构特点的专门的软件体系结构描述语言。 ◎ 由于ADL是在吸收了传统程序设计中的语义严格精确的 特点基础上,针对软件体系结构的整体性和抽象性特点, 定义和确定适合于软件体系结构表达与描述的有关抽象元 素,因此,ADL是当前软件开发和设计方法学中一种发展 很快的软件体系结构描述方法,目前,已经有几十种常见 的ADL。
Байду номын сангаас
10
第四章 软件体系结构描述
4.2 软件体系结构描述框架标准
◇ Rational
◎ 可以从四个视点出发描述体系结构,即需求视点、设计视 点、实现视点和测试视点。
◎ 在此基础上提出了7个体系结构视图:用例视图、域视图、 非功能需求视图、逻辑视图、实现视图、过程视图和部署视 图。 ◎ 并从系统建模的角度考虑多个视图之间的映射关系。
◎ MIL方式对模块化的程序设计和分段编译等程序设计与开发 技术确实发挥了很大的作用。但是由于这些语言处理和描述的 软件设计开发层次过于依赖程序设计语言,因此限制了它们处 理和描述比程序设计语言元素更为抽象的高层次软件体系结构 元素的能力。 3
第四章 软件体系结构描述
4.1 软件体系结构描述方法
17
第四章 软件体系结构描述
4.3 软件体系结构描述语言
◇ 典型元素含义比较
18
第四章 软件体系结构描述
4.3 软件体系结构描述语言
◇ 常见的软件体系结构元素
19
第四章 软件体系结构描述
4.3 软件体系结构描述语言
◇ ADL的构成元素
◎ 构件:构件是一个计算单元或数据存储。可以包含 多种属性,如接口、类型、语义、约束、演化和非功能 属性等; 接口是构件与外部世界的一组交互点,ADL中的构 件接口说明了构件提供的那些服务。
4.4 典型软件体系结构描述语言
◇ Unicon
◎ Unicon的主要目的在于支持对体系结构的描述,对 构件交互模式进行定位和编码,并对需要不同交互模式 的构件的打包加以区别。主要目的:
提供对大量构件和连接件的统一访问; 区分不同类型的构件和连接件,以便对体系结构配臵 进行检查; 支持不同的表示方式和不同开发人员的分析工具; 支持对现有构件的使用。
23
第四章 软件体系结构描述
4.4 典型软件体系结构描述语言
◇ Unicon
◎ 描述构件:Unicon通过定义类型、属性列表 与用于和连接件相连的交互点来描述构件; ◎ 描述连接件 :通过定义类型、属性列表与交 互点来描述连接件。
端口:构件的交互点称为端口。 角色:连接件的交互点称为角色。
24
第四章 软件体系结构描述
27
第四章 软件体系结构描述
4.4 典型软件体系结构描述语言
◇ C2概述
◎ 构件之间的消息交换不能直接进行,而只能通过连接件来 完成。每个构件接口最多只能和一个连接件相连,而连接件 可以和任意数目的构件或连接件相连。
◎ 请求消息只能向上层传送而通知消息只能向下层传送。
◎ 通知消息的传递只对应于构件内部的操作,而和接收消息 的构件的需求无关。 ◎ C2对构件和连接件的实现语言、实现构件的线程控制、构 件的部署以及连接件使用的通讯协议等都不加限制。
4.1 软件体系结构描述方法
◇ 模块内连接语言
◎ 采用将一种或几种传统程序设计语言的模块连接起来的模 块内连接语言(module interconnection language, MIL)。 由于程序设计语言和模块内连接语言具有严格的语义基础, 因此它们能支持对较大的软件单元进行描述,诸如定义/使用 和 扇 入 / 扇 出 等 。 例 如 , Ada 语 言 采 用 use 实 现 包 的 重 用 , Pascal语言采用过程(函数)模块的交互等。
(6) 体系结构原理。
7
概 念 框 架
8
第四章 软件体系结构描述
4.2 软件体系结构描述框架标准
◇ IEEE P1471
◎ IEEE P1471详细介绍了一套体系结构描述的概念框 架,并给出建立框架的思路。但如何描述以及具体的描 述技术等方面缺乏更进一步的指导。
9
第四章 软件体系结构描述
4.2 软件体系结构描述框架标准
13
第四章 软件体系结构描述
4.3 软件体系结构描述语言
Aesop支持体系结构风格的应用; MetaH为设计者提供了关于实时电子控制系统软件的设计 指导; C2支持基于消息传递风格的用户界面系统的描述; Rapide支持体系结构设计的模拟,并提供了分析模拟结果 的工具; SADL提供了关于体系结构细化的形式化基础; Unicon支持异构的构件和连接类型,并提供了关于体系 结构的高层编译器; Wright支持体系结构之间交互的说明和分析。
11
第四章 软件体系结构描述
4.2 软件体系结构描述框架标准
◇ Rational
◎ Rational的建议标准覆盖了“4 + 1”体系结构模型中的4 个视图,并在原则上讨论了视图以及视图之间的映射表示问 题。 ◎该建议标准结合了业界已经广泛采用的建模语言和开发过 程,因而易于推广,可以有效实现在跨组织之间重用体系结 构描述结果。 ◎ 由于将体系结构的描述限于UML和RUP,具有一定的局限性。
14
第四章 软件体系结构描述
4.3 软件体系结构描述语言
这些ADL强调了体系结构不同的侧面,对体系结构的研 究和应用起到了重要的作用,但也有负面的影响。每一种 ADL都以独立的形式存在,描述语法不同且互不兼容,同时 又有许多共同的特征,这使设计人员很难选择一种合适的 ADL,若设计特定领域的软件体系结构又需要从头开始描述。
6
第四章 软件体系结构描述
4.2 软件体系结构描述框架标准
◇ IEEE P1471
◎ 该标准还讨论了体系结构描述实践,在应用体系结构
描述的推荐标准时,应遵循如下具体的要求:
(1) 体系结构的存档要求; (2) 能识别人员及其关系;
(3) 体系结构视点的选择(视点的具体规格说明);
(4) 体系结构视点; (5) 体系结构视点之间的一致性;
16
第四章 软件体系结构描述
4.3 软件体系结构描述语言
◇ ADL与其他语言的比较(2)
◎ 组合能力:ADL使得其描述的每一系统元素都有其自 己的局部结构,这种描述局部结构的特点使得ADL支持软 件系统的动态变化组合; ◎ 异构能力:ADL允许多个不同的体系结构描述关联存 在;
◎ 分析和推理能力:ADL允许对其描述的体系结构进行 多种不同的性能和功能上的多种推理分析。
12
第四章 软件体系结构描述
4.3 软件体系结构描述语言
ADL是在底层语义模型的支持下,为软件系统的概念体系 结构建模提供了具体语法和概念框架。基于底层语义的工具 为体系结构的表示、分析、演化、细化、设计过程等提供支 持。其三个基本元素是:构件、连接件、体系结构配臵。
主要的体系结构描述语言有Aesop、MetaH、C2、Rapide、 SADL、Unicon和Wright等,尽管它们都描述软件体系结构, 却有不同的特点。
21
第四章 软件体系结构描述
4.3 软件体系结构描述语言
◇ ADL的构成元素
◎ 体系结构配臵:体系结构配臵或拓扑是描述体系结 构的构件与连接件的连接图;
体系结构配臵提供信息来确定构件是否正确连接、 接口是否匹配、连接件构成的通信是否正确,并说明实 现要求行为的组合语义。
22
第四章 软件体系结构描述
28
第四章 软件体系结构描述
4.4 典型软件体系结构描述语言
◇ C2对构件的描述
29
第四章 软件体系结构描述
4.4 典型软件体系结构描述语言
◇ C2对构件接口的描述
component_message_interface ::= top_domain_interface bottom_domain_interface
4.4 典型软件体系结构描述语言
◇ Unicon
◎ Unicon描述连接约束:使连接件角色接受指定的构件 的端口。
ROLE output IS Source MAXCONNS(1) ACCEPT(Filter.StreamIn) END output
25
第四章 软件体系结构描述
4.4 典型软件体系结构描述语言
第四章 软件体系结构描述
4.1 软件体系结构描述方法
◇ 描述方法的种类
◎ 图形表达工具 ◎ 模块内连接语言 ◎ 基于软构件的系统描述语言
◎ 软件体系结构描述语言
1
第四章 软件体系结构描述
4.1 软件体系结构描述方法
◇ 图形表达工具
构件 连接件
某软件辅助理解和测 试工作部分体系结构 描述
2
第四章 软件体系结构描述
◇ Unicon
◎ Unicon描述管道
USES p1 PROTOCOL Unix-pipe USES sorter INTERFACE Sort-filter CONNECT sorter.output TO p1.source USES p2 PROTOCOL Unix-pipe USES printer INTERFACE Print-filter CONNECT sorter.input TO p2.sink
20
第四章 软件体系结构描述
4.3 软件体系结构描述语言
◇ ADL的构成元素
◎ 连接件:是用来建立构件间的交互以及支配这些交 互规则的体系结构构造模块。与构件不同,连接件可以 不与实现系统中的编译单元对应。
连接件可以是共享变量、表入口、缓冲区、对连接 器的指令、动态数据结构等等;
连接件同样也有接口。连接件的接口由一组角色组 成,连接件的每一个角色定义了该连接件表示的交互参 与者,二元连接有两个角色,如消息传递连接件的角色 是发送者和接收者。
15
第四章 软件体系结构描述
4.3 软件体系结构描述语言
◇ ADL与其他语言的比较(1)
◎ 构造能力:ADL能够使用较小的独立体系结构元素来 建造大型软件系统;
◎ 抽象能力:ADL使得软件体系结构中的构件和连接件 描述可以只关注它们的抽象特性,而不管其具体的实现 细节; ◎ 重用能力:ADL使得组成软件系统的构件、连接件甚 至是软件体系结构都成为软件系统开发和设计的可重用 部件;
◇ Rational
◎ Rational起草了可重用的软件资产规格说明,专门讨论了 体系结构描述的规格说明,提出了一套易于重用的体系结构 描述规范。该建议草案已经提交OMG。 ◎ Rational建议基于RUP(Rational Unified Process)、 采用UML模型描述软件的体系结构,认为体系结构描述的关键 是定义视点、视图以及建模元素之间的映射关系。
◇ 基于软构件的系统描述语言
◎ 基于软构件的系统描述语言将软件系统描述成一种是由许 多以特定形式相互作用的特殊软件实体构造组成的组织或系统。 ◎ 例如,一种多变配臵语言就可以用来在一个较高的抽象层 次上对系统的体系结构建模,Darwin最初用作设计和构造复杂 分布式系统的配臵说明语言,因具有动态特性,也可用来描述 动态体系结构。 ◎ 缺点:针对的系统元素仍然是一些层次较低的实体单元, 对软件体系结构的描述不太适合。
26
第四章 软件体系结构描述
4.4 典型软件体系结构描述语言
◇ C2概述
◎ C2和其提供的设计环境(Argo)支持采用基于时间 的风格来描述用户界面系统,并支持使用可替换、可重 用的构件开发GUI的体系结构。
◎ 在C2中,连接件负责构件之间消息的传递,而构件 维持状态、执行操作并通过两个名字分别为“ top”和 “bottom”的端口和其它的构件交换信息。 ◎ 每个接口包含一种可发送的消息和一组可接收的消 息。构件之间的消息要么是请求其它构件执行某个操作 的请求消息,要么是通知其他构件自身执行了某个操作 或状态发生改变的通知消息。
5
第四章 软件体系结构描述
4.2 软件体系结构描述框架标准
◇ IEEE P1471
◎ IEEE于1995年8月成立了体系结构工作组,负责 起草了体系结构描述框架标准,即IEEE P1471。 ◎ IEEE P1471于2000年9月通过IEEE-SA标准委员 会评审。 ◎ IEEE P1471适用于软件密集的系统,其目标在 于:便于体系结构的表达与交流,并通过体系结构 要素及其实践标准化,奠定质量与成本的基础。
4
第四章 软件体系结构描述
4.1 软件体系结构描述方法
◇ 软件体系结构描述语言
◎ 软件体系结构的第四种描述和表达方法是参照传统程 序设计语言的设计和开发经验,重新设计、开发和使用针 对软件体系结构特点的专门的软件体系结构描述语言。 ◎ 由于ADL是在吸收了传统程序设计中的语义严格精确的 特点基础上,针对软件体系结构的整体性和抽象性特点, 定义和确定适合于软件体系结构表达与描述的有关抽象元 素,因此,ADL是当前软件开发和设计方法学中一种发展 很快的软件体系结构描述方法,目前,已经有几十种常见 的ADL。
Байду номын сангаас
10
第四章 软件体系结构描述
4.2 软件体系结构描述框架标准
◇ Rational
◎ 可以从四个视点出发描述体系结构,即需求视点、设计视 点、实现视点和测试视点。
◎ 在此基础上提出了7个体系结构视图:用例视图、域视图、 非功能需求视图、逻辑视图、实现视图、过程视图和部署视 图。 ◎ 并从系统建模的角度考虑多个视图之间的映射关系。