《信息技术软件生存周期过程》——ISO/IEC12207与GB/T8566摘要对于保证软件质量,提高软件工程能力,关键是科学地建立和管理软件工程过程。ISO/IEC12207《信息技术一软件生存周期过程》总结了有关研究成果,描述了软件生存期的各个过程及其关系,成为当前关于软件质量管理和软件过程评估与改进方面国际标准的主要参照文献,也是美国、欧洲共同体等发达国家软件工程标准的基本参照文献。我国也发布了等同于国际标准的国标GB/T8566。1ISO/IEC122071.1ISO/IEC12207的主要内容ISO/IEC12207的主要内容是对软件生存期过程给出了明确的定义。它将软件生存期过程分为3类,即基本类过程、支持类过程和组织类过程,总共定义了17个过程;每个过程包含若干活动,总共74项活动;每个活动是一组相互协调的作业,总共232个作业。作业表示为某种要求、自我说明、建议或可允许的活动。基本生存周期过程基本生存周期过程是构成软件生存周期主要部分的那些过程,这些过程启动并执行软件产品的开发、操作或维护,含有5个过程。l获取过程:定义需方(即获取一个系统、软件产品或软件服务的组织)的活动。l供应过程:定义供方(即向需方提供系统、软件产品或软件服务的组织)的活动。l开发过程:定义开发者(即定义和开发软件产品的组织)的活动。l操作过程:定义操作者(即在计算机系统运行环境中为用户提供操作服务的组织)的活动。l维护过程:定义维护者(即对软件产品进行维护服务的组织)的活动,这个过程包括系统移植和换代。支持生存周期过程支持过程是对另一个过程提供支持的过程。被支持的过程根据需要采用支持过程,并与该过程结合,帮助软件项目获得成功,并提高质量。支持生存周期过程包括8个过程。文档开发过程:定义对某生存周期过程所产生的信息进行记录的活动。配置管理过程:定义配置管理活动。质量保证过程:定义保证软件产品和过程符合规定要求,遵守一定计划的活动。验证过程:定义需方、供方或独立的第三方对软件产品进行验证的活动。这些验证活动的深度由软件项目的性质决定。确认过程:定义需方、供方或独立的第三方对软件产品进行确认的活动。联合评审过程:定义对某项活动的状态和产品进行评价的活动。这一过程可由任何双方共同采用,其中一方(评审方)评审另一方(被评方)。审计过程:定义对是否符合要求、计划和合同进行确定的过程。这个过程可由任何双方采用,其中一方(审计方)审计另一方(被审方)的软件产品或活动。问题解决过程:定义对开发、操作、维护或其他过程中发现的问题(包括不一致性)进行分析与排出的过程。组织生存周期过程组织生存周期过程是一个组织用来建立、实施一种基础结构并不断改进该基础结构的过程。基础结构由一些相关的生存周期过程和人员组成,包括4个过程。管理过程:定义在生存周期过程中管理(包括项目管理)的基本活动。基础过程:定义建立生存周期过程的基础结构所需的基本活动。改进过程:定义一个组织(即需方、供方、开发者、操作者、维护者或另一过程的管理者)为了建立、测量、控制和改进其生存周期过程需完成的基本活动。培训过程:定义为提供适当的人员培训所需的一些活动。1.2ISO/IEC12207的特点从使用角度看,该标准有下列五个特点:1)强调在实施软件工程时必须采用适当的系统化的方法,但该标准并不限定采用哪种具体方法。标准中各项活动的位置顺序并不意味时间顺序,开发过程中的活动名称并不是开发阶段的名称。至于具体应采用什么方法,当由用户自己定义。2)考虑了各种不同软件的需要,包括通用的软件产品和专用的嵌入式软件;可靠性、安全性、保密性要求很高的软件和一般要求的软件;大型系统中的软件配置项和单独的小型软件。3)考虑了软件生存周期过程所涉及的各类人员的需要。描述了各个过程所必须开展的活动和完成的作业。4)结构图明确了三类过程的关系:基本类软件过程固然很重要,但不能只考虑这些过程;支持类过程是保证项目成功,保证软件产品质量所必不可少的,不执行这些过程基本过程就不可能取得成功;而组织类过程则是软件组织取得成功的基础,只有这个基础坚实并不断改进,组织的软件能力才能不断提高。5)不仅对当前软件项目的生存周期过程给出明确要求,而且强调过程改进,并作为软件组织的领导必须认真考虑的主要问题之一,描述了有关过程改进活动和作业的要求。1.3如何使用该标准为软件生存周期过程建立了一个公共框架,以供软件产业界使用,它包括在含有软件的系统、独立软件产品和软件服务的获取期间以及在软件产品的供应、运行和维护期间需应用的过程、活动和任务。软件包括软固件的软件部分。它描述了软件生存周期过程的体系结构,但并未规定如何实施或执行各过程中包含的活动和任务的细节,不打算规定要产生的文档的名称、格式或编写内容,也不规定一个特定的生存周期模型或软件开发方法。ISO/IEC12207考虑了五种观点:合同观点:获取方和供方从合同观点出发分别应用获取过程和供应过程,同时也采用支持过程。获取过程和供应过程这两个过程以合同相联系。工程观点:开发者和维护者从工程观点出发分别应用开发过程和维护过程,同时也采用支持过程,而维护过程也要采用开发过程。运行观点:运行者和用户从运行观点出发采用运行过程,同时也采用支持过程,运行过程中发现了软件问题,还要采用维护过程。支持观点:支持过程的采用者从支持观点出发采用所有基本过程,并采用管理过程和其他有关支持过程。管理观点:管理者从管理观点出发采用管理过程来管理所有上述过程,并采用组织类的其他过程来为上述过程的实施和改进提供基础和前提。ISO/IECl2207的质量管理有以下几种使用途径:(1)将质量管理活动集成到生存周期中。每个过程可以使用改进过程的“PDCA(策划、实施、检查、处置)”循环。把所有质量相关的活动与相关的生存周期过程结合起来,作为生存周期过程的有机部分。每个过程的实施负责人被指定负责有关过程内的质量活动。(2)实施质量保证过程。实施专门保证产品和服务符合规定要求和已制定计划的过程。负责这个过程的人员具有必要的组织自由和权力。组织自由是相对于直接负责生产产品的人员而言,而权力是指进行评价和启动纠正措施的权力。(3)实施改进过程。ISO/IECl2207包含为了进一步改进全组织范围的质量而进行的改进过程。这与合同义务无关。2GB/T85662.1GB/T8566的主要内容本标准把软件生存周期中可能执行的活动分为5个基本过程、9个支持过程和7个组织过程,每一生存周期过程划分为一组活动,每一活动进一步划分为任务。5个基本过程:1、获取过程:为需方而定义的活动,启动,招标,合同,对供方监督,验收等2、供应过程:为供方而定义的活动,启动,准备投标,签订合同,编制计划,执行,交付和完成3、开发过程:为开发方而定义的活动:需求、设计、编码、测试、安装、验收4、运作过程:为操作方而定义的活动:运行测试,系统运行,用户支持5、维护过程:为维护方而定义的活动:问题和修改分析,修改实现,维护评审/验收,迁移,软件退役9个支持过程:1、文档编制过程2、配管管理过程3、质量保证过程4、验证过程:确定软件产品是否满足在以前的活动中施加于它们的要求和条件的过程。合同验证,过程验证,需求验证,设计验证,编码验证,集成验证,文档验证5、确认过程:确定需求和最终的、已建成的系统或软件产品是否满足特定的预期用途的过程。该过程包括下列任务:1、为分析测试结果准备选择的测试需求、测试用例和测试规格说明2、确保这些测试需求、测试用例和测试规格说明反映特定的预期用途的特殊要求3、测试包括强度、边界和异常输入测试6、联合评审过程:评价某个项目的一项活动的状态和产品,项目管理评审,技术评审7、审核过程:在适当时确定与需求、计划和合同的符合性8、问题解决过程:为分析和解决问题(包括不合格)而定义的活动,不论问题的性质或来源如何,它们都是在实施开发、运作、维护或其他过程期间暴露出来的。9、易用性过程:为易用性专业人员而定义的活动。7个组织过程1、管理过程:为生存周期过程中的管理包括项目管理而定义的基本活动2、基础设施过程:为建立生存周期过程基础结构而定义的基本活动3、改进过程:为某一组织(即需方,供方,开发方,操作方,维护方或另一过程的管理者)4、人力资源过程:为给组织或项目拥有技能和知识的员工而定义的活动5、资产管理过程:为组织的资产管理者而定义的活动6、重用大纲管理过程:为组织的重用大纲主管而定义的活动,启动,领域评估,重用评估,策划,执行和控制,评审和评价7、领域工程过程:领域工程师的活动和任务,领域分析,领域设计,资产供应,资产维护3差异内容GB/T8566等同于ISO/IEC12207,但在内容上有一些差异。GB/T8566上增加了一些新的内容:1.易用性所谓易用性过程就是为了增强软件产品的易用性质量特性——软件产品的易理解性、易学性、易操作性、吸引性、易用性的依从性,进而提高软件的满意度而实施的活动和任务。2.人力资源过程人力资源过程是对ISO/IEC12207培训过程修改而成的,该过程包含6个活动、15个任务。人力资源过程是为组织和项目提供拥有技能和知识的员工的过程使得员工能有效地履行其角色并在一起协调工作。3.随着软件开发技术的不断进步,软件质量要求的不断提高,软件重用技术、软件构件化的需求也越来越迫切,为了适应这种需求GB/T8566新版标准增加了3个与软件重用相关的过程,即资产管理过程、重用大纲管理过程和领域工程过程。资产管理过程包含3个活动15个任务,资产管理过程是在资产生存周期内将管理和技术规程运用于标识、定义、证明、分类和基线化资产的过程;追踪资产的更新、迁移和版本记录并报告资产的状态;建立并控制资产的存储和处理将资产交付给其重用者以及将资产退役的过程。重用大纲管理过程包含6个活动24个任务,为了在组织级实施资产的重用组织应建立一套资产重用的规程——即重用大纲。组织级系统性重用的成功实现需要仔细的策划并适当的管理。由于业务、管理和人员带来的挑战常常大于实现重用的技术困难。因此重用大纲应着重强调管理的领导能力、承诺、支持以及积极的重用软件文化。重用大纲范围内的所有个人在建立重用过程中应相互合作,并共享重用专业知识和资产。原则上讲,软件资产重用与领域密切相关。由此产生了领域工程的概念和方法。领域工程是一种基于重用的方法。用这种方法可以对一类系统、子系统或应用程序定义其范围(即领域定义)、规定其结构(即领域体系结构),并构建资产(如需求、设计、软件代码和文档等)。领域工程一般包括领域定义、领域分析、领域体系结构开发和领域实现。而领域工程过程覆盖领域模型、领域体系结构和领域资产的开发维护。本标准中领域工程过程包含5个活动27个任务。主要针对领域工程师如何实施领域工程过程给出了一些要求和方法。4.参考文献1.杨根兴软件质量保证、测试与评价清华大学出版社2.冯惠信息技术软件生存周期过程GB/T8566介绍中国电子技术标准化所4.王玮软件生存周期过程简介[期刊论文]-航天科工集团5.文库GB/T8566信息技术软件生存周期过程6.上海软件中心软件生存期过程标准ISO/IEC12207简介