软件过程模型_第1页
软件过程模型_第2页
软件过程模型_第3页
软件过程模型_第4页
软件过程模型_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、,软件工程,讲师:蓝田电话子邮件:蓝田1029课程组否。302950664,第2章软件过程模型、3,掌握如何为不同的项目选择过程模型。了解不同模型的特点、优缺点以及软件过程和软件过程模型的概念。软件生命周期,典型的软件开发周期,1,3,4,什么是软件过程?问题定义、技术开发、方案集成、目标状态、2、什么是软件过程?虽然过程是多种多样的,但所有的过程都有以下共同的活动和交流,包括软件设计者和客户之间的交流、客户的要求、软件设计者的资料收集以及其他相关活动。计划,软件开发团队讨论使用什么方法和工具来满足客户需求。在这一部分,软件开发团队讨论选择哪种模型来满足需求。不同的需

2、求需要不同的模型。构建、部署、编码和测试。软件将交付给客户。客户给出建议和反馈,软件实施团队改进软件。什么是软件过程?软件过程的三大流派,CMU-SEI CMM能力成熟度模型;ISO 9000质量标准体系;国际标准化组织/国际电工委员会15504(SPICE)信息技术软件过程评估,能力成熟度模型(CMM),被学术界和工业界公认为与软件工程和管理实践相关的最佳软件过程。它为评估软件组织的生产力提供了一个标准。为改进软件组织的生产过程指明了方向。CMM发展历史,能力成熟度模型,持续过程改进,定量管理,4个定量管理层次,过程标准化,3个定义层次,基本项目管理,有能力的人和个人英雄主义,2个可重复的层

3、次,1个初始层次,CMM,无序的工作,并经常在项目期间放弃原来的计划。管理混乱,缺乏健全的管理体系。开发项目的结果是不稳定的,项目的成功主要取决于项目负责人的经验和能力。一旦他离开,工作指令就无法识别了。管理制度,建立了基本的管理制度和程序,管理工作有章可循。初步实现标准化,开发工作按照标准顺利实施。变更依法进行,做到基线化、稳定化和可追溯性。新项目的规划和管理是基于过去的实践经验,并有环境和条件重复以前的成功项目。开发过程,包括技术工作和管理工作,已经标准化并记录在案。建立了完善的培训体系和专家评审体系,所有技术活动和管理活动均可控制,对项目的过程、岗位和职责有共同的理解。产品和过程已经建立

4、了定量的质量目标。发展活动的生产率和质量是可以衡量的。已经建立了一个过程数据库。项目产品和过程的控制已经实现。预测过程和产品质量趋势,如预测偏差,并实现及时纠正。可以集中精力改进工艺,采用新的技术和方法。有办法防止缺陷,找出薄弱环节并加以改进。可以获得过程有效性的统计数据并进行分析,以获得最佳方法。通过CMM5认证的中国企业(部分)、摩托罗拉中国软件中心(2000年9月)、沈阳东软股份有限公司(2002年12月)、华为印度研究院(2003年8月)、惠普中国软件R&D中心(2004年6月)、北京用友软件工程有限公司(2004年12月)、埃森哲全球信息技术中心(2005年4月)、莆田信息技术研究所

5、(2006年11月)、上海宝信软件有限公司(2006年12月)、亚信信息技术(中国)有限公司(2006年2月) 2006)联想软件公司(2006年2月),软件过程模型是软件开发的整个过程、活动和任务的结构框架。 它能够直观地表达软件开发的整个过程,并清晰地定义要完成的主要活动、任务和开发策略。软件过程模型也经常被称为:软件开发模型、软件生命周期模型、软件工程范例、软件过程模型、通用过程模型、瀑布模型(经典生命周期模型)、增量过程模型、rad模型、演化过程模型、原型模型、螺旋模型、喷泉模型和其他过程模型。1.瀑布模型,这是温斯顿罗伊斯在1970年首次提出的软件开发模型。软件开发过程与软件生命周期

6、是一致的,软件生命周期也被称为经典生命周期模型。它规定了各种软件工程活动,以及它们从上到下的固定顺序,相互联系,就像瀑布一样,一步一步落下。这是一个广泛使用的文档驱动模型。瀑布模型,具有反馈的瀑布模型,根据传统瀑布模型开发软件的特点,这些阶段是顺序的和相互依赖的。推迟实现的想法。要求的文件必须在每个阶段完成;在每个阶段结束前完成文件审查,并尽快纠正错误。瀑布模型的主要问题是线性过程过于理想化,各个阶段的划分完全固定,阶段之间产生大量的文档,大大增加了工作量;因为开发模型是线性的,用户只能看到开发结果,直到整个过程结束,因此增加了开发的风险;早期的错误可能直到开发的后期测试阶段才被发现,这将带来

7、严重的后果。我该怎么办?增量过程模型,增量模型是一种非集成的开发模型。这是一个进化的发展过程。它允许从一些需求的定义中建立一个不完整的系统,并且可以通过测试和运行该系统来获得经验和反馈,从而进一步扩展和改进该系统。重复这一过程,直到软件人员和用户对设计的软件系统感到满意。增量模型RAD、增量模型和增量模型结合了原型模型的基本元素和迭代特征,采用基于时间的线性序列。每个确定的线性序列将输出软件的“增量”。增量模型特性、小增量但可用的软件特性、在前面增量的基础上开发后面的增量、瀑布或每个增量的快速原型模型迭代的思想、增量模型的优缺点、增量包概念的引入以及不需要提供完整需求的事实。只要一个增量包出现

8、,开发就可以继续。在项目的初始阶段没有必要投入太多的人力资源。增量可以有效管理技术风险。每个增量必须提供一些系统功能,这使得开发人员很难根据客户需求给出合适大小的增量。优势与劣势快速应用程序开发模型(RAD)是一种增量过程模型,强调开发周期短。RAD模型是瀑布模型的“高速”变体,可以通过基于组件的构造方法快速开发。如果需求和项目范围被明确定义,RAD可以使开发团队在短时间内(如60到90天)建立一个“全功能系统”。快速应用程序开发模型(RAD),RAD模型的缺点,1)对于大型项目,RAD需要足够的人力资源。2)开发商和客户都应该履行承诺,否则会导致失败。3)并非所有系统都适用(无法合理模块化的

9、系统、需要调整组件接口的高性能要求和高技术风险的系统不适用)。进化模型,进化过程模型原型模型螺旋模型进化模型的思想是首先实现软件的核心和最重要的功能,原型模型和适用条件,客户定义一个总体目标集,但他们不清楚系统的具体输入和输出;或者开发人员不确定算法的效率,软件是否与操作系统兼容,以及客户与计算机交互的方式。此时,原型方法是一个不错的选择。原型模型,缺点: 1)。设计师在质量和原型之间做出了妥协。顾客没有意识到一些质量问题。螺旋模型是由鲍姆在鲍姆1988首次提出的。与RAD模型相似,该模型结合了瀑布模型和原型模型的特点。螺旋模型强调风险管理,因此适用于大规模系统的开发。螺旋模型、螺旋模型和笛卡

10、尔坐标的四个象限分别表示四种活动:制定计划。确定软件目标,选择实施计划,并阐明项目开发的限制。风险分析。分析选择的方案,并考虑如何识别和消除风险。实施项目。实施软件开发。顾客评价。评估开发工作并提出修改建议。螺旋模式的优势,支持用户需求的动态变化。原型可以看作是一种形式上可执行的需求规范,便于用户和开发人员理解,也可以作为进一步开发的基础,方便用户参与所有关键决策。螺旋模型强调原型的可扩展性和可修改性,原型的演化贯穿于整个软件生命周期,这将有助于目标软件的适应性。螺旋模型为项目经理及时调整管理决策提供了便利,从而降低了开发风险。螺旋模型的缺点和适应场合,如果每次迭代的效率不高,导致迭代次数过多

11、,会增加成本和延迟提交时间;使用这个模型需要丰富的风险评估经验和专业知识,并且需要高水平的开发团队。它是一个很有前途的模型,支持需求不明确的大规模软件系统的开发,支持各种软件开发方法,如面向规范、面向过程和面向对象等。喷泉模型喷泉模型是一种由用户需求驱动、由对象驱动的模型,主要用于描述面向对象软件开发的过程。与瀑布模型不同,喷泉模型需要在分析活动之后开始设计活动,在设计活动之后开始编码活动。模型的每个阶段都没有明显的界限,开发人员可以同步开发它。它的优点是可以提高软件项目开发的效率,节省开发时间,适应面向对象的软件开发过程。由于喷泉模型在每个开发阶段都有重叠,开发过程中需要大量的开发人员,不利

12、于项目管理。此外,这种模式要求对文件进行严格的管理,这使得审计更加困难,尤其是当各种信息、要求和材料可能随时添加时。优势、劣势、协同开发模型,大多数软件开发过程模型都是时间驱动的;离模型的后端越远,离开发过程的后期就越远。协作过程模型由用户需求、管理决策和结果审查驱动。基于组件的模型和基于组件的模型与其他模型有相同的需求,因此这里不再重复。组件分析根据需求规范搜索能够满足需求的组件。通常,没有精确的匹配,所以组件通常需要修改。系统设计不同于其他模型,因为模型是基于重用的。设计者必须考虑重用的概念,但是不幸的是,如果没有可重用的组件,他们必须设计新的软件。开发和集成在这个阶段,组件被集成到系统中

13、。基于组件的模型的优点和缺点以及组件的重用降低了成本和风险,并且节省了时间。模型的复杂性导致需求的妥协,这导致系统不能完全满足需求。无法完全控制已开发系统的演化项目划分,这直接影响项目结果。一些新的过程模型和敏捷软件过程是基本原则和开发标准的结合。基本原则强调客户满意度和早期增量软件交付;小型但充满激情的团队;非正式方法;最小的软件工程产品;简化整体开发。开发指南强调分析和设计的交付,以及开发人员和客户之间的积极和持续的沟通。目前的敏捷过程模型主要包括极限编程、SCRUM、自适应软件开发、动态系统开发方法(DSDM)等。敏捷软件开发宣言如何选择过程模型在http:/agilemanifesto

14、.org/,软件开发模型中是一种开发软件开发模型,每种模型都有其优缺点。选择时,不必坚持某个模型来组合各种模型,还可以根据实际情况创建一个新模型。参考原则。1.当早期需求明确时,尝试采用瀑布模型或改进的瀑布模型。2.当用户没有使用系统的经验并且需求分析师没有足够的技能时,必须使用原型。3.当有许多不确定因素和许多事情无法事先计划时,应尽可能采用增量迭代和螺旋模型。4.当需求不稳定时,应尽可能采用增量迭代模型。5.当资金和成本不能同时到位时,增量模型可以用来发布软件产品的多个版本。6.对于多个独立功能的开发,这些功能可以在需求分析阶段并行,但是每个功能都应该遵循瀑布模型。7.对于全新系统的开发,增量或并行必须在总体设计完成后开始。8.当程序员经验

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论