典型的软件过程几种模型

一、典型的软件过程
1、定义:瀑布过程模型(Wiston Royce):又称经典的生命周期模型,是一个系统的,顺序的
软件开发方法,以用户需求分析开始,通过策划,建模,构建和部署的过程,最终提
供完整的软件支持
2、特定:
1、各阶段相互分离的,且相互之间有顺序性和依赖性
前一段工作完成之后,后一阶段的工作才能开始
后一个阶段的工作结果依赖于前一个阶段工作的正确结果输出
2、推迟编码:严格先设计和编码
3、文档驱动,保证质量
3、局限性:
1)阻塞状态:等待的时间要远超实际开发时间
2)实际上软件项目很少遵循瀑布模型的顺序的:
客户通常很难清楚的描述所有的需求,而瀑布模型却要求必须开始就明确。。。
架构设计很难一开始就设计完美。。
3)客户必须有足够的耐心,因为只能等待接近尾声的时候才能看到项目结果:
系统存在重大的问题/系统不满足用户的预期
4、适用项目
项目定义的需求非常稳定,且正确性非常重要每一步都需要验证的项目
5、为Wiston Royce正名:
1)相邻的步骤间需要回溯
2)模型要走两遍,先有一个模拟版本,再次基础之上手机反馈,改进各个步骤,
并交付一个最终的版本。

二、增量模型(1996 史蒂夫. 迈克尔康奈尔)
1、采用瀑布模型,如果你的客户要求你在一个不可能完成的时间上提交产品,你改怎么办?
–》首先实现一个核心(基本),然后在后续版本中细化和扩充
–》将待开发的软件模块化,将每个模块作为一个增量组件,从而分批次的分析,设计,
编码和测试增量组件。
2、特点:
(1)缩短用户使用时间的时间
(2)有利于开发者逐步积累开发经验,由于于技术复用
(3)以组件的形式进行开发的,降低风险,一个周期(构件)内的错误不会影响下一个
周期(构件)中的错误
(4)核心组件最先被开发的,每个构件集成,不断的测试,
保证了核心组件的可靠性
(5)需求是明确的,体系结构明确的。
3、缺点:
(1)、待开发的软件必须可以被模块化,如果不能模块化/很难模块化。。。
4、难点:
(1)、必须要有一个开放式的体系结构(把心的增量构件集成到现有体系结构中
不会破坏原有的产品)
5、适用项目:
(1)可分批进行交付
(2)可被模块化
(3)开发人员对应用领域不熟悉,难以一次性进行系统开发

三、演化模型:快速原型
系统需求不明确,交付时间严格限制
增量模型:功能的数量上去迭代的
演化模型:功能的深度和细化程度上
1、定义:利用原型辅助软件开发的一种新思想,经过简单的快速分析,快速实现一个原型,
用户与开发者在试用了原型过程中加强沟通和反馈,通过反复的复审,评价和
改进,较少误解,弥补抖动,适应需求的变化。
–》明确需求+可运行的原型系统。
2、可运行的原型系统确定了需求之后,它应该被如何处理?
构建第一个系统通常都是不好用的,很慢,太多,很难用,或者兼而有之。
—丢弃掉,重新设计。
–》稍作修改,成为真实系统(几乎很少)。
3、优点:
较少风险:需求不明确的风险
4、缺点:
(1)利用相关者看到你的软件产品(原型)之后–》随便搭建,并没有考虑质量
和长期的可维护性,不愿意重建了,要求稍作修改投入使用。
(2)软件工程师为了快速搭建一个原型系统,选用的技术或者工具都是他所熟悉,
可能这些技术或者工具都是付符合技术走向的。使用的算法低效的。。。
5、适用的项目
(1)需求不明确
(2)开发工程师可能对算法的效率,操作系统的适用性,人机交互的形式没有把握。
6、说明:
当做一门技术使用。

四、演化模型:螺旋模型(1988 Barray Beohm)
1、定义:
一种风险驱动型的过程模型,将快速原型和瀑布模型进行了迭代式的融合。
显著特点:1、采用循环的方式逐步加深系统的定义和实现的深度
2、确定了一系列的里程碑作为支撑,快速得到用户认可
2、描述:
(1)若干个螺旋线组成,每个回路表示软件过程的一个阶段,从里到外,概要设计-》
需求-》设计-》。。。
(2)每个回路分为4分小阶段
a)指定计划:为项目的这个阶段定义目标,指定一些可选的实施方案,
弄清项目的开发限制(软件)
b)风险分析:分析评估所选方案,考虑如何识别和消除风险,构建原型
c)实施阶段:开发与验证
d)客户的评价:修改,指定下一个工作计划
3、优点:
(1)对可选方案的构建条件的强调,有助于该方案的重用
(2)减少了过多的测试(浪费资源)和测试不足(故障多)带来的风险
4、缺点:
(1)强调风险分析,要求客户接受和相信这种分析,并作出反应–》不容易
(2)如何风险分析极大的影响了项目的利润。。。
(3)风险评估需要丰富的风险经验和专门的知识,如果没有及时发现,,,,
(4)过多迭代增加成本,延迟交付时间
5、适用项目:
(1)大型的,内部的,高风险的项目中

五、演化模型:喷泉模型(1990 B.H Soller/ J.M Edwards)
1.定义:一种以需求动动力,以对象为驱动的模型,主要用于描述面向对象的软件
开发过程,强调迭代和无间隙(各个活动间没有明确的边界)的特点。
2、优点:各阶段可同步进行,提高开发效率,节省时间
3、缺点:
(1)各阶段重合,需要大量开发人员
(2)严格管理文档,审核难度比较大。
4,适用项目:
Rational 统一过程
敏捷开发:极限过程
微软的解决方案。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值