UML学习--用例图
用例图是指由参与者、用例以及它们之间的关系构成的用于描述系统功能的视图。用例图是被称为参与者的外部用户所能观察到的系统功能的模型图,呈现了一些参与者和一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模。说白了,用例图就是描述用户能够通过系统进行什么样的操作,能够获得什么样的结果,即系统的外在表现。
用例图主要包含的元素有:
参与者
参与者表示的是与系统交互的用户或者其他系统。不同的参与者可以使用系统的功能是不同的,举个例子,在教务管理系统中,学生、老师和管理员肯定拥有不同的权限,老师可以提交、修改成绩,而学生不行。本项功能是系统已经具备的,但是你通过学生的身份是无法接触到这项功能的。值得注意的是,参与者可以是人,也可以是另一个系统。
在确定用例图参与者的过程中,可以通过如下标准来确定:
1)谁将使用该系统的主要功能。
2)谁将需要该系统的支持以完成其工作。
3)谁将需要维护、管理该系统,以及保持该系统处于工作状态。
4)系统需要处理哪些硬件设备。
5)与该系统那个交互的是什么系统。
6)谁或什么系统对本系统产生的结果感兴趣。
在用例图中, 参与者使用一个小人来表示,如下:
用例
用例就是系统具有的功能。在用例图中,使用椭圆来表示,椭圆内部配以文字描述该用例的功能,一般用动宾短语表达。例:
关系
关系表示角色与用例之间的关系,在用例图中使用线条来表示。
在用例图中,一共包含4中关系,分别为关联、泛华、包含以及扩展。
关联
关联关系表示的是参与者与用例之间的通信。不同的参与者可以访问相同的用例,一般说来它们和该用例的交互是不一样的,如果一样的话,说明它们的角色可能是相同的。如果两中交互的目的也相同,说明它们的角色是相同的,就可以将它们合并。
在用例图中,一般使用带箭头的实线表示,箭头指向的方向为消息接收方。例:
泛化
一个用例可以被特别列举为一个或多个用例,这就叫做用例泛化。泛化关系表达的就是通常意义下的继承关系,子用例和父用例的行为相似,但子用例实现了更特别的行为。子用例可以使用父用例的行为,也可以重载它。同样对于参与者也有类似的讨论。
在用例图中,一般使用带空心三角的实线来表示,三角所指方向为父用例的方向。例:
包含
包含关系用来体现一个用例功能的多个子功能。包含关系把几个用例的公共步骤分离成一个单独的被包含用例。包含关系使一个用例的功能可以在另一个 用例中使用。具体的应用关系如下:
1) 如果两个以上用例有大量一致的功能,则可以将这个功能分解到另外一个用例中。其它用例可以和这两个用例建立包含关系。
2) 一个用例的功能太多时,可以用包含关系建模两个小用例。
包含关系在用例图中虚线箭头并带有<<include>>标记来表示,箭头指向被包含的用例。例:
扩展
扩展关系是指用例功能的延伸,相当于为基础用例提供一个附加功能。基础用例提供了一组扩展点,在这些新的扩展点中可以添加新的行为,而扩展用例提供了一组插入片片段,这些片段能够被插入到基础用例的扩展点上。基础用例不必知道扩展用例的任何细节,它仅为其提供扩展点。事实上,基础用例即使没有扩展用例也是完整的,这点与包含关系有所不同。一个用例可能有多个扩展点,每个扩展点可以出现多次。但是一般情况下,基础用例的执行不和涉及到扩展用例,只有特定的条件发生,扩展用例才被执行。扩展关系为处理异常或构建灵活的系统框架提供了一种有效的方法。
扩展关系在用例图中用虚线箭头并带有<<extend>>标记来表示,箭头指向被扩展的用例。例:
最后,将我们在初期制作的团队项目的用例图附上,作为一个整体的展示:
博客参考自:www.cnblogs.com/mywolrd/archive/2008/04/01/1930736.html