用例与用例规范
用例描述了由参与者执行的任务,该任务为企业产生了商业价值的结果。用例可以可视化为用例图或/和结构化文本规范格式:
用例(任务——客户想要执行)可能是:
- 交互式 ——系统用例描述了参与者与系统的交互,以实现已定义的业务目标
- 手动 - 演员执行的一系列动作
- 自动化 — 由程序或脚本执行的一系列步骤
用例的特征
一个用例有:
- 只有一个目标
- 单一起点
- 单一的终点
- 从头到尾的多种路径
- 即为各种可能的条件指定行为
- 每个条件可能需要特定的操作
例如——客户支付账单:
实现目标有多种途径 :
- 电话支付
- 通过邮寄
- 亲自
- 通过支票
- 用现金等
不通向目标的路径 :
- 信用卡被拒绝
敏捷用例方法
用例模型及其各个用例会随着时间的推移逐级演进。并非模型的所有用例都必须指定为相同的详细程度。
适时且恰到好处
用例可以在不同级别的数据和范围内编写,每个都有一个目的:
- 摘要:系统功能或业务流程的一般描述和全面概述。
- 用户级别 :与任务相关的用户描述以及他们如何与系统交互;特定业务流程的描述。用户级用例通常被认为是用户主要工作的任务级别。
- 子功能:用于完成核心用例的子部分的较低级别活动的描述。
注意:某些用例可能被充分指定到 II 级。当使用及时和恰到好处的方式获得足够的细节时,您就会停下来。
详细的用例规范
详细用例是一种文本表示,它以某种格式说明一系列事件以及其他相关用例信息。人们通常采用标准用例模板来记录用例的详细信息
用例模板——ATM取款案例示例
如前所述,用例有几种符号样式(例如图表样式、统一建模语言、文本格式)。无论使用什么符号都应该易于理解。您可以使用模板,例如 Alistair Cockburn中的模板,但也可以选择最适合您团队的模板。
用例规范
用例名称: 提取现金
参与者:客户(主要)、银行系统(次要)
摘要描述: 允许任何银行客户从他们的银行账户中提取现金。
优先级: 必须有
状态: 中等详细程度
前置条件: 银行客户有卡可插入ATM
ATM正常在线
后置条件:
- 银行客户已收到他们的现金(以及可选的收据)
- 银行已从客户的银行账户中扣款并记录交易详情
基本路径:
- 客户将他们的卡输入 ATM
- ATM 验证该卡是有效的银行卡
- ATM 要求输入 PIN 码
- 客户输入他们的 PIN 码
- ATM 根据 PIN 码验证银行卡
- ATM提供包括“取款”在内的服务选项
- 客户选择“提款”
- ATM 提供金额选项
- 客户选择金额或输入金额
- 自动柜员机验证其储罐中是否有足够的现金
- ATM 验证客户是否低于取款限额
- ATM 验证客户银行账户中有足够的资金
- 自动柜员机从客户的银行账户中扣除
- ATM退回客户的银行卡
- 客户拿走他们的银行卡
- ATM 发放客户的现金
- 客户拿走他们的现金
替代路径:
2a。无效卡
2b。卡倒置
5a。被盗卡
5b。PIN 无效
10a。料斗中现金不足
10b。料斗中的现金面额错误
11a。提款超过提款限额
12a。客户银行账户资金不足
14a。银行卡卡在机器里
15a。客户未能取走他们的银行卡
16a。现金卡在机器里
17a。客户未能拿走他们的现金
- ATM 无法与银行系统通信
- b 客户不响应 ATM 提示
商业规则:
B1:密码格式
B2:PIN 重试次数
B3:服务选项
B4:金额选项
B5:提款限额
B6:取款前必须取走卡
非功能性要求:
NF1:完成交易的时间
NF2:PIN 输入的安全性
NF3:允许收卡和现金的时间
NF4:语言支持
NF5:盲和部分盲支持
I like forgathering useful information , this post has got me even more info! .
Hi, i think that i saw you visited my site so i came to “return the favor”.I am trying to find things to improve my site!I suppose its ok to use a few of your ideas!!