UML
- UML 历史
- UML 建立在当今国际上最有代表性的三种面向对象方法(Booch 方法,OMT 方法,OOSE 方法)的基础之上
- UML 由 OMG 于 1997 年 11 月正式采纳为标准
- UML 为人们提供了从不同的角度去观察和展示系统的各种特征的一种标准表达方式
- UML 视角
- 使用实例:外部操作者
- 逻辑结构:从内部描述如何设计实现系统功能
- 构成
- 并发性
- 配置
- UML 语义
- 元-元模型:元模型的基础体系结构,定义一种说明元模型的语言
- 元模型:元-元模型的一个实例,定义一种说明模型的语言
- 模型:元模型的一个实例,定义一种语言来描述信息领域
- 用户对象:模型的一个实例,定义一个特定的领域
- UML 2.0 目标:服务于模型驱动软件开发
- Superstructure:定义了用户级的构造块(constructs ),用于对系统的结构、行为进行详述(如,类图、顺序图等)
- Diagram Interchange:定义了针对 UML 的图交换标准,用于对模型以及模型图(包含图形的布局信息)进行交换
- Infrastructure:定义了最基本的构造块,用于描述 UML 本身以及针对特定的域(如,实时领域)对 UML 进行定制
- OCL:用于定义针对模型以及模型元素的约束信息
- UML 工具
- IBM Rational Rose
- Borland Together
- Eclipse: Papyrus, Topcased
功能
- 用例图
- Use Case:用户与计算机之间为达到某个目的的一次典型交互作用
- 执行者
- 联系
结构
-
类图:描述了系统中的类及其相互之间的各种关系
- stereotype:实体类、边界类、控制类
- 依赖关系:带箭头虚线
- 关联关系:单向的关联用带一个箭头的实线,双向的关联可以用带两个箭头或者没有箭头的实线来表示
- 聚合关系:聚合关系可以用带空心菱形的实线来表示,菱形指向整体
- 组合关系:部分对象不能脱离整体对象而存在,实心菱形的实线
- 泛化关系:带空心三角箭头的实线
- 实现关系:接口与实现类之间的关系,实现关系使用带空心三角箭头的虚线来表示,箭头从实现类指向接口
-
对象图:类图实例化,对象名下方加下划线
-
包图:包图所显示的是类的包以及这些包之间的依赖关系
- 包:类的集合,反映了编译期的分组关系
- 依赖关系不具备传递性
-
复合结构图
- 复合结构:体现了运行期的分组关系
- 从内部结构的角度描述
行为
- 状态机图:状态图是对类的一种补充描述,它展示了此类对象所具有的可能的状态以及某些事件发生时其状态的转移情况
- 顺序图:描述了对象之间动态的交互关系,着重体现对象间消息传递的时间顺序
- 活动图:描述系统中各种活动的执行顺序,通常用于描述一个操作中所要进行的各项活动的执行流程
- 通讯图:描述各个对象之间存在的消息收发关系(交互关系),而不专门突出这些消息发送的时间顺序
- 交互概观图:活动图和顺序图的结合体
实现
- 构件图:描述软件构件以及它们之间的依赖关系
- 部署图(配置图):描述系统中硬件和软件的物理配置情况和系统体系结构
时间
- 定时图
- State Lifeline
- Value Lifeline
面向对象分析设计
- 面向对象概念补充
- 分类:把具有相同属性和服务的对象划分为一类,用类作为这些对象的抽象描述
- 多态:隐藏一个接口不同实现的能力
- 消息通信:这一原则要求对象之间只能通过消息进行通信,而不允许在对象之外直接地存取对象内部的属性
- OOA: Develop model of requirements, User’s Perspective
- OOA 建模层次模型
- 对象-类层:建立“现实世界中事物”的抽象表示,也就是如何建立基本块
- 属性层:对象的属性和实例连接共同组成了OOA模型的属性层
- 服务层:对象的服务,加上对象实例之间的消息通信,共同组成了OOA模型的服务层
- 结构层:捕捉特定应用论域中的结构关系
- 主题层:将对象归类到各个主题中,把有关的对象用一个主题边框框起来
- OOD: Add detail and design decisions, Developer’s Perspective
- 设计过程:OOA$\rightarrow$OOD
- 确定分析,设计映射
- 构造结构模型
- 构造行为模型
- 构造体系结构模型