据说UML有9种
- 用例图
- 类图
- 对象图
- 顺序图
- 协作图
- 状态图
- 活动图
- 组件图
- 配置图
但我比较关注这几个
- 用例图
- 类图
- 顺序图,协作图
- 状态图,活动图
1.用例图(Use Case Diagrams)
对于用例图,我觉得就是用来描述一个系统中所拥有的角色,以及所拥有的功能,并把他们关联起来!
至于语法!如下所示:
甚至是描述用户之间的关系,比如病人向医生问诊,向买药的取药,想收银的付款,反过来也是医生诊断病人,卖药的把药给病人,收银的收走病人的钱!
2.类图(Class Diagrams)
其实类图,就是对类的描述(类属性,类行为),对类与类的关系描述(泛化[继承?],实现,关联,依赖,聚合,组合)
tips:以下图片来自互联网
泛化用带三角箭头的实线指向继承者:
实现用带三角箭头虚线指向父接口
关联用直线加箭头,箭头指向拥有者,双向关系可以有2个箭头,箭头2端可以写 0..N 表示关系
依赖是一个类中某个方法参数使用了另一个类,用虚线加箭头表示
组合和关联类似,也是成员变量为另一个类的对象类型,但2者有组合关系,没有公司就没有部门
3.顺序图
这种图描述了对象之间的动态交互,且注重是什么时候有交互(即有时间轴)
对象与对象的交互从一个对象的生命双道线用三角箭头加实线指向另一个对象的生命线,在实线上加描述(方法)
生命周期结束的用虚线表示.
4.协作图
同样是对象之间的交互,同样是动态的,但是与顺序图不同,它没有时间轴,不关心何时发生这个交互!语法类似!
5.状态图
用以描述一个对象或者系统等具有状态的东东 的 状态改变!
状态由圆形矩形表示,状态转移用直线加箭头,开始状态为 实心圆点 ,结束为空心环中一个实心园
动作决定状态的变化:Presskey [key!=tab] / DisPlay key
由三部分组成,动作[条件]/条件成立后的事件
比如上图这个:
登录系统的状态变化: GettingSSN 不停的输入SSN号 ,知道按下Tab键转移到输入密码或者
移动了鼠标到密码框,然后进入 Getting PIN的状态 , 同里不停输入直到提交,或者按下Shift+tab回到Getting SSN状态,提交后则到验证状态,验证失败则拒绝登录并尝试重新登录,不尝试则结束,尝试则循环的进入GettingSSN, 验证成功则登录成功!
个人觉得适合分析具体的需求,具体的考虑一个功能的每一个细节,走向,可以避免某些BUG!
6.活动图
对于活动图不在描述,可以结合顺序图和状态图来理解!
某大神说:活动图activity diagram是一个很特别的流程图。活动图和状态图之间是有关系的。状态图把焦点集中在过程中的对象身上,而活动图则集中在一个单独过程动作流程。活动图告诉了我们活动之间的依赖关系。