1.前言

如何进行迭代和进化式分析和设计?将采用案例研究的方式贯穿始终。案例研究所包含的内容:

  • UI元素
  • 核心应用逻辑层
  • 数据库访问
  • 与外部软硬构件的协作

本章关于OOA/D主要介绍核心应用逻辑层

2. 重点探讨核心应用逻辑层的OOA/D的原因

图 OOA/D层举例及重点关注层

  • 其它层对技术平台具有较大依赖性;
  • 核心应用逻辑层的OO设计对各种技术来说是类似的;
  • 应用逻辑层语境中学习到的基本OO设计技巧适用于所有其它层或构件
  • 其它层的设计方法和模式呈现出快速变化的趋势

3. 案例研究策略

  • 迭代开发

使用迭代策略,第一次迭代用于OOA/D核心功能,后续迭代迭代用于扩展这些功能

  • 迭代学习

迭代和循序渐进的方式介绍分析和设计、UML表示法和模式,第一次介绍核心的分析设计主题和表示法,第二次迭代展开介绍新理念、UML表示法和模式

4. 案例

4.1 案例一 POS系统

  • POS系统具有的特性

包括计算机、条码扫描仪等硬件,还包括系统运转的软件

为不同服务的应用程序提供接口

具有一定的容错性

提供灵活性和定制能力

  • 开发策略

使用迭代开发策略,依次完成需求、面向对象分析和设计

4.2 案例二 Monopoly游戏系统

为证明相同的OOA/D实践可以应用于完全不同的问题

5. 迭代和进化式分析和设计举例

迭代和进化式分析和设计既不是无分析也不是过度分析,而是中庸之道。

如下是迭代方法的举例,假设在项目交付之前有20次迭代:

1. 第一次迭代前,召开需求工作会议(2天)

(1)高阶需求分析(1上午)

确定用例和特性的名称、关键非功能性需求;

(2)从高阶需求中选取10%的需求,对其进行功能和非功能性需求进行详细的分析(1天半)

选取需求分别为UC2,UC11和UC14。这些需求具备如下特点:具有重要的架构意义;具有高业务价值;具有高风险。

2.第一次迭代之前,召开迭代计划会议(1上午)

选择UC2、UC11和UC14的子集,规定在4周内进行设计、构造和测试

3.完成第一次迭代(4周)

(1)进行建模和设计工作,画出UML草图及其它模型(2天)

(2)编程、测试、集成(本次迭代的剩余时间)

注:测试包含单元测试、验收测试、负载测试和可用性测试等

(3)检查初始的迭代目标是否能够完成(本次迭代前一周)

如果不能完成,将次要目标重新放回任务列表,下次迭代时完成

(4)冻结代码(第4周的周二)

上传、集成和测试所有代码,创建代码基线

(5)演示局部系统,要求反馈(第4周的周三上午)

4.召开第二次需求会议(第4周的周三和周四)

对2第一次迭代会议的所有资料进行复查和精化。选择具有重要架构意义和高业务价值的另外10%用例,进行详细分析。

5.第二次迭代前,召开迭代计划会议(1上午)

选择另外10%用例的子集,规定在4周内进行设计、构造和测试

6.以相同步骤完成第二次迭代(4周)

7.反复进行九次迭代和十次需求工作会,可能精化了90%的需求,构建了10%的软件

8.估计精化的需求所需工作量和时间

9.执行下个迭代过程(3周)

在第3周的周五召开迭代计划会选择下一步工作。

每次迭代都要反复询问,就现在所知,下一个三周应该完成的、最关键的技术和业务特性是什么?

UML和模式应用3:迭代和进化式分析和设计案例研究的更多相关文章

  1. UML和模式应用学习笔记-2(迭代和进化式开发)

    一:什么是迭代和进化式开发 1:迭代和进化式开发:通常会在还没有详细定义所有需求的情况下假设开发开始,同时使用反馈来明确和改进演化中的规格说明: 2:迭代方法与较高的成功率.生产率和低缺陷率具有关系: ...

  2. UML-对象设计要迭代和进化式

    1.在<如何面向对象设计>和<如何进行对象设计?>中,对如何迭代和进化式的设计对象做些总结: 1).轻量+简短 2).快速进入编码+测试 3).不要试图在UML中细化所有事物 ...

  3. UML和模式应用5:细化阶段(7)---从需求到设计迭代进化

    1.前言 迭代开发中,每次迭代都会发生从以需求或分析为主要焦点到以设计和实现为主要焦点的转变 分析和面向对象的分析重点关注学习做正确的事,理解案例重要目标,规则和约束 设计工作强调正确的做事,熟练设计 ...

  4. UML和模式应用

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

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

    本书是帮助开发人员和学生学习面向对象分析和设计(OOA/D)的核心技能的重要工具. UML不是OOA/D.也不是方法,仅仅是图形表示法,假设没有真正掌握怎样创建优秀的面向对象设计,或者怎样评估和改进现 ...

  6. UML和模式

    UML和模式应用学习笔记-2(迭代和进化式开发)   一:什么是迭代和进化式开发 1:迭代和进化式开发:通常会在还没有详细定义所有需求的情况下假设开发开始,同时使用反馈来明确和改进演化中的规格说明: ...

  7. 《UML和模式应用》读书笔记(一)

    一.绪论 1. 面向对象分析和设计 1.1 什么是分析和设计 分析(analysis)强调的是对问题和需求的调查研究,而不是解决方案. 设计(design)强调的是满足需求的概念上的解决方案,而不是其 ...

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

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

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

    1.前言 系统顺序图(SSD)是为阐述系统相关的输入和输出事件而快速.简单的创建的制品,它们是操作契约和对象设计的输入. SSD展示了直接与系统交互的外部参与者.系统(作为黑盒)以及由参与者发起的系统 ...

随机推荐

  1. 切割模型固定写死了切平面方程是y=0.1

    上一篇讲到3d模型切割我遇到的问题(切面的纹理会混乱),经过这段时间的琢磨,有了解决方案,当然我这里只给出我的解决思路,投入到实际项目中还需要做许多工作,比如我在上一篇中切割模型固定写死了切平面方程是 ...

  2. 上传大数据到SharePoint 2010

    今天终于把近5G的数据上传到了SharePoint2010站点上,上传过程中发现几个要注意的问题: 1. 用360浏览器打开SP 2010站点,发现在workspace同步和windows explo ...

  3. emwin之CHECKBOX控件的通知代码的响应规则

    @2018-08-28 [小记] 在 case WM_INIT_DIALOG: 中使用 CHECKBOX_SetState()函数改变了复选框状态,就会产生 WM_NOTIFICATION_VALUE ...

  4. HDU 3338 Kakuro Extension (网络流,最大流)

    HDU 3338 Kakuro Extension (网络流,最大流) Description If you solved problem like this, forget it.Because y ...

  5. 【bzoj2038】小Z的袜子

    莫队算法是一种针对询问进行分块的离线算法,如果已知区间 [ l , r ] 内的答案,并且可以在较快的时间内统计出区间 [ l-1, r ],[ l , r+1 ] 的答案,即可使用莫队算法. 莫队复 ...

  6. java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 不能使用 '(未知的)';文件已在使用中

    最近查看程序输入的日志时发现一个java连接Access的程序时不时的抛出: java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driv ...

  7. react组件在项目中的应用(基础知识)

    上图我是定义了5个模块,全部都渲染在一个组件里面.可以先看看我的代码结构 我将Hello文件夹下的index.jsx文件作为父组件,最后渲染在根组件中. 那我们怎么输出这个Hello组件呢?要达到上图 ...

  8. css实现单选效果,看看有趣的tabIndex

    以前我实现单选变色几乎都是用js实现的,今天看到有个css属性可以直接实现单选变色,很开心啊~ 话不多说看效果 实现的代码如下 下面我们看看用focus实现别的有趣的效果 话不多说看效果 实现的代码如 ...

  9. 盖得化工--selenium翻页测试

    Python爬虫视频教程零基础小白到scrapy爬虫高手-轻松入门 https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.482434a6E ...

  10. yolo3的改变

    转自:https://zhuanlan.zhihu.com/p/35394369 YOLOv3的前世今生 2013年,R-CNN横空出世,目标检测DL世代大幕拉开. 各路豪杰快速迭代,陆续有了SPP, ...