◆典型的信息系统项目的生命周期模型模型定义瀑布模型 瀑布模型是经典的软件开发模型,开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,因此,如果有信息未被覆盖或者发现了问题,那么最好“返回”上一个阶段并进行适当的修改,项目开发进程从一个阶段“流动”到下一个阶段,每个阶段之间的依赖性强V模型V模型的价值在于它非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发各阶段的对应关系,在快速应用开发模型的基础上演变而来,由于将整个开发过程构造成一个V字形而得名。V模型强调软件开发的协作和速度,将软件实现和验证有机地结合起来,在保证较高的软件质量情况下缩短开发周期。原型化模型它是在开发真实系统之前,构造一个原型,在该原型的基础上,逐渐完成整个系统的开发工作。快速原型模型的第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求。通过逐步调整原型使其满足客户的要求,开发人员可以确定客户的真正需求是什么;第二步则在第一步的基础上开发客户满意的软件产品。螺旋模型螺旋模型将瀑布模型和增量模型结合起来,螺旋线代表随着时间推进的工作进展;开发过程具有周期性重复的螺旋线形状,并加入了风险分析。软件开发演着自内向外旋转,每转一圈都要对风险进行识别和分析,螺旋线第一圈的开始点可能是一个概念项目。从第二圈开始,一个新产品开发项目开始了,新产品的演化演着螺旋线进行若干次迭代,一直运转到软件生命周期结束迭代模型开发迭代是一次完整地经过所有工作流程的过程:需求分析、设计、实施和测试工作流程,在迭代模型中,每个阶段都执行一次传统的、完整的串行过程串,执行一次过程串就是一次迭代。每次迭代涉及的过程都包括不同比例的所有活动。RUP(RarionalUni;fiedProcess)软件统一过程是一种“过程方法”,它就是迭代模型的一种增量模型增量模型融合了瀑布模型的基本成分(重复应用)和原型实现的迭代特征,该模型采用随着日程时间的进展而交错的线性序列,每一个线性序列产生软件的一个可发布的“增量”。在使用增量模型时,第一个增量往往是实现基本需求的核心产品。核心产品交付用户使用后,经过评价形成下一个增量的开发计划,它包括对核心产品的修改和一些新功能的发布。这个过程在每个增量发布后不断重复,直到产生最终的完善产品。喷泉模型喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程。该模型认为软件开发过程自下而上的各阶段是相互重叠和多次反复的,就像水喷上去又可以落下来,类似一个喷泉。各个开发阶段没有特定的次序要求,并且可以交互进行,可以在某个开发阶段中随时补充其他任何开发阶段中的遗漏。优点缺点1)为项目提供了按阶段划分的检查点 2)当前一阶段完成后,只需要去关注后续阶段1)各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量;2)与用户见面晚,从而增加了开发的风险; 3)早期的错误可能要等到开发后期的测试阶段才能发现,发现问题越晚代价越高 适合工程量小、人力资源少并且开发过程中改动不大的项目错误发现时间迟,产生的风险费用高。减少由于软件需求不明确带来的开发风险。所选用的开发技术和工具不一定符合主流的发展;快速建立起来的系统结构加上连续的修改可能会导致产品质量低下。1)设计上的灵活性,可以在项目的各个阶段进行变更。 2)以小的分段来构建大型系统,使成本计算变得简单容易。 3)客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性。 4)随着项目推进,客户始终掌握项目的最新信息,从而他或她能够和管理层有效地交互5)客户认可这种公司内部的开发方式带来的良好的沟通和高质量的产品1)采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失。 2)过多的迭代次数会增加开发成本,延迟提交时间。(1)初始阶段:系统地阐述项目的范围、确定项目的边界,选择可行的系统构架,计划和准备商业文件。商业文件包括验收规范、风险评估、所需资源估计、体现主要里程碑日期的阶段计划。(2)细化阶段:分析问题领域,建立健全体系结构并选择构件,编制项目计划,淘汰项目中最高风险的元素。同时为项目建立支持环境,包括创建开发案例,创建模板、准则并准备工具。(3)构建阶段:完成构件的开发并进行测试,把完成的构件集成为产品,测试产品所有的功能。构建阶段是一个制造过程,其重点放在管理资源及控制运作以优化成本、进度和质量。4)交付阶段:交付阶段的目的是将软件产品交付给用户群俸。当本次开发的产品成熟得足够发布到最终用户时,就进入了交付阶段。人员分配灵活,刚开始不用投入大量人力资源。如果核心产品很受欢迎,则可增加人力实现下一个增量客户可以不断地看到所开发的软件,从而降低开发风险1)由于各个构件是逐渐并入已有的软件体系结构中的,所以加入构件必须不破坏已构造好的系统部分,这需要软件具备开放式的体系结构。2)在开发过程中,需求的变化是不可避免的。增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性。 优点:该模型的各个阶段没有明显的界限,开发人员可以同步进行开发。其优点是可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程。由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理。此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。适用范围图表需求很明确的软件开发项目;在开发时间内需求没有或很少变化;分析设计人员应对应用领域很熟悉;低风险项目(对目标、环境很熟悉);用户使用环境很稳定;用户除提出需求以外,很少参与开发工作适合工程量小、人力资源少并且开发过程中改动不大的项目(1)对所开发的领域比较熟悉而且有快速的原型开发工具;(2)项目招投标时,可以以原型模型作为软件的开发模型;(3)进行产品移植或升级时,或对已有产品原型进行客户化工作时,原型模型是非常适合的螺旋模型强调了风险分析,特别适用于庞大而复杂的、高风险的系统RUP是一种通用的软件过程框架,适用于大多数的软件项目RUP是一种用例驱动的,以架构为中心的,采用迭代增量方式开发的软件工程过程。它汲取了面向对象软件工程领域多年来的优秀研究成果,应用统一建模语言(UML)进行可视化建模,为面向对象的软件系统的开发提供了方法论的指导需求频变的项目在喷泉模型中,各活动之间无明显边界,例如,分析和设计之间没有明显的边界。这种特性称为无间隙性。由于对象概念的引入,只用类和关系来表达分析、设计和实现等活动,从而可以较容易地实现活动的迭代和无间隙,提高软件项目开发效率,节省开发时间。