UML静态建模之用例图

  用例图(use case diagram)主要用来描述“用户、需求、系统功能单元”之间的关系。它展示了一个外部用户能够观察到的系统功能模型图。它主要用来图示化系统的主事件流程,从而描述客户的需求。设计人员根据客户的需求来创建和解释用例图,并用来描述软件应具备哪些功能模块以及这些模块之间的调用关系,用例图包含了用例和参与者,用例之间用关联来连接以求把系统的整个结构和功能反映给非技术人员(通常是软件的用户),对应的是软件的结构和功能分解,因此,设计用例图也是设计系统分析阶段的起点。

 

  用例图(use case diagram)所包含的元素如下:

  1. 参与者(Actor)

  表示与您的应用程序或系统进行交互的用户、组织或外部系统。用一个小人表示。

                                                                    185750_ARMy_2942284.png

    

       2. 用例(Use Case)

     用例就是外部可见的系统功能,对系统提供的服务进行描述。用椭圆表示。

                                                                  190046_KIf8_2942284.png

   

     3. 子系统(Subsystem)

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

                                                                191618_n6JK_2942284.png

 

     4. 关系

  用例图中涉及的关系有:关联、泛化、包含、扩展。

  如下表所示:   

                                                             192146_IuAp_2942284.png

        

       a. 关联(Association)

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

       箭头指向:指向消息接收方。

                                                            193026_W2u4_2942284.png

        

       b. 泛化(Inheritance)

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

        箭头指向:指向父用例

                                                         193425_HQoY_2942284.png

      c. 包含(Include)

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

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

                                                        193618_khXh_2942284.png

      d. 扩展(Extend)

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

   箭头指向:指向基础用例

                                                                193810_fqhY_2942284.png

      e. 依赖(Dependency)

  以上4种关系,是UML定义的标准关系。但VS2010的用例模型图中,添加了依赖关系,用带箭头的虚线表示,表示源用例依赖于目标用例。

  箭头指向:指向被依赖项。

                                                               204247_3UNh_2942284.png              

 

  5. 项目(Artifact)

  用例图虽然是用来帮助人们形象地理解功能需求,但却没多少人能够通看懂它。很多时候跟用户交流甚至用Excel都比用例图强,VS2010中引入了“项目”这样一个元素,以便让开发人员能够在用例图中链接一个普通文档。

  用依赖关系把某个用例依赖到项目上:

                                                               204845_45zE_2942284.png

  然后把项目属性的Hyperlink设置到你的文档上;

  这样当你在用例图上双击项目时,就会打开相关联的文档。

  

 

  6. 注释(Comment)

                                                                      

  

 

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

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

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

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

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

 一个用例图示例:

                                                   

                                       195338_7Ivm_2942284.gif   


   

 

 

 

 

 

转载于:https://my.oschina.net/xiaoleei/blog/757109

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值