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