1、软件过程
软件过程(Software Procedure)是指软件生存周期所涉及的一系列相关过程。过程是活动的集合;活动是任务的集合;任务要起着把输入进行加工然后输出的作用。活动的执行可以是顺序的、重复的、并行的、嵌套的或者是有条件地引发的。
软件过程可概括为三类:基本过程类、支持过程类和组织过程类。基本过程类包括获取过程、供应过程、开发过程、运作过程、维护过程和管理过程。支持过程类包括文档过程、配置管理过程、质量保证过程、验证过程、确认过程、联合评审过程、审计过程以及问题解决过程。组织过程类包括基础设施过程、改进过程以及培训过程。
软件过程主要针对软件生产和管理进行研究。为了获得满足工程目标的软件,不仅涉及工程开发,而且还涉及工程支持和工程管理。对于一个特定的项目,可以通过剪裁过程定义所需的活动和任务,并可使活动并发执行。与软件有关的单位,根据需要和目标,可采用不同的过程、活动和任务。
2、软件过程成熟度
软件过程成熟度是一个特定过程被明确地定义、管理、测量、控制、并且是有效的程度。
成熟度意味着能力上的增长潜力,并且表明一个组织软件过程的丰富性和在遍及组织的项目中运用它时的一致性。在成熟组织中,通常通过文档和培训使全组织有关人员对软件过程都能很好的了解,并且使该过程得到其用户不断的监控和改进。一个成熟软件组织的能力是已知的。软件过程成熟度意味着,由于运用组织的软件过程使过程纪律性一致增强,从而其软件过程所导致的生产率和质量能随时间的推移得到改进。
随着软件组织的软件过程成熟度的提高,组织通过方针、标准和组织机构将其软件过程规范化。规范化需要建立一种支持经营方法、实践和规程的基础设施及社团文化,使得在最初定义方法、实践和规程的人员离去后,它们仍能继续下去。
美国卡内基梅隆大学软件工程研究所(SEI提出的软件能力成熟度模型将软件过程的成熟度分为5个等级,各个等级的特征如下:
①初始级:在这一成熟级别的组织,其软件开发过程是临时的、有时甚至是混乱的。没有几个过程是被定义的,常常靠个人的能力来取得成功。
②可重复级:在这一成熟级别的组织建立了基本的项目管理过程来跟踪软件项目的成本、进度和功能。这些管理过程和方法可供重复使用,把过去成功的经验用于当前和今后类似的项目。
③已定义级:在这一级,管理活动和软件工程活动的软件过程被文档化、标准化,并被集成到组织的标准软件过程之中。在达到这一级的组织中,所有项目都使用一个经批准的、特制的标准过程版本。在具体使用这个标准过程时,可以根据项目的实际情况进行适当的剪裁。
④已管理级:在这一级,组织和项目为质量和过程绩效建立了量化目标,并以此作为管理过程的依据。软件过程和产品都被置于定量的掌控之中。
⑤持续优化级:处于这一成熟度模型的最高水平,组织能够运用从过程、创意和技术中得到的定量反馈,来对一软件开发过程进行持续改进。
3、CMMI的5个级别和25个过程域
CMMI全称是Capability Maturity Model Integration,即软件能力成熟度模型集成模型。分为5个级别,25个过程域(Process Area,PA)。
(1)初始级(Initial)
软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力。管理是反应式的。
(2)可重复级/受管理级(Repeatable)
建立了基本的项目管理过程来跟踪费用、进度和功能特性。制定了必要的过程纪律,能重复早先类似应用项目取得的成功经验。
共7个过程域:
1)需求管理 Requrements Management
2)项目规划 Project Planing
3)项目跟踪和控制 Project Monitoring and Control
4)供应商协议管理 Supplier Agreement Management
5)度量与分析 Measurement and Analysis
6)过程与产品质量保证 Process and Product Quality Assurance
7)配置管理 Configuration Management
(3)已定义级(Defined)
已将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。所有项目均使用经批准、剪裁的标准软件过程来开发和维护软件,软件产品的生产在整个软件过程是可见的。
共14个过程域:
1)需求开发 Requirements Development
2)技术解决方案 Techical Solution
3)产品集成 Product Integration
4)验证 Verification
5)确认 Validation
6)组织过程焦点 Organization Process Focus
7)组织过程定义 Organization Process Defintion
8)组织培训 Orgnizational Training
9)集成项目管理 Integrated Project Management
10)风险管理 Risk Management
11)决策分析和解决 DecisionAnalysis and Resolution
12)集成团队 Integrated Teaming
13)集成组织环境 Organizational Environment for Integration
14)集成供应商管理 Integrated Suppliers Management
其中12、13是针对大型软件团队提出的要求,一般情况下中小型软件企业可以不用。14是如果软件企业需要管理大量的供应商,则需要考虑这个PA。
(4)量化管理级(Managed)
分析对软件过程和产品质量的详细度量数据,对软件过程和产品都有定量的理解与控制。管理有一个作出结论的客观依据,管理能够在定量的范围内预测性能。
共2个过程域:
1)组织过程性能 Orgnizational Process Performance
2)量化项目管理 Quantitative Project Management
(5)优化管理级(Optimizing)
过程的量化反馈和先进的新思想、新技术促使过程持续不断改进。
共2个过程域:
1)组织创新及部署 Orgnizational Innovation and Deployment
2)原因分析与决策 Causal Analysis and Resolution