瀑布模型(Waterfall) 参考资料http://baike.baidu.com/view/551037.htm
后来软件开发模型的基础,最早也是最基础的软件生命周期模型,好坏参半,后面是根据各种不同的软件规模或环境制定出的不同的软件生命周期策略。
V模型 参考资料http://baike.baidu.com/view/249855.htm
最常用的软件开发生命周期模型,它基于waterfall将test放到了最后一个阶段,codeing与unit test之后进行各个阶段的test,此法非常适合小型项目开发,需求比较明朗,开发速度比较快。
快速原型模型 参考资料http://baike.baidu.com/view/1449532.html
顾名思意就是先快速的构造一个系统的原型,里面并不进行真实的实现,然后和用户讨论并确定需求,最后根据细化的软件需求开发人员修正至完善然后进行完整的实现测试和维护。这种开法方式适合于需求不那么明朗的情况,给开发人员和用户建立起一个以原型为基础的沟通楼梁,这导致构造原型的技术和工具不一定是主流的发展,而且连续修改并缺乏整体的项目架构分析会导致产品的质量低下。
增量模型(Incremental)参考资料http://baike.baidu.com/view/1449573.htm
我认为产品开发都使用这个软件生命周期,它将一个软件开发的迭代看出一个产品的版本升级,一代一代的产品增量发展下去,但要求是这个设计产品的人必须要清楚了解这个行业的软件,而且能平衡每一个增量之间的关系,不能让增量包之间存在冲突,它的优点更大于缺点,非常适合以WEB产品为中心的软件。
演化模型(Evolution)参考http://blog.csdn.net/dabingCN/archive/2009/06/04/4243499.aspx
它类似于快速原型的迭代方式,但是它不是每次建立一个无功能的原型而是建立一个以核心为基础的软件,经常需求、设计、编码、测试、集成.etc,接下来不断的重复这个步骤,不断加入功能进行演化出新系统,但是需要强调的是一定要有计划,否则就成了试-错-改的无止境开发了。
螺旋模型(Spiral) 参考资料http://baike.baidu.com/view/551040.htm
大型项目采用这种软件开发生命周期方法,这种方法引入了风险控制法........
XP敏捷开发模型 参考资料http://www.bjx.com.cn/files/wx/xddzjs/2002-2/9.htm
它是在生产过程中观察软件开发的高效或缓慢因素而得出的,由一系列的原则结成,这种开发适合需求变更比频繁的中小型项目,特点是交流、简洁、反馈、进取要求开发人员和用户保持交流,使用较小的开发单位提高对于变更的灵活度。综合以上的各种开发模型,各有利弊,它是前人留下来的宝贵的软件工程开发经验,在真正的软件生命周期选择的时候一定要认真思考项目或产品,开发团队条件等综合因素,究竟需要使用哪种开发方法。