目录
1、类之间关系
1.1、关联
1.1.1、关联的多重性
1.1.2、三元关联
1.1.3、一元关联
1.1.4、关联类
2、组合与聚合层次
2.1、组合
2.2、聚合
3、泛化/特化层次
4、约束
5、静态建模和UML
5.1、问题域的静态建模
6、系统上下文的静态建模
7、使用UML构造型对类分类
8、外部类建模
静态建模展示了问题的静态结构图,定义了系统中的类、类的属性、操作,以及类之间的关系,采用UML类图表示。
1、类之间关系
1.1、关联
关联定义了两个或多个类之间的关系
链接是类实例(对象)之间的连接,表示类之间的关联的实例。
组成结构:连线、名称、方向、多重性、约束
1.1.1、关联的多重性
1)一对一
2)一对多:用1..* 表示
3)规定数值关联:如一辆汽车有2,4个门组成。
4)可选关联:一个人可以拥有0个或任意多个的银行卡,用0..* 表示
5)多对多:课程与学生,双向箭头,用 * 1..* 表示
1.1.2、三元关联
在类之间的三个方向的关联。比如买方、卖方、中介Agent
1.1.3、一元关联
自身关联,是一个类的一个对象与同一个类的另一个对象之间的关联。
如 一个人是另一个人的孩子(is child of)
1.1.4、关联类
对两个或多个类之间的关联进行建模的类。
关联类的属性属于该关联的属性,不属于任何原始的类
如项目、雇员提取关联类(小时数类),存在属性工作小时数
这个属性既不属于项目,也不属于雇员
2、组合与聚合层次
部分和整体间的关系是一个【 Is part of】
2.1、组合
比聚合更强的关系,整体与部分存在相同的生命周期。
部分对象的创建、存在和消亡都和整体是一起的。
部分对象只能属于一个整体
如一个ATM机有一个键盘显示器、读卡器、吐钞机、凭条打印机。
2.2、聚合
在一个聚合中,部分实例能添加到聚合的整体,也能从聚合整体中移除。
对概念类建模,而非物理类
3、泛化/特化层次
共同的属性被抽象到一个泛化类,称作超类。
子类与超类之间存在【Is a】 的关系
泛化的表示形式:子类指向父类的空心箭头
如:
“储蓄账户” Is a “账户”
“活期账户” Is a “账户”
4、约束
规定了条件为真的限制
表示形式:{ "余额" >= 0 }
1)对象属性约束
2)关联链接的约束
5、静态建模和UML
5.1、问题域的静态建模
1)物理类
具有物理特性,包括物理设备、用户、外部系统、计时器
2)实体类
数据密集型,持久化存储的对象
6、系统上下文的静态建模
1)系统上下文图
展示作为黑盒对待的系统(硬件和软件)与外部环境间边界的图
2)软件系统上下文图
展示作为黑盒对待的软件系统与外部环境(包含硬件)间的边界的图
7、使用UML构造型对类分类
软件系统:
1)实体类 《实体entity》
2)边界类 《边界boundary》
外部环境:
外部类
1)《外部系统 external system》
2)《外部用户 external user》
8、外部类建模
1)外部设备
- 外部输入设备:仅提供输入,如传感器
- 外部输出设备:仅提供输出,如执行器
- 外部输入/输出设备:如ATM读卡器
键盘、鼠标等并不是感兴趣的内容,因此无需建模
2)从外部类开发软件系统上下文类图
3)参与者与外部类的交互
4)从参与者开发软件系统上下文类图