UML(Unified Modeling Language: 统一建模语言)分两类:
1).结构型的图
* 类图(Class Diagram)
* 对象图(Object Diagram)
* 构件图(Component Diagram)
* 部署图(Deployment Diagram)
* 包图(Package Diagram)
2).行为型的图
* 用例图(Use Case Diagram)
* 活动图(Activity Diagram)
* 状态机图(State Machine Diagram)
* 顺序图/序列图(Sequence Diagram)
* 通信图(Communication Diagram)
* 时序图(Timing Diagram)
1、用例图
要弄清楚一个项目的大概需求,往往可以从以下两个问题来想:
1).这个系统谁在用?
2).这些人通过这个系统能做什么?
用例图就是用来回答这两个问题的。
1.1.用例图的语法
用例图有四个部分:用例(Use Case), 参与者(Actor),系统边界,关系。
1).参与者(Actor)
在UML图中我们用一个小人表示,是对系统使用者的抽象。参与者是与系统交互的人或另一个系统,如果是人可以称为“角色”。在分析系统时,应该先思考什么角色会用这个系统,然后逐一思考不同的角色对系统有什么需求。
2).用例(Use Case)
图中的椭圆就是用例,里面的文字是动宾结构(也就是动词+名词),用例表明系统能做什么事情。如何读?可以先读执行者的名字,再读出用例中的文字。如“一般用户登陆系统”,可以用这样的方式来检查自己的用例图画得是否合适。
3).系统边界(System Boundary)
在图中有一个只框住了用例,没有框住执行者的方框叫系统边界,框框的上部注明本系的名字。系统的边界能清晰表达出系统的范围,但系统的范围不是那么好确定的。也并是所有的用例图都需要画出系统边界,不然会显示冗余,一般的做法是:使用一个全局的用例图来宏观表达系统的需求,这个宏观的用例图需要画出系统边界。
4).关系
用例图中的关系:角色的继承、关联、泛化、包含(Include)、扩展(Extend)、比较少用到的用例继承。
关联(Association):线条是指角色与用例之间线条,有三种:无箭头,指向用例的箭头,指向执行者的箭头。一般来说,箭头的尾部用来表示启动交互的一方,头部用来表示被启动的一方。不过箭头的解释容易把人弄晕,建议全部画成没有箭头就行了。
包含(Include):包含关系用来把一个较复杂的用例所表示的功能分解成较小的步骤。包含用例是必须的,如果缺少包含用例,基用例就是不完整的。
操作数据最基本的动作:增加(Create),读取(Read),更新(Update),删除(Delete),如果都按下面来画用例图,会显得很多,很杂,可以用上面的”管理某某“用例来代替。
包含关系最典型的应用就是复用。这种情况类似与在过程设计语言中,将程序的某一段算法封装成一个子过程,然后在从主程序中调用这一子过程(这么说好像懂了点)
在UML中,包含关系用带箭头的虚线段加《include》表示,箭头指向被包含的用例。
扩展(Extend):在某用例的基础上,还能做什么事情,带有”《extend》”标志的虚线的箭头方向,箭头方向表明了谁扩展谁。
1.2.用例表