



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、分析被告T系统设计融 M;软件渊试匕漏试报告UA软件维妒切融 MP更改要求瀑布模型1970年温斯顿?罗伊斯(Winston Royce )提出了著名的瀑布模型”,直到80年代早期,它一直是唯一被广泛采用的软件开发模型。瀑布模型核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。从 本质来讲,它是一个软件开发架构,开发过程是通过一系列阶段顺序展开的,从系统 需求分析开始
2、直到产品发布和维护,每个阶段都会产生循环反馈,因此,如果有信息未被覆盖或者发现了问题,那么最好返回”上一个阶段并进行适当的修改,开发进程从一个阶段流动”到下一个阶段,这也是瀑布开发名称的由来。瀑布模型是最早出现的软件开发模型,在软件工程中占有重要的地位,它提供了软件开发的基本框架。其过程是从上一项活动接收该项活动的工作对象作为输入,利用这一输入实施该项活动应完成的内容给出该项活动的工作成果,并作为输出传给下一项活动。同时评审该项活动的实施,若确认,则继续下一项活动;否则返回前面, 甚至更前面的活动。对于经常变化的项目而言,瀑布模型毫无价值。(采用瀑布模型 的软件过程如图所示)殂户要求A系统分析
3、员 M哽目管理员 P程序员T高级程序员U用户瀑布模型的优缺点1、瀑布模型有以下优点:1)为项目提供了按阶段划分的检查点。2)当前一阶段完成后,您只需要去关注后续阶段。3)可在 迭代模型 中应用瀑布模型。增量迭代应用于瀑布模型。迭代1解决最大的问题。每次迭代产生一个可运行的版本,同时增加更多的功能。每次迭代必须经过质量和集成测试。2、瀑布模型有以下缺点:1)在项目各个阶段之间极少有反馈。2)只有在项目生命周期的后期才能看到结果。3)通过过多的强制完成日期和里程碑来跟踪各个项目阶段。瀑布模型的客户需求尽管瀑布模型招致了很多批评,但是它对很多类型的项目而言依然是有效的,如 果正确使用,可以节省大量的
4、时间和金钱。对于您的项目而言,是否使用这一模型主 要取决于您是否能理解客户的需求以及在项目的进程中这些需求的变化程度,对于经常变化的项目而言,瀑布模型毫无价值,对于这种情况,您可以考虑其他的架构来进 行项目管理,比如名为螺旋模型 (spiral model )的方法。在瀑布模型中,软件开发的各项活动严格按照线性方式进行,当前活动接受上一 项活动的工作结果,实施完成所需的工作内容。当前活动的工作结果需要进行验证, 如果验证通过,则该结果作为下一项活动的输入,继续进行下一项活动,否则返回修 改。瀑布模型强调文档的作用,并要求每个阶段都要仔细验证。但是,这种模型的线 性过程太理想化,已不再适合现代的
5、软件开发模式,几乎被业界抛弃,其主要问题在 于:(1)各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作 量;(2)由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发的风险;(3)早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后 果。按照瀑布模型的阶段划分,软件测试可以分为单元测试,集成测试,系统测试。迭代模型早在20世纪50年代末期,软件领域中就出现了迭代模型。最早的迭代过程可能被描述为 分段模型(stagewise model )”,其背景是 H.D.Benington 领导的美国空 军SAGE项目。迭代模型是 RUP ( Rat
6、ional Unified Process ,统一软件开发过程,统一软件过 程)推荐的周期模型。在RUP中,迭代被定义为:迭代包括产生产品发布(稳定、可执行的产品版本)的全部开发活动和要使用该发布必需的所有其他外围元素。所以, 在某种程度上,开发迭代是一次完整地经过所有工作流程的过程:(至少包括)需求 工作流程、分析设计工作流程、实施工作流程和测试工作流程。实质上,它类似小型的瀑布式项目。RUP认为,所有的阶段(需求及其它)都可以细分为迭代。每一次的迭代都会产生一个可以发布的产品,这个产品是最终产品 的一个子集。迭代的思想如图所示。需求业符工程在现代过程方法 XP ( eXtreme Prog
7、ramming ,极限编程)、RUP无一例外地都 推荐、主张采用能显著减少风险的迭代模型。美国国防部原本提倡瀑布过程和观点,在发现那么多采用了瀑布模型的失败的项目之后,不但放弃了对它的要求,而且从1994年的报告开始,积极地鼓励采用更加现代化的迭代模型来取代瀑布模型做法。同 时,中国中科院也提倡选用迭代模型。对众多的开发模型和过程方法,及权威机构的看法,企业应选择什么样的开发模型,应慎重对从以下几方面进行考虑:1、RUP虽然内容极其丰富,定义了选起、精化、构建、产品化4个阶段和业务建模、需求、分析设计、实现、测试、部署等9个工种,提供了一大堆的文档模板,但极易让人误解是重型的过程,实施推广有一
8、定难度。2、再次,在质量管理方面:以实现系统架构、核心功能目标的迭代产品生的工 作成果作为质量控制重点。每次迭代进行系统集成、系统测试,达到对软件质量的持 续验证。每次系统测试,需要回归测试前一次迭代遗留发现的问题。每次迭代发布的 小版本组织客户(包括内部客户、外部客户)进行评价,通过演示操作等方式,评价 该次迭代是否达到预定的目标,并以此为依据来制定下一次迭代的目标。3、最后,在其他方面:每次迭代成果须进行配置管理,版本控制很重要。在整 个迭代过程中风险无处不在,建议每周作一次风险跟踪。同时通过重点关注进度、工 作量、满意度、缺陷等数据收集,关注每次迭代情况。总之,选择一个合适的生命周期模型
9、,并应用正确的方法,对于任何软件项目的 成功是至关重要。企业在选择开发模型应从项目时间要求、需求明确程度、风险状况 等选择合适的生命周期模型。迭代模型的选择使用条件1、在项目开发早期需求可能有所变化。2、分析设计人员对应用领域很熟悉。3、Wj风险项目。4、用户可不同程度地参与整个项目的开发过程。5、使用面向对象的语言或统一建模语言(Unified Modeling Language , UML )。6、使用 CASE (Computer Aided Software Engineering ,计算机辅助软件工 程)工具,如 Rose (Rose是非常受欢迎的物件软体开发工具。)。7、具有高素质
10、的项目管理者和软件研发团队。迭代模型的优点与传统的瀑布模型相比较,迭代过程具有以下优点:1)降低了在一个增量上的开支风险。如果开发人员重复某个迭代,那么损失只 是这一个开发有误的迭代的花费。2)降低了产品无法按照既定进度进入市场的风险。通过在开发早期就确定风险, 可以尽早来解决而不至于在开发后期匆匆忙忙。3)加快了整个开发工作的进度。因为开发人员清楚问题的焦点所在,他们的工 作会更有效率。4)由于用户的需求并不能在一开始就作出完全的界定,它们通常是在后续 阶段中不断细化的。因此,迭代过程这种模式使适应需求的变化会更容易些。螺旋模型1988年,BarryBoehm 正式发表了软件系统开发的&qu
11、ot;螺旋模型",它将 瀑布模型 和快速原型模型 结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统。螺旋模型沿着螺线进行若干次迭代,图中的四个象限代表了以下活动:(1)制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件;( 2 )风险分析:分析评估所选方案,考虑如何识别和消除风险;( 3 )实施工程:实施软件开发和验证;( 4 )客户评估:评价开发工作,提出修正建议,制定下一步计划。螺旋模型由风险驱动,强调可选方案和约束条件从而支持软件的重用,有助于将软件质量作为特殊目标融入产品开发之中。但是,螺旋模型也有一定的限制条件,具体如下:( 1 )螺旋模型强调风险分析,但要求许多客户接受和相信这种分析,并做出相关反应是不容易的,因此,这种模型往往适应于内部的大规模软件开发。( 2 )如果执行风险分析将大大影响项目的利润,那么进行风险分析毫无意义,因此,螺旋模型只适合于大规模软件项目。( 3 )软件开发人员应该擅长寻找可能的风险,准确地分析风险,否则将会带来更大的风险一个阶段首先是确定该阶段的目标,完成这些目标的选择方案及其约束条件,然后从风险角度分析方案的开发策略,努力排除各种潜在的风险,有时需要通过建造原型来完成。如果某些风险
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论