UML和模式应用4:初始阶段(4)--需求制品之用例模型模板示例
1. 前言
UP开发包括四个阶段:初始阶段、细化阶段、构建阶段、移交阶段;
UP每个阶段包括 业务建模、需求、设计等科目;
其中需求科目对应的需求制品包括:设想、业务规则、用例模型、补充性规格说明、词汇表。
上章主要讨论UP初始阶段需求科目对应的制品之一---用例模型,阐述了用例模型的基本概念,使用用例的好处,用例的常用形式。
本章将用一个具体的实例进行详细分析和说明用例模型,采用用例的三种常用形式之一---详述风格来说明 处理销售 这个用例的编写。
2. 详述风格的特点
详述风格详细编写所有步骤及各种变化,同时具有补充部分。
一般在需求科目进行时用摘要形式编写了大量用例后,第一次需求讨论会上,用详述风格将编写10%的关键用例,并对这10%具有架构意义的用例或场景进行设计和编程
3. 详述风格的模板
图 Alistair Cockburn创建的详述风格的用例模型模板
上图为初始阶段为需求科目产生的用例模型制品模板,它是详述风格的,下面对这个模板的不同部分进行说明:
- 用例名称
一般用动词开始
示例:对于NextGen pos系统,用例名称为 用例UC1 处理销售
- 范围
定义了所要设计的系统,包括系统用例和业务用例
系统用例描述的对系统的使用;业务用例描述顾客和有关人员如何使用业务
示例:对于NextGen pos系统,范围为 NextGen Pos应用
- 级别
分为用户目标级别和子系统级别。
用户目标级别:是通常的级别,描述了实现主要参与者目标的场景;
子系统级别:用例描述支持用户目标所需要的子步骤,若干常规用例共享重复的子步骤,则将其分离出来,创建为子系统功能级别用例
示例:对于NextGen pos系统,级别为 用户目标
- 主要参与者
调用系统服务来完成目标的主要参与者
示例:对于NextGen pos系统,主要参与者为 收银员
- 涉众及其关注点
建议并界定了系统要完成的工作,能够让我们更加清楚的详细了解系统职责,为发现并记录所有行为需求提供彻底、系统的过程。
示例:对于NextGen pos系统, 涉众为 收银员、 售货员、顾客、公司、经理、政府税收代理、支付授权服务,它们都有各自的关注点
- 前置条件
给出用例中场景开始之前必须永远为真的前提,前置条件传达的应该是能够引起读者警惕的那些值得注意的假设,而非那些不值得注意的假设
示例:对于NextGen pos系统,收银员必须经过确认和认证
- 成功保证(或后置条件)
给出用例成功结束后必须为真的事物,包括主成功场景和替代场景。该保证满足所有涉众的需求
示例:对于NextGen pos系统,成功保证为 存储销售信息,准确计算税金,更新账务和库存信息,记录提成,生成票据,记录支付授权的批准
- 主成功场景(或基本流程)
典型流程,描述了满足涉众关注点的典型成功路径,通常不包括任何条件分支。记录三种步骤:
(1)参与者之间的交互;(2)确认过程(通常由系统完成);(3)系统完成的状态变更(例如:记录或更改某事物)
示例:对于NextGen pos系统,主成功场景为 顾客购买的整个操作流程
- 扩展(或替代流程)
是主成功场景的分支,扩展描述了其它所有场景或分支,包括成功和失败路径。通常占据了文本的大部分篇幅。
(1)扩展有两部分组成:条件和处理,尽可能使用系统或参与者能够检测到的事物作为条件;
(2)扩展处理可以针对一个步骤也可以针对多个步骤;
示例:对于NextGen pos系统,扩展为对主成功场景的特殊情况及分支的说明
- 特殊需求
与用例相关的非功能性需求、质量属性(性能、可靠性和可行性)或约束(通常对于IO设备),也有建议写入补充性规格说明书中
示例:对于NextGen pos系统,特殊需求为 使用大屏UI,90%的信用卡授权时间少于30秒等
- 技术与数据变元表
技术变元是必须如何实现系统;
数据变元,如商品编码采用哪种编码方式等。
示例:对于NextGen pos系统,技术变元表为 信用卡账户可以用读卡器或键盘输入,数据变元为 商品编码采用何种编码方式
- 发生频率
示例:对于NextGen pos系统,发生频率为 可能会不断的发生
- 未决问题
示例:对于NextGen pos系统,未决问题为 税法如何变化等
UML和模式应用4:初始阶段(4)--需求制品之用例模型模板示例的更多相关文章
- UML和模式应用4:初始阶段(3)--需求制品之用例模型
1. 前言 UP开发包括四个阶段:初始阶段.细化阶段.构建阶段.移交阶段: UP每个阶段包括 业务建模.需求.设计等科目: 其中需求科目对应的需求制品包括:设想.业务规则.用例模型.补充性规格说明.词 ...
- UML和模式应用4:初始阶段(2)--需求科目之进化式需求
1. 前言 UP开发包括四个阶段:初始阶段.细化阶段.构建阶段.移交阶段: UP每个阶段包括 业务建模.需求.设计等科目: 需求是UP科目之一,在初始阶段需求科目的工作量占据较大的部分.但是初始阶段的 ...
- 《UML和模式应用》读书笔记(一)面向对象分析和设计简单示例
在开始进行对象分析和设计之前,先通过“扔骰子”这个软件(游戏者扔两个骰子,如果总是是7,则赢,否则输),来简单分析下这个过程. 1:用例 需求分析,可能包括人们如何应用的场景或情节,这些都可以被编写成 ...
- UML和模式应用
引言 Applying UML and Patterns,以一个商店POS系统NextGen和一个掷骰子游戏Monopoly为例,围绕OOA/D的基本原则GRASP,以迭代作为基本方法.以UML为表达 ...
- UML和模式应用4:初始阶段(6)--迭代方法中如何使用用例
1.前言 用例是UP和其他众多迭代方法的核心.UP提倡用例驱动开发. 2. 迭代方法中如何使用用例 功能需求首先定义在用例中 用例是迭代计划的重要部分,迭代是通过选择一些用例场景或整个用例来定义的 用 ...
- UML和模式应用4:初始阶段(1)--概述
1.前言 UP开发包括四个阶段:初始阶段.细化阶段.构建阶段.移交阶段: 初始阶段是项目比较简短的起始步骤,主要目的是收集足够的信息来建立共同设想,调查项目的总体目标和可行性,确定是否值得进一步深入. ...
- UML学习笔记—基本概念和初始阶段
chpater1 1.什么是分析和设计 分析:对问题和需求的调查研究 设计:满足需求的概念上的解决方案 做正确的事(分析)和正确地做事(设计) 2.什么是Object-Oriented-Analysi ...
- UML和模式应用5:细化阶段(4)--如何创建领域模型
1.前言 以当前迭代中所要设计的需求为界,创建领域模型的步骤: 1.寻找概念类 2.将其绘制为UML类图中的类 3.添加关联和属性 2.如何寻找概念类 寻找概念类有如下几种方法: 重用和修改现有的模型 ...
- UML和模式应用5:细化阶段(1)--第1次迭代
1.前言 从本文开始进入细化阶段,讨论迭代技术的基础,本次讨论将着重讨论第一次迭代,以POS机为例. 2. 第一次迭代处理的需求(以NextGen POS项目处理销售用例) 实现 处理销售 用例中基本 ...
随机推荐
- JS循环中使用bind函数的参数传递问题
JS循环中使用bind函数的参数传递问题,问题代码如下: for (var sc in result) { var tempp = '<div class="sidebar_todo_ ...
- 隐藏技能go:linkname
来源:https://blog.csdn.net/lastsweetop/article/details/78830772 什么是go:linkname 指令的格式如下: //go:linkname ...
- 洛谷P2446 大陆争霸
这是一道dijkstra拓展......不知道为什么被评成了紫题. 有一个很朴素的想法就是每次松弛的时候判断一下那个点是否被保护.如果被保护就不入队. 然后发现写起来要改的地方巨多无比...... 改 ...
- 洛谷P3953 逛公园
DP+图论大毒瘤. 推荐这个博客. 先跑两遍最短路,搞掉一些无用点. 然后选出最短路上的边,做拓扑排序. 然后每层DP. 具体看代码. 用到的数组较多,记得清空. #include <cstdi ...
- A1092. To Buy or Not to Buy
Eva would like to make a string of beads with her favorite colors so she went to a small shop to buy ...
- 结尾非零数的奇偶性(问题来源于PythonTip)
给你一个正整数列表 L, 判断列表内所有数字乘积的最后一个非零数字的奇偶性.如果为奇数输出1,偶数则输出0.. 例如:L=[2,8,3,50] 则输出:0 L = [2,8,3,50] c2 = 0 ...
- 增加/删除临时IP地址
启动一个down状态的网卡并设置临时IP: ifconfig eth3 172.168.1.100 netmask 255.255.255.0 up 删除网卡的临时IP地址: ip addr del ...
- 多目标遗传算法 ------ NSGA-II (部分源码解析)两个个体支配判断 dominance.c
/* Domination checking routines */ # include <stdio.h> # include <stdlib.h> # include &l ...
- python---wsgiref初探
wsgiref使用 from wsgiref.simple_server import make_server from urls import URLS def RunServer(environ, ...
- rabbitmq用户授权
创建用户 rabbitmqctl add_user kye01 123456 设置用户角色 rabbitmqctl set_user_tags kye01 monitoring 查看用户清单 rabb ...