需求分析

功能性需求

  1. 需求不明确时,可以使用的工具有:用户故事、线框图
  2. 当需求明确,需要将需求以最小单元尽量准确描述。

    非功能性需求

  3. 易用性

  4. 性能
  5. 扩展性
  6. 容错性
  7. 通用性
    为了提高框架的复用性,能够灵活应用到各种场景中,框架在设计的时候,我们要多去考虑框架是否还可以使用于什么样的场景中

    框架设计

    模块划分

    方法论:TDD(测试驱动开发)和Prototype(最小原型),聚焦于一个简单的应用场景,基于此场景设计实现一个简单的原型。

  8. 给出一个小的应用场景

  9. 暂时将所有代码都塞到一个类中,不用考虑任何代码质量、线程安全、性能、扩展性问题,怎么简单怎么来。
  10. 通过最小原型获得系统设计图,并将每个模块负责的功能简单描述

    详细设计

    结合面向对象设计、经典设计思想、设计原则,编写灵活、可扩展的、高质量的代码实现。

    快速迭代

  11. 确定一些核心需求,将一些非核心需求或者实现需要很长时间精力的放在之后的版本实现。

  12. 面向对象设计与实现
    在实际的开发过程中面向对象的设计与实现往往是交叉进行,一般先有一个粗糙的设计,然后着手实现,在实现的过程中发现一些问题,然后回头修改补充设计。
  13. 划分类的职责
  14. 定义类与类之间的关系
  15. 将类组装
  16. review代码