Project Description
瀑布模型一般将软件开发分为:可行性分析(计划)、需求分析、软件设计(概要设计、详细设计)、编码(单元测试)、测试、运行维护等六个阶段。
螺旋模型是一个演化模型,将原型实现的迭代特征与线性顺序(瀑布)模型中控制的和系统化的方面结合起来,使得软件增量版本的快速开发成为可能。
螺旋模型的四个象限分别表示每个周期所划分的四个阶段:制定计划、风险分析、实施工程和客户评估。螺旋模型强调了风险分析特别适用于庞大而复杂的、高风险的系统。
迭代模型的生命周期四个阶段:初始、细化、构造、移交,可进一步描述为周期(Cycle)、阶段(Phase)、迭代(Ineration)。核心工作流从技术角度描述迭代模型的静态组成部分,包括:业务建模、需求获取、分析与设计、实现、测试、部署。
V模型是一个对称的结构,非常明确地表明了测试过程中存在的不同级别,并且非常清晰的描述了这些测试阶段和开发阶段的对应关系。
- 单元测试。一般由开发人员来执行,首先设定最小的测试单元,然后通过设计相应的测试用例来验证各个单元功能的正确性。
- 集成测试。主要关注点是系统能够成功编译,实现了主要的业务功能,系统各个模块之间数据能够正常通信等。
- 系统测试。验证整个系统是否满足需求规格说明。
- 验收测试。从用户的角度检查系统是否满足合同中定义的需求或用户需求。
- 主要思想是开发和测试同等重要,左侧代表开发活动,右侧代表测试活动。
- 针对每个开发阶段都有一个测试级别与之对应。
- 测试依旧是开发生命周期中的阶段,与瀑布模型不同的是,有多个测试级别与开发阶段对应。
- 适用于需求明确和需求变更不频繁的情形。
原型法认为在很难立即全面准确地提出用户需求的情况下,先不要对系统做全面、详细的调查分析,而是本着开发人员对用户需求的初步理解,快速开发一个原型系统,然后通过反复修改来实现用户最终的系统需求。
- 实际可行
- 具有最终系统的基本特征。
- 构造方便、快速,造价低。
敏捷开发以用户的需求进货为核心,采用迭代、循序渐进的方法进行软件开发。换言之,就是把一个大项目分为多个相互联系但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
- 快速迭代。
- 让测试人员和开发者参与需求讨论。
- 编写可测试的需求文档。
- 多沟通、尽量减少文档。
- 做好产品原型。
- 及早考虑测试。