UML基础:用例图Use Case Diagram(1)

1. 用例图概述

  用例图(Use Case Diagram):描述“用户、需求、系统功能单元”之间的关系,是参与者所能观察和使用到的系统功能模型图。

  用例用于软件开发过程中的需求分析阶段。

  确立系统边界分内外:

  (1)外,找参与者,不需要开发,但需考虑建立接口,让系统内外可以通过接口传递信息。

  (2)内,找用例,需要考虑开发的部分。

  先找出参与者,再从参与者角度去寻找用例。

  用例图  = 参与者(Actor) + 用例(Use Case)+ 关系(Relationship)

2. 参与者(Actor)

3.1 参与者定义

  参与者是系统外部的实体,它以某种方式参与用例的执行过程。参与者位于系统边界之外,不是系统的组成部分。

  参与者通过向系统中输入某些事件来触发系统的执行,每个参与者可以参与一个或多个用例。

  在UML中,参与者使用人形表示,每个参与者都必须有一个名称且不能重复。参与者名称推荐使用对象名词。

  

  参与者一般分为三类:系统用户、其他系统、可运行的进程。

  (1)系统用户。最直接的参与者,需要使用系统的用户。

  (2)其他系统。在当前系统范围之外,需要建立与其他系统的接口。

  (3)一些可运行的进程。如时间,当经过一定时间段后,发生系统中的某个事件时,时间成为参与者。

3.2 识别参与者

  获取用例之前,首先要确定系统的参与者。

  参与者的识别方法:

  (1)系统主要功能的使用者;

  (2)系统的维护/管理人员;

  (3)需要接入的其它设备(如:打印机、扫码枪等);

  (4)需要接入的其它系统;

  (5)时间是否会触发某些事件。

3. 用例(Use Case)

3.1 用例定义

  用例是外部可见的系统功能部分,是系统的行为,是参与者在系统中做某件事从开始到结束的一系列活动的集合,以及结束时应该返回的结果,其中可能包含各种分支情况。

  每个用例的执行都独立于其它用例,每个用例都表示一个功能模块。

  在UML中,用例用一个椭圆表示,每个用例都必须有一个名称且不能重复,用例名称推荐使用动宾短语(动词+对象名词)

  

2.2 识别用例

  确定用例的方法是从参与者开始,考虑每个参与者是如何使用系统的。

  用例的识别方法:

  (1)参与者希望系统提供什么功能?

  (2)当系统改变状态时,是否通知参与者?

  (3)是否存在什么外部事件发生时需要系统知道的,哪个参与者通知系统这些事件?

  (4)是否存在什么外部事件发生时,需要系统自动执行什么操作?

  (5)系统是否需要定期执行什么操作?

  (6)这个用例是否有多种不同结果?

3. 关系(Relationship)

   在UML用例图中,关系共包括6种:关联(Association)、直接关联(DirectedAssociation)、泛化(Generalization)、依赖(Dependency)、包含(Include)和扩展(Extend)。

3.1 参与者之间关系

  参与者之间存在的关系:泛化(Generalization)。

  参与者之间的泛化关系用来描述多个参与者之间的公共行为。

  

  示例:

  

3.2 参与者与用例之间关系

  参与者与用例之间关系包括:关联(Association)、直接关联(DirectedAssociation)。

  参与者与用例之间关联或直接关联的关系可以为多对多,即一个参与者可以参与多个用例,一个用例可以隶属多个参与者。

  当参与者与用例之间直接关联时,箭头由参与者指向用例。

  

  主参与者与次参与者:主参与者是用例的重要服务对象,而次参与者则为协助。

  

3.3 用例之间关系

  用例之间的关系包括:包含(Include)、泛化(Generalization)和扩展(Extend)。

3.3.1 包含关系

  包含关系:要完成包含用例,就一定要先执行被包含用例。

  在UML中,包含关系用虚线箭头加<<include>>来表示,箭头指向被包含的用例。

  

  示例:

  

3.3.2 泛化关系

  用例泛化:一个用例可以被特别列举为一个或多个子用例。当父用例能够被使用时,任何子用例也可以被使用。子用例可以从父用例继承属性与行为,还可以添加、改变继承的行为。

  在UML中,泛化关系用一个三角箭头从子用例指向父用例。

  

  示例:

  

3.3.3 扩展关系

  扩展关系是一个用例被定义为基础用例的增量扩展,通过扩展关系把新的行为插入到已有用例中。扩展关系中,扩展用例是基础用例的一个相对独立并且可选的用例。

  在UML中,扩展关系用虚线箭头加<<extend>>表示,箭头指向基础用例,即被扩展的用例。

  

  示例:读者在归还图书馆借书时,若超过应归还日期,则需要超期罚款;若未超过归还日期,则不需要超期罚款。

  

  

  

4. 用例描述

用例名称  
用例编号  
用例描述  描述用例的作用,包括执行用例的不同类型用户和通过用例所达到的效果。
参与者  
用例图  
前置条件  用例的必须满足的条件。置条件是另一个用例已经执行或用户具体有运行当前用例的权限。并不是每个用例都有前置条件。
触发器  
基本事件流

 从用户角度描述执行用例的具体步骤

用例的开始、交互、正常流程、结束。

扩展事件流  用例的分支事件流、错误事件流
业务规则  
后置条件 用例执行完后必须为真的条件。并不是每个用例都有后置条件。 
特殊需求  

5. 用例建模

  用例建模方法如下:

  (1)识别参与者

  (2)识别用例

  (3)整理用例关系

  (4)编写用例需求描述,确定用例优先级。

posted @ 2014-01-11 02:56  libingql  阅读(8697)  评论(0编辑  收藏  举报