第5章 用 例 视 图

原创 2003年01月06日 10:38:00

5.1 概述
  当用例视图在外部用户前出现时,它捕获到系统、子系统或类的行为。它将系统功能划分成对参与者(即系统的理想用户)有用的需求。而交互功能部分被称作用例。用例使用系统与一个或多个参与者之间的一系列消息来描述系统中的交互作用。参与者可以是人,也可以是外部计算机系统和外部进程。图5-1表述了一个电话目录销售的用例视图。此例是实际系统简化后的例子。
5-1.gif
图5-1 用例图
5.2 参与者
  参与者是与系统、子系统或类发生交互作用的外部用户、进程或其他系统的理想化概念。作为外部用户与系统发生交互作用,这是参与者的特征。在系统的实际运作中,一个实际用户可能对应系统的多个参与者。不同的用户也可以只对应于一个参与者,从而代表同一参与者的不同实例。
  每个参与者可以参与一个或多个用例。它通过交换信息与用例发生交互作用(因此也与用例所在的系统或类发生了交互作用),而参与者的内部实现与用例是不相关的,参与者可以被一组定义它的状态的属性充分描述。
  参与者可以通过泛化关系来定义,在这种泛化关系中,一个参与者的抽象描述可以被一个或多个具体的参与者所共享。
  参与者可以是人、另一个计算机系统或一些可运行的进程。在图中,参与者用一个名字写在下面的小人表示。
5.3 用例
  用例是外部可见的一个系统功能单元,这些功能由系统单元所提供,并通过一系列系统单元与一个或多个参与者之间交换的消息所表达。用例的用途是在不揭示系统内部构造的情况下定义连贯的行为。用例的定义包含用例所必需的所有行为—执行用例功能的主线次序、标准行为的不同变形、一般行为下的所有异常情况及其预期反应。从用户角度来看,上述情况很可能是异常情况;从系统角度来看,它们是必须被描述和处理的附加情况。
  在模型中,每个用例的执行独立于其他用例,虽然在具体执行一个用例功能时由于用例之间共享对象的缘故可能会造成本用例与其他用例之间有这样或那样的隐含的依赖关系。每一个用例都是一个纵向的功能块,这个功能块的执行会和其他用例的执行发生混杂。
  用例的动态执行过程可以用UML的交互作用来说明,可以用状态图、顺序图、合作图或非正式的文字描述来表示。用例功能的执行通过类之间的协作来实现。一个类可以参与多个协作,因此也参与了多个用例。
  在系统层,用例表示整个系统对外部用户可见的行为。一个用例就像外部用户可使用的系统操作。然而,它又与操作不同,用例可以在执行过程中持续接受参与者的输入信息。用例也可以被像子系统和独立类这样的小单元所应用。一个内部用例表示了系统的一部分对另一部分呈现出的行为。例如,某个类的用例表示了一个连贯的功能,这个功能是该类提供给系统内其他有特殊作用的类的。一个类可以有多个用例。
  用例是对系统一部分功能的逻辑描述,它不是明显的用于系统实现的构件。非但如此,每个用例必须与实现系统的类相映射。用例的行为与类的状态转换和类所定义的操作相对应。只要一个类在系统的实现中充当多重角色,那么它将实现多个用例的一部分功能。设计过程的一部分工作即在不引入混乱的情况下,找出具有明显的多重角色的类,以实现这些角色所涉及的用例功能。用例功能靠类间的协作来实现。
  用例除了与其参与者发生关联外,还可以参与系统中的多个关系(如表5-1)。
表5-1 用例之间的关系
5-2.gif

如图5-2,用例用一个名字在里面的椭圆表示,用例和与它通信的参与者之间用实线连接。
5-3.gif
图5-2 用例之间的关系
  虽然每个用例的实例是独立的,但是一个用例可以用其他的更简单的用例来描述。这有点像一个类可以通过继承它的超类并增加附加描述来定义。一个用例可以简单地包含其他用例具有的行为,并把它所包含的用例行为做为自身行为的一部分,这被称作包含关系。在这种情况下,新用例不是初始用例的一个特殊例子,而且不能被初始用例代替。
  一个用例也可以被定义为基用例的增量扩展,这叫做扩展关系。同一个基用例的几个扩展用例可以在一起应用。基用例的扩展增加了原有的语义, 此时是本用例而不是扩展用例被作为例子使用。
包含和扩展关系可以用含有关键字<<include>>和<<extend>>的带箭头的虚线表示。包含关系箭头指向被包含的用例,扩展关系箭头指向被扩展的用例。
  一个用例也可以被特别列举为一个或多个子用例,这被称做用例泛化。当父用例能够被使用时,任何子用例也可以被使用。
  用例泛化与其他泛化关系的表示法相同,都用一个三角箭头从子用例指向父用例。图5-2表示了销售中的用例关系。

Rose建模历程(1 用例视图)

一 用例视图需求工作流程中使用了名为用例视图的构架视图,用例视图是其它视图的核心,它的内容直接驱动其它视图的开发。它主要是作为需求分析阶段的一个主要利器,是外部用户所能观察到的功能。 1 用例图Use...
  • wqf363
  • wqf363
  • 2006年11月19日 20:25
  • 3628

《python核心编程第二版》第五章练习解析

1. 普通整形即标准整形是最通用的数字类型。它的取值范围是-2**31 ~~ 2**31-1,也就是-2 147 483 648 ~~ 2 147 483 647。python的长整形与C或其他编译...
  • u013938528
  • u013938528
  • 2015年04月25日 10:05
  • 1155

《快学Scala》第五章习题解答

RT。 package com.scalalearn.scala.main /** * 快学scala 05习题 */ //1.改进Counter类,让它不要在大于Int.maxValue...
  • rongyongfeikai2
  • rongyongfeikai2
  • 2016年05月14日 23:21
  • 843

算法导论 第5章 概率分析和随机算法

算法导论 第5章 概率分析和随机算法 考虑一个雇佣助理的问题,对于每一个出现的应聘者,若该应聘者比之前所有应聘者都好,则雇佣该应聘者。 初始化时创建一个虚拟的应聘者编号0,他比其他所有应聘者都差,...
  • super_chicken
  • super_chicken
  • 2018年01月06日 14:52
  • 29

《C++ Primer Plus(第六版)》(7)(第五章 循环和关系表达式 答案)

5.8 复习题 1. //5.8 复习题 //1.入口条件就是在进入循环的时候就检测,出口条件是先进入循环,再检测,至少可以执行一次。 //for、while属于入口条件检测,do while属于出口...
  • u012175089
  • u012175089
  • 2016年11月25日 18:11
  • 2239

UML参考手册 第二部分 基 本 概 念 第5章 用 例 视 图

UML参考手册  第二部分 基 本 概 念  第5章 用 例 视 图 5.1 概述  当用例视图在外部用户前出现时,它捕获到系统、子系统或类的行为。它将系统功能划分成对参与者(即系统的理想用户)有用的...
  • CandyCat
  • CandyCat
  • 2001年05月26日 22:59
  • 1220

卓有成效的管理者——第5章 要事优先

一、概要    1、卓有成效的秘诀——善于集中精力;    2、卓有成效的管理者总是把重要的事情放在前面先做,而且一次只做好一件事;    3、有些人一事无成,而实际上他们却做得很吃力,为什么?   ...
  • zhuwei_810713
  • zhuwei_810713
  • 2010年05月19日 22:12
  • 1181

《JavaScript 语言精粹》 学习笔记 —— 第五章 继承

第五章 继承 5.1、继承的两个作用:1、代码重用;2、类型系统规范。 5.2、JavaScript是一门弱类型的语言。不需要类型转换。对象的起源是无关紧要的。 5.3、JavaScript是一...
  • xxd851116
  • xxd851116
  • 2012年06月17日 22:31
  • 1647

数据结构(第5章: 图)

图...
  • lincoln_2012
  • lincoln_2012
  • 2015年10月13日 12:59
  • 256

Spring Cloud构建微服务架构:服务容错保护(Hystrix断路器)【Dalston版】

前言 在前两篇《Spring Cloud构建微服务架构:服务容错保护(Hystrix服务降级)》和《Spring Cloud构建微服务架构:服务容错保护(Hystrix依赖隔离)》中,我们对Hys...
  • Winter_chen001
  • Winter_chen001
  • 2017年10月20日 17:12
  • 918
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第5章 用 例 视 图
举报原因:
原因补充:

(最多只允许输入30个字)