Project Description

  瀑布模型一般将软件开发分为:可行性分析(计划)、需求分析、软件设计(概要设计、详细设计)、编码(单元测试)、测试、运行维护等六个阶段。

  螺旋模型是一个演化模型,将原型实现的迭代特征与线性顺序(瀑布)模型中控制的和系统化的方面结合起来,使得软件增量版本的快速开发成为可能。

  螺旋模型的四个象限分别表示每个周期所划分的四个阶段:制定计划、风险分析、实施工程和客户评估。螺旋模型强调了风险分析特别适用于庞大而复杂的、高风险的系统。

  迭代模型的生命周期四个阶段:初始、细化、构造、移交,可进一步描述为周期(Cycle)、阶段(Phase)、迭代(Ineration)。核心工作流从技术角度描述迭代模型的静态组成部分,包括:业务建模、需求获取、分析与设计、实现、测试、部署。

  V模型是一个对称的结构,非常明确地表明了测试过程中存在的不同级别,并且非常清晰的描述了这些测试阶段和开发阶段的对应关系。

  1. 单元测试。一般由开发人员来执行,首先设定最小的测试单元,然后通过设计相应的测试用例来验证各个单元功能的正确性。
  2. 集成测试。主要关注点是系统能够成功编译,实现了主要的业务功能,系统各个模块之间数据能够正常通信等。
  3. 系统测试。验证整个系统是否满足需求规格说明。
  4. 验收测试。从用户的角度检查系统是否满足合同中定义的需求或用户需求。
  1. 主要思想是开发和测试同等重要,左侧代表开发活动,右侧代表测试活动。
  2. 针对每个开发阶段都有一个测试级别与之对应。
  3. 测试依旧是开发生命周期中的阶段,与瀑布模型不同的是,有多个测试级别与开发阶段对应。
  4. 适用于需求明确和需求变更不频繁的情形。

  原型法认为在很难立即全面准确地提出用户需求的情况下,先不要对系统做全面、详细的调查分析,而是本着开发人员对用户需求的初步理解,快速开发一个原型系统,然后通过反复修改来实现用户最终的系统需求。

  1. 实际可行
  2. 具有最终系统的基本特征。
  3. 构造方便、快速,造价低。

  敏捷开发以用户的需求进货为核心,采用迭代、循序渐进的方法进行软件开发。换言之,就是把一个大项目分为多个相互联系但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

  1. 快速迭代。
  2. 让测试人员和开发者参与需求讨论。
  3. 编写可测试的需求文档。
  4. 多沟通、尽量减少文档。
  5. 做好产品原型。
  6. 及早考虑测试。