软件生命周期模型优缺点及适用范围
软件生命周期模型优缺点及适用范围软件过程定义软件生命周期模型1瀑布模型2快速原型模型3增量模型4螺旋模型5喷泉模型软件过程定义
软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤
软件生命周期模型
1,瀑布模型
特点:
1),阶段间具有顺序性和依赖性
2),推迟实现的观点
3),质量保证的观点
优点:
1),可强迫开发人员采用规范的方法(例如:结构化技术);
2),严格地规定了每个阶段必须提交的文档;
3),要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。
缺点:
1),“瀑布模型是由文档驱动的”在可运行的软件产品交付给用户之前,用户只能通过文档来了解产品是什么样子的。但是通过写在纸上静态的规格说明,很难全面正确的认识动态的软件产品。
适用范围:
需求明确,小规模软件开发。
2,快速原型模型
特点:
快速建立起能够在计算机上运行的程序(最终产品功能的一个子集)。
优点:
软件产品的开发基本上是线性的
缺点:
必须迅速地构建原型然后根据用户意见循序的修改原型
适用范围:
用户需求不明确,需要通过构建原型来清楚的了解用户的真实需求。
3,增量模型
特点:
把软件产品作为一系列的增量构件来设计,编码,集成和测试。每个构件有多个相互作用的模块构成,并且能够完成特定的功能。使用增量模型时,第一个增量模型时,第一个增量构件往往实现软件的基本需求,提供最核心的功能。
优点:
1),能够在较短的时间内向用户提交可完成部分工作的产品;
2),逐步增加产品功能可以使用户有较充裕的时间学习适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。
缺点:
1),较难把每个新的增量构件集成到现有的软件体系结构中,而又不破坏原来已经开发出的产品。
2),增量模型本身是自相矛盾的,它一方面要求开发人员把软件当做一个整体,另一个方面又要求开发人员把软件构件序列,每个构件本质上都独立于另一个构件,除非开发人员有足够的技术能力协调好这一明显的矛盾,否则增量模型开发出来的产品可能并不能令人满意。
适用范围:
软件开发周期较长的软件,有持续的合作。
4,螺旋模型
特点:
螺旋模型的基本思想是,使用原型及其他方法来尽量降低风险,即是在每个阶段之前都增加了风险分析过程。
优点:
1),对可选方案和约束条件的强调有利于已有软件的重用,也有利于把软件质量作为软件开发的一个重要目标;
2),减少了过多测试(浪费资金)或者不足(产品故障多)所带来的风险;
3),在螺旋中维护的只是模型的另一个周期,在维护和开发之间没有本质的区别;
缺点:
除非软件开发人员具有丰富的风险评估经验和这方面的专门知识,否则将出现真正的风险,当项目实际上正在走向灾难时,开发人员可能还认为一切正常。
使用范围:
内部软件开发的大规模软件项目。
5,喷泉模型
特点:
面向对象的软件开发
优点:
1),对生命周期各阶段的区分变得不重要,不明显了;
2),分析阶段得到的对象模型也适用设计阶段和实现阶段;
3),提高软件项目开发效率,节省开发时间
缺点:
1),开发过程过分无序;
2),面向对象范型本身要求经常对开发活动进行迭代或求精;
3),在开发过程中需要大量的开发人员,因此不利于项目的管理。
适用范围:
面向对象的软件开发过程