敏捷式开发
敏捷开发: 敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发
敏捷开发是多种软件开发项目管理方法的集合,是一种开发方法
敏捷开发是紧紧围绕用户需求,以用户的反馈为导向,快速开发,快速验证,快速修正的迭代式开发打造大量精品
瀑布式开发
瀑布式开发:是一种老旧的计算机软件开发方法,是最典型的预见性的方法,严格遵循预先计划的,从需求到设计,从设计到编码,从编码到测试,从测试到提交大概这样的流程,要求每一个开发阶段都要做到最好。特别是前期阶段,设计的越完美,提交后的成本损失就越少。
瀑布式的主要的问题是它的严格分级导致的自由度降低,项目早期即作出承诺导致对后期需求的变化难以调整,代价高昂。
瀑布式方法在需求不明并且在项目进行过程中可能变化的情况下基本是不可行的.
迭代式开发
迭代式开发: 整个开发工作被组织为一系列的短小的、固定长度(如2周-4周)的小项目,被称为一系列的迭代,这叫迭代开发
每次只设计和实现这个产品的一部分,逐步逐步完成的方法叫迭代开发,每次设计和实现一个阶段叫做一个迭代. 每一次迭代都包括了需求分析、设计、实现与测试.
迭代开发是软件开发的生命周期模型,每一个迭代都是一个完整的瀑布模型,是一种开发过程
迭代式开发适合那些需求信息不明确的项目
优点:
- 降低风险
- 得到早期用户反馈
- 持续的测试和集成
- 使用变更
- 提高复用性
螺旋式开发
螺旋式开发,适合大型复杂的系统,核心就在于您不需要在刚开始的时候就把所有事情都定义的清清楚楚。您轻松上阵,定义最重要的功能,实现它,然后听取客户的意见,之后再进入到下一个阶段。如此不断轮回重复,直到得到您满意的最终产品
- 制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件;
- 风险分析:分析评估所选方案,考虑如何识别和消除风险;
- 实施工程:实施软件开发和验证;
- 客户评估:评价开发工作,提出修正建议,制定下一步计划。
很大程度上是一种风险驱动的方法体系,因为在每个阶段之前及经常发生的循环之前,都必须首先进行风险评估。