软件工程是软件开发过程中必不可少的一项环节,而在进行软件设计时选择开发模型也是非常重要的,选择合适的开发方式有利于提高开发的效率,使软件能尽快的使用。
下面简单介绍一下软件开发模型的使用场景和他们的优缺点。至于具体的介绍大家有兴趣可以查一下。
瀑布模型
适用于:需求明确的项目大型系统的开发。
优点:可强迫开发人员采用规范的方法,严格规定各阶段必须提交的文档,要求每个阶段结束后,都要进行严格评审。
缺点:过于理想,缺乏灵活。
演化模型
螺旋模型
从初始模型渐进到最终产品原型过程。 “渐进式”开发方法优点:因为是通过循环式开发,所以能逐渐了解项目的需求,同时还可以及时发现项目的缺陷,及时预防。提高项目的成功率。
缺点:
1、如果所有的产品需求在一开始并不完全弄清楚的话,会给总体设计带来困难及削弱产品设计的完整性,并因而影响产品性能的优化及产品的可维护性。
2、如果缺乏严格的过程管理的话,这个生命周期模型很可能退化为一种原始的无计划的"试-错-改"模式。
3、如果不加控制地让用户接触开发中尚未测试稳定的功能,可能对开发人员及用户都产生负面的影响。
增量模型
快速原型
它是增量模型的另一种形式;它是在开发真实系统之前,构造一个原型,在该原型的基础上,逐渐完成整个系统的开发工作。适用于:需求不明确的项目。 “抛弃式”开发方法。
优点:用户能尽快的看到系统原型,提出合理的改进意见。
缺点:因为前期需求不明确,所以会反复的修改系统。
喷泉模型
开发过程多次重复。 允许开发活动交叉、迭代进行。优点:喷泉模型不像瀑布模型那样,需要分析活动结束后才开始设计活动,设计活动结束后才开始编码活动。该模型的各个阶段没有明显的界限,开发人员可以同步进行开发。其优点是可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程。
缺点:由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理。此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。
V模型开发
以测试为驱动的开发模型。单元测试在编码阶段完成、集成在详细设计阶段完成。确认测试在概要设计阶段完成。适用于:一些传统信息系统应用的开发。
缺点:V模型仅仅把测试过程作为在需求分析、系统设计及编码之后的一个阶段,忽视了测试对需求分析,系统设计的验证,需求的满足情况一直到后期的验收测试才被验证。