类图
一个类图就是一个矩形的框 最上面是类的名字 中间是属性 最下面的是操作
(1)类的属性
+表示的是public 类型 实际需求分析不需要管是public还是private 全部画成public 即可 冒号后面的是int 表示属性的类型 旺旺也可以忽略 至于操作 实际操作的过程中一般不需要标识出来
(2)类的关系
直线代表的是关联关系(Association) 一般业务需求分析中不确定业务的关系时 可以先画一条直线连接起来 随着对业务的理解再逐渐去具体化
- 1-1代表的是一对一的关系
- 1-*代表是一对多的关系
- 1-0..3 对应的是0到3个 x..y代表的是x到y个(注意是两个点)
包含关系
- 关于空心菱形与实心菱形的区别:
两种菱形的包含的强烈程度不同 空心菱形是弱的包含关系 实心菱形是强的包含关系 实际表示的是弱的关系是指儿子可以有多个父亲 强的关系是儿子只能有一个父亲 做需求分析时一般都是画为弱包含 父亲是菱形的一边 当然*代表的是几对几的关系 - 从术语角度来说 弱的关系代表的是聚合(Aggreation) 实心代表的是组合(Composition)
- 关于空心菱形与实心菱形的区别:
继承关系
继承是箭头表示前面是空心三角形 三角形所在代表的是父类 标准术语是泛化(Generalization)关系
A—->B (其中B代表的是父类) 读作A泛化B
- 依赖关系
虚线箭头代表的依赖关系 这里虚线箭头与导航关系的实现箭头很相似
A依赖于谁 就指向谁
问题
- 文件夹与文件的关系如何使用类图来表示?
可以使用文件夹自身包含与文件夹包含文件来表示 又称为”自包含”
可以形成递归关系 其实直线关系也可以 称为自关联
- 关于薪金 公司 雇员 这样的类称为关联类 关联类是对两个类之间的约束 (三角关系) 大多数情况将三角关系向关联类的角度靠拢
小结
- 直线关系:关联
- 包含关系:聚合和组合
- 继承关系:泛化
- 依赖关系:依赖
- 其他关系:递归与三角关系
流程图
(1) 每个活动图都有一个开始状态和结束状态