软件体系结构描述
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
◇ ADL与其他语言的比较(1)
◎ 构造能力: ADL 能够使用较小的独立体系结 构元素来建造大型软件系统; ◎ 抽象能力: ADL 使得软件体系结构中的构件 和连接件描述可以只关注它们的抽象特性,而 不管其具体的实现细节; ◎ 重用能力: ADL 使得组成软件系统的构件、 连接件甚至是软件体系结构都成为软件系统开 发和设计的可重用部件;
第4章 软件体系结构描述 ◇ 存在的问题:
4.1 软件体系结构描述方法
◎ 体系结构设计不容易理解。 ◎ 系统架构师很难在各种方案中做出原 则性的选择。 ◎ 初始设计中假定的体系结构约束可能 随着系统演化而丧失。 ◎几乎没有什么工具能帮助系统架构师 进行体系结构设计。
第4章 软件体系结构描述
4.1 软件体系结构描述方法
IEEE P1471
第4章 软件体系结构描述 ◇ IEEE P1471
4.2 软件体系结构描述框架标准
◎ IEEE P1471 于 2000 年 9 月 21 日通过 IEEE-SA 标准委员 会评审。 (软件密集系统的体系结构描述推荐标准)
◎ IEEE P1471 适用于软件密集的系统,其目标在于: 便于体系结构的表达与交流,并通过体系结构要素及其 实践标准化,奠定质量与成本的基础。
第4章 软件体系结构描述
4.3 软件体系结构描述语言
Aesop支持体系结构风格的应用。 MetaH为设计者提供了关于实时电子控制软件系统 的设计指导。 C2支持基于消息传递风格的用户界面系统的描述。 Rapide支持体系结构设计的模拟并提供了分析模拟 结果的工具。 SADL提供了关于体系结构加细的形式化基础。 UniCon支持异构的构件和连接类型并提供了关于体 系结构的高层编译器。 Wright支持体系结构构件之间交互的说明和分析。
第4章 软件体系结构描述
4.3 软件体系结构描述语言
用于构件之间交 互建模的体系结构 体系结构的 计算或数 ADL是在底层语义模型的支持下,为软件系统的概念体系结构 构造块及其支配这 构件与连接件 建模提供了具体语法和概念框架。基于底层语义的工具为体系结 据存储单元 些交互的规则 的连接图 构的表示、分析、演化、细化、设计过程等提供支持。其三个基
第4章 软件体系结构描述 ◇ 基于软构件的系统描述语言
4.1 软件体系结构描述方法
◎ 基于软构件的系统描述语言将软件系统描述成一种是由许多以 特定形式相互作用的特殊软件实体构造组成的组织或系统。 ◎ 例如,一种多变配置语言 (Proteus Configuration Language, PCL)就可以用来在一个较高的抽象层次上对系统的体系结构建模, Darwin最初用作设计和构造复杂分布式系统的配置说明语言,因具 有动态特性,也可用来描述动态体系结构。 ◎ 这种表达和描述方式虽然也是较好的一种以构件为单位的软件 系统描述方法,但是他们所面向和针对的系统元素仍然是一些层次 较低的以程序设计为基础的通信协作软件实体单元,而且这些语言 所描述和表达的系统一般而言都是面向特定应用的特殊系统,这些 特性使得基于软构件的系统描述仍然不是十分适合软件体系结构的 描述和表达。
4.2 软件体系结构描述框架标准
IEEE P1471详细介绍了一套体系 结构描述的概念框架,并给出建立框 架的思路,但如何描述以及具体的描 述技术等方面缺乏更进一步的指导。
第4章 软件体系结构描述 ◇ Rational
4.2 软件体系结构描述框架标准
基于IEEE P1471推荐的体系结构描述的概 念框架,Rational起草了可重用的软件资产规 格说明,提出了一套易于重用的体系结构描述 规范。
第4章 软件体系结构描述
4.3 软件体系结构描述语言
◇ ADL
典型的ADL在充分继承和吸收传统程序设计 语言的精确性和严格性特点的同时,还应该具 有构造、抽象、重用、组合、异构和分析推理 等多种能力和特性。
Mary Show & David Garlan
第4章 软件体系结构描述
4.3 软件体系结构描述语言
第4章 软件体系结构描述 ◇ ADL的构成要素
4.3 软件体系结构描述语言
体系结构配置
描述体系结构的构件与连接件的连接图。
适合于描述大的、生命周期和的系统。
可实现体系结构的重用和调用,具有复合或等级 复合的特性。 体系结构的设计是软件生命周期中关键的一环。 绝大多数体系结构配置是领域相关的,做到通用 很难。
函数调用关系 图
程序复杂度
测试结果打印
第4章 软件体系结构描述 ◇ 模块内连接语言
4.1 软件体系结构描述方法
◎ 采Байду номын сангаас将一种或几种传统程序设计语言的模块连接起来的模块内 连接语言( Module Interconnection Language, MIL )。由于程 序设计语言和模块内连接语言具有严格的语义基础,因此它们能 支持对较大的软件单元进行描述,诸如定义/ 使用和扇入/ 扇出等 操作。例如, Ada 语言采用 use 实现包的重用, Pascal 语言采用过 程(函数)模块的交互等。 ◎ MIL 方式对模块化的程序设计和分段编译等程序设计与开发技 术确实发挥了很大的作用。但是由于这些语言处理和描述的软件 设计开发层次过于依赖程序设计语言,因此限制了它们处理和描 述比程序设计语言元素更为抽象的高层次软件体系结构元素的能 力。
第4章 软件体系结构描述 ◇ C2概述(2)
4.4 典型软件体系结构描述语言
◎ 构件之间的消息交换不能直接进行,而只能通过连接 件来完成。每个构件接口最多只能和一个连接件相连,而 连接件可以和任意数目的构件或连接件相连。
◎ 请求消息只能向上层传送而通知消息只能向下层传送。
◎ 通知消息的传递只对应于构件内部的操作,而和接收 消息的构件的需求无关。 ◎ C2 对构件和连接件的实现语言、实现构件的线程控制、 构件的部署以及连接件使用的通讯协议等都不加限制。
第4章 软件体系结构描述 ◇ Rational
4.2 软件体系结构描述框架标准
◎ Rational起草了可重用的软件资产规格说明,专门讨论了体系 提出了7个体系结构视图:用 结构描述的规格说明,提出了一套易于重用的体系结构描述规范。 该建议草案已经提交OMG。 例视图、域视图、非功能视图、
逻辑视图、实现视图、过程视 ◎ 基于RUP(Rational Unified Process )、采用UML模型描述软 图和部署视图
4.3 软件体系结构描述语言
第4章 软件体系结构描述 ◇ 常见的软件体系结构元素
4.3 软件体系结构描述语言
第4章 软件体系结构描述
4.3 软件体系结构描述语言
◇ ADL的构成要素
构件
连接件
体系结构配置
第4章 软件体系结构描述 ◇ ADL的构成要素
4.3 软件体系结构描述语言
构件
接口是构件与外部世界的一组交互点,也 是唯一交互点。 构件类型是实现构件重用的手段。通过实 例化体现重用。 构件的演化能力是系统演化的基础。
◎ 体系结构设计的标识、版本、总体信息。 ◎ 系统参与者的标识、以及在体系结构中他们所关注 方面的标识。 ◎ 组织体系结构表示所选择的视点的规格说明,以及 这种选择的基本原理。 ◎ 一个或多个体系结构视图。 ◎ 体系结构描述所需的成分之间不一致的记录。 ◎ 体系结构选择的基本原理。
第4章 软件体系结构描述
第4章 软件体系结构描述 ◇ ADL与其他语言的比较(3)
4.3 软件体系结构描述语言
◎ ADL与需求语言:需求语言描述问题空间,ADL根植 于解空间;
◎ ADL与建模语言:建模语言对整体行为的关注要大于 对部分的关注,ADL关注的是构件的表示; ◎ ADL与传统程序设计语言:存同求异。
第4章 软件体系结构描述 ◇ 典型元素含义比较
◇ IEEE P1471 的体系结构描述要求
◎ 一个体系结构描述必须规定系统的用户,确定体系 结构的要点。
◎ 一个体系结构描述必须被编入一个或多个系统的体 系结构视图中。
◎ 一个体系结构描述必须为制定关键的结构性决策提 供基本原则。
第4章 软件体系结构描述
4.2 软件体系结构描述框架标准
◇ IEEE P1471 软件体系结构描述的标准
第4章 软件体系结构描述
4.2 软件体系结构描述框架标准
◇ IEEE P1471 最主要的组成部分
◎ 对关键术语的定义。 ◎ 对体系结构与体系结构描述在概念上的分力促进了 描述体系结构标准和构筑系统标准的建立。 ◎ 用于描述一个系统体系结构的内容要求。
第4章 软件体系结构描述
4.2 软件体系结构描述框架标准
第4章 软件体系结构描述 ◇ ADL的构成要素
4.3 软件体系结构描述语言
连接件
用来建立构件间的交互以及支配这些交互规则的 体系结构构造模块。 通过一组角色实现连接件的接口,接口实现了连 接件与构件之间互联的交互点。
体系结构级的重用,需要将连接件构造为类型。
体系结构描述提供了连接件协议以及变换语法。
本元素是:构件、连接件、体系结构配置。 主要的体系结构描述语言有 Aesop 、 MetaH 、 C2 、 Rapide 、 SADL 、 Unicon 和 Wright 等,尽管它们都描述软件体系结构,却有 不同的特点。 这些ADL强调了体系结构不同的侧面,对体系结构的研究和应 用起到了重要的作用,但也有负面的影响。每一种ADL都以独立的 形式存在,描述语法不同且互不兼容,同时又有许多共同的特征, 这使设计人员很难选择一种合适的ADL,若设计特定领域的软件体 系结构又需要从头开始描述。
第4章 软件体系结构描述
优秀的体系结构设计是决定一个软件系 统取得长期成功的关键因素。
第4章 软件体系结构描述 ◇ 传统描述方法的种类
◎ 图形表达工具
4.1 传统的软件体系结构描述方法
◎ 模块内连接语言
◎ 基于软构件的系统描述语言
第4章 软件体系结构描述 ◇ 图形表达工具
4.1 软件体系结构描述方法
采用由矩形框和有向线段组合而成的图形表 达工具。 矩形表示抽象构件 框内文字为抽象构件的名称 有向线段代表辅助各构件进行通信、控制或 关联的连接件。
第4章 软件体系结构描述
4.1 软件体系结构描述方法
项目管理
静态分析器
时间分析器
测试配置
测试结果库
缓冲
最优/最劣时间 计算
布图算法
复杂度计算
带时间特性的 流程图
◇目前对体系结构的描述主要有两类:
◎ 使用精确的无歧义的体系结构描述语言, 并提供对体系结构和特征的分析工具和设计环 境。 ◎ 采用形式化的方法,提供精确的、抽象 的模型,并提供基于这个模型的分析工具。
第4章 软件体系结构描述
4.2 软件体系结构描述框架标准
体系结构描述的概念与实践存在不统一的
现象 基于此,关于体系结构,IEEE于1995年8月 成立了相关工作组,综合研究成果,参考业界 的体系结构描述实践,负责起草了体系结构框 架标准
第4章 软件体系结构描述 ◇ C2概述(1)
4.4 典型软件体系结构描述语言
◎ C2和其提供的设计环境(Argo )支持采用基于时间 的风格来描述用户界面系统,并支持使用可替换、可重 用的构件开发GUI的体系结构。
◎ 在C2 中,连接件负责构件之间消息的传递,而构件 维持状态、执行操作并通过两个名字分别为“ top”和 “bottom”的端口和其它的构件交换信息。 ◎ 每个接口包含一种可发送的消息和一组可接收的消 息。构件之间的消息要么是请求其它构件执行某个操作 的请求消息,要么是通知其他构件自身执行了某个操作 或状态发生改变的通知消息。
第4章 软件体系结构描述 ◇ ADL与其他语言的比较(2)
4.3 软件体系结构描述语言
◎ 组合能力: ADL 使得其描述的每一系统元素 都有其自己的局部结构,这种描述局部结构的 特点使得ADL支持软件系统的动态变化组合; ◎ 异构能力: ADL 允许多个不同的体系结构描 述关联存在; ◎ 分析和推理能力: ADL 允许对其描述的体系 结构进行多种不同的性能和功能上的多种推理 分析。
件的体系结构,认为体系结构描述的关键是定义视点、视图以及 建模元素之间的映射关系。
◎ 与IEEE P1471相比,该建议标准的体系结构描述方案涉及面比 较窄,所注重的层次比较低,因而更具体。由于将体系结构的描 述限于 UML 和 RUP ,具有一定的局限性,但该建议标准结合了业界 已经广泛采用的建模语言和开发过程,因而易于推广,可以有效 实现在跨组织之间重用体系结构描述结果。