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)--需求制品之用例模型模板示例的更多相关文章

  1. UML和模式应用4:初始阶段(3)--需求制品之用例模型

    1. 前言 UP开发包括四个阶段:初始阶段.细化阶段.构建阶段.移交阶段: UP每个阶段包括 业务建模.需求.设计等科目: 其中需求科目对应的需求制品包括:设想.业务规则.用例模型.补充性规格说明.词 ...

  2. UML和模式应用4:初始阶段(2)--需求科目之进化式需求

    1. 前言 UP开发包括四个阶段:初始阶段.细化阶段.构建阶段.移交阶段: UP每个阶段包括 业务建模.需求.设计等科目: 需求是UP科目之一,在初始阶段需求科目的工作量占据较大的部分.但是初始阶段的 ...

  3. 《UML和模式应用》读书笔记(一)面向对象分析和设计简单示例

    在开始进行对象分析和设计之前,先通过“扔骰子”这个软件(游戏者扔两个骰子,如果总是是7,则赢,否则输),来简单分析下这个过程. 1:用例 需求分析,可能包括人们如何应用的场景或情节,这些都可以被编写成 ...

  4. UML和模式应用

    引言 Applying UML and Patterns,以一个商店POS系统NextGen和一个掷骰子游戏Monopoly为例,围绕OOA/D的基本原则GRASP,以迭代作为基本方法.以UML为表达 ...

  5. UML和模式应用4:初始阶段(6)--迭代方法中如何使用用例

    1.前言 用例是UP和其他众多迭代方法的核心.UP提倡用例驱动开发. 2. 迭代方法中如何使用用例 功能需求首先定义在用例中 用例是迭代计划的重要部分,迭代是通过选择一些用例场景或整个用例来定义的 用 ...

  6. UML和模式应用4:初始阶段(1)--概述

    1.前言 UP开发包括四个阶段:初始阶段.细化阶段.构建阶段.移交阶段: 初始阶段是项目比较简短的起始步骤,主要目的是收集足够的信息来建立共同设想,调查项目的总体目标和可行性,确定是否值得进一步深入. ...

  7. UML学习笔记—基本概念和初始阶段

    chpater1 1.什么是分析和设计 分析:对问题和需求的调查研究 设计:满足需求的概念上的解决方案 做正确的事(分析)和正确地做事(设计) 2.什么是Object-Oriented-Analysi ...

  8. UML和模式应用5:细化阶段(4)--如何创建领域模型

    1.前言 以当前迭代中所要设计的需求为界,创建领域模型的步骤: 1.寻找概念类 2.将其绘制为UML类图中的类 3.添加关联和属性 2.如何寻找概念类 寻找概念类有如下几种方法: 重用和修改现有的模型 ...

  9. UML和模式应用5:细化阶段(1)--第1次迭代

    1.前言 从本文开始进入细化阶段,讨论迭代技术的基础,本次讨论将着重讨论第一次迭代,以POS机为例. 2. 第一次迭代处理的需求(以NextGen POS项目处理销售用例) 实现 处理销售 用例中基本 ...

随机推荐

  1. BloodHound官方使用指南

    0x00  概观 1.BloodHound介绍 BloodHound是一种单页的JavaScript的Web应用程序,构建在Linkurious上,用Electron编译,NEO4J数据库是Power ...

  2. Mysql的命令总结

    Mysql常用命令 启动 net start mysql 关闭 net stop mysql 连接mysql mysql -uroot -ppssword mysql -uroot -P3307 -p ...

  3. CF294C Shaass and Lights

    题目大意: 有n盏灯,(0<=n<=1000),有m盏已经点亮,每次只能点亮与已经点亮的灯相邻的灯,求总方案数,答案对1e9+7取模 第一行:两个整数n,m表示灯的总数和已点亮的灯的数目 ...

  4. 服务器内存占用不断的增加 & 任务管理器(PF使用率)不断的增加:关注句柄数

    最近一二个月以来,我发现服务器的内存占用正按着每天60M的速度增加. 一台windows 2003的服务器(2G内存),刚刚启起时占用内存:600M左右. 运行20天后,内存占用(PF使用):1.8G ...

  5. 解决invalid record found in VCF4 file (at least 8 tab-delimited fields expected)问题,批量修改空格改为制表格格式

    出现这种问题说明一般存在两个问题: 第一,vcf文件不足8个分割制表符,比如像如下文件: 为了解决这个问题,说明在做snp filter时候,需要提取至少8个制表符的字符串,比如,像如下文件所示: 第 ...

  6. hdu 2059龟兔赛跑("01"背包)

    传送门 https://www.cnblogs.com/violet-acmer/p/9852294.html 题解: 看到这个题,第一反应就是DP,因为对于每个充电站,都有两种选择,充电或不充电,和 ...

  7. 上传znbsite

    1.将本地文件打包为zip: 2.备份服务器上的classes文件夹下面的配置文件: 3.上传zip,释放到tomcat下: 4.覆盖classes文件夹中的配置文件,启动tomcat:

  8. Makefile ------ $@ $^ %< 使用

    一步一步理解 1.源程序的编译 在Linux下面,如果要编译一个C语言源程序,我们要使用GNU的gcc编译器. 下面我们以一个实例来说明如何使用gcc编译器. 假设我们有下面一个非常简单的源程序(he ...

  9. 让maven项目使用nexus作为远程仓库

    让maven项目使用nexus作为远程仓库有两种方式,第一种是在项目的pom.xml中进行更改,让单个项目使用nexus仓库:另一种是通过修改maven的配置文件settings.xml进行更改,让所 ...

  10. Oracle导出数据中的prompt,set feedback 等是什么意思

    prompt 显示后面的提示,相当于一般的操作系统命令echo,输出后面的信息Importing table t_testset feedback off 1.set feedback 有三种方式: ...