您好,欢迎访问三七文档
1软件过程软件生命周期软件过程模型瀑布模型快速原型模型喷泉模型演化模型增量模型螺旋模型软件开发过程的一般视图第2讲软件过程模型(ProcessModel)由安博测试空间技术中心提供2质量焦点过程模型方法工具方法使用的顺序;要求交付的文档资料;为保证质量和适应变化所需要的管理;软件开发各个阶段完成的里程碑。软件开发提供了“如何做”的技术。为软件工程方法提供了自动的或半自动的软件支撑环境,CASE软件工程层次图3过程及软件过程过程:为实现一个给定目标而进行的一系列运作步骤。软件过程:开发和维护软件及其相关产品所涉及的一系列活动。4软件过程软件过程需要提供一个公共过程框架,在该框架下可以建立一个软件开发的综合计划:若干框架活动适用于所有软件项目,而不在乎其规模和复杂性。若干不同任务的集合,使得框架活动适应于不同软件项目的特征和项目组的需求。若干保护性活动,它们贯穿于整个过程模型之中。保护性活动独立于任何一个框架活动,且贯穿于整个过程之中。选择一个公共过程框架是根据产品、人员和项目而调整的。5公共过程框架Commonprocessframework保护性活动UmbrellaActivitiesProjecttracking&controlFormaltechnicalreviewsQualityassuranceConfigurationmanagementDocumentationReusabilitymanagementMeasurementRiskmanagement框架活动FrameworkActivities任务集合worktasks工作任务workproducts交付物milestones&deliverables质量保证点QAcheckpoints6内容提要软件过程软件生命周期软件过程模型瀑布模型快速原型模型喷泉模型演化模型增量模型螺旋模型软件开发过程的一般视图7软件生命周期软件生命周期是软件过程模型的基础,是软件产品或系统一系列相关活动的全周期。软件生命周期阶段:可行性研究及项目定义需求分析设计(总体设计和详细设计)编程实现测试使用与维护8软件生命周期模型定义开发维护可行性研究报告需求规格说明书设计规格说明书程序测试报告软件定义可行性研究与计划需求分析设计编码测试运行和维护问题描述9问题定义和可行性研究确定要开发软件系统的总目标和规模。从技术、经济和社会因素等方面的要求来论证完成该软件任务的可行性。估计可利用的资源(计算机硬件,软件,人力等)、成本、效益、开发进度。制定出完成开发任务的实施计划,连同可行性研究报告,提交管理部门审查。10需求分析理解用户需求,并将用户需求用书面形式表达出来。编写软件需求规格说明书或系统功能说明书及初步的系统用户手册。需求说明书是以后阶段工作的基础。将需求规格说明书提交管理机构评审。11设计总体设计—“如何解决问题”在需求说明书的基础上建立软件的体系结构。结构中每一组成部分都是意义明确的模块,每个模块都和某些需求相对应可以列出多种解决方案进行比较详细设计—对每个模块要完成的工作进行具体的描述,为源程序编写打下基础编写设计说明书(模块说明书、数据库或文件结构说明书等),提交评审。12编码把软件设计转换成计算机可以接受的程序代码,即写成以某一种特定程序设计语言表示的“源程序清单”。写出的程序应当是结构良好、清晰易读的(如匈牙利法则),且与设计相一致的。13测试单元测试:查找各模块在功能和结构上存在的问题并加以纠正。集成测试:将已测试过的、并且相关的模块按一定顺序组装起来进行测试。按规定的各项需求,逐项进行系统测试,决定已开发的软件是否合格,能否交付用户使用。14运行和维护改正性维护:运行中发现了软件中的错误需要修正。适应性维护:为了适应变化了的软件工作环境,需做适当变更。完善性维护:为了增强软件的功能需做变更。预防性维护:修改软件为将来的维护活动预先做准备15内容提要软件过程软件生命周期软件过程模型瀑布模型快速原型模型喷泉模型演化模型增量模型螺旋模型软件开发过程的一般视图16传统瀑布模型(WaterfallModel)软件定义可行性研究与计划需求分析设计编码测试运行和维护17实际瀑布模型软件定义可行性研究与计划需求分析设计编码测试运行和维护18瀑布模型变种:V型模型该方法是对瀑布模型的修正,强调了验证活动19瀑布模型所有过程模型的鼻祖。----Royce,1970瀑布模型把软件开发过程划分成若干阶段,每个阶段的任务相对独立,便于不同人员分工协作,从而降低了整个软件开发工程的困难程度。在软件生存期的每个阶段都采用科学的管理技术和良好的方法与技术,而且每个阶段结束之前,都从技术和管理两个角度进行严格的审查,经确认之后才开始下一阶段的工作。----项目是按照一定的顺序执行。瀑布模型是文档驱动的,各个阶段不连续也不交叉。20瀑布模型的特点阶段间具有顺序性和依赖性。(两重含义)推迟程序的物理实现。(重要指导思想)质量保证:每个阶段必须完成规定的文档;每个阶段结束前完成文档审查,及早改正错误。(两个重要做法)易于组织,易于管理:因为你可以预先完成所有计划。是一种严格线性的、按阶段顺序的、逐步细化的过程模型(开发模式)。21瀑布模型的缺陷在项目开始的时候,用户常常难以清楚地给出所有需求;用户与开发人员对需求理解存在差异。缺乏灵活性:因为瀑布模型确定了需求分析的绝对重要性,但是在实践中要想获得完善的需求说明是非常困难的,导致“阻塞状态”。反馈信息慢,开发周期长。实际的项目很少按照顺序模型进行。22内容提要软件过程软件生命周期软件过程模型瀑布模型快速原型模型喷泉模型演化模型增量模型螺旋模型基于构件的开发软件开发过程的一般视图23建立原型目标开发原型定义原型功能评估原型原型开发过程原型规划框架定义可执行原型评估报告用户意见反馈24听取用户意见建造/修改原型用户测试运行原型快速原型模型(RapidPrototypeModel)25原型模型的特点适用于用户驱动的系统(即需求模糊或随时间变化的系统)。26原型模型的优点从实践中学习(Learningbydoing)用户参与使部分已知需求逐渐清晰化提高系统的实用性、可维护性节省开发的投入、缩短整个软件的开发周期27原型模型存在的问题用户有时误解了原型的角色,例如他们可能误解原型应该和真实系统一样可靠。缺少项目标准,进化原型方法有点像编码修正。缺少控制,由于用户可能不断提出新要求,因而原型迭代的周期很难控制。额外的花费:研究结果表明构造一个原型可能需要10%额外花费。为了尽快实现原型,采用了不合适的技术,运行效率可能会受影响。原型法要求开发者与用户密切接触,有时这是不可能的。例如外包软件。28内容提要软件过程软件生命周期软件过程模型瀑布模型快速原型模型喷泉模型演化模型增量模型螺旋模型软件开发过程的一般视图29喷泉模型维护确认实现设计分析演化30喷泉模型的特点是典型的面向对象生命周期模型“喷泉”这个词体现了面向对象软件开发过程迭代和无缝的特性应该把线性过程作为总目标31内容提要软件过程软件过程模型瀑布模型快速原型模型喷泉模型演化模型增量模型螺旋模型软件开发过程的一般视图32演化软件过程模型演化模型是利用一种迭代的思想方法,它的特征是使软件工程师渐进地开发逐步完善的软件版本。增量模型(IncrementalModel)螺旋模型(SpiralModel)33内容提要软件过程软件过程模型瀑布模型快速原型模型喷泉模型演化软件过程模型增量模型螺旋模型软件开发过程的一般视图34增量模型可行性研究与计划需求分析概要设计维护针对每个构件,完成详细设计、编码和集成,经测试后交付给用户35增量模型的特点融合了瀑布模型的基本成分和快速原型的迭代特征;以功能递增的方式进行软件开发;能较快地产生可操作的系统;在每一步递增中,均发布一个新的增量版本,把用户/开发者的经验结合到不断求精的产品中。36增量模型和原型模型的区别增量模型与快速原型模型,本质上都是迭代的。两者区别在:增量模型强调每一个增量发布一个可操作的产品。早期的增量提供了为用户服务的功能和给用户评价的平台。37增量模型存在的问题很难把用户的需求映射到适当规模的增量上。大多数系统需要一组在系统许多部分都会用到的基本服务。但由于增量实现前,需求不能被详细定义,所以,明确所有增量都会用到的基本服务就比较困难。38内容提要软件过程软件过程模型瀑布模型原型实现模型喷泉模型演化软件过程模型增量模型螺旋模型软件开发过程的一般视图39螺旋模型(SpiralModel)Spiral模型(Boehm,1988提出)综合了快速原型模型的迭代特征和瀑布模型的控制和系统化的优点。增加了风险分析,是以风险为导向的生命期模型。从一个小范围的关键中心地带开始寻找风险因素,制定风险控制计划,并交付给下一步骤,如此迭代,每次迭代将项目扩展到一个更大的规模。40ReviewCommitmentPartition风险分析原型1建模模拟评价需求计划生存期计划原型2风险分析软件需求需求确认开发计划风险分析原型3软件产品设计设计确认和验证集成与测试计划风险分析可运行原型详细设计单元测试编码集成测试验收测试实现计划下一个阶段开发,确认以及下一级产品确定目标选择方案设定约束条件评估方案,识别并排除风险累计成本各步骤的进度Thespiralmodel41螺旋模型的特点把软件开发过程组成为一个逐步细化的定义周期(螺旋周期)序列,每经历一个周期,系统就得到进一步的细化和完善;紧密围绕开发中的风险问题,用风险分析推动软件设计向深一层扩展、求精;强调持续地判断、确定和修改用户任务目标,并按成本、效益来分析候选的软件产品性质对任务目标的贡献;可结合采用多种软件开发方法,但究竟结合哪一种方法仍由风险分析来决定。42螺旋模型对于大型软件系统的开发,螺旋模型是一个很现实的方法。优势:随着迭代的增加(成本的增加),风险程度随之降低。缺陷:比较复杂,需要相当的风险评估技术,且成功依赖于这种技术。43内容提要软件过程软件过程模型瀑布模型原型实现模型喷泉模型演化软件过程模型增量模型螺旋模型软件开发过程的一般视图44软件开发过程的一般视图无论哪种软件过程模型,软件开发过程都要经历三个典型阶段:定义Definition开发Development维护Maintenance45定义阶段集中于“做什么”三个基本任务系统分析systemanalysis软件项目计划softwareprojectplanning需求分析requirementsanalysis46开发阶段集中于“如何做”三个特定的任务软件设计softwaredesign编码coding软件测试softwaretesting47维护阶段关注于“变化”四种类型的修改改正correction适应adaptation增强enhancement预防prevention(软件再工程、逆工程)48小结软件过程和软件过程模型的概念一系列不同的软件过程模型,以及各自的优点和缺点。软件通过应用三个不同的阶段-定义、开发和维护来实现工程化生产。
本文标题:软件过程模型(精)
链接地址:https://www.777doc.com/doc-4191138 .html