事物有其自身的成长规律,软件也不例外。一种软件也有其孕育、诞生、成长、成熟和衰亡的生存过程,一般称其为“软件生命周期”。生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,软件生命周期一般分为6个阶段,即制定计划、需求分析、设计、编码、测试、运行和维护。软件过程模型通常由多个阶段组成,阶段之间的次序、重叠、迭代等关系往往与软件项目的范围、规模、复杂性、需求等相关。每个阶段都有特定的内容,并产生特定的成果。软件生命周期中的过程和活动应用在这些阶段中以便完成相应的任务。本文小编将对软件工程领域中常用的软件过程模型进行一个总结,包括瀑布模型、原型模型、迭代模型、螺旋模型、快速应用开发模型、极限模型等。
1.瀑布模型:其最大的特点就是简单,他按照软件生命期划分成六个部分顺序进行。但是这其中也会带来问题,相较于快速原型模型和增量模型,瀑布模型要求用户在最初就提出一套清晰完整的需求,在软件编程之前必须先撰写出详细的需求说明书。用瀑布模型开发的软件系统可能不满足客户的需求。
2.快速原型模型:则是通过一些快速原型语言先构建出软件产品的原型系统,这样可快速的和用户交互,用户通过该原型系统具体的了解该款软件,并通过原型发现用户需求的遗漏,同时用户参与度相较于瀑布模型加大了不少,弥补了瀑布模型的不足。但可能导致系统设计差、效率低,难于维护。
3.智能模型:拥有一组工具(如数据查询、报表生成、数据处理、屏幕定义、代码生成、高层图形功能及电子表格等),每个工具都能使开发人员在高层次上定义软件的某些特性,并把开发人员定义的这些软件自动地生成为源代码。
4.增量模型:是将软件产品作为一系列的增量构件来设计、编码的。这样既可以快速的向用户提交可完成部分功能的产品,有能让用户有较充裕的时间适应新系统。这样的开发模型需要开放式的体系结构,同时可能会导致开发的软件设计差、效率低。
5.喷泉模型:软件开发过程的各个阶段是相互迭代的、无间歇的。软件的某个部分常常被重复工作多次,相关对象在每次迭代中加入渐近的软件成分。适合于面向对象的软件开发,开发效率相对较高。缺点是常规的项目管理方法不适用。
6.迭代模型:每次迭代就会产生一个可发布的产品,也就是把一个大项目拆成若干个小项目,分步实施。适合于分多期实施的项目,第二期的程序代码会完全替换第一期的代码。缺点是项目风险高。
7.混合模型:过程开发模型又叫混合模型(hybridmodel),或元模型(meta-model),把几种不同模型组合成一种混合模型,它允许一个项目能沿着最有效的路径发展,这就是过程开发模型(或混合模型)。
8.演化模型:也称变换模型,在原型基础上经过改进形成最终产品。
9.然而开发软件产品,不可避免的便是风险分析。而螺旋模型的思想便是:使用原型及其他方法来尽可能降低风险。在软件开发的每个阶段,都增加一个风险分析过程。螺旋模型结合了快速原型模型的迭代性质和瀑布模型的系统性和可控性特点,适用于内部开发的大规模软件项目。
小编结语:
综上所诉我们可以看到各个开发模型都有其可取之处,也有不可避免的缺点。软件开发过程中应适当的选择合适的开发模型。几大开发模型也有其共通点。例如瀑布模型是按顺序进行,就如数学中的“线性”开发。而“线性”是人们最容易掌握并能熟练应用的思想方法。一个软件系统的整体可能是复杂的,而单个子程序总是简单的,可以用线性的方式来实现。线性是一种简洁。当我们领会了线性的精神,就可以不再呆板地套用线性模型的外表,而可以用活它。例如增量模型实质就是分段的线性模型,螺旋模型则是接连的弯曲了的线性模型,当然在其它模型中也能够找到线性模型的影子。
今天九种模型的总结到这里就告一段落了,如果您有什么疑问或者有兴趣学习更多相关知识的话,请到编程学习网教育进行咨询,同时,您也可以关注编程学习网公众号~