一、软件的生命周期
软件从最开始被开发直到最后被淘汰的过程称为软件的生命周期。关于软件的生命周期的划分标准不统一、名称也各不相同,但大致都包含计划、分析、设计、编程、测试和维护这几个阶段。
二、常见的软件开发模型
1.瀑布模型
开发过程完全按照软件的生命周期各阶段的顺序,上一阶段完成以后才能开始下一阶段。
优点:开发郭晨采用规范的方法;规定了各阶段必须提交的文档;每个阶段结束后进行严格的评审工作。
缺点:过于理想化、不够灵活、当用户的需求发生变更时需付出高额的代价。
适用范围:用户需求明确并无变更的小型系统的开发。
2.快速原型模型
第一步是快速建立一个能够反映用户主要需求的软件原型,让用户去使用,提出意见;然后开发人员参照用户提出的而易见快速去修改原型,然后再次让用户试用……直到用户认为这个原型系统能够满足其所有的需求,然后开发人员便可以根据该原型系统去完成需求文档,并利用文档去开发满足用户真实需求的软件。
适用范围:需求不够明确的项目。
3.演化模型
也是原型开发模型的一种,但与快速原型模型不同。快速原型模型中原型的作用获得用户的真正需求,一旦需求确定,原型即被抛弃。而演化模型是从初始模型逐渐演化为最终软件产品的渐进过程。快速原型模型是“抛弃式”的,演化模型是“渐进式”的。
4.增量模型
也是原型开发模型的一种,与上面二者不同,增量模型是“递增式”的。该模型将软件划分成为一系列的增量构件。分别进行设计、编程、集成和测试。每个构件有多个相互作用的模块构成,并且能够完成特定的功能。该模型要求软件体系结构必须是开放的,加入薪构件也是比较容易的。
5.螺旋模型
结合瀑布和演化的优点,增加了风险分析。包含4个方面:制定计划、风险分析、实施工程、客户评估。
6.喷泉模型
主要用于描述面向对象的开发过程。名称体现了面向对象开发过程的迭代和无间隙特征。无间隙表示开发过程不存在明显的边界,允许开发活动交叉、迭代进行。
7.基于构件的模型
构件是功能相对独立课重用的软件单元。基于构件的模型是利用模块化方法,将整个系统模块化,服用构件库中的构件,通过组合构造软件的过程。软件的开发不再一切从头开始,开发过程即是构件的组装,维护就是构件的升级、替换和扩充。
优点:构件组装导致了软件的复用性,提高了开发的速率;允许多个项目同时开发,降低了费用,提高了可维护性。
缺点:没有通用的组装标准;可重用性不易协调;构件库的质量会直接影响软件的质量。
8.快速应用开发模型(RAD)
是瀑布模型的一个变种,强调极端的开发周期。通过大量使用可重复用的构建,来缩短开发时间。
9.统一过程方法(UP)
是统一的软件开发过程,是一个通用的过程框架,基于构件,使用统一的建模语言UML。
三个特点:用例驱动、以基本架构为中心、迭代和增量。
四个阶段:初始阶段、细化阶段、构建阶段和交付阶段。四个阶段是一个开发周期,每经过四个阶段就会产生一代软件,但每一次迭代的侧重点都在不同的阶段。
10.极限编程(XP)
是敏捷方法中的一种。
4大价值观:沟通、简单、反馈、勇气
5大原则:快速反馈、简单性假设、逐步修改、提倡更改、优质工作