




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第九章软件过程授课老师:清华大学计算机系殷人昆
passwordqhdxjsjx1什么是软件过程软件过程是软件生存周期中的一系列相关软件工程活动的集合,活动是任务的集合。任务是将输入变换为输出的操作。活动的执行可以是顺序的,重复的,并行的、嵌套的。每一个软件过程又是由一组工作任务、项目里程碑、软件工程产品和交付物以及质量保证点等组成。2软件过程公共过程框架框架活动任务集合工作任务里程碑、交付物SQA点保护性活动3软件过程的分类
(ISO/IEC12207)4基本过程获取过程是需方为了获得一个软件产品所进行的一系列活动。该过程从为获取该软件产品的需求定义开始,经过招标准备,合同准备和修改,对供方监督,直到验收完成。供应过程是供方为向需方提供软件产品所进行的一系列活动。该过程从理解软件需求开始,经过投标准备,签订合同,制定计划,实施计划及控制,进行评审和评价,直至完成交付。5开发过程是软件开发者根据合同开发和交付软件的一系列活动。包括的活动有:过程实施准备,系统需求分析,系统结构设计,软件需求分析,软件体系结构设计,软件详细设计,程序编码和单元测试,软件集成,软件确认测试,系统集成,系统确认测试,软件安装,软件验收支持。运行过程软件开发完成后,软件从开发环境转移到用户的实际运行环境。在运行时对用户的要求提供帮助和咨询,对运行效果进6行评价。包括的活动有:实施过程准备,运行测试,系统向实际运行环境转移,系统运行,对用户运行的支持,系统运行评价,用户运行评价。维护过程维护人员提供维护软件产品的服务。包括的活动有:过程实施准备,问题分析和修改分析,修改实施,对维护进行评审/验收,移植,软件退役。7支持过程文档过程文档过程是一个记录由某一过程或活动所产生的信息的过程。它由以下活动组成:过程的实施准备,设计与开发,制作与发行,维护。配置管理过程该过程实施软件配置管理的活动。包括的主要活动有:过程实施准备,配置的确定,配置的控制,配置情况报告,配置的评价,发行管理和提交。8质量保证过程这是一个为使软件过程和软件产品符合规定需求,并按预定计划按时完成提供适当保证的过程。包括的主要活动有:过程实施准备,软件产品的质量保证,软件过程的质量保证。验证过程确定系统或软件的需求是否完备和正确,以及每一阶段的软件产品是否达到前一阶段对它的要求和条件。包括的主要活动有:过程实施准备,验证,合同验证,过程验证,需求验证,设计验证,代码验证,集成验证,文档验证。9确认过程确认需求和最终建立的系统或软件是否满足原计划的特定应用。包括的主要活动有:实施特定的测试并分析测试结果,确认软件产品的用途,测试软件产品的适用性。审计过程这一过程是要审计确定合作的另一方遵照需求、计划合同到什么程度的过程。包括的主要活动有:检验项目是否符合需求、计划、合同以及规格说明和标准。10联合评审审过程这是评价价项目的的某个活活动或阶阶段的执执行情况况,以及及产品是是否合乎乎要求的的过程。。包括的的主要活活动有::过程实施施准备,项目管理理评审,技术评审审。问题解决决过程这是一个个用于分分析和排排除在开开发、运运行、维维护或其其它过程程中发现现的问题题和不一致的过过程。11组织过程程管理过程程管理包括括进度管管理、成成本管理理、质量量管理、、人员管管理、资资源管理理、标准准化管理理。管理理的对象象是进度度、系统统规模及及工作量量估算、、经费、、组织机机构、人人员、风风险、质质量、作作业和环环境配置置等。包包括的主主要活动动有:过程实施施准备,制定计划划,监控计划划的实施施,评审和评评价计划划的完成成程度,涉及到有有关过程程的产品品管理、项目管理理和任务管理理。12基础设施施过程该过程建建立、维维护各个个过程所所需的基基础设施施。基础础设施包包括硬件件、软件件、工具具、技术术、标准准以及开开发、运运行、维维护所需需的各种种基础设设施。改进过程程该过程建建立、评评估、度度量、控控制和改改进软件件生存周周期的过过程。主主要活动动是制定一组组组织计计划,评估相关关过程,实施分析析、改进过程程。培训过程程该过程为为系统或或软件产产品提供供人员培培训。主主要活动动有制定所需需人员用用人13计划和培培训计划划,开开发培训训资料,,实施施培训活活动等。。过程是针针对确定定的目的的所实施施的序列列步骤,,例如软软件开发发过程。。(IEEE-STD-610)过程是使使用资源源将输入入转化为为输出的的活动的的系统。。(ISO9000:2000)过程是把把输入转转换为输输出的一一组彼此此相关的的活动。。(ISO/IEC12207)过程的几几个标准准定义14软件过程程建模过程建模模涉及软软件产品品的开发发和维护护、软件件项目管管理、过过程管理理和过程程改进等等各方面面。涉及及过程的的活动、、角色、、产品、、资源和和约束等等过程实实体,还还涉及到到建模所所用的方方法。考虑过程所涉涉及实体体的分类类以活动为为中心的的建模:首先考虑虑过程活活动以及及它们之之间的执执行顺序序,再收收集与各各个活动动相关的的其他数数据,如如活动所所涉及的的角色、、产品、、资源和和约束等等,从而而建立过过程模型型。15以角色为为中心的的建模:首先确确定各个个角色的的任务和和角色之之间的关关系,再再以角色色为中心心收集过过程的其其他数据据,如活活动、产产品、资资源和约约束等,,建立过过程模型型。以产品为为中心的的建模基于过程程模板的的建模考虑过程程所采用用的形式式化方法法的分类类过程程序序设计方方法:这种方方法通过过关系、、谓词和和触发器器等机制制对软件件过程的的功能、、行为和和对象进进行详细细、确定定的算法法描述。。16功能分解解方法:这种方方法用一一组反映映输入-处理-输出关系系的数学学函数来来表示软软件过程程。这组组函数可可按照语语法进一一步分解解,形成成过程的的多个子子过程步步。这种分解一直直进行下去,,直到产生的的子过程步可可以映射到一一个外部工具具或由人操作作的过程为止止。基于Petri的建模方方法:使用Petri网有效效地形式化描描述软件过程程的并发性和和活动与产品品之间的关系系,而且使用用这种图形表表示描述软件件过程,易于于理解和管理理。17基于规则的建建模方法:该方法提供供回溯、向前前链接、向后后链接等自动动执行机制,,以及规则推推理、调度和和控制过程活活动的机制,,为人们控制制过程提供了了灵活的手段段。基于知识的建建模方法: 该方法提提供了对过程程模型的增量量式形式说明明能力和可复复用能力。该该方法使用面向向对象的技术术把过程知识识(如过程活活动、过程实实施者、产品品对象和工具具以及它们之之间的关系等等)抽象成不不同的类,存存放于知识库库中。18过程建模时,,根据要求查查询知识库,,获取有关过过程活动及其其他成分的抽抽象描述,从从中选取或构构造所需的过过程模型,并并对其进行分分析和推理,,最后生成过过程实例和相相应的活动计计划。用这种种方法构造的的过程模型是是活动的类的的层次结构,,其中每个活活动类与子类类都对应有多多种资源需求求,如要加工工的数据、所所需工具、开开发角色等。。用类的继承承关系描述可可以表示各种种过程关系,,如控制流、、角色上下级级、产品组成成等。19软件过程的评评估对于不同的软软件开发机构构,在组织人人员完成软件件项目中所依依据的管理策策略有很大差差别,因而软软件项目所遵遵循的软件过过程也有很大大差别。我们们用软件过程的成熟度加以以区别。所谓软件过程程的成熟度是是指一个软件件过程被明确确定义、管理理、度量和控控制的有效程程度。成熟度越高,,说明软件过过程能力改善善的潜力越大大。20软件过程成熟度的度量(CMM)CMM认为,,过程就是为为了达到给定定目标所实施施的一系列步步骤。它把人人、工具和规规程、方法组组织在一起。。换言之,过程程就是人们使使用相应的规规程、方法、、工具和设备备将原始材料料(输入)转转化为面向客客户的产品((输出)所执执行的一系列列活动。软件过程就是是软件开发人人员开发和维维护软件及相相关产品的一一套行为、方方法、实践及及变换过程。。21CMM定义义软件过程成熟熟度为一个特定软件件过程被明确确和有效地定定义、管理、、测量和控制制的程度。它是指对过过程计划或定定义水平、过过程实施水平平、过程管理理和控制水平平、过程改善善潜力等指标标的综合评价价。软件能力成熟熟度等级则为为软件开发组组织在走向成成熟的途中几几个具有明确定义义的表征软件件能力成熟度度的平台。每一个成熟度度等级为过程程继续改进达达到下一个等等级提供一个个基础。22软件过程成熟熟度等级分为5级级:初始级、、可重复级、、可定义级、、可管理级、、可优化级。。优化级54321可管理级可定义级可重复级初始级23经反馈得以改改进的过程结果生产率和质量风险可管理级保持优化的组组织,但仍为人员密集的的过程技术变更、问问题分析、问题预防过程度量、过过程分析、量化质量计划划培训、测试、、技术常规和评审、过程程关注、标准和过程项目管理、项项目策划、配置管理、软软件质量保证(量化的)已已度量的过过程(量化的)已已定义且制度化的过过程(直觉的)过过程依赖于于个人个别的、混乱乱的过程优化级可定义级可重复级初始级45321主要需解决的的问题特征等级24各成熟度等级级的特征初始级组织缺乏明文文的管理办法法,软件工作作没有稳定的的环境,制定定了计划又不不执行,反应应式驱动工作作开展。紧急情况下已已定的规程丢丢在一边,急急于编码和测测试。个别项目的成成功依赖于某某个有经验的的管理人员。。25个别管理人员员能顶住削减减过程的压力力,但他们离离职则全然不不同。规定的过程无无法克服由于于缺乏有效管管理带来的不不稳定性。现象往往表现现为过程无一一定之规,项项目进度、预预算、功能及及产品质量无无法保证,项项目的实施不不可预测。可重复级建立了为跟踪踪成本、进度度和功能的基基本项目管理理过程。26基于以往项目目经验,制定定了过程实施施规范,使类类似的项目可可再次成功。。能追踪成本、、进度、功能能,及时发现现问题。如有分包,其其质量也能得得到控制。可定义级制定了组织的的标准过程文文件,这是软软件工程基础础设施的重要要组成部分。。建立了组织的的软件工程过过程组SEPG,负责软软件过程活动动。27制定和实施了了人员培训大大纲,保证人人员能够胜任任岗位知识和和技能要求。。针对特定项目目,可将标准准软件过程进进行剪裁。项目成本、工工期和功能已已受控,质量量可跟踪。管理者了解所所有项目对技技术进步的要要求。可管理级已为产品和过过程建立了量量化的目标。。28对项目的过程程活动,包括括生产率和质质量均作了度度量。利用过程数据据库收集和分分析过程的信信息。可量化评价项项目过程和产产品。可有效地控制制过程和产品品的性能,使使其限制在规规定的范围内内。新应用领域的的风险可知可可控。可预知产品的的质量。优化级29集中注意于过过程的持续改改进。自知过程的薄薄弱环节,可可预防缺陷的的出现。可通过对当前前过程的分析析,评价对新新技术或将出出现的变更作作出评价。重视探索创新新活动,并将将成功的创新新推广。出现的缺陷得得到分析,找找出原因,防防止再次发生生,教训为其其它项目吸取取。30软件过程能力力软件过程能力力描述(开发发组织或项目目组)遵循其其软件过程能能够实现预期期结果的程度度。软件过程性能能则表征(开开发组织或项项目组)遵循循其软件过程程所得到的实实际结果。软件过程性能能描述已得到到的实际结果果,而软件过过程能力则描描述最可能的的预期结果。。为什么要提高高过程能力??对于顾客,较较高的过程能能力意味着::31开发组织能够更更好地响应自自己的要求软件产品的成成本更低能更好地满足足最终用户要要求对于开发组织织,较高的过过程能力表明明:软件产品开发发和维护成本本较低开发周期较短短由于有效的项项目风险分析析和工作量投投入估计,增增强了达到成成本和进度目目标的能力提高了满足量量化设计和质质量目标的能能力32关键过程域KPA((KeyProcessArea)除去初始级以以外,其它每每一个成熟度度等级都有若若干个引导软软件机构改进进软件过程的的要点,称为为关键过程域域。它们确定定了实现一个个成熟度级必必需解决的问问题,它们的的实施对于达达到该成熟度度等级的目标标起着保证作作用。CMM定义关关键过程域为为一个互相关联的若若干软件实践践活动和有关关基础设施的集合。33每一个关键过过程领域确定定一组相应的的活动,完成成这些活动,,就可认为已已达到了改进进过程能力的的一组重要的的目标。3435KPA目标需求管理控制项目需求,建立软件工程和管理任务的基线。保持软件计划、产品和任务与需求相一致。软件项目计划用文档记录估计,并在项目计划和跟踪时使用。规划并用文档记录项目任务和责任。相关小组和个人在他们应承担的项目责任上取得一致意见。第2级((可重复级))KPA的的目标36KPA目标软件项目跟踪和监督根据计划跟踪实际的结果和绩效。当实际的结果和绩效明显地偏离软件计划时,采取正确的行动,设法消除偏差。对责任的变更必须得到相关小组和个人认可。软件子合同管理主承包者与子承包者对他们承担的任务取得一致意见。主承包者根据责任跟踪子承包者的实际结果。主承包者和子承包者保持联系。主承包者根据责任跟踪子承包者的实际绩效。37KPA目标软件质量保证规划软件质量保证任务。客观地验证软件产品和任务是否坚持合适的标准、过程和需求。通知相关小组和个人关于他们在软件质量保证方面的任务和结果。由高层管理人员解决项目中不能解决的不相容问题。软件配置管理规划软件配置管理任务。标识、控制和使用选定的软件工作制品。控制对所标识的软件工作制品的变更。通知相关小组和个人关于软件基线的情况和内容。38KPA目标整体化软件管理项目已定义的软件过程是一种专用型的标准软件过程。根据已定义的软件过程规划和管理软件项目。组间协调所有相关的小组都同意客户的需求。所有小组都同意不同小组间应承担的责任。小组标识、跟踪和解决组间的问题。同行评审规划同行评审任务。标识软件工作制品中的缺陷并消除它们。第3级((可定义级))KPA的目目标39KPA目标组织过程焦点建立系统工程过程组SEPG并担负起职责。基于一个标准过程找出当前过程的优点和缺点,制定有关活动的计划。使软件过程开发与软件过程改进的活动保持一致。组织过程定义制定和维护组织的标准软件过程。收集、评审与应用有关标准软件过程的信息,制订过程剪裁与改进的方针。软件产品工程定义软件工程的有关任务,进行合理集成并保证一致性。保证软件各工作制品之间的一致性。40KPA目标培训规划建立培训计划。培训范围包括技术和管理两个方面。对培训过程进行记录,对培训效果进行评价以确定培训方案的质量。第4级((可度量级))KPA的的目标41KPA目标定量过程管理计划定量过程管理任务。定量地控制项目定义的软件过程的过程绩效。组织的标准软件过程的过程能力用量化的指标进行衡量。软件质量管理计划项目的软件质量管理任务。定义软件产品质量的可测目标及它们的等级。量化实现软件产品的质量目标的实际进程并对它进行管理。42第5级((优化级)KPA的目标标KPA目标过程变更管理制定针对持续过程改进的计划。组织软件过程活动的参与者遍及整个组织。组织的标准软件过程和项目定义的软件过程都能持续地改进。技术变更管理为引入技术变更制定计划。对新技术进行评估,以确定新技术对产品质量和生产率的影响。在组织的整个日常活动中引入适合的新技术。43KPA目标缺陷预防有计划地进行缺陷预防活动。诱发缺陷的常见的原因都已掌握。诱发缺陷的常见的原因已经按序排列并可被系统地消除。44关键过程域分分类5优化级过程变更管理
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论