吉春虎

导航

 

 

用例图

 

  用例图,展现了一组用例、参与者(actor)以及它们之间的关系。用例图从用户角度描述系统的静态使用情况,用于建立需求模型。

 

 

 

参与者(Actor)

 

  在系统外部与系统直接交互的人或事物。需要注意以下两点:

 

  1)参与者是角色而不是具体的人,它代表了参与者在与系统打交道的过程中所扮演的角色。所以在系统的实际运作中,一

 

个实际用户可能对应系统的多个参与者。不同的用户也可以只对应于一个参与者,从而代表同一参与者的不同实例。

 

  2)参与者作为外部用户(而不是内部)与系统发生交互作用,是它的主要特征。

 

  在UML中,参与者使用如图所示的一个小人表示:

 

 

 

 

用例(Use Case

 

  系统外部可见的一个系统功能单元。系统的功能由系统单元所提供,并通过一系列系统单元与一个或多个参与者之间交换的消息所表达。用椭圆表示,椭圆中的文字简述系统的功能:

 

 

子系统(Subsystem)

 

  用来展示系统的一部分功能,这部分功能联系紧密。

 

 

 

 

 

 

关系(Relationship)

 

  常见关系类型有关联、泛化、包含和扩展。

 

  以上各关系在uml图中的表示方式,如下表所示:

 

  

 

  a. 关联(Association)

 

  表示参与者与用例之间的通信,任何一方都可发送或接受消息。

 

  【箭头指向】:指向消息接收方

 

 

  b. 泛化(Inheritance)

 

  就是通常理解的继承关系,子用例和父用例相似,但表现出更特别的行为;子用例将继承父用例的所有结构、行为和关系。子用例可以使用父用例的一段行为,也可以重载它。父用例通常是抽象的。

 

  【箭头指向】:指向父用例

 

 

  c. 包含(Include)

 

  包含关系用来把一个较复杂用例所表示的功能分解成较小的步骤。

 

  【箭头指向】:指向分解出来的功能用例

 

 

  d. 扩展(Extend)

 

  扩展关系是指用例功能的延伸,相当于为基础用例提供一个附加功能。

 

  【箭头指向】:指向基础用例

 

 

 

 

 

 

包含(include)、扩展(extend)、泛化(Inheritance) 的区别:

 

  条件性:泛化中的子用例和include中的被包含的用例会无条件发生,而extend中的延伸用例的发生是有条件的;

 

  直接性:泛化中的子用例和extend中的延伸用例为参与者提供直接服务,而include中被包含的用例为参与者提供间接服务。

 

  对extend而言,延伸用例并不包含基础用例的内容,基础用例也不包含延伸用例的内容。

 

  对Inheritance而言,子用例包含基础用例的所有内容及其和其他用例或参与者之间的关系;

 

 

 

 

一、概述

用例试图描概括了用例中角色和系统之间的关系,描述了系统功能需求,角色和系统的交互以及系统的反应。

 

    会员具有浏览商品类别、根据关键字产讯商品和选择商品加入购物车的功能。

二、术语解释

1Extends 用例扩展关系

扩展关系一般用来描述一个元素延伸为另外一种行为。Use Case中的扩展表示一个UC有可能扩展到另外一个UC的功能。Use Case中的扩展通常暗示一个选择性流程。

 

2Include 用例包含关系

包行关系表示源元素包行目标元素的行为,UC中的包含关系就是一个UC中包行另外一个UC的行为功能。用包行关系可以防止在多个UC中同时定义共同的功能模块,有些像委托delegation

 

3、角色(Actor

系统中的用户根据系统分为多个角色,每个角色都会与系统有交互。一个用户可以具有一个或者多个角色。

系统中用到的角色如果细分,可以分为主要角色和辅助角色

比如:在电子商务网站中主要角色有供应商、前台会员、系统管理员等等;辅助角色有Email Sender、物流系统、金流系统等等。

三、如何画Use Case 用例视图

       Note: 设计工具是EAEnterprise Architect 7.0

       假设目前的功能需求是:

A、供应商需要填写Form表单提报商品

B、供应商通过导入CSV文档提报商品

C、商品开发人员需要对供应商提报的是商品进行审核

       1、新建工程

              File->New Project->填写工程名称:Example.eap

          

  2、新建Use Case View 用例视图

              右击上面新建的Project->选择【New View->弹出对话框,选择【Use Cse】如下图

  

 

单击【OK】,在Model工程下,这样就新建了一个Package

右击Package【商品提报上架】->选择【Add->选择【Add Diagram】,如下图所示

 

弹出如下对话框:选择【UML Behavioral】->Use Case,单击【OK】

 

这样,一个空的Use Case新建完成。接下来我们需要向空的Use Case添加内容。

3、根据业务需求画Use Case视图

Note从左侧的ToolBox工具栏中 选择一些Use Case的元素,直接拖曳左边的Element,到右边的工作区,就可以把Element放到咱们的Use Case试图中。

A、拖曳两个Actor 元素到工作区,分别命名为“供应商”“商品开发人员”

B、拖曳三个Use Case元素到工作区,分别命名为“商品提报”“CSV档导入商品” “商品审核”

如下图所示:

 

C、通过关联关系 链接角色与系统功能,如下图:

 

      

至此,商品提报场景的Use Case图已经画完。一个Use Case视图会对应一个或者多个Use Case用例。

关于什么是Use Case 请参照需求阶段如何书写Use Case

 

四、Use Case 在实际项目中的组织结构

 

这是一个使用UC描述的系统需求功能目录图,每一个UC描述了Actor使用使系统时,与系统的交互行为。

五、总结

用例试图描概括了用例中角色和系统之间的关系,描述了系统功能需求,角色和系统的交互以及系统的反应。是客户和开发人员全貌理解项目需求功能比较好的一个方式,也是后续功能迭代的依据和方向。

posted on 2012-12-26 17:28  吉春虎  阅读(1079)  评论(0编辑  收藏  举报