当前位置:文档之家› 第2讲-软件体系结构建模

第2讲-软件体系结构建模


Main Class (main.cpp)
部署图举例
UML的五种视图
用例视图:展示了外部行为者所观察到的系统将提交的功能,用 用例图或活动图描述用例,针对客户、分析者、设计者、编 程者和测试者 逻辑视图:展示系统内部如何提供系统的功能,针对分析者、设 计者和编程者。不仅描述系统的静态结构(类图和对象图),还 可描述对象之间的动态协作关系(状态图/活动图,时序图/协作 图) 构件视图:展示了构件的组织,描述了实现模块和他们之间的依 赖关系,针对开发者(构件图) 并发视图:展示了系统的并发性,针对开发者和系统集成者,用 动态图描述 部署视图:展示了系统的物理部署,针对开发者,集成者和测试 者,用部署图描述
UML结构图
UML
事物
关系

结构 事物
行为 事物 状 态 机
分组 事物
辅助 事物
关联 关系
聚集 关系
泛化 关系
依赖 关系
静态 图
动态 图
交 互

注 释
共享 聚集
组合 聚集
用 对 构 部 类 例 象 件 署 图 图 图 图 图 顺 协 状 活 序 作 态 动 图 图 图 图
用 例
接 类 口
协 作
活 动
连接件是负责完成构件间信息交换和行为联系的专用构件
软件体系结构建模的三个层次
图形化模型:SA模型的多视图表示,从不同的视角描述特定 系统的体系结构,从而得到多个视图,并将这些视图组织起来 以描述整体的SA模型
形式化模型:SA描述语言(ADL),在SA基本概念的基础上, 选取适当的形式化或半形式化的方法来描述一个特定体系结构
过程模型
过程模型研究构造系统的步骤和过程 结构是遵循某些过程脚本的结果
功能模型
功能模型认为体系结构是由一组功能构件按层次组成,下 层向上层提供服务 功能模型可以看作是一种特殊的框架模型
软件体系结构的核心模型
软件体系结构
接口
1 * 服务构件** 配置连接件角色
拓扑
约束
性能
软件体系结构的核心模型-构件

体系结构求精的验证
体系结构求精

主要内容
软件体系结构建模概况
利用UML描述软件体系结构
利用“4+1”模型描述软件体系结构
回顾UML
UML用若干个不同的视图完整描述所建造的系统,每个视图 (View)是由若干幅图(diagram)组成的一种抽象,而每一幅 图又有若干个模型元素组成
关于图(diagram)的说明
描述每个用例的活动
用例图
对体系结构建模, 确定包和类及类之间关系
活动图
类图
细 化
对象图
自动生成
状态图
时序图
协作图
构件图
部署图
类之间的几种关系
关联(Association)是类之间的连接,即与该关联连接的 类的对象之间的语义连接,称为链(link) 常规关联,比如公司和员工的关联,关联的重数默认为1 多重关联:两个以上的类之间互相关联,如程序员用某种 程序语言开发了某个项目
模型元素表示图中的概念,如类(class)、对象(object)、用例 (use-case)、结点(node)、接口(interface)、包 (package)、注解(note)、构件(component)等 用于表示模型元素之间相互连接的关系也是模型元素,如关 联(Association)、泛化(generalization)、依赖 (dependency)、聚集(aggregation)等
类之间的几种关系
泛化/特殊化(Generalization/Specialization):是一种 “一般-特殊关系” ,特殊类和一般类之间的关系是“is a” 的关系,比如汽车和交通工具 交叠(overlapping)泛化:存在某种具有公共父类的多 重继承 不交(disjoint)泛化:是一种默认的泛化关系,具有公 共父类的子类不能特化出公共的子类 完全(complete)泛化:可特化出所有的子类 不完全(incomplete)泛化:默认泛化类型
文档化模型:SA文档化 ,记录和整理软件体系结构设计方案 的各类细节
软件体系结构的生命周期模型
体系结构的非 形式化描述 体系结构的终结 体系结构的 性质分析 体系结构的 规范描述 体系结构的形式化 基础(数学模型)
体系结构提供、 评价和度量

需要演化 或扩展否
否 体系结构实施
需要求精 否
体系结构演化
类之间的几种关系
依赖和细化 依赖:一个类的实现依靠另一个类 细化:对同一个事物在不同抽象级别上的两种描述之间的 关系,细化用来协调不同阶段模型之间的关系 约束和派生 约束:定义属性的取值范围,当一个关联是另一个关联的 子集时,它们建立了约束 派生:事物被导出的规则,如年龄可通过当前日期和出生 日期派生出来
类之间的几种关系
聚合(Aggregation):是一种整体/部分层次关系,一个聚 合对象包括(拥有)其他对象,每个被包括的对象被认为是 聚合对象的一部分,聚集可以看作关联的特例 组合聚合(Composition):“整体”拥有它的“部 分”,“部分”生存在整体中,它们与整体一起消亡,整体的 重数必须是0或1 共享聚合(shared aggregation):“部分”对象可以 是任意“整体”对象的一部分,如果整体的重数不是1,这种 聚集是共享的
软件体系结构建模
哈尔滨工业大学计算机学院 唐好选 Email:tanghx@
主要内容
软件体系结构建模概况
利用UML描述软件体系结构
利用“4+1”模型描述软件体系结构
软件体系结构建模的种类
结构模型 框架模型
动态模型
过程模型 功能模型
结构模型
结构模型方法是最直观、最普遍的软件体系结构建模方法。 这种方法以体系结构的构件、连接件和其他概念来刻画结构, 并力图通过结构来反映系统的重要语义内容,包括系统的配 置、约束、隐含的假设条件、风格、性质等。 研究结构模型的核心是体系结构描述语言
组 件
节 点
类 属性 操作
对象 属性 操作 状态
用例
结点
包 共享 聚集 组合 聚集
注解
构件
依赖 泛化 细化
接口 关联
关于图(diagram)的说明
静态图 (Static Diagram) 用例图(use-case diagram):展示了各种外部行为者与系 统所提供的用例之间的连接. 类图(class diagram):描述系统中类的静态结构,即类与类 之间的相互联系 对象图(object diagram):是类图的实例,展示了系统在某 一时间点上的一个快照 构件图(component diagram):描述实现系统的元素组织 部署图(deployment diagram):描述系统环境元素的配置, 即系统中软件和硬件的物理结构
关于图(diagram)的说明
动态图 (Dynamic Diagram) 时序图(sequence diagram):按时间顺序描述系统元素间 交互 协作图(collaboration diagram):说明消息的交互,显示对 象及对象之间的关系 状态图(state diagram):说明类的对象的所有可能的状态 以及哪些事件将导致状态的改变 活动图(activity diagram):展示了连续的活动流,通常用来 描述完成一个操作所需要的活动
类图和对象图举例
L1:Line X1=10
Y1=10
X2=-10 Y2=-10
L2:Line X1=-10 Y1=10
P1:Point X=0 Y=0
Line X1:real Y1:real X2:real Y2:real
Point
X2=10
Y2=10
2..* 相交
0..*
X:real Y:real
arrived go up(floor)
On First floor
arrived
go up(floor)
Moving to First floor
Moving Down moving to floor
arrived
Idle timer=0 do/increase timer
[timer=time-out]
{local}nextjob
1.2 :Create()
1:GetElevator(floorid) Push()
job
:Button
控制电梯运行的协作图
顺序图举例
EC应用 MAS服务器 IAGW-A IAGW-M 终端用户
短信发送请求 短信发送请求 提交鉴权 鉴权结果 短信下发 状态报告 记录消息 状态 返回状态报告
go down(floor)
协作图举例
2:nextjob=GetJob() 1.1*[all quenes]:len=Length() {Broadcast} 1.3:Invoke(job)
:Quene
{parameter}job :Order {new}
:Elevator
:Elevator control
用例图举例
设置边界 交易经理 风险分析 交易估计 交易人员 进行交易
《extend》
更新账目 《use》 记账系统 《use》 评价
销售员
超越边界
一个贸易系统的用例
类和对象建模
类和对象模型描述了系统的静态结构,在UML中用类图 和对象图来表示 基本步骤 确定类:寻找类,定义属性,定义操作 画出类图和对象图
构件图举例
GasNet (GasNet.cpp) GasNet (gasnet.obj) SuperMap (SuperTopo.ocx)
WaterNet (waternet.cpp) WaterNet (Water.obj) HeatNet (HeatNet.exe) MainClass (main.obj)
相关主题