UML学习之用例图

在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提供服务,但用例提供服务的方式可分为间接和直接两种,依据于此,泛化中的子用例提供的是直接服务,而包含中的被包含用例提供的是间接服务。同样,扩展用例提供的也是直接服务,但扩展用例的发生是有条件的。

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

用例描述表

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

时间: 2024-08-28 08:16:16

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

Thinking in UML 学习笔记(二)——UML核心视图之用例图

在UML中,需求模型又称为用例模型,它主要用于描述系统的功能性需求,即软件可以实现的功能,如登录.注册.入库.出库.查看库存报表.增加员工信息等.常规的用例建模一般包括两个组成部分:绘制用例图和编写用例文档. 用例图采用参与者和用例作为基本元素,以不同的视角展现系统的功能性需求. 一.业务用例视图 说明:使用业务主角和业务用例展现业务建模. 1.业务主角视角 作用:从业务的角度展示业务主角在业务中使用用例达成业务目标. 借阅人在借书管理系统中有借阅图书和办理借阅证两个业务目标. 2.业务模块视角

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

visio绘制UML图使用visio 提示此UML形状所在的绘图页不是UML模型图的一部分 请问这个问题怎么解决?新建->选择绘图类型->选择软件与数据库模板->选择UML模型图->注意:如果不选择UML模型图的话,可能会出现无法编辑形状文本,提示“此UML形状所在的绘图页不是UML模型图的一部分,该形状设计用于利用UML模型图模板创建的绘图”所以利用Visio绘UML图第一步就是选择绘图类型为软件中的UML模型图. 还可以参考百度云盘的UML学习资料 参考:UML中几种类间关系:

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

UML学习(二)-----类图 http://www.cnblogs.com/silent2012/archive/2011/09/07/2169946.html http://www.cnblogs.com/yangfengming/archive/2008/08/14/1267495.html http://www.cnblogs.com/huangxincheng/archive/2012/10/17/2728736.html http://www.cnblogs.com/playing/

Thinking in UML 学习笔记(四)——UML核心视图之活动图

在UML中活动图的本质就是流程图,它描述了为了完成某一个目标需要做的活动以及这些互动的执行顺序.UML中有两个层面的活动图,一种用于描述用例场景,另一种用于描述对象交互. 活动图只是我们用来描述业务目标的达成过程并借此来发现对象的工具,它不是我们的分析目标,也不是编程的依据. 建立活动图: 一个登录过程的活动图如下: Thinking in UML 学习笔记(四)--UML核心视图之活动图

Thinking in UML 学习笔记(三)——UML核心视图之类图

类图的作用:用于展示系统中的类及其相互之间的关系. UML在解决面向对象的方法中对类理解为三个层次,分别是:概念层.说明层.实现层.在UML中,从开始的需求到最终设计类,类图也是围绕这三个层次的观点进行建模的. 一.概念层类图 在概念层上类图着重于对问题领域的概念化理解,而不是实现,因此类名称通常都是问题领域中实际事物的名称. 网上购物主要由商品.订单.支付卡这几个关键类构成,这几个类的交互能够完成网上购物这个业务目标. 二.说明层类图 这一层是类的接口而不是实现,类图中表达类和类之间的交互接口

浅谈UML学习笔记之用例图

最近一直在学习UML的基础知识,再看完视频之后,并没有很好的总结,在画图的过程中发现了很多的问题,下面是看书的过程自己总结的UML用例图的一点知识,与大家分享一下. 一.概念 用例图是由参与者.用例以及它们之间的关系构成的用于描述系统功能的动态视图. 用例是系统中的一个功能单元,描述一个系统做什么(what)的信息,并不是怎么(how)做.用例图的作用是描述参与者和用例的关系,表示系统的用户使用了系统中的哪些用例. 二.组成 用例图组成的概念,我们通过一张图学习: 我们重点讲解用例组成中用例之间

UML学习——用例图(二)

1.什么是用例? 用例模型主要应用在工程开发的初期进行系统需求分析阶段,描述了系统具备什么功能,也就是说从用户的角度观察系统应该支持哪些功能,同时帮助系统分析员对系统功能有个全面的认识,从宏观上描述系统的行为. 用例模型包括的基本元素有:用例,角色,系统. 2用例的作用 一个系统中可以包含多个用例,引入用例可以给我们带来以下几点好处. (1)确定系统有哪些功能,这些功能是否可以满足需求,使用户和开发者之间达成共识. (2)使用统一的描述,为后续工作打下基础. (3)方便验收测试. 3.用例图的基

转载:UML学习(一)-----用例图 (silent)

原文:http://www.cnblogs.com/silent2012/archive/2011/09/07/2169518.html 1.什么是用例图 用例图源于Jacobson的OOSE方法,用例图是需求分析的产物,描述了系统的参与者与系统进行交互的功能,是参与者所能观察和使用到的系统功能的模型图.它的主要目的就是帮助开发团队以一种可视化的方式理解系统的功能需求,包括基于基本流程的"角色"关系以及系统各个功能之间的关系.它通过用例(Use Case)来捕获系统的需求,再结合参与者

UML学习笔记

这个学期有幸选到章老师的UML精品课程,虽然到目前仅仅上课两周,但是收益匪浅.尽管在本科接触过UML,却没有非常详细的对其进行深入的了解,只是对一些图的名称有所耳闻,没有深究其功能. 就最近所学知识,谈一下我对uml统一建模语言的一个总体认识,软件工程作为一门工程类学科,如同建筑类学科一样,当我们需要搭建一所建筑时,我们都需要对其进行需求和设计,在施工的时候,我们就需要一些设计图纸,例如各个房间的具体设计.三维视图等,通过这些图纸进行施工.软件工程也是如此,当我们拿到一个项目时,并不是直接开始编