2.1 软件体系结构建模概述
- 软件体系结构模型是在较高层面上对系统框架结构所做的抽象和形式化描述。
- 软件体系结构建模离不开具体的软件工程方法,常用的有:结构化开发方法、面向对象开发方法、基于构件的开发方法和基于体系结构的开发方法。
2.2 软件体系结构模型
- 软件体系结构模型应是多维的,而非单一的结构。以下五种模型有机结合才能形成一个完整的模型来刻画软件的框架结构。
- 1995年,Kruchten-“4+1”视图模型
- 存在的不足:
1)不能体现体系结构的构造是多层次抽象的过程
2)不能充分表达系统的体系结构风格
3)不能充分体现数据(系统的重要组成部分)
4)不能充分反映系统要素之间关系
5)实现体系结构模型时,缺乏构造视图和建立视图之间关系的指导信息
2.3 软件体系结构的形式化描述
软件体系结构的形式化描述:
| 构件 | 连接件 | 约束 |
定义 | 具有一定功能和可辨识的软件单位 | 用来建立构件之间交互和支配这些交互规则的构造模块 | 构件与其关系之间必须满足的条件和约束 |
特性 | 语义完整性、语法正确性、可复用性 | 可扩展性、互操作性、请求响应性 | – -- |
作用 | 1.用于实现某种计算逻辑的相关对象集合。2.可以将抽象程度进一步提高。3.为用户提供服务端口 | 对构件而言,连接件是粘合剂,是构件交互的实现 | 1.描述系统的配置关系和拓扑结构。2.确定了体系结构调整的构件和连接件的关联关系。3.约束将软件体系结构与系统需求紧密联系起来。 |
常见 举例 | 1.纯计算单元 2.数据存储单元 3.管理器 4.控制器 | 1.过程调用 2.数据流 3.隐含触发器 4.消息传递 5.数据共享协议 | – -- |
2.4 软件体系结构的生命周期
2.5 软件体系结构的建模语言
描述软件框架结构的方法:实践派风格、学院派风格。
实践派风格包括:图形表示方法、模块内连接语言、基于构件的系统描述语言和UML描述方法。
学院派风格使用体系结构描述语言(Architecture Description Language,ADL)
2.5.1 基于UML的软件体系结构描述
- UML模型由很多种视图组成,从不同角度和侧面描述应用系统
- UML的语义定义在一个四层概念框架上:UML的四层概念模型
层 | 描述 | 示例 |
元—元模型层 | 定义了规定元模型的语言 | 元类、元属性、元操作 |
元模型层 | 元—元模型的实例,定义了规定模型的语言 | 类、属性、操作、构件 |
模型层 | 元模型的实例,定义了描述某一信息域的语言 | 学校、学生、课程、成绩 |
用户对象层 | 模型的实例,定义了特定领域的值 | 数据结构 |
- 使用UML描述体系结构的三种途径:
1)不改变UML用法,将UML看作一种软件体系结构描述语言,直接对体系结构建模。
2)利用UML的扩展机制约束UML元模型以支持体系结构建模需求。
3)对UML元模型进行扩充,增加体系结构建模元素。
4.UML与体系结构元素的对应关系
UML | 体系结构 |
用例、类、组件、节点、包、子程序 | 构件 |
关系支持 | 连接件 |
接口支持 | 接口 |
规则 | 约束 |
包图、组件图、配置图 | 配置 |
预定义、用户自己拓展的构造型(如精化与复制等) | 行为 |
- UML的优点:
1)主流、面向对象、易接受
2)UML是一个开发标准,具有良好的扩展机制
3)UML引入形式化定义(对象约束语言),是一种半形式化的建模语言
4)有丰富的支持工具,与程序设计语言和开发过程无关
5)支持多视图结构,不同角度刻画软件体系结构
6)提供丰富的建模概念和表示符号,能满足典型的软件开发过程
7)语义丰富,是一种通用和标准的建模语言,发展成熟
- UML的不足:
1)对体系结构的构造性建模能力不强,缺乏对体系结构风格和显式连接件的直接支持。
2)对体系结构的描述只能到达非形式化的层次,不能保证软件开发过程的可靠性,不能充分表示软件体系结构的本质。
- 基于UML的软件体系结构(UML-based Software Architecture,UBSA)是由一组互助协作的组件构成的。通过组件之间的协作来定义软件系统的体系结构。
- UBSA模型形式化定义:
UBSA={组件(Components),连接件(Connectors),配置关系(Configurations),接口(Interfaces),连接件的角色(Roles),组件的端口(Ports),扩展点(Extension Points)}
2.5.2 基于ADL的软件体系结构描述
- 目前广泛使用的体系结构描述语言有:ACME、Unicon、Wright、Darwin、Aesop、SADL、MetaH、Rapide和C2。
- ADL的优点:
能为软件建立精确和无二义性的模型,有效地支持体系结构地求精和验证 - ADL的缺点:
1)研究处于初级阶段,ADL自身能提供的技术支持有限。
2)没有统一可用的形式化描述规范和集成开发工具,还不能对软件工程生命周期的各个阶段提供全面的支持。
3)易用性比UML差,不利于开发人员的沟通和理解,作为新兴技术,发展比较缓慢。
4)每种ADL有各自适用领域,还未找到一种普遍适用的体系结构描述语言。
2.5.3 基于UML和ADL的软件体系结构描述
- UML与ADL在描述软件体系结构方面具有强互补性。
- 基于UML和ADL的软件体系结构描述研究的四个方面:
1)定义UML与ADL之间的映射和转换规则,寻找二者语义相似性。
2)在形式化层面上,利用UML的扩展机制描述软件体系结构。
3)在UML中加入体系结构建模必需的元素,扩展现有建模元素,更好描述软件体系结构。
4)使用ADL描述体系结构,同时,提供工具把描述转变为低层的和面向对象的设计,然后使用UML来表示
2.6 基于软件体系结构的开发
基于体系结构的软件开发过程:
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删