您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 鄂大伟主编软件工程,清华大学出版社第2章软件过程
软件工程第2章软件过程2.1理解软件过程IEEE(STD-610)将过程(process)定义为实现给定目标所执行的一系列操作步骤。由此,我们可以把一个有序任务集合看作是一个过程,一个用来产生某类想要的产品所涉及的活动、约束和资源的步骤序列。每个过程均包含一系列的阶段,每个阶段结束于一个主要的里程碑。过程的特征之一过程是一个生命周期。当过程涉及某种产品的建立时,我们称这个过程为一个生命周期。。过程的特征之二过程的特征之三每个过程均有一系列己定义好的输入作为其操作的对应。每个过程均会形成一系列的输出,并以此作为其他过程的输入,过程会将相应的输入转换为事先己定义好的输出。过程的特征之四过程具有迭代特征。软件过程的公共框架软件过程提供了一个框架,在该框架下可以建立一个软件开发的综合计划:若干框架活动适用于所有软件项目,而不在乎其规模和复杂性。若干不同任务的集合──每一个集合都由任务、里程碑、交付物以及质量保证点组成若干保护性活动──如软件质量保证、软件配置管理、测试与度量等。它们贯穿于整个过程模型之中。保护性活动独立于任何一个框架活动,且贯穿于整个过程之中。软件过程的公共框架公共过程框架普适性活动任务集工作任务里程碑,交付物质量保证点2.2软件过程模型软件过程模型是从一特定角度提出的软件过程的简化描述,是一种开发策略,这种策略针对软件工程的各个阶段提供了一套范形,使工程的进展达到预期的目的。其中每个过程模型都代表了一种将本质上无序的活动转换为有序化的步骤,每个模型都具有能够指导实际软件项目进行控制及协调的特性。2.2.2瀑布模型需求分析设计实现测试维护瀑布模型分析瀑布模型强调系统开发应有完整之周期,且必须完整的经历周期的每一开发阶段,由于该模式强调系统开发过程需有完整的规划、分析、设计、测试及文件等管理与控制,因此能有效的确保系统品质,它已经成为业界大多数软件开发的标准。瀑布模型分析线性顺序模型过程的缺点也是非常明显的:1.实际的项目很少按照该模型给出的顺序进行。2.项目初期用户常常难以清楚地给出所有需求,而这恰恰是线性顺序模型所必须给出的。3.用户必须有耐心,程序的运行版本要等到项目开发晚期才能得到。大的错误如果到检查运行程序时才被发现,后果可能是灾难性的。2.2.3演化软件过程模型(Evolutionarysoftwareprocessmodels)演化模型是利用一种迭代的思想方法,它的特征是使软件工程师渐进地开发逐步完善的软件版本。主要包括增量模型和螺旋模型两种范型。增量模型(Theincrementalmodel)增量模型的特点产品是以一系列增量构件的形式设计、实现、集成和测试的,其中,每个构件由一些代码块组成,这些代码块来白多个相互作用的模块,完成特定的功能。增量模型的特点增量模型和瀑布模型之间的本质区别是:瀑布模型属于整体开发模型,它规定在开始下一个阶段的工作之前,必须完成前一阶段的所有细节。而增量模型属于非整体开发模型,它推迟某些阶段或所有阶段小的细节,从而较早地产生工作软件。增量1分析设计编码测试分析设计编码测试分析设计编码测试分析设计编码测试增量2增量3增量4最终产品发布发布发布发布增量模型的讨论每个增量提供系统功能的一个子集。对增量中功能的分配取决于用户指明的功能优先次序。增量模型的另一个优点是,逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。增量模型的讨论使用增量模型的困难是,在把每个新的增量构件集成到现有软件体系结构中时,必须不破坏原来已经开发出的产品。此外,必须把软件的体系结构设计得便于按这种方式进行扩充,向现有产品中加入新构件的过程必须简单、方便,也就是说,软件体系结构必须是开放的。螺旋模型(TheSpiralModel)对于大型软件,只开发一个原型往往达不到要求。螺旋模型将瀑布模型和增量模型结合起来,并加入了风险分析。该模型将开发过程划分为沟通、制定计划、风险分析、实施工程、构造与发布和系统评估6个活动。螺旋模型计划风险分析工程构造与发布系统评估沟通螺旋模型特点每沿着螺旋线每转一圈,表示开发出一个更完善的新的软件版本。如果开发风险过大,开发机构和客户无法接受,项目有可能就此中止;多数情况下,开发过程会沿着螺旋线继续下去,自内向外逐步延伸最终得到满意的软件产品。原型开发的思想来源于工程实践。是利用原型辅助产品设计开发的一种新思想。快速原型开发方法快速原型模型原型法讨论快速原型的一个基本特性是体现“快”字。开发者应该尽可能快地建造原型,以加快软件开发进程。因此,快速原型的内部结构无关紧要,最重要的是快速建造原型并快速修改以反映客户的需求。所以,速度是关键。原型法讨论原型方法不应只被看作是技术工具,它是重要的管理和沟通工具。用原型提供关于某类风险的信息非常有效。目前广泛地使用第四代语言(4GT)构建快速原型,当快速原型的某个部分是利用软件工具由计算机自动生成的时候,可以把这部分用到最终的软件产品中。统一软件过程统一软件过程(RUP:RationalUnifiedProcess)是一个二维的软件开发模型。阶段迭代初始细化构造发布初始迭代细化1细化2构造1构造2构造3发布1发布2工作流程业务建模需求分析设计实施测试部署配置与变更管理项目管理环境统一软件过程横轴各阶段以时间坐标组织,具有过程展开的体现生命周期特征,开发过程的动态结构,用来描述它的术语主要包括周期(Cycle)、阶段(Phase)、迭代(Iteration)和里程碑(Milestone);统一软件过程纵轴以内容来组织为自然的逻辑活动,体现开发过程的静态结构,用来描述它的术语主要包括活动(Activity)、产物(Artifact)、工作者(Worker)和工作流(Workflow)。RUP的阶段和主要里程碑初始阶段细化阶段构造阶段交付阶段RUP的核心工作流工作流是产生具有观察力结果的活动系列。RUP描述了9个不同的工作流,这些工作流在整个开发周期中一次又一次被访问,在每一次迭代中以不同的重点和强度重复。形式化方法模型在形式化方法模型中,软件需求描述被精炼成用数学符号表达的详细的形式化描述。需求定义形式化描述形式化转换1形式化转换2形式化转换n集成和系统测试形式化方法模型讨论由于数学方法具有严密性和准确性,形式化方法开发过程所交付的软件系统具有较少的缺陷和较高的安全性。但是,形式化方法并不是主流开发方法,在实际软件开发中应用较少,其主要原因是形式化方法的开发还很费时和昂贵,另外难以使用该模型与用户进行沟通。软件复用——基于构件的开发方法基于构件的开发(Component-BasedDevelopment,简称CBD)是一种软件开发新范型,它是在一定构件模型的支持下,复用构件库中的一个或多个软件构件,通过组合手段高效率、高质量地构造应用软件系统的过程。由于以分布式对象为基础的构件实现技术日趋成熟,CBD已经成为现今软件复用实践的研究热点,被认为是最具潜力的软件工程发展方向之一。基于构件的开发的讨论当今,构件技术已经成为计算环境的基本组成之一,众多中间件产品和开发工具提供了对不同构件模型的实现支持,特别在分布式、企业级应用软件系统中,无不把软件的构件化作为解决维护、扩展和升级的唯一途径。然而,虽然业已存在了大量的CBD概念、方法和工具,软件业并未完全迁移到CBD软件开发范型,一个主要原因是缺少一套成熟的CBD开发方法学。另一个原因是需要建立公共软件构件库。第四代技术“第四代技术”(FourthGenerationTechnique:4GT)包含了系列的软件工具,它们都有个共同特点:能使软件工程师在较高级别上说明软件的某些特征。之后工具根据开发者的说明自动生成源代码。微软公司的软件过程模型微软产品过程模型是微软数十年实际开发经验的精髓,微软的所有产品,从最初的产品策划到编程,Beta版发行,正式版本的发布,下一个版本的开发,都遵循该过程模型。微软产品周期模型是整个微软开发流程的核心和基础,他们的经验值得我们关注。微软公司的软件过程模型规划阶段设计阶段开发阶段稳定阶段发布阶段最终产品发布项目的目标得到认可软件设计完成代码开发完成可发布的版本准备就绪2.3软件过程改进软件机构形成一套完整而成熟的软件过程不是一蹴而就的,它需要一个从无序到有序,从特殊到一般,从定性到定量,最后再从静态到动态的历程。要提高软件质量必须改进软件过程。因此有必要建立一个软件过程成熟度模型来对过程做出一个客观、公正的评价,以促进软件开发组织改进软件过程。2.3.1软件能力成熟度模型─CMM与CMMI软件能力成熟度模型(CapabilitymaturitymodelforsoftwareCapability,简称SW-CMM或CMM)是由美国卡内基.梅隆大学软件工程研究所(SEI)于1987年提出的一种软件能力评估标准,它侧重于软件开发过程的管理及工程能力的提高与评估,现已成为软件业最权威的评估认证体系。CMM的五个级别CMM分为五个等级:一级为初始级,二级为可重复级,三级为已定义级,四级为已管理级,五级为优化级。关键过程区域除了初始级外,每一成熟度等级又由若干个关键过程区域(KeyProcessAreas)构成。关键过程区域指出为了达到某个成熟度等级所要着手解决的问题。达到一个成熟度等级,必须实现该等级上的全部关键过程区域。要实现一个关键过程区域,就必须达到该关键过程区域的所有目标。CMM的内部结构成熟度等级关键过程域公共特性关键实践过程能力目标实施及规范基本设施及活动能力成熟度模型集成——CMMICMMI为改进一个组织的各种过程提供了一个单一的集成化框架,新的集成模型框架消除了各个模型的不一致性,减少了模型间的重复,增加透明度和理解,建立了一个自动的、可扩展的框架。因而能够从总体上改进组织的质量和效率。2.3.3PSP个体软件过程个体软件过程(PersonalSoftwareProcess,PSP)是由美国卡耐基-梅隆大学(CarnegieMellon)软件工程研究所(CMU/SEI)领导开发的,于1995年推出,在软件工程界引起了极大的轰动,可以说是由定向软件工程走向定量软件工程的一个标志。PSP是一种可用于控制、管理和改进个人工作方式的自我改善过程,是一个包括软件开发表格、指南和规程的结构化框架。PSP个体软件过程进化框架(1)个体度量过程PSP0(2)个体规划过程PSP1(3)个体质量管理过程PSP2(4)个体循环过程PSP32.3.4团队软件过程团队软件过程(TeamSoftwareProcess,TSP)是为开发软件产品的开发团队提供指导,TSP的实践侧重于帮助开发团队改善其质量和生产率,以使其更好的满足成本及进度的目标。TSP的设计原则图2-18团队软件过程循序渐进的原则迭代开发的原则质量优先的原则定期评审的原则过程规范的原则指令明确的原则,CMM、TSP、PSP三者的关系本章思考题1.什么是过程?过程有哪些特征?2.什么是软件过程?软件过程的公共框架的内容是什么?3.常用软件过程有哪些?
本文标题:鄂大伟主编软件工程,清华大学出版社第2章软件过程
链接地址:https://www.777doc.com/doc-214326 .html