3 用例建模

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

用例建模

1

主要内容

●用例

●用例图

●用例建模过程

●实例讨论

●用例建模风格

主要知识点

●需求技术

●用例

●用例图

●参与者

●脚本(场景)

●用例之间的关系

●用例的描述

银行业务示例

需求技术

●大约有25%项目的失败归因于需求方面的问题

●两种类型的需求

功能性需求:系统应该提供什么行为

非功能性需求:系统上的特定属性或约束

●三种需求技术

XP中的用户故事

FDD中的特性描述

RUP中的用例

XP中的用户故事

●用户故事(user story)

由用户参与编写,说明需要系统为他们做什么 简短的文字描述

●例子

FDD中的特性描述

●FDD:Feature Driven Development

特性驱动的软件开发方法

●特性(feature)描述

the a(n)

RUP中的用例

●RUP的基本特征

用例驱动,以软件体系结构为中心,受控的迭代式增量开发

●用例(use case)

描绘一个系统外在可见的需求情况,是代表系统中各个项目相关人员之间就系统的行为所达成的契约 在UML中,用椭圆表示,用例名用动宾结构或者主谓结构命名

用例驱动的软件开发过程●用例模型

发现功能需求,结果表现为用例图

●分析模型

通过协作图描述用例,分析结果表示为类图、包图●设计模型

这一阶段的结果有类图、对象图、包图和构件图●部署模型

结果有构件图、部署图

●测试模型

根据用例中所描述的功能构建测试模型

用例(use case)

●用例(用况,用案)

●定义

1.用例是对一个活动者(actor)使用系统的一项功能

时所进行的交互过程的一个文字描述序列

2.用例是系统、子系统或类和外部参与者交互的动

作序列的说明, 包括可选的动作序列和会出现异常的动作序列

字处理程序●用例举例

“置正文为黑体”

“创建索引”

银行业务系统

●银行业务系统

查看帐户余额

列出交易内容

划拨资金

支付帐款

买进证券

卖出证券

基于用例进行需求分析的特点

●用例从使用系统的角度描述系统中的信息●用例描述用户提出的一些可见需求, 对应一个具体的用户目标

●用例是对系统行为的描述, 属于UML的动态建模部分

UML2.2中的图

使用用例的注意点

●用例描述用户提出的一些可见的需求,用例可大可小,用例对应一个具体的用户目标

●理论上可将系统的所有用例画出来,但实际运用时,只需画出重要的、交互过程复杂的用例

●不要试图将所有的需求都以用例的形式表达

Alistair Cockburn给出的需求大纲

●系统的目的和范围

●系统中的术语表

●用例

●系统采用的技术

●开发过程中的参加人员、业务规则、系统运行所依赖的条件、安全要求、文档要求等

●法律、政治、组织机构等方面的问题

关于用例的争论

●用例分析是面向对象分析与设计的一部分?

●不管怎么样,用例是UML的一部分,确定系统的用例是面向对象开发过程的第一步

用例的实现

●用例是与实现无关(implementation-independent)的关于系统功能的描述

●在UML中,可以用协作(collaboration)来说明对用例的实现

协作的表示

在UML中,协作用虚线椭圆表示

参与者(actor)

●参与者(actor)

是指系统以外的、需要使用系统或与系统交互的事物, 包括: 人、设备、外部系统等

●其它译名有

活动者、角色、执行者、行动者等

银行业务系统中的可能参与者●客户

从系统获取信息并执行金融交易

●管理人员

开办系统的用户。获取并更新信息

●厂商

接受作为转帐支付结果的资金

●mail系统

参与者的相关说明

●参与者是虚拟的概念,可以指人,也可以指外部系统、设备等

●一个参与者可以执行多个用例

●一个用例也可以由多个参与者所使用

●尽管在用例建模时使用参与者,但参与者实际上并不是系统的一部分

参与者的表示

UML中的参与者实际上是一个版型化的类, 可以有三种表示形式

Icon形式Label形式Decoration形式

参与者的泛化关系

参与者之间可以存在泛化(generalization)关系,表示一个一般性的参与者与另一个

更为特殊的参与者之间的联系

actor

actor

generalization

参与者的获取

●可以从以下几点考虑寻找系统的参与者:

谁使用系统的主要功能

谁需要系统支持完成日常工作

谁来维护、管理系统正常工作

对系统产生的结果感兴趣的人或事务

系统需要操纵哪些硬件

需要与系统交互的其他系统有哪些