软件开发模型

常见的软件开发模型:
(1)瀑布模型:是最早使用的软件生存周期模型之一。
软件开发模型
瀑布模型的主要缺点:软件需求分析的准确性很难确定,甚至是不可能和不现实的;用户和软件项目负责人需要相当长的时间才能得到初始版本,此时如果改变需求将会带来巨大损失。因此该模型在应用上有较大的局限性。
(2)原型模型:通过快速开发一个软件的原型之后征求用户的合理化意见对原型进行修改完善,确认软件系统的需求并达到一致的理解,进一步开发实际系统。
软件开发模型
(3)螺旋模型:在快速原型基础上扩展而成
软件开发模型
这种模型把整个软件开发流程分为多个阶段,每一个阶段都是由4部分构成:目标设定、风险分析、开发和有效性验证和评审。该模型支持大型软件的开发,适用于面向规格说明、面向过程和面向对象的软件开发方法。
(4)基于可重用构件的模型
构件的重用提高了软件的可靠性和易维护性,程序在修改时产生较少的副作用,因此基于可重用构件的软件过程模型逐渐被广泛使用。
软件开发模型
在一个系统开发过程中,一旦标识出候选构件,则可以在构件库中检索该构件,确认这些构件是否存在,如果构件已存在,就可以从构件库中取出重用。如果一个候选件在构架库中并不存在,则进行新构件的开发。新构件开发成功后,一方面用它来构造目标系统,另一方面可以把它存入构件库中。软件目标系统是基于可重用构件的一种集成,将大大提高软件的可靠性和生产率。
(5)基于面向对象的模型
构件重用是面向对象技术的重要优势之一,对象技术强调了类的创建于封装,类可以在不同的应用系统中被重用。对象技术为基于构件的软件过程模型提供了更强的技术框架
软件开发模型
该模型描述了软件从软件需求开始,通过检索重用构件库,一方面进行构件开发,另一方面进行需求开发,需求开发完成后,在进行面向对象分析过程中,可以在重用构件库中读取构件,并快速建立OOA(object-oriented analysis)原型.同理,在进行面向对象设计时,可以在重用构件库中读取构件,并快速建立OOD(Design).最后利用生成技术,建造一个目标系统,甚至通过可重用的子系统而创建更大的系统.
(6)基于四代技术的模型:主要应用于大型数据管理系统的软件开发过程,研发人员不必使用编程的方法与算法完成某一功能,而是利用一些生成器,例如菜单、报表、屏幕生成器、图形软件包,从而构造用户需要的应用系统生成器自动生成源程序。这一过程被广泛应用于数据库管理系统中。

敏捷方法:
项目失败的原因最终都可以追溯到信息没有及时准确地传递到应该接受它的人。在开发过程中,项目的需求是不断在变化的,管理人员之间、开发人员之间以及管理人员与开发人员之间,都必须不断地了解这些变化,对这些变化做出反应,并实施在随后的开发过程中。敏捷方法一般都是按照高内聚、低耦合的原则将项目划分为若干小组,以增加沟通,提高敏捷性及应变能力。
敏捷方法核心思想:适应型非可预测型、以人为本非以过程为本、迭代增量式的开发过程。
主要的敏捷方法:XP极限编程在一些对费用控制严格的公司中广泛使用;cockburn的水晶系列方法与XP方法的高度纪律性不同,它采用最少纪律约束而仍能成功的策略,在产出效率和易于运作上达到一种平衡;开放式源码(相当于目前一套代码项目)任何人将自己负责的代码上传给整个软件的维护者,维护者将部分代码归并到整个软件版本库中。