目前软件管理体系主要包括以下两个方面:ISO:9000:2000版以及CMM/CMMI下面主要介绍下面两个体系。
ISO:9000:2000版
ISO9000是国际标准化组织2000年提出的用来阐述质量概念之间相互区别与联系的指南,包括外部质量保证(ISO9001,ISO9002和ISO9003)以及内部质量保证(ISO9004)。ISO9001主要针对需要设计,加工,测试的企业,比如建筑业;ISO9002主要针对设计已经比较成熟,仅需要进行加工和测试,比如肥皂制造业(肥皂的设计是固定死的),ISO9003主要针对服务行业。由此可见软件企业是属于ISO9001体系范畴的,因为软件需要设计,开发和测试以及销售。
这些标准用于质量体系的需求的规格说明,适用于两个当事方签订合同时候要求证明供应方和提供产品能力的场合。两个当事方可以是外部客户和供应方,也可以都是内部的,例如公司的市场组和工程组。
ISO9001:2000需要由专门的培训机构来培训和相应的认证机构来认证,涉及部门为除财务部门以外的所有部门
ISO9001:2000的八大原则介绍如下:
领 导:
领导者建立组织共同一致的目的及方向,他们必须创造及管理内部环境,使人员能够完全投入,以达成组织目的。
以顾客为中心:
组织依赖其顾客,故必须了解现在及未来组织的需要,必须符合顾客要求并努力超越顾客期望。
全员参与:
各阶层人员是组织的基本要素,为了组织及自身利益,他们完全参与贡献其能力。
过程方法:
管理所有活动及相关资源,有效率地达到所欲结果。
系统化管理:
鉴别、监督和管理内部相关流程且成为一个系统,提供在达成组织目标之有效性与效率。
持续改进:
组织整体绩效之持续改进必须是组织永恒的目标。
互利的供应商关系:
组织与其供应商是相互依赖并有互利关系,以增进彼此能力、创造价值。
以事实作决策:
有效的决策是以资料及资讯的分析为基础。
ISO9001:2000的八大目录如下:
范围、引用标准、术语和定义、质量管理体系、管理职责、资源管理、产品实现、测量/分析和改进。
ISO9001:2000更加给与企业的灵活性,各个企业可以按照不同的情况来制定自己的流程。只强调6个程序化文件的要求,其他程序化文件视企业情况灵活指定,但是强调《质量手册》的重要性
ISO9001:2000强调企业经营者及高层领导在体系中的作用,应有证据表明高层管理积极参与策划、实施、维护和改进质量管理体系。
ISO9000管理者代表和推行委员会或内审小组或审查小组等相关部门是ISO9000体系日常维护与完善的管理部门,通过内部审查活动及其体系改进指导或外部独立认证机构的审查,来维护监管ISO9000体系的日常运转。
CMM
CMM是设在美国卡纳基梅隆大学中的软件工程研究所(SEI)尽对于软件行业指定的成熟度标准,共分为五个等级,分别为初始级,可重复级,已定以级,已管理级以及优化级。
目前国内实施CMM的软件企业大概80%达到可重复级,已定以级,20%达到已管理级,少数企业达到优化级。
每个级别按照过程域(KPI)来实施软件的成熟度,每个级别过程域如下:
可重复级:
需求管理
软件项目计划
软件项目跟踪和监督
软件子合同管理
软件质量保证
软件配置管理
已定义级:
机构过程焦点
机构过程定义
培训大纲
综合软件管理
软件产品工程
组间协调
同行评审
已管理级
定量过程管理
软件质量管理
优化级
缺陷预防
技术更新管理
过程更新管理
在使用CMM时候,应该结合公司实际情况,进行合理的解释。在应用环境不同时候,需要各方面专家做出合理的意见,这一点非常重要。虽然不同公司对CMM进行了不同的裁减,但是有资料表明,90%以上的关键实践还是用上的。
CMM是软件开发和维护中有关过程管理和质量改进的一般应用。CMM代表着软件届对于好的工程和管理实践的广泛的一致认同。但是CMM也不是扳上钉钉的事情。
执行CMM需要有专门的资源和资金。一般来说包括专业技术,充足的资金和涉及到的工具。
这里的资金不是预算,而是实际提供使用的资金。
执行CMM需要对公司所有员工进行相关的培训,以便使公司员工按照指定的规章进行日常工作
对于一些专门的关键过程域需要对相关人员进行定向的培训,比如:,培训项目经理如何对软件项目的跟踪与监督。
某些关键过程域是其他关键过程域的前提,比如只有建立了软件项目计划才能够执行软件项目的跟踪与监督。
实行CMM需要根据需要成立如下小组,小组成员可以兼职,也可以专职,一般来说需要成立以下小组:
主要的小组:
系统工程组:负责软件设计开发的小组;
系统测试组:负责软件测试工作的小组;
培训组: 负责培训公司员工以便CMM的执行
相关的小组:
软件过程工程组:制定项目工程流程的小组;
软件质量保证组:监督软件工程组指定软件过程的实施工作的小组;
软件配置管理组:对软件代码,软件文档进行配置管理,版本管理的小组;
ISO 9001 与CMM
ISO 9001 与CMM的最大差异在于CMM强调的是持续的过程改进;ISO 90001涉及的是可接受的质量体系的最低标准。另外CMM尽对于软件领域,ISO范围很广。
CMMI
CMMI是SEI组织结合公司其他部门一起(系统工程、采购、人力资源管理和集成产品开发等)在一起的能力度模型,
CMMI起源于三个模型(源模型),分别是:
(1) 软件能力成熟度模型( SW-CMM)2.0版,C稿
(2) 电子行业协会临时标准(EIA/IS731)
(3) 集成产品开发能力成熟度模型(IPD-CMM)v0.98
CMMI对CMM KPI做了相应的调整。
级 | CMM | CMMI | 类别 | ||
过程域 | 缩写 | 过程域 | 缩写 | ||
5 | 技术更新管理 | TCM | 组织革新与部署 | OID | 过程管理 |
过程更改管理 | PCM | CAR | |||
缺陷预防 | DP | 原因分析与决策 |
| 支持 | |
4 | 软件质量管理 | SQM | 组织过程性能 | OPP | 过程管理 |
定量过程管理 | QPM | 定量项目管理 | QPM | 项目管理 | |
3 | 软件产品工程 | SPE | 需求制定 | RD | 工程 |
技术方案 | TS | 工程 | |||
产品集成 | PI | 工程 | |||
验证 | VER | 工程 | |||
确认 | VAL | 工程 | |||
组织过程聚焦 | OPF | 组织过程聚焦 | OPF | 过程管理 | |
组织过程定义 | OPD | 组织过程定义 | OPD | 过程管理 | |
培训大纲 | TP | 组织培训 | OT | 过程管理 | |
集成软件管理 | ISM | 集成项目管理 | IPM | 项目管理 | |
组间协调 | |||||
| 风险管理 | RSKM | 项目管理 | ||
| 决策分析与决定 | DAR | 支持 | ||
| 集成供应商管理 | ISM | 项目管理 | ||
| 组织集成环境 | OEI | 支持 | ||
| IC | 集成组队 | IT | 项目管理 | |
2 | 需求管理 | RM | 需求管理 | RM |
|
软件项目策划 | SPP | 项目策划 | PP | 项目管理 | |
软件项目监督与控制 | SPTO | 项目监督与控制 | PMC | 项目管理 | |
软件分包管理 | SAM | 供应协议管理 | SAM | 项目管理 | |
软件质量保证 | SQA | 过程与产品质量保证 | PPQA | 支持 | |
软件配置管理 | SCM | 配置管理 | CM | 支持 | |
| 度量与分析 | MA | 支持 | ||
1 |
|
CMM/CMMI的评估
原来的CMM评估须遵循SEI的CAF (CMM Assessment Frame-work) 规范,由CMU/SEI授权的主任评估师(Lead Assessor)领导一个评审小组进行,评估方法采用IPI-CBA,评估过程包括员工培训(企业的高层领导也要参加)、问卷调查和统计、文档审查、数据分析、与企业的高层领导讨论和撰写评估报告等,评估结束时由主任评估师签字生效。
随着CMM过渡到CMMI,其CAF评估框架变成评估需求(ARC:Appraisal Requirements for CMMI);IPI-CBA评估方法被SCAMPI(Standard CNNI Appraisal Method for Process Improvement)方法代替。根据CMMI评估需求(ARC)规定三种评估类型,表4列出了SCAMPI评估方法的适用情况。
表4 可用的评估类型
评估类型 | ISO15504兼容 | SCAMPI 使用 | 主任评估师需求 | 评估组规模 |
Class A | × | 可能 | × | 5-17 |
Class B | - | 部分 | - | 2-7 |
Class C | - | 部分 | - | 2-3 |
SCAMPI评估组由几方人员共同组成,由主任评估师领导。其中评估小组是由经验丰富的软件专业人员组成,还要经过CMMI和SCAMPI评估方法的培训,使他们了解组织的同时,也懂得如何将CMM/CMMI模型及关键实践与组织的要求建立关联。参与评估的人员包括:公司的管理人员、项目经理,开发人员,培训人员,采购人员等。
评估过程主要分成三个阶段:准备阶段、评估阶段和报告阶段。准备阶段包括小组人员培训、计划以及其它必要的评估准备工作。在评估的最初几十天,小组成员的主要任务是采集数据,回答SEI的CMM/CMMI提问单,文档审阅以及进行交谈,对整个组织中的应用有一个全面的了解。
然后进行数据分析。评估员要对记录进行整理,并检验所观察到的一切信息,然后把这些数据与CMM/CMMI模型进行比较,最后给出一个评估报告。在每个评估报告中,必须针对CMM/CMMI 的每个过程方面,指出这个软件过程在什么地方已经有效地执行了,什么地方还没有有效地执行。只有所有评估人员一致通过的情况下,这个评估报告才有效。
在评估报告的基础上,评估小组产生一个评估结果。评估和评级的结果应与有关的关键过程方面和目标相对应。评估报告和结果将送交所有有关的人员并上报CMU/SEI。