软件开发中所遵循的路线图称为“软件过程”。过程是活动的集合,活动是任务的集合。
定义
软件过程有三层含义:
一是个体含义,即指软件产品或系统在生存周期中的某一类活动的集合;
二是整体含义,即指软件产品或系统在所有上述含义下的软件过程的总结
三是工程含义,即指解决软件过程的工程,应用软件的原则、方法来构造软件过程模型,并结合软件产品的具体要求进行实例化,以及在用户环境下的运作,以此进一步提高软件的生产率,降低成本
能力成熟度模型
CMM Capbility Maturity Model of Software
目的
提供一种评价软件承接方能力的方法,同时可帮助软件组织改进其软件过程。
是对软件组织进化阶段的描述,随着软件组织定义、实施、测量、控制和改进其软件过程,软件组织的能力经过这些阶段逐步提高。
是软件组织能够较容易地确定期当前过程的成熟度并识别器软件过程执行中的薄弱环节,确定软件质量和过程改进最为关键的几个问题,从而形成对其过程的改进策略。软件组织只要关注认真实施一组有限的关键实践活动,就能逐步地改善其全组织的软件过程,使全组织的软件过程能力持续增长。
改进级别
初始量Initial
杂乱无章,有时甚至混乱,几乎没有明确定义的步骤,项目的成功完全依赖个人的努力和英雄式核心人物的作用。
可重复级Repeatable
建立基本的项目管理过程和实践来跟踪项目费用、进度和功能特性,有必要的过程准则来重复以前在同类项目中的成功。
已定义级Defined
管理和工程两方面的软件过程已经文档化、标准化,并总合成整个软件开发组织的标准软件。所有项目都采用更具实践情况修改后得到的标准软件过程来开发和维护软件
已管理级Manage
制定了软件过程和产品质量的详细度量标准,软件过程的而质量都被开发组织的成员理解和控制
优化级Optimized
加强定量分析,通过来自过程质量反馈和来自新观念、新技术的反馈使过程能不断持续地改进
能力成熟度模型CMMI
阶段式模型
结构类似CMM,关注组织的成熟度
级别
初始的:过程不可预测且缺乏控制
已管理的:过程为项目服务
已定义的:过程为组织服务定量管理的:过程已度量和控制
优化的:集中于过程改进
连续式模型
关注每个过程域的能力,一个组织对不同的过程域可以达到不同的过程域能力等级(Capability Level ,CL)
级别
CL0 (未完成的):过程域未执行或未得到 CL 1 中定义的所有目标
CL1( 已执行的):其共性目标是过程将可标识的输入工作产品转换成可标识的输出产品,以实现支持过程域的特定目标
CL2( 已管理的):其共性目标集中于已管理的过程的制度化。更具组织级政策规定过程的运作将使用哪个过程,项目遵循已文档化的计划和过程描述,所有正在工作的人都有权使用足够的资源,所有工作任务和工作产品都被监控、控制和评审
CL3( 已定义级的):其共性目标集中于已定义的过程的制度化。过程是按照组织的剪裁指南从组织的标准过程集中剪裁得到的,还必须手机过程资产和过程的度量,并用于将来对过程的改进上。CL4(已定量管理的):其共性目标集中于可定量管理的过程的制度化。使用测量和质量保证来控制和改进过程域,建立和使用关于质量和过程制定的定量目标作为管理准则
CL5(优化的):使用量化(统计学)手段改变和优化过程域,以满足客户要求的改变和持续改进计划中的过程域的功效
统一过程UP
阶段及制品
起始阶段
专注于项目的初创活动,主要产品有构想文档、用例模型、项目术语表、业务用例、初始风险评估、项目计划(阶段及迭代)、业务模型及一到多个原型
精化阶段
理解最初的领域范围之后进行需求分析和架构演进,主要产品有用例模型、补充需求、分析模型、软件体系结构描述、可执行的软件体系结构原型、初步的设计模型、修订的风险列表、项目计划(迭代计划、工作流、里程碑、技术工作产品)及用户手册
构建阶段
关注系统的构建,产生实现模型,主要产品设计模型、软件构件、集成的软件增量、测试计划及步骤、测试用例以及支持文档(用户手册、安装手册和对于并发增量的描述)
移交阶段
关注与软件提交方面的工作,产生软件增量,主要产品有提交的软件增量、ß测试报告和综合用户反馈
核心工作流
需求工作流
分析工作流
设计工作流
实现工作流
测试工作流
里程碑
初始阶段:生命周期目标
精华阶段:声明周期框架
构建阶段:初始运作功能
移交阶段:产品发布
典型代表RUP (Rational Unified Process),UP的商业扩展,完全兼容UP,但比UP更完整、更详细