zoukankan      html  css  js  c++  java
  • 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)编写用例需求描述,确定用例优先级。

  • 相关阅读:
    Vue2.0组件实现动态搜索引擎(一)
    6款 jQuery Lightbox图片查看触控插件
    js学习总结----移动端概述和hybird模式
    js学习总结----less常用的方法
    js学习总结----less的基础语法和使用
    js学习总结----less基础和编译
    js学习总结----柯里化函数
    js学习总结----案例分页之前端代码实现和请求处理
    js学习总结----案例分页之服务器内容和数据的处理
    js学习总结----案例分页之需求分析和制定api文档及测试数据
  • 原文地址:https://www.cnblogs.com/libingql/p/3514691.html
Copyright © 2011-2022 走看看