本章内容旨在丰富前面章节所学UML建模的语义的细节
前两章为面向对象的可视化建模描绘了一幅令人鼓舞的画面。软件开发的实际情况要复杂得多,本章是对对象技术及其在求解复杂问题时的适应性进行的严格平均,在类建模、泛化/继承、聚合/委托和交互建模方面引入了高级概念。
5.1 高级类建模
(advanced)
1、附加的建模概念:构造型、约束、导出信息、可见性、限定关联、关联类、参数化类。这些概念是可选的,很多模型没有它们也足够了
5.1.1 扩展机制
1、扩展机制并非UML本身内容,如构造型、约束、标签定义和标签值
2、普通的UML标准可能没有满足某些更特殊的建模需要
5.1.1.1 构造型
1、构造型(stereotypes)(最重要)对现有UML元素进行扩展,使现有元素的语义多样化
2、没有改变UML的结构,而是丰富了现有表示法的含义
2、表示方法:用双尖角括号括住的一个名字,如<>,<>
3、构造型扩展的是语义而不是UML结构
5.1.1.2 注释和约束
1、(Comments and constraints)
2、在UML任何地方都可以插入注释
3、注释:能表示为UML笔记,在需要注释的对象加虚线连接一个卷角书页
4、约束:指条件限制,在需要限制的单个对象(该对象旁添加大括号)或对象之间(关联,一个虚线依赖箭头,约束绑定在该箭头上,如iii.标签中的例子)
5.1.1.3 标签tags
1、标签定义:是构造型的特性,表示为构造型声明的类矩形的一个属性
2、标签值:是一个名-值对,附属于一个模型元素,该模型元素使用了包含标签定义的构造型
3、标签与约束相似,表示模型中的任意文本信息,写在大括号中,形式如下:
tag = value
例如:
{analyst = Les , developmentStatus = confirmed}
4、几乎没有标签在UML预定义
4、应用:提供项目管理信息
5.1.2 可见性和封装
1、UML标准预定义了另外两个可见性标志:保护可见性、包可见性
2、应用于类属性和操作的整套可见性标志:
- + 公共可见性
- - 私有可见性
- # 保护可见性
- ~ 包可见性
5.1.2.1 保护可见性
1、(protected visibility)应用于继承的情况下
2、包含了包可见性
3、父类的属性可以被继承他的子类访问(父类的私有特性也可以)
5.1.2.2 继承来的类特性的可见性
假设类B为类A的子类,类A包含属性和操作——一部分是公共的、一部分是私有的、一部分是保护的,那么类B中继承来的特性的可见性是什么?
- 类A