UML和模式应用5:细化阶段(1)--第1次迭代
1.前言
从本文开始进入细化阶段,讨论迭代技术的基础,本次讨论将着重讨论第一次迭代,以POS机为例。
2. 第一次迭代处理的需求(以NextGen POS项目处理销售用例)
- 实现 处理销售 用例中基本和关键的场景:输入商品项目并收取现金
- 实现用于支持迭代初始化需要的启动用例
- 不处理任何特殊和复杂的部分,仅仅针对场景的简单理想路径,并对此进行设计和实现
- 不与外部服务进行协作
- 不应用复杂的定价规则
- 不考虑UI支持、数据库内容的支持
3. 迭代过程,并非一次就实现所有需求
- 迭代生命周期方法的关键理解:对需求子集开始具有产品品质的编程和测试
4. 多个迭代里对同一用例进行增量式开发

图 用例的实现可能在多个迭代中展开
- 在多次迭代内对同一用例的各种场景进行开发,渐进的扩展系统直到最终完成此用例的所有功能。
5. 初始阶段和细化阶段的过程
5.1 初始阶段
初始阶段的特点再说明:
- 初始阶段持续较短时间,只经过轻量级的调查
- 所创建的制品是简明和不完整的
- 初始阶段是迈向细化阶段的一小步
- 初始阶段决定基本的可行性、风险和范围,是否值得进行更深入的调查进行决策
- 并非所有适合于初始阶段的活动都涵盖在其中
初始阶段中可能的活动和制品:
- 简短的需求讨论会
- 大多数参与者、目标和用例名称
- 大多数以摘要形式编写的用例。以详述形式编写10%左右的用例
- 确定大多数具有影响和风险的质量需求
- 编写设想和补充性规格说明的第一个版本
- 风险列表:如工作量
- 技术上的验证检验(如javascript是否可以在触摸屏上工作?)
- 面向用户界面的原型,用于确定对功能需求的设想
- 对购买/构建/复用构件的建议,在细化阶段进行精化(如建议购买税金计算器程序包)
- 对候选的高层架构和构建给出建议(这里只是概要向的推测,以作为细化阶段的起点)
- 第一次迭代计划
- 候选工具列表
5.2 细化阶段
细化是一般项目中最初的一系列迭代,包括:
- 对核心、有风险的软件架构进行编程和测试;
- 发现并稳定需求的主体部分
- 澄清大多数需求和规避主要风险
- 细化阶段通常由两个或多个阶段组成,建议迭代时间定量,结束日期固定
- 该阶段产生的代码和设计具有产品品质的最终系统的一部分
细化阶段可能出现的一些关键思想和最佳实践包括:
- 实现短时间定量、风险驱动的迭代
- 及早开始编程
- 对架构的核心和风险部分进行适应性的设计、实现和测试
- 尽早、频繁、实际的测试
- 基于来自测试、用户、开发者的反馈进行调整
- 通过一系列讨论会,详细编写大部分用例和其他需求,每个细化迭代举行一次
细化阶段可能构建的制品:

图 细化阶段的制品举例
上图并未包含初始阶段就开始构建的制品,而只是细化阶段开始的制品,这些制品不是在一次迭代完成,而是会跨越若干次迭代进行精化。
6. 计划下一个迭代
通过风险、覆盖范围和关键程度组织需求和迭代,划分工作等级,如POS示例中,处理销售被划分成高等级
- 风险:技术复杂性,工作量和其它不确定性
- 覆盖范围:早期迭代要涉及系统所有主要部分(肤浅和广泛)
- 关键程度:客户认为具有高业务价值
UML和模式应用5:细化阶段(1)--第1次迭代的更多相关文章
- UML和模式应用5:细化阶段(4)--如何创建领域模型
1.前言 以当前迭代中所要设计的需求为界,创建领域模型的步骤: 1.寻找概念类 2.将其绘制为UML类图中的类 3.添加关联和属性 2.如何寻找概念类 寻找概念类有如下几种方法: 重用和修改现有的模型 ...
- UML和模式应用5:细化阶段(5)---系统顺序图
1.前言 系统顺序图(SSD)是为阐述系统相关的输入和输出事件而快速.简单的创建的制品,它们是操作契约和对象设计的输入. SSD展示了直接与系统交互的外部参与者.系统(作为黑盒)以及由参与者发起的系统 ...
- UML和模式应用4:初始阶段(6)--迭代方法中如何使用用例
1.前言 用例是UP和其他众多迭代方法的核心.UP提倡用例驱动开发. 2. 迭代方法中如何使用用例 功能需求首先定义在用例中 用例是迭代计划的重要部分,迭代是通过选择一些用例场景或整个用例来定义的 用 ...
- UML和模式应用4:初始阶段(4)--需求制品之用例模型模板示例
1. 前言 UP开发包括四个阶段:初始阶段.细化阶段.构建阶段.移交阶段: UP每个阶段包括 业务建模.需求.设计等科目: 其中需求科目对应的需求制品包括:设想.业务规则.用例模型.补充性规格说明.词 ...
- UML和模式应用4:初始阶段(3)--需求制品之用例模型
1. 前言 UP开发包括四个阶段:初始阶段.细化阶段.构建阶段.移交阶段: UP每个阶段包括 业务建模.需求.设计等科目: 其中需求科目对应的需求制品包括:设想.业务规则.用例模型.补充性规格说明.词 ...
- UML和模式应用4:初始阶段(2)--需求科目之进化式需求
1. 前言 UP开发包括四个阶段:初始阶段.细化阶段.构建阶段.移交阶段: UP每个阶段包括 业务建模.需求.设计等科目: 需求是UP科目之一,在初始阶段需求科目的工作量占据较大的部分.但是初始阶段的 ...
- UML和模式应用4:初始阶段(1)--概述
1.前言 UP开发包括四个阶段:初始阶段.细化阶段.构建阶段.移交阶段: 初始阶段是项目比较简短的起始步骤,主要目的是收集足够的信息来建立共同设想,调查项目的总体目标和可行性,确定是否值得进一步深入. ...
- UML和模式应用
引言 Applying UML and Patterns,以一个商店POS系统NextGen和一个掷骰子游戏Monopoly为例,围绕OOA/D的基本原则GRASP,以迭代作为基本方法.以UML为表达 ...
- 《UML和模式应用》重点之思想篇
本书是帮助开发人员和学生学习面向对象分析和设计(OOA/D)的核心技能的重要工具. UML不是OOA/D.也不是方法,仅仅是图形表示法,假设没有真正掌握怎样创建优秀的面向对象设计,或者怎样评估和改进现 ...
随机推荐
- Python网络爬虫:空姐网、糗百、xxx结果图与源码
如前面所述,我们上手写了空姐网爬虫,糗百爬虫,先放一下传送门: Python网络爬虫requests.bs4爬取空姐网图片Python爬虫框架Scrapy之爬取糗事百科大量段子数据Python爬虫框架 ...
- CodeForces 1110F Nearest Leaf | 线段树/换根
我--又诈尸了-- 代码几乎都不会写了,打场CF居然上分啦,开心!(虽然还是比不过列表里的各路神仙) 题目链接 题目描述 一棵\(n\)个点的有根树,规定一种dfs序(规则:编号小的点优先dfs),\ ...
- [学习笔记&教程] 信号, 集合, 多项式, 以及各种卷积性变换 (FFT,NTT,FWT,FMT)
目录 信号, 集合, 多项式, 以及卷积性变换 卷积 卷积性变换 傅里叶变换与信号 引入: 信号分析 变换的基础: 复数 傅里叶变换 离散傅里叶变换 FFT 与多项式 \(n\) 次单位复根 消去引理 ...
- luogu3628 特别行动队 (斜率优化dp)
推出来式子以后斜率优化水过去就完事了 #include<cstdio> #include<cstring> #include<algorithm> #include ...
- strace命令,read,write
strace + 运行的程序,可以查看程序运行的过程中调用的系统函数 read.write函数常常被称为Unbuffered I/O.指的是无用户及缓冲区.但不保证不使用内核缓冲区.
- frp源码剖析-frp中的mux模块
前言 frp几乎所有的连接处理都是构建在mux模块之上的,重要性不必多说,来看一下这是个啥吧 ps: 安装方法 go get "github.com/fatedier/golib/net/m ...
- myisamchk命令修复表操作
myisamchk命令使用总结 myisamchk实用程序可以用来获得有关你的数据库表的统计信息或检查.修复.优化他们 1.常用于myisamchk的检查选项--information, -i打印所检 ...
- 微信接口开发之高级篇系列【微信JS-SDK】
PHP微信公众平台开发高级篇—微信JS-SDK 第一步.绑定域名: 第二步.引入JS文件: 第三部.通过Config接口注入权限验证配置 第四部.通过Read接口处理成功验证 第五部.通过Error接 ...
- 20155332 2016-2017-2 《Java程序设计》第9周学习总结
20155332 2016-2017-2 <Java程序设计>第9周学习总结 教材学习内容总结 了解JDBC架构 掌握JDBC架构 掌握反射与ClassLoader 了解自定义泛型和自定义 ...
- sql server存储过程简单的使用
--创建存储过程 create proc test_proc @date datetime as select * from t_user where times between ),),),),' ...