瀑布模型
瀑布模型适用于需求明确,二次开发的项目,以文档作为驱动的软件项目模型。
瀑布无法对需求的变化作出灵活应对,在需求不是很明确的时候,使用瀑布模型经常会导致项目常常延期,难以把控。
优点:易于理解 管理成本低
缺点:客户需求必须明确
V模型是经典的瀑布模型
演化模型
演化模型是迭代的过程模型,专门应对细节问题没有定义 需要不断演变的软件产品的过程模型。逐步开发更完整的版本。适用于对软件需求缺乏准确认识的情况。
典型的演化模型有原型模型和螺旋模型。
原型模型
原型模型:在开发中需求规格说明书常常是不完整的,不准确的,经常会发生需求变更。瀑布模型难以适应这种不确定的变化,于是有了快速原型。
原型方法适用于用户需求不清楚经常变化的情况,当系统规模不大也不复杂的时候,可以使用原型方法,但往往只是应用于需求分析的阶段。
原型模型有分为探索型原型、实验型原型、演化式原型。
探索型是要弄清目标的要求,探讨多种方案的可行性。
实验型目的是验证方案的合理性,是在大规模开发实现前用于考查方案是否合适。
演化型目的是将原型作为系统的一部分,通过对原型的多次改进,最终演化为最终系统。
螺旋模型
螺旋模型:融入了原型、瀑布、演化,还加入了风险分析。
适用于庞大复杂具有高风险的系统。
增量模型
增量模型:融合了瀑布和原型,将需求分段为一系列增量产品。第一个增量往往是核心模型,较早就将核心模块交付给用户审查,这样第一个可交付版本所需成本和时间很少,有增量表示的各个模块所承担的风险不大,可以减少用户的需求变更。
喷泉模型
喷泉模型:是一种面向对象模型 具有迭代性、无间隙性,以用户需求为动力,以对象作为驱动的模型。允许各个开发活动交叉、迭代进行。
构件组装模型
本质是演化模型,以迭代方式构建,把各个模块作为标准构件,这些构件经过验证,出错概率相对低。再将构件组装成为软件。
因此复用性高、成本低、可靠性高。
统一过程模型
统一过程模型(UP):考试中RUP和UP均指同一个东西。
以用例驱动、风险驱动,以架构为中心,迭代且增量。
分为四个阶段:起始阶段、精化阶段、构建阶段、移交阶段。
起始阶段:主要的工作产品有构想文档、初始用例模型、初始项目术语表、初始业务用例、项目计划。专注项目初创活动,完成生命周期目标。
精化阶段:建立架构基础,完成可执行的生命周期架构原型。
构建阶段:把相应的构件组装起来或者开发新构件,并进行测试。
移交阶段:进行beta测试,综合用户反馈,提交增量、产品发布。
在构建阶段结束时产生“在适当的平台上集成的软件产品”
RUP应用了角色、活动、制品和工作流。其中角色表述谁做、制品表示做什么、活动表述怎么做、工作流表述什么时候做。
敏捷方法
敏捷方法:尽可能早地持续地对有价值的软件进行交付。一般适用于小型项目。具有灵活性,能够在开发周期的后期增加或改变需求。
敏捷开发有很多典型方法,如:
极限编程、水晶法、并列争求法、自适应软件开发、敏捷统一过程(AUP)。