第8讲用例及用例图

合集下载

第8讲用例及用例图

第8讲用例及用例图


⑥ 编制用例说明。
● 用例:入住登记 ●参与者:柜台工作人员
●说明:
① 工作人员启动入住登记功能。 ② 根据旅客要求查询客房空闲信息。
③ 如果不满足旅客入住要求,则退出。
④ 接收旅客信息。 ⑤ 给旅客分配房间床位。
⑥ 接收押金。
⑦ 打印入住单 ⑧ 入住登记结束。

⑥ 编制用例说明。
● 用例:退房结帐 ●参与者:柜台工作人员
小结小结教学进程教学进程8181811811812812用例图的应用用例图的应用813813用例图的组成用例图的组成814814发现用例发现用例8282821821类的定义类的定义822822类之间的关系类之间的关系8238238383对象图对象图831831对象图的概念对象图的概念832832对象图的作用对象图的作用8484几个特殊问题几个特殊问题841841对象类和抽象类对象类和抽象类842842派生属性和派生关联派生属性和派生关联8585851851包的概念包的概念852852包的关系包的关系853853包的设计原则包的设计原则854854重要知识点重要知识点
属性的数据类型: 字符串:String 日期:Date 布尔:Boolean 整型:int
类的属性
1. 属性的含义
属性(attribute): 描述类所表示事物的静态性质。
2.属性的格式
[可性]属性名[:类型][„[ ‟多重性[次序]„]‟][=初始值][{特性}]
表示属性值的取值的多寡,以及有序性: 例如: name:String[0..1] 表示属性”name”可能无值,也可能 仅有一个值. points:Point[2..* ordered] 表示有两个或多个值,有序
2.属性的格式
[可见性]属性名[:类型][„[ ‟多重性[次序]„]‟][=初始值][{特性}]

02-用例和用例图

02-用例和用例图

3.4.4 几种关系的比较
关系类型
说明
表示符号
关联
actor与use case之间
泛化
actor之间或use case之间
包含
use case之间
扩展
use case之间
用例图
用例图(use case diagram)是显示一组用例、角色以及它 们之间的关系的图.
在UML中, 一个用例模型若干个用例图描述.
角色
由于Actor实际上是一个特殊类, 因此它们之间可以 存在一定的关系,如:
脚本/场景
脚本(scenario)在UML中指贯穿用例的一条单一路径, 用 来显示用例中的某种特殊情况.
其它译名: 情景、情节、剧本.
每个用例有一系列脚本, 包括一个主要脚本, 以及几个 次要脚本. 相对于主要脚本, 次要脚本描述了执行路径 中的异常或可选择的情况.
实例分析:语音邮箱系统----用例脚本
用例3: 登录系统 1. 邮箱用户完成邮箱号输入操作. 2. 邮箱用户键入密码并后跟#键.(默认号码与邮箱号相同) 3. 语音邮件系统播放邮箱菜单: 按1键接收信息. 按2键更改密码. 按3键更改问候语.
实例分析:语音邮箱系统----用例脚本
用例4: 接收信息 1. 邮箱用户完成登录操作. 2. 邮箱用户选择 “接收信息”菜单选项. 3. 语音邮件系统播放信息菜单: 按1收听当前信息; 按2存储当前信息; 按3删除当前信息; 按4返回邮箱菜单. 4. 邮箱用户选择“收听当前信息”菜单选项. 5. 语音邮件系统播放当前新信息,若无新信息,播放当前已有信 息.(注意: 只播放,不删除) 6. 语音邮件系统播放信息菜单. 7. 用户选择”删除当前信息”,则信息被永久删除. 8. 继续执行第3步.

用例及用例图案例

用例及用例图案例
第3章
用例及用例图-案例
3.7 业务用例图 3.8 案例
1
3.7 业务用例图
• 作用
– 帮助了解机构及其软件系统(或工作内容) – 帮助业务过程重建工程工作 – 帮助员工(小组内成员)充分了解业务及其角色
• 什么时候需要
– 对机构不熟悉 – 机构业务发生变更 – 机构中主要部分使用的软件需建立 – 机构中有些大型复杂工作流的文档不足
20
● ⑤ 绘制用例图。
21
● ⑥ 编制用例说明。
● 用例:客房预订 ●参与者:柜台工作人员 ●说明:
① 工作人员启动预订功能。 ② 根据预订需求查看客房空闲信息。 ③ 输入预订人信息。 ④ 安排客房。 ⑤ 预订成功。
22
● ⑥ 编制用例说明。
● 用例:预订变更 ●参与者:柜台工作人员 ●说明:
A2:有冲突。
⑧系统添加新课程,并提示添加成功。
⑨系统回到管理主界面,显示所有课程,用例结束。
14
● ⑦ 对异常流程确定单独用例。 ⑧ 优化用例图,解决用例之间的冲突和重复。
15
案例3:
宾馆客房业务管理用例分析
宾馆客房业务管理提供客房预订、预订变更、 客房入住、退房结帐、旅客信息查询几个方面的 功能。
第3章 用例和用例图
● 3.4 用例图 3.4.1 用例图的作用 3.4.2 用例图的形式
● 3.5 用例描述 ● 3.6 用例分析 ● 3.7 业务用例图
● —— 重要知识点
26
本章作业
(1) 什么叫用例? (2) 用例图在软件建模中的作用是什么? (3) 用例之间存在那几种关系? (4) 包含关系和扩展关系有什么区别? (5) 参与者可以是那几种形式? (6) 什么叫事件流,作用是什么?

第8讲-时序图复习进程

第8讲-时序图复习进程

7.2.5 消息
在任何一个软件系统中,对象都不是孤立存在的
,它们之间通过消息进行通信。
消息是用来说明时序图中不同活动对象之间的通 信。因此,消息可以激发某个操作、创建或撤销 某个对象。
可以清晰而直观的表示对象之间的行为交互关系以及 操作和消息的时序关系。
时序图的主要用途之一是用来为某个用例的 泛化功能提供其所缺乏的解释,即把用例表 达的要求转化为更进一步的精细表达。
用例常常被细化为一个或多个时序图。
时序图除了在设计新系统方面的用途之外, 它还能用来记录一个存在系统的对象现在如 何交互。
对象A向对象B发送消息,可以简单地理解为 对象A调用对象B的一个操作(operation)。
7.2.5 消息
顺序图中,尽力保持消息的顺序是从左到 右排列的。
一个顺序图的消息流开始于左上方,消息2 的位置比消息1低,这意味着消息2的顺序 比消息1要迟。因为方的阅读习惯是从左 到右。
顺序图中消息编号可显示,也可不显示。 协作图中必须显示。
对象从左到右按照重要性排列或按照消息先 后顺序排列。
Object1 : ClassA
7.2.2 活动者或对象
对象的命名方式有三种:
包括对象名和类名 类名(匿名对象) 对象名(不关心类)
7.2.3 生命线
生命线(Lifeline):
每个对象都有自己的生命线,用来表示在该用例中一个对 象在一段时间内的存在
时序图和协作图从不同的角度描述了为完成某种系统功 能,系统中各对象间的交互与协作,可以有效地帮助人 们观察和理解系统的动态行为。
通常用来描述一个用例的行为,实现一个用例,完成对 系统的动态行为建模;
时序图主要用来描述对象之间信息交换时的时间顺序。

UML实践----用例图、顺序图、状态图、类图、包图、协作图

UML实践----用例图、顺序图、状态图、类图、包图、协作图

UML实践----用例图、顺序图、状态图、类图、包图、协作图2009-01-20 作者:Randy Miller 来源:网络面向对象的问题的处理的关键是建模问题。

建模可以把在复杂世界的许多重要的细节给抽象出。

许多建模工具封装了UML(也就是Unified Modeling Language™),这篇课程的目的是展示出UML的精彩之处。

UML中有九种建模的图标,即:∙用例图∙类图∙对象图∙顺序图∙协作图∙状态图∙活动图∙组件图∙配置图本课程中的某些部分包含了这些图的细节信息的页面链接。

而且每个部分都有一个小问题,测试一下你对这个部分的理解。

为什么UML很重要?为了回答这个问题,我们看看建筑行业。

设计师设计出房子。

施工人员使用这个设计来建造房子。

建筑越复杂,设计师和施工人员之间的交流就越重要。

蓝图就成为了这个行业中的设计师和施工人员的必修课。

写软件就好像建造建筑物一样。

系统越复杂,参与编写与配置软件的人员之间的交流也就越重要。

在过去十年里UML就成为分析师,设计师和程序员之间的“建筑蓝图”。

现在它已经成为了软件行业的一部分了。

UML提供了分析师,设计师和程序员之间在软件设计时的通用语言。

UML被应用到面向对象的问题的解决上。

想要学习UML必须熟悉面向对象解决问题的根本原则――都是从模型的建造开始的。

一个模型model就是根本问题的抽象。

域domain就是问题所处的真实世界。

模型是由对象objects组成的,它们之间通过相互发送消息messages来相互作用的。

记住把一个对象想象成“活着的”。

对象有他们知道的事(属性attributes)和他们可以做的事(行为或操作behaviors or operations)。

对象的属性的值决定了它的状态state。

类Classes是对象的“蓝图”。

一个类在一个单独的实体中封装了属性(数据)和行为(方法或函数)。

对象是类的实例instances。

用例图用例图Use case diagrams描述了作为一个外部的观察者的视角对系统的印象。

用例图(User Case)

用例图(User Case)

用例图(User Case)用例图是用来描述什么角色通过某某系统能做什么事情的图,用例图关系的是系统的外在表现,系统与人的交互,系统与其它系统的交互。

下面逐一说明用例图中各种符号的意义:小人:对使用某系统的用户进行分类后,可以总结出使用本系统有哪些角色,不同的角色的工作责任不太一样,他们需要用到的系统的功能也会不太一样。

小人就是角色,它给了我们一个启示,我们思考某系统的需求时,可从不同角色的角度来思考。

例如:我们要做一个考勤系统,你会怎样思考呢?会一下子列出很多功能?比较好的方式,应该是先思考什么人会用这个系统,我们大概可以估计一般员工、高层领导、前台、财务等都会用这个系统,对于一般员工来说除了打卡,他还关注什么?对于前台,她是不是要做一些考勤的统计?而财务是不是要根据考勤情况来调整员工的薪金?这样的思考方式,会让我们更容易全面发掘系统的需求。

还需要特别说明的是:角色可能是人,也可能不是人,而是另外的一个系统,本系统与另外一个系统交互的话,可以将另外一个系统画成某某角色。

圈圈:圈圈里面会有一段动宾结构的文字,也就是“动词+名词”这样的方式,这个圈圈+圈圈里面的文字,就是用例,这些用例表明了系统能做什么事情。

以考勤系统为例:有两个用例叫“打卡”、“查看自己的考勤情况”,这个两个圈圈分别用一条线连到了“一般员工”这个角色,我们可以按这样的顺序来读这个图:先读出角色的名字,然后读出用例中的文字。

按着这样的读法,我们可以得到两句完整的句子:“一般员工打卡”“一般员工查看自己的考勤情况”大家可以用这样的方式来检查自己用例图是否画得合适。

某用例不一定是只属于某个角色的,有不少用例是多个角色“共享”的。

大框框:在所有用例的外面,有一个方框,这个方框只框住了用例,没有框住角色,这个东西就叫做系统边界,框框的上部会注明本系统的名字。

我们所做的系统,是不可能包括角色的,系统要发挥各种作用,要靠各角色“穿越”系统边界来使用本系统的用例。

第8讲 时序图

第8讲 时序图


守卫条件(guard-condition)
语法:
[ 条件短语 ] 条件短语通常用伪代码或真正的程序语言来表示, UML并不规定其语法 例如,[x<0] 4: invert(x, color)

序列表达式 (sequence-expression)
语法
[integer | name] [recurrence] : integer为指定消息顺序的序列号,消息1是消息序列的 开始消息消息,1.1是消息1的处理过程中的第一条嵌套 的消息,消息1.2是消息1的处理过程中的第二条嵌套的 消息,一个消息序列的例子如1, 1.1, 1.2, 1.2.1, 1.2.2, 1.3, 等。这样的序列号不仅能够表示消息的顺序而且还 能表示消息的嵌套关系(当消息是异步消息时消息为嵌套 的操作调用及返回) name表示并发控制线程,例如1.2a和1.2b为同时发送 的并发消息

7.2.5 消息

在任何一个软件系统中,对象都不是孤立存在的 ,它们之间通过消息进行通信。 消息是用来说明时序图中不同活动对象之间的通 信。因此,消息可以激发某个操作、创建或撤销 某个对象。 在时序图中,消息是由从一个对象的生命线指向 另一个对象的生命线的直线箭头来表示的,箭头 上面还可以表明要发送的消息名及序号。 在个对象之间,消息的次序由它们在垂直轴上的 相对位置决定。

7.2.2 活动者或对象
活动者和对象按照从左到右的顺序排列 一般最多两个活动者,他们分列两端。启动 这个用例的活动者往往排在最左边;接收消 息的活动者则排在最右端; 对象从左到右按照重要性排列或按照消息先 后顺序排列。

Object1 : ClassA
7.2.2 活动者或对象

用例图含义及画法

用例图含义及画法

用例图的含义及画法用例图(Use Case Diagram)是由软件需求分析到最终实现的第一步,它描述人们如何使用一个系统。

用例视图显示谁是相关的用户、用户希望系统提供什么样的服务,以及用户需要为系统提供的服务,以便使系统的用户更容易理解这些元素的用途,也便于软件开发人员最终实现这些元素。

用例图在各种开发活动中被广泛的应用,但是它最常用来描述系统及子系统。

当用例视图在外部用户出现以前出现时,它捕获到系统、子系统或类的行为。

它将系统功能划分成对参与者(即系统的理想用户)有用的需求。

而交互部分被称作用例。

用例使用系统与一个或者多个参与者之间的一系列消息来描述系统中的交互。

用例图包含六个元素,分别是:参与者(Actor)、用例(Use Case)、关联关系(Association)、包含关系(Include)、扩展关系(Extend)以及泛化关系(Generalization)。

用例图可一个包含注释和约束,还可一个包含包,用于将模型中的元素组合成更大的模块。

有时,可以将用例的实例引入到图中。

用例图模型如下所示,参与者用人形图标来标识,用例用椭圆来表示,连线表示它们之间的关系。

一.参与者(Actor)1.参与者的概念参与者是系统外部的一个实体,它以某种方式参与用例的执行过程。

参与者通过向系统输入或请求系统输入某些事件来触发系统的执行。

参与着由参与用例时所担当的角色来表示。

在UML中,参与者用名字写在下面的人形图标表示。

每个参与者可以参与一个或多个用例。

它通过交换信息与用例发生交互(因此也与用例所在的系统或类发生了交互),而参与者的部实现与用例是不相关的,可以用一组定义其状态的属性充分的描述参与者。

参与者有三大类:系统用户、与所建造的系统交互的其它系统和一些可以运行的进程。

第一类参与者是真实的人,即用户,是最常见的参与者,几乎存在于每个系统中。

命名这类参与者时,应当按照业务而不是位置命名,因为一个人可能有很多业务。

用例和用例图

用例和用例图

访客用例图
会员用例图
书店管理员用例图
3、用例描述 (1)细化用例描述----搭框架

用例名称:搜索图书 概述:用户根据关键字搜索图书 前置条件:无 事件流: 基本事件流 扩展事件流 后置条件: 无
3、用例描述 (2)细化用例描述----填"血肉"

事件流: •基本事件流 1 用户点击“搜索图书”,用例开始。 2 系统显示搜索图书商品界面,提示用户输入商品关键字。 3 用户输入图书关键字,选择提交。 4 系统访问数据库,根据关键字查询相关的图书商品信息, 并把查询出的图书信息显示搜索图书页面。 5 用例结束。 •扩展事件流 4a) 系统未查出所要商品相关信息,显示提示信息,用例 结束。 4b) 系统查出用户输入的关键字为空,显示提示信息并返 回基本事件流2。

编写用例描述应遵循以下几点:



使用简单的语法,主语明确,语义易于理解;在事件流描 述中让读者直观地了解是参与者在控制还是系统在控制; 从第三者观察的角度指出参与者的动作,以及系统的响应; 显示参与者的意图而非动作 显示过程向前推移,每一步都有前进感;

构建结构良好的用例
为系统和部分系统中单个的、可标识的、合理的原子行为 命名。 将多个用例的公共的行为抽取出来放到一个被包含用例中。 对于变化部分,将其抽取出来,放到扩展用例中。 清晰的描述事件流。


扩展关系(Extend)
扩展关系表示基本用例在由扩展用例间接说明的一个位置 上隐式的合并了另一个用例(扩展用例)的行为。 基本用例不知道扩展用例的任何细节,没有扩展用例,基 本用例是完整的。只有在特定条件下,它的行为可以被扩 展用例的行为扩展,因此扩展关系处理事件流的异常或者 可选事件。

用例和用例图

用例和用例图

例监视周边。由于安全主管与经理,安全
主管与保安之间泛化关系的存在,意味着
安全主管可以担任经理和保安的角色,就
能够参与经理和保安参与的用例。这样,
安全主管就可以参与全部4个用例。但经理
或者保安却不能担任安全主管的角色,也
就不能参与用例批准安全证书。
实例2 用例之间扩展和包含关系
• 用例的上下文是:短途旅行但汽车的油不足以应付全部路 程。那么为汽车加油的动作在旅行的每个场景(事件流)中 都会出现,不加油就不会完成旅行。吃饭则可以由司机决 定是否进行,不吃饭不会影响旅行的完成。
– 被包含用例也可以单独执行;
4.2.2 包含关系
• 包含关系示例
图书管理员
删除图书 修改图书信息
<<include>> <<include>>
查询图书
4.2.2 包含关系
• 包含(include)
– 一个用例功能过多,可分解成小用例,构成包含依赖
– 本例中,被包含用例不能单独执行,没有Actor直接指向 它们
4.1.1 用例
• 怎样识别用例 – 参与者需要从系统中获得什么功能?参与者需要做什 么? – 参与者读取、产生、删除、修改或存储系统的哪些信 息? – 需要将系统的哪个事件告诉参与者? – 需要将外界的哪些信息提供给系统?(输入、输出信 息) – 采用什么实现方法满足特殊要求?
图书管理系统的用例图
在图书管理系统中,“图书管理员”和“读者”为 系统的执行者。“图书管理员”负责使用系统的主 要功能,“读者”从系统中获取所需的信息。
4.1.2 参与者
• 理解
– Actor不是指人,而是指代表某一种特定功能 的角色,因此同一个人可能对应很多个Actor。 Actor也可以指外部系统和设备。

第3章用例和用例图

第3章用例和用例图
第3章 用例和用例图
3.1 用例
用例(use case)是Ivar Jacobson发明的. 其它的中文译 名有: 用况、用案等. 它是站在用户的角度看待系统、 定义系统 ;使用用户能够看懂的语言来表述
定义1: 用例是对一个活动者(actor,角色,参与者)使用 系统的一项功能时所进行的交互过程的一个文字描述序 列. 定义2: 用例是系统、子系统或类和外部参与者交互的动 作序列的说明, 包括可选的动作序列和会出现异常的动 作序列. 用例是代表系统中各个项目相关人员之间就系统的行为 所达成的契约, 软件开发过程是用例驱动的.
18
面向对象分析与设计 & UML
3.4.1 泛化关系
泛化关系代表一般与特殊的关系, 与继承类似. 在泛化关系中, 子用例继承了父用例的行为和含义, 子 用例也可以增加新的行为和含义或覆盖父用例中的行 为和含义.
右图的例子演示了 泛化关系
19
面向对象分析与设计 & UML
3.4.1 泛化关系

可以用来表示参与者与参与者之间,用例与用例之间的 特殊/一般化关系
33
面向对象分析与设计 & UML
3.6 用例的描述
用例描述一般包括的内容:
用例的目标 用例是怎么启动的 参与者与用例之间的消息如何传送 用例中除了主路径外, 其它路径是什么 用例结束后系统的状态 其它需要描述的内容
描述用例时的原则是尽可能写得“充分”, 而不是形式 化、完整或漂亮.
柜员机系统中,银行后台系统就是一个参与者; 2)硬件设备:如果系统需要与硬件设备交互时,如在 开发IC卡门禁系统时,IC卡读写器就是一个参与者; 3)时钟:当系统需要定时触发时,时钟就是参与者

用例图

用例图

.1 用例图由前几章可知,用例图用来捕获用户要求,需要首先构建。

为什么?因为用例图在较高级别(即非技术细节)描述用户要求。

概念设计对项目的成败至关重要。

由第2章可知,在决定使用哪种技术前,一定要切实了解影响选择的要求。

用例图的高级特性有利于了解项目范围。

这些图成为项目演化过程中构建明细模型的基础。

用例图的另一个强大之处在于,它使用普通文本和简单绘图技术,不使用任何技术术语,使广大受众都可以理解用例图。

用例图由以下一些基本元素构成:●行动者(Actor)●关系(Relationship)●过程(Process)●包(Package)●系统边界(System boundary)下面几节描述这些元素。

4.1.1 行动者“行动者”是与系统交互的某人或某事。

“交互”指行动者从系统接收收息,或向系统传送信息。

要注意,行动者可以是人,也可以是物(如另一个应用程序),例如从解决方案接收信息的会计系统。

UML行动者的符号是一个人形,如图4-1所示。

图4-1 行动者的符号是一个人形注意:行动者使用的人形符号是最常用也是最正式的符号。

不过,按UML规范,行动者也可以是一个包含Actor定型的矩形。

该符号与类符号类似,在第5章讨论类图时,将看到这个符号。

图4-1的行动者是一个普通行动者,即一个直接与解决方案交互的真正行动者。

还有其他类型的行动者,即业务行动者。

业务行动者是当前分析业务的行动者,换言之,从业务观点看,参与业务日常过程的所有人或事物都是行动者。

业务行动者不一定是您解决方案的行动者,而是相关业务的行动者。

会记助手便是其中一例。

会计助手可能不是当前开发的解决方案的行动者,而是一个业务行动者。

为什么要注意会计助手呢?虽然这个角色不是解决方案的行动者,但他们可能是采访主体,可提供有价值的信息。

在优化一些过程时,会计助手的知识及他们的日常工作也能提供宝贵信息。

在设计解决方案前,必须了解整个业务,即需要进行业务分析。

“业务分析”是记录业务的过程。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

属性的数据类型: 字符串:String 日期:Date 布尔:Boolean 整型:int
类的属性
1. 属性的含义
属性(attribute): 描述类所表示事物的静态性质。
2.属性的格式
[可见性]属性名[:类型][„[ ‟多重性[次序]„]‟][=初始值][{特性}]
表示属性值的取值的多寡,以及有序性: 例如: name:String[0..1] 表示属性”name”可能无值,也可能 仅有一个值. points:Point[2..* ordered] 表示有两个或多个值,有序
① 找出系统外部参与者,确定系统边界和范围。 ② 确定各参与者所期望的系统行为。

③ 把这些系统行为命名为用例。

④ 确定各用例之间的关系(泛化,包含,扩展)。

⑤ 绘制用例图。

⑥ 编制用例说明。
● 用例:增加课程
●参与者:管理员 ●操作流:
① 管理员选择进入管理界面,用例开始。 ② 系统提示输入管理员密码。 ③ 管理员输入密码。 ④ 系统检验密码。 A1:密码出错。 ⑤ 进入管理界面,系统显示当前所建立的全部课程信息。 ⑥ 管理员选择增加课程,管理员输入新课程信息。 ⑦系统验证是否与已有课程冲突。 A2:有冲突。 ⑧系统添加新课程,并提示添加成功。
3. 用例的特点 ① 用例用于描述系统的功能,这个功能是外 部使用者看到的系统功能,不反映功能的实现 方式。 储蓄系统
√ √ √ √ 开户
存款
取款 转帐
3. 用例的特点 ② 用例描述用户提出的一些可见需求,对应 一个具体的用户目标。
储蓄系统

√ √ √
开户 存款
取款
转帐
×
数据上传
3. 用例的特点 ③ 用例反映系统与用户的一次交互过程,应 该具有交互的信息的传递。
[可见性]属性名[:类型][„[ ‟多重性[次序]„]‟][=初始值][{特性}]
该属性对外部实体的显现程度. 可见public : + 受限protected: # 私有private : -
类的属性
1. 属性的含义
属性(attribute): 描述类所表示事物的静态性质。
2.属性的格式
[可见性]属性名[:类型][„[ ‟多重性[次序]„]‟][=初始值][{特性}]
●说明:
① 工作人员启动退房结帐功能。 ② 输入旅客标志信息。
③ 系统显示旅客入住信息。
④ 显示入住天数,费用。 ⑤ 接收费用。
⑥ 打印发票。
⑦ 入住登记结束。
练习1:
1、对图书馆的图书借阅进行用例分析。
① 确定图书管理的参与者;
② 参与者所看到的图书管理功能;
③ 把这些功能分解为用例; ④ 确定用例之间的关系; ⑤ 画用例图; ⑥ 优化用例图; ⑦ 描述事件流。

② 确定各参与者所期望的系统行为。
管理员: 增加课程 修改课程
删除课程
学生: 查询课程 选择课程 网上付费
识别用例的方法
• 每个参与者的任务是什么 • 由参与者将要创建、存储、改变、删除或读取系统中的 信息吗 • 什么用例会创建、存储、改变、删除、或读取这个信息 • 参与者需要通知系统外部的变化吗 • 需要通知参与者系统中正在发生的事情吗 • 什么用例将支持和维护系统 • 所有的功能需求都能被用例执行吗

⑥ 编制用例说明。
● 用例:入住登记 ●参与者:柜台工作人员
●说明:
① 工作人员启动入住登记功能。 ② 根据旅客要求查询客房空闲信息。
③ 如果不满足旅客入住要求,则退出。
④ 接收旅客信息。 ⑤ 给旅客分配房间床位。
⑥ 接收押金。
⑦ 打印入住单 ⑧ 入住登记结束。

⑥ 编制用例说明。
● 用例:退房结帐 ●参与者:柜台工作人员
3. 包含关系
两个用例之间,一个用例(基本用例)的行为 包含了另外一个用例(包含用例)的行为。 包含关系用依赖关系的<<include>>构造型来 表示。
4. 扩展关系
扩展关系表示基本用例在扩展点要增加新的 行为或功能,以扩展到新用例。
扩展关系用依赖关系的<<extend>>构造型来 表示。
8.1.4 发现用例
本讲教学
•教学目标:
(1)用例图; (2)类图; (3)对象图; (4)包图
•教学重点:
用例图;
教学难点:
用例图的构成
第 讲 用例图
8.1.1 用例图 8.1.2 用例图的应用 8.1.3 用例图的组成 8.1.4 发现用例
8
8.1.1 用例图(use case diagram)
在UML中,一个用例模型由若干个用例 图描述。 用例图是显示一组用例、参与者以及它 们之间关系的图。
2.属性的格式
[可见性]属性名[:类型][„[ ‟多重性[次序]„]‟][=初始值][{特性}]
第1个英文单词首字母小写,其它单 词首字母大写 contactName credintLimit isPrepaid
类的属性
1. 属性的含义
属性(attribute): 描述类所表示事物的静态性质。
2.属性的格式
4. 参与者之间的关系
参与者之间可以有泛化关系。
用例之间的关系
用例之间可以具有以下几种关系:
①. 关联关系
②. 泛化关系
③. 包含关系
④. 扩展关系
1. 关联关系
参与者与用例之间是关联关系,表示参与者与 用例之间具有使用,交互信息的关联。
2. 泛化关系
参与者与参与者之间,用例与用例之间存在 一般与特殊的关系。
教学进程

① 找出系统外部参与者,确定系统边界和范围。
② 确定各参与者所期望的系统行为。

管理员: 借书证管理: 办证,补证,注销,证件查询 图书管理:
查询,添加,修改,删除
借阅管理: 书目查询,借书,还书,过期催还,丢失处理 学生: 借书证管理: 办证,补证,注销 借阅管理:
书目查询,借书,还书,丢失处理
d ATM记录事务到日志文件。
总结
用例的特点
① 用例用于描述系统的功能,这个功能是外 部使用者看到的系统功能,不反映功能的实现 方式。 ② 用例描述用户提出的一些可见需求,对应 一个具体的用户目标。 ③ 用例反映系统与用户的一次交互过程,应 该具有交互的信息的传递。 ④ 用例是对系统功能的描述,属于需求建模。
某学校网上选课系统的用例分析
管理员通过系统管理界面进入系统,建立本学 期要开设的各种课程,将课程信息保存到系统中,
并可以对课程进行改动和删除。
学生通过客户机浏览器进入系统,选择课程:
可以查询课程,选择课程,支付,确定系统边界和范围。
识别参与者的方法
• • • • • • • • • 谁使用系统的主要功能 谁改变系统的数据 谁从系统获取信息 谁需要系统的支持以完成日常工作任务 谁负责日常维护、管理并保证系统正常运行 系统需要应付(处理)那些硬设备 系统需要和那些外部系统交互 谁(或什么)对系统运行产生的结果(值)感兴趣 时间、气温等内部外部条件
③ 把这些功能分解为用例; ④ 确定用例之间的关系; ⑤ 画用例图; ⑥ 描述事件流。
教学进程
第 讲 8.2 类图
8.2.1 类的定义
8
8.2.2 类的关系
8.2.3 类图
类的概念
1. 类的定义 类(class): 具有相似结构、行为和关系的一组对象。 2.类的表示
类名
属性
操作
3.类的其他几种表示形式

③ 把这些系统行为命名为用例。

④ 确定各用例之间的关系(泛化,包含,扩展)。

⑤ 绘制用例图。

⑤ 绘制用例图。

⑤ 绘制用例图。

⑤ 绘制用例图。

⑥ 编制用例说明。
● 用例:借书
●参与者:管理员,借阅者 ●操作流:
① 管理员进入图书借阅界面,用例开始。 ② 系统要求输入借阅者的借书证编码。 ③系统检验借书证编码,如果正确,则显示借阅者的信息。 A1:借书证编码有错。 A2: 如果该借阅者所借图书已经超期,则提示,本次拒借. ④ 系统要求输入所借图书的条码。 ⑤ 系统显示所借图书的信息。 ⑥ 确认借书。 ⑦系统回到上一界面,等待处理下一借书。
① 工作人员启动预订功能。 ② 根据预订需求查看客房空闲信息。 ③ 输入预订人信息。 ④ 安排客房。 ⑤ 预订成功。

⑥ 编制用例说明。
● 用例:预订变更 ●参与者:柜台工作人员 ●说明:
① 工作人员启动预订功能。 ② 输入预订人标志信息。 ③ 系统显示该预订人的客房预订信息。 ④ 预订变更。 ⑤ 预订变更成功。
帐户,密码,金额数 确认信息,帐户余额
取款
3. 用例的特点
④ 用例是对系统功能的描述,属于需求建模。
取款
用例的动态事件流
a 通过读卡机,储户插入ATM卡
b ATM系统从卡上读取银行ID、帐号、并验证帐号。 c 储户键入密码,系统检验密码。
d 储户按确认键,输入取款金额。
e ATM把帐号和取款金额传递给银行系统,取回帐户余额。 f ATM输出现金,并显示帐户余额。
参与者
1. 参与者的概念
参与者(actor)是外部需要与系统交互的事 物。也被称为活动者。 2.参与者的三种类型 ①. 人:客户,读者,库管员 ②. 设备:计算机,磁盘,读卡机等 ③. 外部系统:上层系统等
3. 参与者的表示
参与者可以表示为下面三种形式。
• 注意:参与者在用例图中用类似人的图形来表示,但参与 者未必是人,可以是一个外部系统。该外部系统可能需 要从当前系统中获取信息,与当前系统进行交互。
相关文档
最新文档