常用的软件工程软件过程模型有哪些些

《软件工程》作业及答案_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
《软件工程》作业及答案
上传于|0|0|暂无简介
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩37页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢◆基础架构(8)
<span style="color:#.瀑布模型
思想:①制作时间 工序化简
& & & ② 功能实现制作分开
& & 优点:
&1)为项目提供了按阶段划分的检查点。
&2)当前一阶段完成后,只需要去关注后续阶段
(1) 阶段之间产生大量的文档,极大地增加了工作量;
(2)用户只有等到整个过程的末期才能见到开发成果,增加了开发的风险;
(3) 早期的错误可能要等到开发后期的测试阶段才能发现会带来严重的后果。
开发方法:六个开发阶段,每个阶段都会产生一定的文档
<span style="color:#.快速原型模型(用户和设计人员总是在一起)
优点:开发与用户在一起,减少了开发的风险
缺点:开发技术与工具不是主流,后期的不断修改会降低产品质量;缺少创新
<span style="color:#,渐增模型,(知识型软件)
基本思想:不完全系统——全面
优点:开发与用户在一起,适应变化,降低开发的风险
缺点:原型偏差,文档不严谨;随时进行修改,会使软件的整体结构失去控制
<span style="color:#,螺旋模型(内部大型工程)
模型的流程:
多次原型反复开发并增加风险评估
制作计划——风险分析——实施工程——客户评估
<span style="color:#.喷泉模型(面向对象软件模型)
——迭代:重复,演进
各个阶段无间隙,可以同时进行
优点:提高了工作的效率,节省了时间,适用于面向对象软件开发过程
缺点:由于各个工作之间是相互重叠,不利于项目管理;增加了审核的难度
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:44401次
积分:6692
积分:6692
排名:第3026名
原创:102篇
评论:2882条
阅读:1470
文章:11篇
阅读:7883
(3)(5)(5)(7)(5)(4)(3)(4)(4)(3)(5)(5)(3)(4)(4)(8)(5)(15)(5)(5)(1)(1)3928人阅读
转自:/kzloser/archive//2578835.html
1.里程碑或基线驱动。2.过程逆转性很差或者说不可逆转。逆转可能会延误工期,增加成本,造成损失&&
1.开发阶段清晰,便于评审、审计、跟踪、管理和控制。
1.不可逆或很难可逆。2.问题会积累,错误会传递发散扩大,导致成本和质量失控。
1.在开发时间内需求不变化或很少变化。2.分析设计人员对此领域非常熟悉。3.低风险项目。4.用户使用环境稳定(如系统软件,工具软件)
快速原型模型
1.容易适应需求的变化
1.克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险。
1.所使用的开发工具和技术不一定符合主流的发展;快速建立起来的系统加上连续的修改可能会导致产品质量低下。
1.需求不明确或复杂系统。2.用户无法自主提出应用需求。
1.软件由一系列增量构件组成
1.人员分配灵活,刚开始不用投入大量人力资源。如果核心产品很受欢迎,则可增加人力实现下一个增量。当配备人员不能在设定的时间内完成产品时,它提供了一种先推进核心产品的途径,这样即可先发部分功能给客户,对客户起到镇静剂作用。2.增量能够有计划的管理技术风险。
1.由于各个构件是逐渐并入已有的软件体系结构中,所以加入构件必须不破坏已构造好的系统部分,这需要软件具备开放式的体系结构。2.在开发过程中,需求变化是不可避免的,增量的灵活性可以使其适应这种变化的能力大大优于瀑布和快速原型模型,但也容易退化为边改边做模型,从而使软件过程的控制失去整体性。3.如果增量包之间存在相交的情况且未很好处理,则必须做全盘系统分析,这种模型将功能细化后分别开发的方法较适应于需求经常改变的软件开发过程
1.系统容易拆分。2.开发人力比较少。3.特别适用于商业软件(如QQ,网游)
1.是一种周期性的方法进行系统开发。2.有许多“中间版本”。3.每个周期都包括需求定义、风险分析、工程实现和评审4个阶段
1.设计上灵活,可在项目各个阶段进行变更。2.以小的分段来构建大型系统,使成本计算变得简单容易。3.客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性。
1.建设周期长,而软件技术更新比较快,所以经常出现软件开发结束后,和当前的技术水平有了很大的差距,无法满足当前用户需求。
1.系统庞大,风险高。2.需求不太明确。
1.该模型的各个阶段没有明显的界限,开发人员可以同步进行开发。
1.提高软件项目开发效率,节省开发时间,适用于面向对象的软件开发过程。
1.由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理。2.要求严&#26684;管理文档,使得审核难度加大,尤其是面对可能随时加入的各种信息、需求与资料的情况。
1.面向对象的软件开发过程
详细介绍如下:
阶段间具有顺序性和依赖性:
前一阶段完成后,才能开始后一阶段前一阶段的输出文本为后一阶段的输入文本
推迟实现的观点质量保证:
每个阶段必须交付出合&#26684;的文档对文档进行审核
开始需要把需求做到最全惧怕用户测试中的反馈,惧怕需求变更mux
适应于内部的大规模软件开发:螺旋模型强调风险分析,许多客户都无法接受和相信这种分析因此适合于大规模软件项目(执行风险分析将大大影响项目的利润,进行风险分析就毫无意义)软件开发人员应该擅长寻找可能的风险,准确地分析风险,否则将会带来更大的风险
设计上的灵活性,可以在项目的各个阶段进行变更.以小的分段来构建大型系统,使成本计算变得简单容易客户始终参为保证了项目不偏离正确方向以及项目的可控性客户始终掌握项目的最新信息,从而他或她能够和管理层有效地交互.客户认可这种公司内部的开发方式带来的良好的沟通和高质量的产品.
很难让用户确信这种演化方法的结果是可以控制的.建设周期长,而软件技术发展比较快,所以经常出现软件开发完毕后,和当前的技术水平有了较大的差距,无法满足当前用户需求.
在于您不需要在刚开始的时候就把所有事情都定义的清清楚楚.在定义最重要的功能时,去实现它,然后听取客户的意见,之后再进入到下一个阶段.如此不断轮回重复,直到得到您满意的最终产品
每轮循环包含如下六个步骤:
确定目标,可选项,以及强制条件识别并化解风险评估可选项开发并测试当前阶段规划下一阶段确定进入下一阶段的方法步骤.
快速原型模型
优点:  克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险。  缺点:  所选用的开发技术和工具不一定符合主流的发展;快速建立起来的系统结构加上连续的修改可能会导致产品质量低下。
探索型原型:  目的是要型清用户的需求,确定所期望的特性,并探索各种方案的可行性。它主要针对开发目标模糊,实验型原型:  主要用于设计阶段,考核;实现方案是否合适,能否实陋演化型原型:  主要用于及早向用户提交一个原型系统,该原型系统或者包含系统的框架,或者包含系统的主要功能,在得到用户的认可后,将原型系统不断扩充演变为最终的软件系统
原型的运用方式:
抛弃策略是将原型用于开发过程的某个阶段,促使该阶段的开发结果更加完整、准确、一致、可靠,该阶段结束后,原型随之作废。探索型和实验型就是采用此策略的。附加策略是将原型用于开发的全过程,原型由最基本的核心开始,逐步增加新的功能和新的需求,反复修改反复扩充,最后发展为用户满意的最终系统,演化型快速原型就是采用此策略
第一构件完成软件提供的基本最核心的功能后面的增构件是为了第一构件提供服务提供功能的而且避免吧难题退后,首先完成的应该是高风险和重要部分
每个新的构件集成到现有的软件结构中必须破坏原来以开发的产品,所以必须定义很好的接口
短时间内向用户提供可完成部分工作的产品逐步增加产品功能可以使用户有时间了解和适应新产品开放结构的软件拥有的维护性明显好于封闭结构的软件
容易退化为边做边改模型,从而使软件过程的控制失去整体性 如果增量包之间存在相交的情况且未很好处理,则必须做全盘系统分析
喷泉模型不像瀑布模型那样,需要分析活动结束后才开始设计活动,设计活动结束后才开始编码活动.该模型的各个阶段没有明显的界限,开发人员可以同步进行开发.其优点是可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程.
由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理.此外这种模型要求严&#26684;管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况.
演化模型主要针对事先不能完整定义需求的软件开发.用户可以给出待开发系统的核心需求,并且当看到核心需求实现后,能够有效地提出反馈,以支持系统的最终设计和实现
根据用户的核心需求,设计,编码,测试,后提交用户精化:根据以能满足用户核心需求的核心系统上,增加用户反馈的其他全部功能
任何功能一经开发就能进入测试以便验证是否符合产品需求开发中的经验教训能反馈应用于本产品的下一个循环过程,大大提高质量与效率开发中的经验教训能反馈应用于本产品的下一个循环过程,大大提高质量与效率大大有助于早期建立产品开发的配置管理
主要需求开始并不完全弄清楚的话,会给总体设计带来困难及削弱产品设计的完整性,并因而影响产品性能的优化及产品的可维护性缺乏严&#26684;过程管理的话,这生命周期模型很可能退化为“试-错-改”模式不加控制地让用户接触开发中尚未测试稳定的功能,可能对开发人员及用户都产生负面的影响
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:101759次
积分:1817
积分:1817
排名:第19491名
原创:65篇
转载:100篇
(1)(1)(5)(5)(6)(3)(2)(4)(1)(4)(7)(13)(5)(11)(21)(1)(20)(18)(17)(19)(4)软件工程的目标与常用模型_软件学园_科技时代_新浪网
软件工程的目标与常用模型
【IT168 技术文章】&&& 软件工程的目标是提高软件的质量与生产率,最终实现软件的工业化生产。质量是 软件需求方最关心的问题,用户即使不图物美价廉,也要求个货真价实。生产率是软件 供应方最关心的问题,老板和员工都想用更少的时间挣更多的钱。质量与生产率之间有 着内在的联系,高生产率必须以质量合格为前提。如果质量不合格,对供需双方都是坏 事情。从短期效益看,追求高质量会延长软件开发时间并且增大费用,似乎降低了生产 率。从长期效益看,高质量将保证软件开发的全过程更加规范流畅,大大降低了软件的 维护代价,实质上是提高了生产率,同时可获得很好的信誉。质量与生产率之间不存在 根本的对立,好的软件工程方法可以同时提高质量与生产率。&&& 软件供需双方的代表能在餐桌上谈笑风生,归功于第一线开发人员的辛勤工作。质 量与生产率的提高就指望程序员与程序经理。对开发人员而言,如果非得在质量与生产 率之间分个主次不可,那么应该是质量第一,生产率第二。这是因为:(1)质量直接体 现在软件的每段程序中,高质量自然是开发人员的技术追求,也是职业道德的要求。(2) 高质量对所有的用户都有价值,而高生产率只对开发方有意义。(3)如果一开始就追求 高生产率,容易使人急功近利,留下隐患。宁可进度慢些,也要保证每个环节的质量, 以图长远利益。&&& 软件的质量因素很多,如正确性,性能、可靠性、容错性、易用性、灵活性、可扩 充性、可理解性、可维护性等等。有些因素相互重叠,有些则相抵触,真要提高质量可 不容易啊!&&& 软件工程的主要环节有:人员管理、项目管理、可行性与需求分析、系统设计、程 序设计、测试、维护等,如图 1.1 所示。图 1.1&&& 软件工程的主要环节&&& 软件工程模型建议用一定的流程将各个环节连接起来,并可用规范的方式操作全过 程,如同工厂的生产线。常见的软件工程模型有:线性模型(图 1.2),渐增式模型(图1.3),螺旋模型,快速原型模型,形式化描述模型等等& [Pressmam 1999, Sommerville 1992]。 &图 1.2&&& 软件工程的线性模型图 1.3&&& 软件工程的渐增式模型&&& 最早出现的软件工程模型是线性模型(又称瀑布模型)。线性模型太理想化,太单纯, 已不再适合现代的软件开发模式,几乎被业界抛弃。偶而被人提起,都属于被贬对象, 未被留一丝惋惜。但我们应该认识到,&线性&是人们最容易掌握并能熟练应用的思想方 法。当人们碰到一个复杂的&非线性&问题时,总是千方百计地将其分解或转化为一系 列简单的线性问题,然后逐个解决。一个软件系统的整体可能是复杂的,而单个子程序 总是简单的,可以用线性的方式来实现,否则干活就太累了。线性是一种简洁,简洁就是美。当我们领会了线性的精神,就不要再呆板地套用线性模型的外表,而应该用活它。 例如渐增式模型实质就是分段的线性模型,如图& 1.3& 所示。螺旋模型则是接连的弯曲了 的线性模型。在其它模型中都能够找到线性模型的影子。&&& 套用固定的模型不是程序员的聪明之举。比如&程序设计&与&测试&之间的关系, 习惯上总以为程序设计在先,测试在后,如图 1.4(a)所示。而对于一些复杂的程序, 将测试分为同步测试与总测试更有效,如图 1.4(b)所示。图 1.4& (a)程序设计在先测试在后图 1.4& (b)测试分为同步测试与总测试&&& 不论是什么软件工程模型,总是少不了图& 1.1& 中的各个环节。
电话:010-
不支持Flash

我要回帖

更多关于 软件测试过程模型 的文章

 

随机推荐