:2、软件生命周期中的各个模型及其优缺点
瀑布模型:应用的最为广泛的一种模型,也是最容易理解和掌握的模型,然而它的缺陷也是显而易见的。
优点:
– 强调开发的阶段性
– 强调早期计划及需求调查
– 强调产品测试
缺点:
– 依赖于早期进行的需求调查,不能适应需求变化
– 由于是单一流程,开发中的经验教训不能应用于本产品过程
– 测试在后期才参与,前期质量无法保证
螺旋模型:综合了基本的瀑布式模型和演化/渐增原型方法。
优点:
– 强调全过程风险管理
– 强调各开发阶段的质量
– 提供机会检讨项目是否有价值继续下去
缺点:
– 每个阶段都要提出多个备选方案,并进行充分的风险分析,研发周期长,效
率低。
– 需要有专门的风险分析人员参与
RUP流程:所有工作流在各个阶段都有体现。
优点:
– 任何功能一经开发就能进入测试以便验证是否符合产品需求
– 在早期对风险进行识别,采取预防措施
– 尽早得到用户的验证
缺点:
– 如果需求一开始并不完全弄清楚,会给总体设计带来困难及削弱产品设计的
完整性。
– 如果缺乏严格的过程管理,就可能退化为原始的无计划的“试—错—改”模
试。
– 不加控制地让用户接触开发并尚未测试稳定的功能,可能对开发和用户都会
产生负面的影响
IPD流程:从整个产品角度出发,不仅仅针对研发。
– 流程是由IBM提出来的一套集成产品开发流程,非常适合于复杂的大型开发项目。从整个产品角度出发,流程综合考虑了从系统工程、研发(硬件、软件、结构工业设计、测试、资料开发等,制造、财务到市场、采购、技术支援等所有流程。是一个阶段性模型,具有瀑布模型的影子。
– 通过复杂的流程把一个庞大而又复杂的系统进行分解并降低风险。通过流程成本来提高整个产品的质量并获得市场的占有。此模式不适合经常变动的需求,若用此模式开发小型项目,成本消耗非常大。