基于CMM的软件过程改进

  只要一个软件企业在开发产品,它就一定有一个软件过程,可能只是没有写下来。如果这个过程不能很好地适应开发工作的要求,就需要进行软件过程改进。就成熟度升级而言,美国CMM评估业界和软件业界认为,从拟订出软件过程改进大纲算起,至少要18~24个月才能真正完成改进,并且随着软件项目开发的启动往往要"冻结"各项相关的软件过程,也就是说,在软件开发过程中一般不会去更改该项目开发涉及的软件过程。
  此外,所处水平越高升级亦越难--CMM的设计也融入了这种思想。因此,尽管从CMM 1.1版发布之日算也已过去了8年,即使在美国本土接受并通过CMM第4或第5级评估的主要还是那些在制定出CMM之前就有很强软件能力的公司(如IBM, 波音,洛克希德,休斯,摩托罗拉等)里的软件组织。

(1) 改进的一般步骤
  * 把要想达到的状态与目前的状态作比较,找出所有差距;
  * 决定要改变哪一些(注意,不一定是全部)差距,要改变到什么程度(可分阶段改);
  * 制定具体的行动计划;
  * 执行计划,同时在执行过程中对行动计划按情况进行调整(以最佳效果为目标);
  * 总结这一轮改进的经验,开始下一轮改进。

(2) IDEAL模型


  根据SEI的IDEAL集成软件过程改进模型(见图2.6),过程改进将由下列阶段组成:
(a) I:Initiating(初始)为成功地进行过程改进而打好基础。
  * 明确改进动机;
  * 确定改进范围以及获取支持;
  * 建立改进基础设施。
(b) D:Diagnosing(诊断)找出相对于你要达到的位置,你现在在何处。
  * 评估当前实践情况;
  * 提出建议并记录阶段成果。
(c) E:Establishing(建立)计划你如何达到你的目的地。
  * 确定改进战略和优先级;
  * 建立过程行动组;
  * 制定行动计划。
(d) A:Acting(行动)按计划进行工作。
  * 制定、执行和跟踪试行方案;
  * 改进试行方案;
  * 实施最终方案。
(e) L:Leveraging(扩充)从经验中学习和改进你在将来采用新技术的能力。
  * 总结经验教训;
  * 规划未来行动计划。