软件过程
软件过程
• 软件过程指软件生存周期中的一系列相关的过程。过程是活动的集合,活动是任务的集合
• 软件过程有三层含义
Ø 个体含义,即指软件产品或系统在生存周期中的某一类活动的集合,如软件开发过程,软件管理过程等
Ø 整体含义,即指软件产品或系统在所有上述含义下的软件过程的总体
Ø 工程含义,即指解决软件过程的工程,它应用软件工程的原则、方法来构造软件过程模型,并结合软件产品的具体要求进行实例化,以及在用户环境下的运作,以此进一步提高软件生产率,降低成本
GB/T 8566-2007软件生存周期过程
• GB/T 8566-2007标准把软件生存周期中可以开展的活动分为5个基本过程,9个支持过程和7个组织过程。每一个过程划分为一组活动,每项活动进一步划分为一组任务
基本(primary)过程供各参与方在软件生存周期期间使用。包括:
• 获取(acquisition)过程:为获取系统、软件产品或软件服务的组织即需方而定义的活动
• 供应(supply)过程:为向需方提供系统、软件产品或软件服务的组织即供方而定义的活动
• 开发(development)过程:为定义并开发软件产品的组织即开发方而定义的活动
• 运作(operation)过程:为在规定的环境中为其用户提供运行计算机系统服务的组织即操作方而定义的活动
• 维护(maintenance)过程:为提供维护软件产品服务的组织即维护方而定义的活动
支持(supporting)过程用于支持其他过程,它有助于软件项目的成功和质量提高。包括:
• 文档编制(documentation)过程: 为记录生存周期过程所产生的信息而定义的活动
• 配置管理(configuration management)过程: 定义配置管理活动
• 质量保证(quality assurance)过程:为客观地保证软件产品和过程符合规定的需求以及已建立的计划而定义的活动
• 验证(verification)过程:根据软件项目需求,按不同深度验证软件产品而定义的活动
• 确认(validation)过程:确认软件项目的软件产品而定义的活动
• 联合评审(joint review)过程:为评价一项活动的状态和产品而定义的活动
• 审核(audit)过程:为判定符合于需求、计划和合同而定义的活动
• 问题解决(problem resolution)过程:为分析和解决问题而定义的活动
• 易用性(usability)过程:为易用性专业人员而定义的活动
组织(organizational)过程用于软件组织建立和实现由相关的生存周期过程和人员组成的基础结构,并不断改进这种结构和过程。包括:
• 管理(management)过程:为生存周期过程中的管理包括项目管理而定义的基本活动
• 基础设施(infrastructure)过程:为建立生存周期过程基础结构而定义的基本活动
• 改进(improvement)过程: 为某一组织建立、测量、控制和改进其生存周期过程而定义需要执行的基本活动
• 人力资源(human resources)过程: 为给组织或项目提供拥有技能和知识的员工而定义的活动
• 资产管理(asset management)过程:为组织的资产管理者而定义的活动
• 复用大纲管理(reuse program management )过程:为组织的复用大纲主管而定义的活动
• 领域工程(domain engineering)过程: 为领域模型、领域体系结构的确定及该领域资产的开发和维护而定义的活动
GB/T 8566-2007为软件生存周期过程建立了一个公共框架,它提供了一组标准的过程、活动和任务。对于一个软件项目,可根据其具体情况对标准的过程、活动和任务进行剪裁,即删除不适用的过程、活动和任务
GB/T 8566-2007标准的附录A中的剪裁(tailoring)过程规定了在针对该标准进行剪裁时所需要的基本活动,包括:标识项目环境;请求输入;选择过程、活动和任务;将剪裁决定和理由形成文档
附录B就剪裁要点提供简要说明,并列出一些关键要素,可以根据这些要素作出剪裁决定
ISO/IEC 12207-2008软件生存周期过程
• ISO/IEC 12207-2008标准对ISO/IEC 12207-1995作了很大的改动,该标准将软件生存周期中的过程分成两大类,7个过程组,43个过程
• 第一类过程称为系统周境过程(system context processes):这类过程处理独立的软件产品、服务或软件系统的系统周境
• 第二类过程称为软件特定过程(software specific processes):用于实现一个软件产品或者大型系统中的某一服务
• 系统周境过程包括以下4个过程组,25个过程
– 协定过程组:获取过程、供应过程
– 组织级项目使能(启用)过程组:生存周期模型管理过程、基础设施管理过程、项目投资管理过程、人力资源管理过程、质量管理过程
– 项目过程组:项目计划管理过程、项目评估和控制过程、决策管理过程、风险管理过程、配置管理过程、信息管理工程、测量过程
– 技术过程组:利益相关方需求定义过程、系统需求分析过程、系统体系结构设计过程、实现过程、系统集成过程、系统合格性测试过程、软件安装过程、软件验收支持过程、软件运作过程、软件维护过程