zoukankan      html  css  js  c++  java
  • UML和模式应用3:迭代和进化式分析和设计案例研究

    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周的周五召开迭代计划会选择下一步工作。

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

  • 相关阅读:
    Swift
    Swift
    Swift
    Swift
    Swift
    Swift
    Swift
    C++生产和使用的临时对象
    RecyclerView0基于使用
    Docker创建MySQL集装箱
  • 原文地址:https://www.cnblogs.com/smartjourneys/p/6817271.html
Copyright © 2011-2022 走看看