UML和模式应用5:细化阶段(1)--概述

1.前言

从本文开始进入细化阶段,讨论迭代技术的基础,本次讨论将着重讨论第一次迭代,以POS机为例。

2. 第一次迭代处理的需求(以NextGen POS项目处理销售用例)

  • 实现 处理销售 用例中基本和关键的场景:输入商品项目并收取现金
  • 实现用于支持迭代初始化需要的启动用例
  • 不处理任何特殊和复杂的部分,仅仅针对场景的简单理想路径,并对此进行设计和实现
  • 不与外部服务进行协作
  • 不应用复杂的定价规则
  • 不考虑UI支持、数据库内容的支持

3. 迭代过程,并非一次就实现所有需求

  • 迭代生命周期方法的关键理解:对需求子集开始具有产品品质的编程和测试

4. 多个迭代里对同一用例进行增量式开发

图 用例的实现可能在多个迭代中展开

  • 在多次迭代内对同一用例的各种场景进行开发,渐进的扩展系统直到最终完成此用例的所有功能。

5. 初始阶段和细化阶段的过程

5.1 初始阶段

初始阶段的特点再说明:

  • 初始阶段持续较短时间,只经过轻量级的调查
  • 所创建的制品是简明和不完整的
  • 初始阶段是迈向细化阶段的一小步
  • 初始阶段决定基本的可行性、风险和范围,是否值得进行更深入的调查进行决策
  • 并非所有适合于初始阶段的活动都涵盖在其中

初始阶段中可能的活动和制品:

  • 简短的需求讨论会
  • 大多数参与者、目标和用例名称
  • 大多数以摘要形式编写的用例。以详述形式编写10%左右的用例
  • 确定大多数具有影响和风险的质量需求
  • 编写设想和补充性规格说明的第一个版本
  • 风险列表:如工作量
  • 技术上的验证检验(如javascript是否可以在触摸屏上工作?)
  • 面向用户界面的原型,用于确定对功能需求的设想
  • 对购买/构建/复用构件的建议,在细化阶段进行精化(如建议购买税金计算器程序包)
  • 对候选的高层架构和构建给出建议(这里只是概要向的推测,以作为细化阶段的起点)
  • 第一次迭代计划
  • 候选工具列表

5.2 细化阶段

细化是一般项目中最初的一系列迭代,包括:

  • 对核心、有风险的软件架构进行编程和测试;
  • 发现并稳定需求的主体部分
  • 澄清大多数需求和规避主要风险
  • 细化阶段通常由两个或多个阶段组成,建议迭代时间定量,结束日期固定
  • 该阶段产生的代码和设计具有产品品质的最终系统的一部分

细化阶段可能出现的一些关键思想和最佳实践包括:

  • 实现短时间定量、风险驱动的迭代
  • 及早开始编程
  • 对架构的核心和风险部分进行适应性的设计、实现和测试
  • 尽早、频繁、实际的测试
  • 基于来自测试、用户、开发者的反馈进行调整
  • 通过一系列讨论会,详细编写大部分用例和其他需求,每个细化迭代举行一次

细化阶段可能构建的制品:

图 细化阶段的制品举例

上图并未包含初始阶段就开始构建的制品,而只是细化阶段开始的制品,这些制品不是在一次迭代完成,而是会跨越若干次迭代进行精化。

6. 计划下一个迭代

通过风险、覆盖范围和关键程度组织需求和迭代,划分工作等级,如POS示例中,处理销售被划分成高等级

  • 风险:技术复杂性,工作量和其它不确定性
  • 覆盖范围:早期迭代要涉及系统所有主要部分(肤浅和广泛)
  • 关键程度:客户认为具有高业务价值
时间: 2024-10-20 03:18:48

UML和模式应用5:细化阶段(1)--概述的相关文章

UML和模式应用4-初始阶段

1.前言 初始阶段是项目比较简短的起始步骤,主要目的是收集足够的信息来建立共同设想,调查项目的总体目标和可行性,确定是否值得进一步深入. 2. 初始阶段的主要工作 2.1 初始阶段的主要工作 进行的主要工作包括: . 项目的设想和业务用例是什么? . 是否可行? . 购买还是开发? . 粗略估计一下成本 . 项目应该继续还是停止? 2.2 初始阶段的其它工作 同时为了能够在细化阶段进行编程,初始阶段还将完成如下的工作: . 对10%的用例进行分析 . 关键的非功能需求的分析 . 业务案例创建 .

UML和模式应用5:细化阶段(5)---系统顺序图

1.前言 系统顺序图(SSD)是为阐述系统相关的输入和输出事件而快速.简单的创建的制品,它们是操作契约和对象设计的输入. SSD展示了直接与系统交互的外部参与者.系统(作为黑盒)以及由参与者发起的系统事件. 应为每个用例的主成功场景,以及频繁发生的或者复杂的替代场景绘制SSD. 2.系统顺序图对其它制品的影响 图 系统顺序图对其它UP制品的影响 3. 为何绘制SSD? 因为需要准确的知道什么是外部输入的事件,这些事件时系统行为分析的重要部分 软件系统要为如下三种事件响应: 来自参与者(人或计算机

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

1. 前言 本文主要对迭代开发 初始阶段 的需求相关制品展开讨论,阐述了初始阶段并非定义所有需求,而是需要在后续的细化阶段逐步迭代. 同时也讨论了初始阶段关于需求相关的制品. 2.相关术语 术语 说明 需求 系统必须提供的能力和遵从的条件 需求管理 定义需求的方法 瀑布式需求管理 编程之前项目的第一个阶段就试图完全定义和固化需求 UP式需求管理 用一种系统的方法来寻找.记录.组织和跟踪系统不断变更的需求 表 需求相关术语说明 3. 寻找需求的方法 与客户一起编写用例 开发者和客户共同参加客户讨论

《UML和模式应用》重点之思想篇

本书是帮助开发者和学生学习面向对象分析和设计(OOA/D)的核心技能的重要工具. UML不是OOA/D,也不是方法,只是图形表示法,如果没有真正掌握如何创建优秀的面向对象设计,或者如何评估和改进现有设计,那么学习UML或者UML CASE工具是毫无意义的.对象思想才是重点和难点. 在OO开发中,至关重要的能力是熟练地为软件对象分配职责,除此之外当然还有其他很多重要的技能. 有益的分析和设计可以概括为:做正确的事(分析)和正确地做事(设计). 面向对象分析的过程中强调在问题领域内发现和描述对象(或

UML和模式应用-1面向对象的分析与设计

1.本书的主要内容 UML和面向对象的思想 对应用了UML和模式的面向对象分析与设计(OOA/D)的介绍 重点阐述对象设计,也会讲述在OOA/D中如何使用UML OOD的原则和模式 职责驱动设计 模式,问题解决方案公式 案例研究 贯穿全书的案例研究 用例 讲述需求分析 迭代开发 迭代开发使用统一过程(UP)的敏捷方法作为示例迭代过程来讲述迭代开发 TODO

UML和模式应用:面向对象的分析与设计

1.1.什么是分析和设计 分析(analysis):强调的是对问题和需求的调查研究,而不是解决方案,即应该如何使用系统,系统应该具有哪些功能. 设计(design):强调的是满足需求的概念上的解决方案(在软件和硬件方面),而不是其实现.最终,分析可以实现,而实现则表达了真实和完整的设计. 分析和设计一词最好加以限制,如面向对象的设计.数据库设计. 有益的分析和设计可以概括为:做正确的事(分析)和正确地做事(设计). 1.2.什么是面向对象的分析和设计 在面向对象分析(OOA)过程中,强调的是在问

UML和模式应用5:细化阶段(10)---UML交互图

1.前言 UML使用交互图来描述对象间消息的交互 交互图可以用于动态对象建模. 交互图有两种类型:顺序图和通信图. UML交互图将用来解释和阐述对象设计. 2.顺序图和通信图 顺序图具有丰富的符号标记,通信图适用于墙上画草图 顺序图以一种栅栏格式描述交互:通信图以图或网络格式描述对象交互 图 顺序图 图 通信图 顺序图和通信图的优缺点 TODO

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

1.前言 以当前迭代中所要设计的需求为界,创建领域模型的步骤: 1.寻找概念类 2.将其绘制为UML类图中的类 3.添加关联和属性 2.如何寻找概念类 寻找概念类有如下几种方法: 重用和修改现有的模型 许多常见领域都存在已发布的.绘制精细的领域模型和数据模型 使用分类列表 业务交易 -> 交易项目 -> 与交易项目相关的产品或服务 -> 交易记录何处?.... 通过识别名词短语寻找概念类 在对领域的文本型描述中识别名词和名词短语,将其作为候选的概念类或属性 3.绘制UML类图中的类 规则

UML和模式应用5:细化阶段(6)---操作契约

1.前言 操作契约使用前置和后置条件,描述领域模型里对象的详细变化,作为系统操作的结果. 操作契约可以作为有用的OOA相关的制品. 操作契约可以视为UP用例模型的一部分,它是对用例之处的系统操作的效用提供更详细的分析. 契约的主要输入是SSD中确定的系统操作.领域模型和领域专家的见解. 契约也可以作为对象设计的输入. //TODO