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

下载本文档

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

文档简介

第二章软件过程,1,PPT学习交流,2.1软件过程的定义与内涵,软件过程(SoftwareProcedure):是为获得软件产品,在软件工具支持下由软件工程师完成的一系列软件工程活动。软件过程是研究软件开发的方法论,规范软件开发的活动集合和活动顺序内涵软件过程是软件工程活动的集合。基本过程类:获取过程、供应过程、开发过程、运作过程、维护过程和管理过程支持过程类:支持过程类:文档过程、配置管理过程、质量保证过程、验证过程、确认过程、联合评审过程、审计过程以及问题解决过程组织过程类:管理过程、基础设施过程、改进过程以及培训过程,2,PPT学习交流,2.1软件过程的定义与内涵,3,PPT学习交流,2.1软件过程的定义与内涵,内涵在活动的时间进程上要遵循软件工程原理实行分阶段,实行阶段评审和控制。在活动的执行顺序上可以有循环、往复、重叠、迭代、嵌套或者是有条件地引发,不一定都是线性顺序。在活动的内容上是遵循自顶向下、层层分解、逐步抽象与细化的思想。在构建软件的结构上遵循模块分解原理,可以自顶向下,也可自底向上。按基线与里程碑的目标进行总结、评审、调整和部署阶段活动。软件过程的活动集合和活动顺序贯穿了软件开发的方法论。即把软件工程分阶段、分层次、逐步细化、基线与里程碑、阶段评审、变更管理、过程监控等基本原理贯穿在整个活动当中。,4,PPT学习交流,2.2软件生命周期,软件生存周期:软件产品从定义到开发、使用和维护,直到最终被弃用,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生存周期。划分阶段的目的:把整个生存周期划分为若干较小的阶段,每个阶段有明确的任务界限,能够简化每一步的工作内容,使得因为软件规模增长而带来的软件开发复杂性增大变得容易控制和管理。生存周期的基本划分:分成三个大的阶段也称三个时期,即计划时期、开发时期和运行时期。,5,PPT学习交流,2.2软件生命周期,6,PPT学习交流,2.2软件生命周期,计划时期:是软件项目的初始阶段。主要活动及顺序是问题定义和可行性研究;活动内容是搞清软件的开发目的、规模、约束条件和技术方案,属论证阶段;目标是获取软件开发项目。开发时期:软件开发的第二阶段。包括的活动及顺序是分析、设计和实现;活动内容是逐步细化软件模型、经过编码和测试,最终得到可运行的软件。开发时期属实质性开发阶段;目标是构建高质量的软件。运行时期:软件生存周期的最后阶段,软件处在运行中,往往也是最长阶段。主要活动就是维护;活动内容是治疗和进化软件;目标是延长软件的寿命。,7,PPT学习交流,2.2软件生命周期,软件生存周期与软件过程的关系软件过程:主要指软件产品的生产加工过程,关注加工过程所具有的方法论、活动集合和活动的时间顺序生命周期:指软件产品的寿命,关注软件从诞生到消亡的生命历程,实质内容也就是软件过程;,8,PPT学习交流,2.3软件过程与软件工程,概念的产与关系对于一般的物理产品,分别称为“产品过程”和“产品工程”产品过程:从原料(投入)到产品(产出)的加工过程(工艺流程/工作流程),完成产品的加工,从工艺的角度考虑如何获得高质量的产品,关注产品加工的方法、工具,利用技术完成产品加工的具体活动和步骤;产品工程:讲究的是管理,利用管理手段将产品加工过程中投入的资源进行有效调控和整合,以质量为核心,追求投入产出的效益和效率最大化(目标)。主要开展质量管理、成本管理、工程进度与资源管理等。对于软件产品成为“软件过程”和“软件工程”,9,PPT学习交流,2.3软件过程与软件工程,软件过程与软件工程关系过程是生产加工的技术层面,工程是向过程要效益的管理层面。,10,PPT学习交流,2.3软件过程与软件工程,软件过程软件工程,软件过程是软件工程的子集。从软件工程三要素看,“软件过程”是三要素中的底层要素,在搞清过程所涉及的活动基础上,才能进一步研究活动的方法和工具;从软件工程的三维全景看,“软件过程”是三维中的一个侧面,但却是软件工程进行投入产出的实质性活动的一面,只有按着过程进行才能迈向软件工程的目标。,软件过程,11,PPT学习交流,2.4软件开发模型,瀑布模型活动及流程:瀑布模型安排的活动就如同流水一样拾阶而下,意味着没有回头路,从问题定义到运行维护整个生存周期所经历的活动是顺序的、流过式的,也称线性顺序模型。,12,PPT学习交流,2.4软件开发模型,瀑布模型的特点:活动间具有顺序性和依赖性。前一个活动的输出是下一活动的输入,必须等前一阶段的工作完成之后,才能开始后一阶段的工作;推迟实现的观点。充分做好前期的分析和设计工作,将逻辑设计与物理实现分离,不要急于编码,尽可能推迟程序的物理实现,减少返工量;质量保证的观点瀑布模型局限性:需求分析是成败关键;不适合需求模糊的系统;很难适应需求变化;,13,PPT学习交流,2.4软件开发模型,原型模型活动及流程:快速原型法就是根据用户的初步需求,开发人员利用某种图形工具,将软件要实现的功能,通过人机交互界面呈现给用户,双方在此基础上讨论、修改、完善软件要实现的功能、操作和数据,最后双方取得一致,作为进一步开发的依据。,14,PPT学习交流,2.4软件开发模型,快速原型模型的特点:借助原型开发工具可较容易地做出系统原型,及早向用户展示系统要实现的界面及功能,增强用户的合作信心;直观化的表达,容易交流,消除理解上的歧义;修改集中在前期的原型确认上,较大程度减少后期实施中的返工。后续活动遵循瀑布模型;入手快,加快开发进度;,15,PPT学习交流,2.4软件开发模型,增量模型活动及流程:先完成一个系统子集的开发,再按同样的开发步骤增加子集,如此递增下去直至满足全部系统需求。每个增量可按快速原型法进行。,16,PPT学习交流,2.4软件开发模型,增量模型的特点:对于需求不能完全被掌握和了解的系统,无须等待做出完整的需求就可入手,使用户尽快见到开发的成果,增强双方信心;分步骤分块开发,降低开发的复杂性和难度,减少技术风险,并可并行开发;边开发边投入,可及早发现问题,减少投资风险;各个子集是逐渐并入已有的系统中,加入子集不能破坏已构造好的部分,这需要软件具备开放式的体系结构;适用于需求不完整的软件开发,指的是需求逐渐摸清、逐步完善,并非随意改变,需求改变过大会导致整体性失控。,17,PPT学习交流,2.4软件开发模型,螺旋模型,18,PPT学习交流,2.4软件开发模型,演进过程:每圈对应线性顺序模型中的一个开发活动,每圈演进一个活动层次:第一圈:提出产品概念,做计划(问题定义,可行性研究);第二圈:产生产品规格说明(需求分析);第三圈:产品结构设计(总体设计);第四圈:产生软件产品比较完善的新版本(详细设计,编码,测试);,19,PPT学习交流,2.4软件开发模型,每圈按顺时针运行分四个象限,这四个象限要完成这一圈的制定计划、风险分析、实施工程、客户评估四个步骤。从II象限开始:第象限:制定计划确定目标,选定方案,弄清开发的限制条件,确定完成本周期目标的策略;第象限:风险分析评估方案,识别和消除风险,必要时做出对应的原型,可确定、修改或终止项目;第象限:实施工程对应该圈的具体任务实施。如在分析圈,风险评估通过后,就可以实施需求分析活动;第象限:客户评估用户参与评价前一步开发工作,提出修正建议,制定下一步计划。,20,PPT学习交流,2.4软件开发模型,螺旋模型特点:多种模型结合的一种演进模型,融合了瀑布模型、快速原型和增量模型的所有特点,融进了循环往复、迭代演进的思想;增加前三种模型所忽略的风险分析,一旦风险成立,原方案应终止、修订,力求风险可控,客户始终参与每个阶段的开发,每个阶段的成果需客户确认,避免错误的积累。,21,PPT学习交流,2.4软件开发模型,RUP模型RUP模型全面应用了软件开发分段、分层、细化、往复、循环、迭代、并发、重叠、演进、基线、里程碑、评审、控制等方法论。,22,PPT学习交流,2.4软件开发模型,RUP的二维模型:RUP分为时间轴(横轴)和活动内容轴(纵轴)。横轴是过程展开的生命周期特征,体现开发过程的动态结构,用来描述它的术语主要包括周期(Cycle)、阶段(Phase)、迭代(Iteration)、基线(BaseLine)和里程碑(Milestone);纵轴是开发活动,体现开发过程的静态结构,用来描述它的术语主要包括活动(Activity)、产物(Artifact)、工作者(Worker)和工作流(Workflow),23,PPT学习交流,2.4软件开发模型,横轴的时间组织,划分四个阶段、四个里程碑。初始阶段(Inception),该阶段主要完成商业需求并确定项目的边界,相当于三段生命周期模型中的计划时期。细化阶段(Elaboration),该阶段主要完成领域问题分析和软件的设计。构造阶段(Construction),该阶段是产品的制造过程,以系统实现和测试为主,其重点放在管理资源及控制运作以优化成本、进度和质量。交付阶段(Transition),该阶段的重点是确保软件对最终用户是可用的。纵轴是活动内容组织。活动内容就是软件过程中的活动集合。共有9个核心工作流,分为6个核心过程工作流(CoreProcessWorkflows)和3个核心支持工作流(CoreSupportingWorkflows),24,PPT学习交流,2.4软件开发模型,6个核心过程工作流(CoreProcessWorkflows)是加工软件进行投入产出的实质性活动集。商业建模(BusinessModeling)商业建模是商务层面的活动,弄清项目边界和约束,做出计划。需求(Requirements)需求的目标是描述系统应该做什么,并使开发人员和用户就这一描述达成共识。分析和设计(Analysis&Design)分析和设计将需求转化成计算机可以实现的模型,是将客观世界虚拟到计算机世界的逐步细化过程。实现(Implementation)实现是用计算机可以理解的语言将设计模型组织成可执行的文件、数据,俗称编程。测试(Test)测试是发现软件中的错误,在实验环境下验证所有的需求是否被正确的实现。部署(Deployment)部署是将软件分发给最终用户,安装在真实的环境下,由用户操作运行。,25,PPT学习交流,2.4软件开发模型,3个核心支持工作流(CoreSupportingWorkflows)是对核心过程工作流的配套支持和管理,保障核心过程工作流顺畅、高效运行。配置和变更管理(Configuration&ChangeManagement)项目管理(ProjectManagement)对核心过程工作流进行资源配置、评估监控、风险控制、计划调整等管理工作,做到投入产出的效益最大化。环境(Environment)环境是向软件开发组织提供软件开发环境,包括人员、设备、过程和工具,以及各种规范、指导手册和保障措施。,26,PPT学习交流,2.4软件开发模型,RUP模型体现的思想重叠思想的表达更合理的生命周期模型结束关于RUP没有维护活动的争论完美的增量开发双重迭代基线与里程牌RUP可灵活应用,27,PPT学习交流,2.4软件开发模型,28,PPT学习交流,2.4软件开发模型,29,PPT学习交流,2.4软件开发模型,敏捷开发(AgileDevelopment):敏捷开发是一种以人为核心、客户全面参与、以快为特点的迭代、循序渐进的开发方法。敏捷开发的观点:个体和交互胜过过程和工具可以工作的软件胜过面面俱到的文档客户合作胜过合同谈判响应变化胜过遵循计划敏捷开发方法SCRUMCrystalFDD(FeatureDrivenDevelopment)ASD(AdaptiveSoftwareDevelopment)XP(eXtremeProgramming),30,PPT学习交流,2.4软件开发模型,敏捷开发方法遵循一些共同原则:持续的交付有价值的软件来使客户满意。交付的间隔越短越好。可以工作的软件是首要的进度度量标准。欢迎改变需求。业务人员和开发人员必须天天都在一起工作。对团队开发人员充分信任。在团队内部提倡面对面的交谈。保持一个长期的、恒定的开发速度。优秀的技能和好的设计会增强敏捷能力。最好的构架、需求和设计出于自组织团队。简单是最根本的。,31,PPT学习交流,2.4软件开发模型,XP过程模型:极限编程(XP)是敏捷方法中一组轻量级的软件开发实践。其主要特征是要适应环境变化和需求变化,让客户全面参与软件的开发设计,充分发挥开发人员的主动精神,降低软件项目风险,改善业务变化的反应能力,提高开发期间的生产力。,32,PPT学习交流,2.4软件开发模型,XP把软件开发过程重新定义为聆听、测试、编码、设计的迭代循环过程。聆听客户需求测试驱动开发TDD(Test-DrivenDevelopment)文献【13】介绍了测试驱动开发的基本过程如下:快速新增一个测试;运行所有的测试,发现新增的测试不能通过做一些小小的改动;运行所有的测试,并且全部通过;重构代码,以消除重复设计,优化设计结构测试驱动开发是有条件的开放性软件结构;开发团队拥有“系统隐喻”;具备团队开发环境和配套的测试工具,33,PPT学习交流,2.4软件开发模型,XP的13个实践。这13个实践分三个层面:,34,PPT学习交流,2.4软件开发模型,第一层面:XP的团队组织与需求响应,4个实践:完整团队(WholeTeam)现场客户(CustomerTests)计划游戏(PlanningGame)小版本(SmallReleases)第二层面:开发环境。XP之所以能实施以测试为驱动、以编码为核心,与它的开发环境有关。XP环境建设有5个实践:隐喻(Metaphor)持续集成(ContinuousIntegration)代码集体所有(Collectiveownership)编码标准(CodingStandard)可持续发展步伐(Sustainablepace)第三层面:XP的编程核心,4个实践:测试驱动开发(Test-DrivenDevelopment)结队编程(PairProgramming)简单设计(SimpleDesign)重构(Refactoring/DesignImprovement),35,PPT学习交流,2.5软件开发方法,软件开发的本质:软件开发的本质就是将“客观世界”,映射(虚拟)到“计算机世界”。映射的过程也称“软件开发过程”或简称“软件过程”。,36,PPT学习交流,2.5软件开发方法,软件开发的方法:软件开发方法至今已经历三个重要阶段:传统的开发方法、面向对象的开发方法、面向组件的开发方法。正迎来的面向服务和未来面向云计算的演变过程,,37,PPT学习交流,2.5软件开发方法,面向过程也称传统开发方法或结构化开发方法,该方法采用结构化技术(结构化分析、结构化设计、结构化编程和结构化测试)来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结构化技术的运用。面向对象的软件开发方法起源于面向对象程序设计,进而发展出了面向对象的建模语言UML、面向对象的开发过程RUP、面向对象的各种开发平台。面向组件也称面向架构。架构为开发者提供了组件,并且提供了组件运行的组织和管理容器。开发者利用架构就可以面向组件编程,然后将程序部署到容器上,由容器来管理组件的运行,克服了体系结构设计和实现的困难。面向服务体系结构采用服务请求的方式,通过将业务应用功能以服务的形式提供给最终用户或其他服务,使软件系统向“柔性化”迈进了一大步。,38,PPT学习交流,2.6软件过程改进与CMM,过程改进SPI:软件过程要不断修订、逐步提高。过程改进是修炼内功、追求新境界、自我提高的进化过程。过程改进普遍的原则和步骤是:改进建立在评价和度量基础之上是一个持续过程活动本身应作为一个过程改进项目完成将过程度量用于对改进过程进行监控,及时对改进活动作必要的调整适当重复软件过程的评价活动,39,PPT学习交流,2.6软件过程改进与CMM,UML软件工程组织下属的北京火龙果软件工程技术中心,提出了一个很有参考价值的MyProcess过程改进模型.MyProcess体现了实用性:可行的才是有效的基于当前过程基础关注现在过程问题参考先进过程经验采用进化式的改进改进永无止境,40,PPT学习交流,2.6软件过程改进与CMM,SW-CMMSW-CMM是由美国卡内基-梅隆大学软件工程研究所(CMU/SEI)推出的评估软件能力与成熟度的一套标准。并提供了软件过程评估和软件能力评价两种评估方法和软件成熟度框架。成熟度在各种行业中都有所体现,比如技术职称、棋牌界和武术界的段位。评价成熟度的标准就是“成熟度模型”。一般成熟度等级与能力正相关,但也不一定相符。SW-CMM的定义SEI给出CMM的定义:是对于软件组织在定义、实现、度量、控制和改善其软件过程的各个发展阶段的描述。CMM模型便于确定软件组织的现有过程能力和查找出软件质量及过程改进方面的最关键问题,从而为选择过程改进战略提供指南。CMM为软件企业的过程能力提供了一个阶

温馨提示

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

评论

0/150

提交评论