原文出自:http://www.uml.org.cn/oobject/200911175.asp
软件生命周期可以分为制定计划,需求分析,设计,编码,测试,运行和维护.软件开发模式是跨越整个软件生存周期的系统开发,运行和维护所实施的全部内容光焕发结构框架,给出软件开发活动中各个阶段之间的关系.这里介绍4种常见的开发模式.
(1)瀑布模型
瀑布模型也被称为生存周期模型,其核心思想是按照相应的工序将问题进行简化,将系统功能的实现与系统的设计工作分开,便于项目之间的分工与协件,即采用结构化的分析与设计方法将逻辑实现与物理实现分开.瀑布模型将软件生命周期划分为项目计划,需求分析,软件设计,软件实现,软件测试,软件运行与维护6个阶段.并规定了他们自上而下的次序,每一个阶段都是依次衔接的.
瀑布模型为项目提供了接阶段划分的检查点,这样有利于软件开发过程中人员的组织及管理.瀑布模型在当前阶段完成后才去关注后续阶段,这样有有利于开发大型的项目.然后也存在一定的缺陷.比如当开发成果尚未经过测试时,用户无法看到软件效果,不能得到在开发过程中的及时反馈,增加了项目开发过程的风险.对需求不稳定的项目来说缺乏足够的灵活性.并具要在需求分析阶段要完全确定系统用户所需要的所有需求也相当的困难.
(2)喷泉模型
喷泉模型以对象为驱动,以用户需求为动力.用来描述面向对象的软件开发过程.喷泉模型认为软件开发过程自下而上,各阶段是相互复叠和多次反复的.各个开发阶段没有特定的次序要求,并且可以交互进行.可以在某个开发阶段中随时补充其他任何开发阶段的遗漏
喷泉模型不像瀑布模型那样,需要分析活动结束后才开始设计活动.设计活动结束后才开始编码.该模型的各个阶段没有明显的界限.开发人员可以同步进行开发,其优点是可以提高软件项目开发效率,节省开发时间.但也使开发过程中需要大量的开发人员,因此不利于项目的管理.此处这种模型要求严格管理文档,使得审核的对度加大,尤其是面对可能随时加入各种信息,需求与资料的情况.
(3)基于构件的开发模型
基于构件的开模型利用模块化方法将整个系统模块化,并在一定构件模型的支持下复用构件库中的一个或多个构件,通过组合手段高速率,高质量地构造应用程序软件系统开发的过程.
基于构件的开发方法使得软件开发就得容易,构件组装模型导致了软件的复用,提高了软件开发效率.构件组装模型允许多个项目同时开发,降件了费用,提高了可维护性,可分步提交软件产品.但也因为采用自定义组装结构标准,缺乏通用的组装结构标准,因而引入了软大的风险.可重用性和软件高效性不易协调,并且由于过分依赖于构件,所以构件库的质量影响着产品的质量.
(4)XP方法
敏捷方法.是近几年兴起的一种轻量级的开发方法,它强调适应性而非预测性,强调以人为中心而不是以流程为中心,以及对变化的适应对和人性的关注.
XP(eXtreme Programming)方法是最引人注目的一种敏捷方法.它规定了一组核心价值和方法,消除了大多数重量型开发过程中的不必要产物,建立一个渐进型开发过程.该方法将开发阶段的4个活动(分析,设计,编码和测试)混合在一起,在全过程中采用迭代增量开发,反馈修正和反复测试.
具有以下优点
采用简单计划策略,不需要长期计划和复杂模型,开发周期短.在全过程中中采用迭代增量开发,反馈修正和反复测试.保证了软件的质量.能够适应用户经常变化的需求,提供用户满意的高质量软件