第8章 迭代1——基础

本文为《UML和模式应用(原书第3版)》读书笔记


迭代1的需求和重点:OOA/D技术的核心

强调的是基础繁为和在构件对象系统中所使用的常见OOA/D技术,首先处理困难和具有风险的事项。

e.g 销售系统

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

在迭代开发中,我们并非一次就实现所有的需求,在多个迭代里对同一用例进行增量式开发。

细化之所在

  • 初始阶段强调面向需求的制品。
  • 对核心、有风险的架构进行编程和测试。
  • 发现并稳定需求的主题部分。
  • 规避主要风险。
  • 迭代时间约2到6周。
  • 细化不是设计阶段,也不是要完成所有模型的开发,不是要创建可以丢弃的模型,与之相反,该阶段产生的代码和设计是具有产品品质的最终系统的一部分,该原型叫做可执行架构架构基线
  • 一句话概括:构件核心架构,解决高风险元素,定义大部分需求,以及预计总体进度和资源。

细化阶段一些关键思想和最佳实践

  • 实行短时间定量、风险驱动的迭代。
  • 及早开始编程。
  • 对架构的核心和风险部分进行适应性的设计、实现和测试。
  • 尽早、频繁、实际地测试。
  • 基于来自测试、用户、开发者的反馈进行调整。
  • 通过一系列讨论会,详细编写大部分用例和其他需求,每个细化迭代举行一次。
  • 通过风险(技术复杂性、工作量等)、覆盖范围(涉及系统所有主要部分)和关键程度(客户认为具有高业务价值的功能)组织需求和迭代,因此在迭代1之前完成工作等级划分,但是在迭代2之前要重新划分,因为新需求和新理解会对等级排列产生影响,这就是迭代的可适应性。

细化阶段会构建的制品

  • 领域模型:领域概念的可视化,类似于领域实体的静态信息模型;
  • 设计模型:描述逻辑设计的一组图,包括软件类图、对象交互图、包图等,是对重要设计思想及其在系统中动机的概要;
  • 数据模型:包括数据库方案,以及在对象和非对象表示之间映射的策略;
  • 用例示意板,用户界面原型:描述用户界面、导航路径、可用性模型等;

何时知道自己并没有理解细化阶段

  • 对于大部分项目,细化阶段都比几个月更长。
  • 只有一次迭代。
  • 在细化开始前就定义了大部分的需求。
  • 没有处理具有风险的元素和核心架构。
  • 没有产生可执行架构;没有进行产品代码的编程。
  • 认为细化阶段主要是需求或设计阶段,为构造阶段的实现进行准备。
  • 试图在编程之前进行彻底和细致的设计。
  • 只有少量的反馈和调整;用户没有持续地参与评估和反馈。
  • 没有尽早和实际的测试。
  • 在编程之前推测性地结束架构设计。
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页