软件开发模型介绍、总结归纳
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
迭代模型
一次迭代过程包括了所有软件开发流程、每一次迭代均产生一个可发布的产品、该产品为最终产品的一个子集。
适用于事先不能完整定义产品的所有需求,计划多期开发的项目。
喷泉模型
以用户需求为动力、以对象为驱动的模型,支持软件复用及多项开发活动的集成,主要支持面向对象的开发方法。
V模型
以测试为中心,为软件生命周期的每一个阶段指定了相应的测试级别:编码阶段<—>单元测试;详细设计阶段<—>集成测试;概要设计阶段<—>系统测试;需求分析阶段<—>验收测试。
敏捷方法(最著名的是极限编程: XP)
一种轻量、高效、低风险、更强调团队协作和沟通的开发方式,适合于中小型开发团队,客户需求模糊或多变。
统一过程
即UP/RUP,基于构件,具有用例驱动、以基本架构为中心、迭代和增量的特点;在时间上分为四个连续的阶段,即初始阶段、细化阶段、构建阶段和交付阶段。
模型
描述
优点
缺点
适用场合
瀑布模型
每个软件过程顺序衔接、一次性通过,最常用。
由文档和风险驱动ቤተ መጻሕፍቲ ባይዱ利于提高大型项目开发的质量和效率。
建设周期长、风险大、难以满足用户需求。
需求明确且很少变更的项目,如二次开发或升级型项目。
螺旋模型
以原型为基础沿螺线旋转、每转一圈都经过计划/风险分析/实施/评估等过程且得到相应新版本、经过若干次螺旋上升得到最终版本。
需要开放式体系结构,可能会产生设计效果差、开发效率低的情况。
需求经常发生改变的软件开发过程。
快速原型模型
快速构建可运行的软件模型,以便理解和澄清问题,进一步细化需求,在新获取需求基础上进行系统开发。
避免由于用户需求不明带来的开发风险。
快速建立的模型加上连续的修改可能造成产品质量低下。
用户需求模糊不明的情况下。
由文档和风险驱动,利于提高大型项目开发的质量和效率。
建设周期长、风险大、难以满足用户需求。
需求经常变化的大型复杂系统。
增量模型
采用随时间进展而交错的线性序列、每个序列产生一个可发布的增量、每个增量产生一个可操作的产品、第一个增量是核心产品。
开始时不用投入大量人力资源、可以先推出核心产品以稳定用户、可以有计划的管理技术风险。
一次迭代过程包括了所有软件开发流程、每一次迭代均产生一个可发布的产品、该产品为最终产品的一个子集。
适用于事先不能完整定义产品的所有需求,计划多期开发的项目。
喷泉模型
以用户需求为动力、以对象为驱动的模型,支持软件复用及多项开发活动的集成,主要支持面向对象的开发方法。
V模型
以测试为中心,为软件生命周期的每一个阶段指定了相应的测试级别:编码阶段<—>单元测试;详细设计阶段<—>集成测试;概要设计阶段<—>系统测试;需求分析阶段<—>验收测试。
敏捷方法(最著名的是极限编程: XP)
一种轻量、高效、低风险、更强调团队协作和沟通的开发方式,适合于中小型开发团队,客户需求模糊或多变。
统一过程
即UP/RUP,基于构件,具有用例驱动、以基本架构为中心、迭代和增量的特点;在时间上分为四个连续的阶段,即初始阶段、细化阶段、构建阶段和交付阶段。
模型
描述
优点
缺点
适用场合
瀑布模型
每个软件过程顺序衔接、一次性通过,最常用。
由文档和风险驱动ቤተ መጻሕፍቲ ባይዱ利于提高大型项目开发的质量和效率。
建设周期长、风险大、难以满足用户需求。
需求明确且很少变更的项目,如二次开发或升级型项目。
螺旋模型
以原型为基础沿螺线旋转、每转一圈都经过计划/风险分析/实施/评估等过程且得到相应新版本、经过若干次螺旋上升得到最终版本。
需要开放式体系结构,可能会产生设计效果差、开发效率低的情况。
需求经常发生改变的软件开发过程。
快速原型模型
快速构建可运行的软件模型,以便理解和澄清问题,进一步细化需求,在新获取需求基础上进行系统开发。
避免由于用户需求不明带来的开发风险。
快速建立的模型加上连续的修改可能造成产品质量低下。
用户需求模糊不明的情况下。
由文档和风险驱动,利于提高大型项目开发的质量和效率。
建设周期长、风险大、难以满足用户需求。
需求经常变化的大型复杂系统。
增量模型
采用随时间进展而交错的线性序列、每个序列产生一个可发布的增量、每个增量产生一个可操作的产品、第一个增量是核心产品。
开始时不用投入大量人力资源、可以先推出核心产品以稳定用户、可以有计划的管理技术风险。