软件工程5 用例建模

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

8
参与者的定义:关注角色
• 与系统交互的人 • 与系统交互的硬件组件
• 或者其他的外部系统
关注的重点是所承担的“角色” 参与者的名字要明确定义其角色
9
参与者定义与角色划分
韩蕾: 数学系的教师 软件学院的博士生
张跃和李玫都
具有学生角色
李明: 软件学院本科生
注册课程
学生
张跃同时也具
有教授的角色
13
寻找参与者
• • • • 谁使用系统的功能? 谁需要系统支持他们的日常工作? 谁来维护、管理系统使其正常工作? 哪些其他系统使用该系统?

• • •
系统需要与其他哪些系统交互?
系统需要控制哪些硬件? 对系统产生结果感兴趣的是哪些人或物? 是否有事情在预计的时间自动发生?
14
参与者的描述
参与者规格说明 参与者名称:顾客 是否抽象参与者:否
23
走出功能分解:正确的用例建模
转账 (Transfer Funds)
24
如何避免功能性分解
问题现象 • 非常细小的用例 修改思路 : • 寻找更大的应用场景
“为什么要构建这个系统? ”
• “用户希望达到什么目的?” • “这个用例可以满足谁的目标?” • “这个用例的意义是什么?有什么价值?
• 用例过多
线性代数 A段
3: 将马小跳加入线代选课名单 4: 添加马小跳 5: 还有位置吗? 6: 如果有,添加马小跳
• 没有实际价值的用例 • 通过底层操作进行命名
• “操作”+“对象” • “功能” + “数据”
• 从一个用户的角度出发
• 例如:“插入卡片”
” ”
• “这个用例背后的用户故事是什么?
25
何时使用包含关系
• 当多个用例有共享行为时,使用包含关系 • 为共享行为单独创建用例,被相关用例“包含”
26
• 系统的任何一个特性都可以找到对应的用例
• 用例模型并不包含多余的行为;所有的用例可以追溯 到系统的功能性需求作为验证。 • 去掉所有的CRUD 类的用例
创建(Create),查找(Retrieve),更新(Update),删除(Delete)
22
功能分解
选择转入账号 选择“取款” 选择“查询余额”
存,客户得到收条并带着货物离开。
19
用例的描述
20
用例的描述
客户代表
1. 收到一个取消订单的请求 2. 输入订单的标识号
系统
记帐系统
3. 显示订单内容 4. 选择取消
5. 给该订单打上取消标记
6. 向客户账号增加订单 支付的资金
21
用例建模过程中的检查项
• 用例建模是为了表示系统的行为。通过模型可以很容 易理解系统进行的操作 • 应该识别出所有的用例,用来表达所有的需求。
用例建模
1
用例建模 用例建模概念 用例建模过程 用例建模精讲
建模工具介绍
2
用例模型的表示--用例图
自动提款机(ATM)
取款
转账
银行客户
银联
存款
收取存款
柜员
日常维护
系统维护人员
3
系统
系统是指待开发的任何事物,包括软件、硬件或者过程。 系统边界:
一个系统所包含的所有系统成分与系统以外各种事物的分界线 • 系统边界会对用例以及Actor的定义有所影响 考虑用于零售店销售管理的系统的用例图 :
16
寻找用例
基本策略:把自己当作参与者,与设想中的系统进行交互。
我想通过这个系统达到什么目的?
目标 1
参与者
目标 2
注意:寻找用例和寻找参与者的过程是不能截然分开的
17
识别用例
参与者希望系统提供哪些功能? 系统存储信息吗?参与者将要创建、读取、更新或删 除什么信息? 系统是否需要把自身内部状态的变化通知给参与者?
提交成绩 教师
10
什么是用例
Use Case Name
一个用例
定义系统的一系列行为,通过此可为参与者提
供有价值且可观测的结果。
• 定义一个参与者要用到的系统功能 • 描述系统为实现参与者价值所开展的行为序列
• 对参与者与系统之间的交互活动进行建模
• 从特定的用户角度出发是完整的,实现特定用户价值的事件 流
零售店销售管理系统
4
系统边界定义之一
5
系统边界定义之二
6
系统边界定义之三
7
用例图的主要元素
参与者(Actor) 与系统交互的人或外部系统 用例(Use case) 系统为参与者提供的有价值的服务功能 关联(Association) 用例图中用例与参与者之间的交互关系
Actor
Actor
Use Case
何时使用扩展关系
• 一个用例与另外一个用例近似,只有少许额外的活动 • 将代表普遍或基本行为的情况定义为一个用例 • 将特殊的、例外的部分定义为扩展用例
27
详细的用例规约
28பைடு நூலகம்
顺序图举例
• 顺序图用来刻画系统实现某个功能的必要步骤
小明: 学生
选课登记表
1: 填写个人信息 2: 提交
选课管理员
线性代数
11
交互--关联(Association)
Actor 1
• 参与者与用例之间的交互通道 • 用一条直线表示交互——关联
Use Case
• 有箭头的关联指出是谁发起的交互 • 没有箭头则表明双方都可以发起交互
Actor 2
Actor 3
12
用例建型的步骤
(1) 找出系统外部的参与者和外部系统,确定系统的边
界和范围; (2) 确定每一个参与者所期望的系统行为; (3) 把这些系统行为命名为Use Case; (4) 使用泛化、包含、扩展等关系处理系统行为的公共或
变更部分;
(5) 编制每一个Use Case的脚本; (6) 绘制Use Case图; (7) 区分主事件流和异常情况的事件流,可以把表示异常情况的事 件流作为单独的Use Case处理;
系统必须知道哪些外部事件?参与者如何通知系统这 些事件?
系统需要进行哪些维护工作?
18
用例的描述
• 用例简述: 一段简洁的摘要,主要 描述用例的成功场景
• 下订单:
客户带着要购买的货物到收款处,收银员使用POS机
扫描记录每一种预购买的货物。系统计算总价并打印清
单。客户付款,系统验证并保存销售记录。系统更新库
简要描述:使用ATM系统提取现金、转移资金和存款的所有 用户,这些用户持有相应的银行卡且知道银行卡对应账号的密 码。
15
参与者建模的检查项
• 是否找全所有的参与者?是否对系统环境中所有的角
色进行了描述和建模?
• 每个参与者是否至少与一个用例发生了交互? • 是否可以为每一个角色找到至少两个实例? • 不同参与者与系统的交互是否一致,扮演的角色是否 相似?如果有,则应该要合并这些参与者作为同一种 角色
相关文档
最新文档