四种开发模式

127 阅读4分钟

1.瀑布式开发(预见性的开发模式) 开发严格遵循预先计划的需求分析、设计、编码、集成、测试、维护的步骤进行,步骤的成果作为衡量进度的方法。 瀑布式开发最早强调系统开发应有完整的周期,且必须完整的经历每个周期内的每个开发阶段,并系统化的考量分析所涉及的技术、时间与资源投入。 缺点:瀑布式开发的主要问题是它的严格分级导致自由度降低,项目早期即作出承诺会导致对后期需求的变化难以调整且代价很大,这在需求不明晰且在项目进行过程中可能有变化的情况下基本上是不可行。

2.迭代式开发 迭代式开发也被称为迭代增量开发,是一种与传统的瀑布式开发相反的软件开发过程,它弥补了传统开发方式的一些弱点,有更高的成功率。 在迭代式开发中,整个开发工作被组织为一系列短小的、固定长度的小项目,每次迭代都包括需求分析、设计、实现、测试。 采用迭代式开发时,工作可以在需求被完整地确定之前启动,并再一次迭代中完成系统的一部分功能或业务,再通过客户的反馈来细化需求,并开始新一轮的迭代。 特点: 每次只设计和实现产品的一部分。 一步一步的完成。 每次设计和实现一个阶段,这叫做一个迭代。 3.螺旋式开发 它兼顾了快速原型的迭代特征及瀑布模型的系统化和严格监控,最大特点是引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减少损失。 螺旋模型更适合大型的昂贵的系统级的软件开发,一开始应用的规模很小,当项目被定义得更好、更稳定时逐渐展开。其核心在于不需要在刚开始时就把所有事情都定义清楚,可以先定义最重要的功能去实现它,然后听取客户的意见,再进入下一个阶段,不断循环、重复,直到得到满意的产品。 螺旋模型在很大程度上是一种风险驱动的方法体系,因为在每个阶段及经常发生的循环之前,都必须先进行风险评估。 特点: 制定计划:确定软件目标,选定实施方案,弄清楚项目开发的限制条件。 风险分析:分析、评估所选方案,考虑如何识别和消除风险。 实施工程:实施软件开发和验证。 客户评估:评价开发工作,提出修正建议,制定下一步计划。 4.敏捷软件开发 敏捷开发具有应对开酥变化的需求的软件开发能力,更强调程序员团队与业务专家之间的紧密协作及面对面沟通,比单纯通过书面文档沟通更有效,能更频繁地交付新的软件版本。使自我组织、自我约束的团队能够更好地适应需求的变化,也更注重软件开发过程中人的作用。 特点:

  1. 首要任务是尽早地、持续地交付可评价的软件,以使客户满意。
  2. 乐于接受需求变更,即使在开发后期也是如此。敏捷开发能够驾驭需求的变化,从而赢得竞争优势。
  3. 频繁交付可使用的软件,交付的间隔越短越好,可以从几个月减缩到几个星期。
  4. 在整个项目开发期间,业务人员和开发人员必须朝夕工作在一起。
  5. 围绕那些有推动力的人们来构建项目,给予他们所需的环境和支持,并且相信他们能够吧工作做好。
  6. 开发团队及开发团队内部进行最快速、有效的传递信息的方法是面对面交谈。
  7. 可使用的软件是进度的主要衡量指标。