在UML的整个学习过程中,9种图(用例图、活动图、状态图、顺序图、类图、对象图、协作图、组件图、部署图)的学习以及常用开发、建模工具的使用是最为重要的一个阶段,它是进行UML建模的基础。在本篇文章中首先介绍下用例图(Use Case Diagram)。

用例图概念

1、概念及作用:用例图描述的是开发人员与用户交流后完成的图,用来表达待系统的功能性需求和行为,它由参与者(Actor)、用例(Use Case)、子系统(Subsystem)以及构成它们之间的关系组成,主要用于对系统、子系统或类的功能行为进行可视化建模。用例模型是由多个用例图构成的。

2、使用用例图需要考虑:a.强调多少功能

b.各个功能的执行者是谁

c.系统为执行者完成哪些功能

用例图基本元素

  • 角色

1、概念:是一种人员的角色,用来指明用例与角色的关系。角色可以是人,也可以是事,也可以是物。

2、寻找执行者的原则:a.谁使用系统的这些功能

b.谁需要系统支持日常的工作

c.谁来维护系统

d.系统操作需要哪些硬件

e.这个系统需要跟哪些系统进行交互

f.还有哪些人或事物对结果感兴趣

  • 用例

功能的描述

  • 关系

概念:执行者与用例之间的关系,包括关联(Association)、依赖(Dependency)、泛化(Inheritance)3种。用例与用例之间具有包含(Include)和扩展(Extend)关系。

注释(Note)

          可以添加到任何地方,对用例图的不同部分加以说明

用例图的主要属性

  • 事件流   :描述一个用例在执行时执行者与系统之间的交互过程。

包 括:1、基本流:对用力中常规和预期路径的描述

2、备选流:由于受到其他因素影响,用例执行了其他的路径

  • 前置条件 :是该用例执行的前提条件,用来描述在什么条件下可以开始执行一个事件流
  • 后置条件 :说明用例结束时系统的状态

说明:前置条件和后置条件可以用于用例的验证

用例图的粒度与范围

用例的粒度必须适中,不能过多也不能太少,分为 以下三个级别:

  • 概述级

  • 用户目标级

  • 子功能级

在设计用例图的时候必须仔细画出,并且把关系描述清楚,与后面的开发、维护等关系重大。

用例注意点

  • 应该清晰的定义系统边界
  • 防止用力过多
  • 应该从执行者的角度来命名用例
  • 用例描述正规程度
  • 避免执行者的名字不一致
  • 避免执行者与用例之间的关系太复杂
  • 注意用例的大小是否恰当
  • 避免用例描述混乱
  • 区别用例分解和功能分解
  • 避免客户不能理解用例的情况发生
  • 有些场合,用用例来描述需求是不合适的

转载:

扩展和泛化的区别

表示类似于OO术语“继承”或“多态”。UML中的UseCase泛化过程是将不同Use Case之间的可合并部分抽象成独立的父Use Case,并将不可合并部分单独成各自的子UseCase;包含以及扩展过程与泛化过程类似,但三者对用例关系的优化侧重点是不同的。如下:

●泛化侧重表示子用例间的互斥性;

●包含侧重表示被包含用例对Actor提供服务的间接性;

●扩展侧重表示扩展用例的触发不定性;详述如下:

既然用例是系统提供服务的UML表述,那么服务这个过程在所有用例场景中是必然发生的,但发生按照发生条件可分为如下两种情况:

⒈无条件发生:肯定发生的;

⒉有条件发生:未必发生,发生与否取决于系统状态;

因此,针对用例的三种关系结合系统状态考虑,泛化与包含用例属于无条件发生的用例,而扩展属于有条件发生的用例。进一步,用例的存在是为Actor提供服务,但用例提供服务的方式可分为间接和直接两种,依据于此,泛化中的子用例提供的是直接服务,而包含中的被包含用例提供的是间接服务。同样,扩展用例提供的也是直接服务,但扩展用例的发生是有条件的。

另外一点需要提及的是:泛化中的子用例和扩展中的扩展用例均可以作为基本用例事件的备选择流而存在。

用例描述表

鉴于用例图有时并不能清楚地表达功能需求,开发中大家通常用描述来补充某些不易表达的用例,下图的表给大家提供一个参考:

UML学习之用例图的更多相关文章

  1. UML学习入门就这一篇文章

    1.1 UML基础知识扫盲 UML这三个字母的全称是Unified Modeling Language,直接翻译就是统一建模语言,简单地说就是一种有特殊用途的语言. 你可能会问:这明明是一种图形,为什 ...

  2. 用rose画UML图(用例图,活动图)

    用rose画UML图(用例图,活动图) 首先,安装rose2003,电脑从win8升到win10以后,发现win10并不支持rose2003的安装,换了rose2007以后,发现也不可以. 解决途径: ...

  3. UML学习(类图和序列图等)

    visio绘制UML图使用visio 提示此UML形状所在的绘图页不是UML模型图的一部分 请问这个问题怎么解决?新建->选择绘图类型->选择软件与数据库模板->选择UML模型图-& ...

  4. UML学习(二)-----类图

    UML学习(二)-----类图 http://www.cnblogs.com/silent2012/archive/2011/09/07/2169946.html http://www.cnblogs ...

  5. UML 学习地址

    UML 学习地址 网址:http://www.uml.org.cn/oobject/201609092.asp http://www.uml.org.cn/oobject/201009081.asp ...

  6. UML学习笔记:类图

    UML学习笔记:类图 有些问题,不去解决,就永远都是问题! 类图 类图(Class Diagrame)是描述类.接口以及它们之间关系的图,用来显示系统中各个类的静态结构. 类图包含2种元素:类.接口, ...

  7. UML学习笔记:活动图

    UML学习笔记:活动图 活动图 活动图是UML中描述系统动态行为的图之一,用于展现参与行为的类的活动或动作.在UML里,活动图很类似于流程图,但是有一些区别: 活动图着重表现系统行为,描述对象活动的顺 ...

  8. 浅谈UML学习笔记之用例图

    最近一直在学习UML的基础知识,再看完视频之后,并没有很好的总结,在画图的过程中发现了很多的问题,下面是看书的过程自己总结的UML用例图的一点知识,与大家分享一下. 一.概念 用例图是由参与者.用例以 ...

  9. UML学习(二)- 用例图

    UML用例图      用例图主要用来图示化系统的主事件流程,它主要用来描述客户的需求,即用户希望系统具备的完成一定功能的动作,通俗地理解用例就是软件的功能模块,所以是设计系统分析阶段的起点,设计人员 ...

随机推荐

  1. Python(四) 分支、循环、条件与枚举

    一.什么是表达式 表达式(Expression)是运算符(operator)和操作数(operand)所构成的序列 二.表达式的优先级 三.表达式优先级练习 优先级同级 从左往右计算 1 or 2 a ...

  2. BZOJ 4430 Guessing Camels

    Description Jaap, Jan, and Thijs are on a trip to the desert after having attended the ACM ICPC Worl ...

  3. 硬件时间,操作系统时间,Windows 和linux 双系统时间差8小时问题说明

    1.硬件时间:硬件时钟是存储在主板上CMOS里的时间即BIOS时间,关机后该时钟依然运行,主板的电池为它供电.对应于嵌入式设备有一个RTC模块.硬件时钟即RTC时钟.信息比较少没时区.夏令时的概念. ...

  4. DENON AVR-X510BT 功放设置记录

    http://manuals.denon.com/avrx510bt/ap/zh/index.php 环绕模式  : Direct:直接 Sttereo:立体声 Dolby PL  声音模式 电影 : ...

  5. JAVA基础数据类型

    JAVA的数据类型粗略分两种 1.基本数据类型 整数类型: byte,short,int,long 浮点类型: float,double 字符类型: char 布尔类型: boolean 基本语法格式 ...

  6. OpenJDK源码研究笔记(十二):JDBC中的元数据,数据库元数据(DatabaseMetaData),参数元数据(ParameterMetaData),结果集元数据(ResultSetMetaDa

    元数据最本质.最抽象的定义为:data about data (关于数据的数据).它是一种广泛存在的现象,在许多领域有其具体的定义和应用. JDBC中的元数据,有数据库元数据(DatabaseMeta ...

  7. C++ 不输入回车就不结束输入的实现方法

    方法一 char mystr[128]; mystr[0] = '\0'; char c = getchar(); int i=0; while(c!='\n') { mystr[i] = c; c ...

  8. Viewpager切换时pager页面的生命周期变化

    总结1: 当我们把ViewPager和Fragment合用的时候,切换页面时生命周期会发生对应的变化.变化规律:载入当前页面.前一个页面和后一个页面.我们来看一个实际測试效果图 打开应用会载入第一个页 ...

  9. webgoat 7.1 实战指南

    WSASP中文文档参考链接: http://www.owasp.org.cn/owasp-project/2017-owasp-top-10 OWASP Top 10 2017中文版V1.3http: ...

  10. js插件---layer.js使用体验是怎样

    js插件---layer.js使用体验是怎样 一.总结 一句话总结:只有jquery和js,没有css,使用各种弹出层掉用各种函数特别方便,特别简单,特别好用. 引入只需要引入这两个,css都不需要, ...