推荐文档列表

软件工程与能力成熟度模型CMM

时间:2021-09-30 15:40:07 管理论文 我要投稿

软件工程与能力成熟度模型CMM

北京航空航天大学软件工程研究所 名誉所长 

  周伯生教授   

中国计算机用户 

 

 

    20世纪70年代中期,软件工程管理引起广泛注意。当时美国国防部曾立题专门研究软件项目做不好的原因,发现70%的失败项目是因为管理不善而引起的,而不是因为技术实力不够。他们进而得出一个结论,即管理是影响软件研发项目全局的因素,而技术只影响局部。这个结论非常重要。软件项目失败的主要原因有:需求定义不明确;缺乏一个好的软件开发过程;没有一个统一领导的产品研发小组;子合同管理不严格;没有经常注意改善软件过程;对软件构架很不重视;软件界面定义不善且缺乏合适的控制等等。在关系到软件项目成功与否的众多因素中,软件度量、工作量估计、项目规划、进展控制、需求变化和风险管理等都是与工程管理直接相关的因素。由此可见,软件工程管理的意义至关重要。

    

    软件项目的特殊性

    

    软件工程管理和其它工程管理相比有其特殊性。首先,软件是知识产品,进度和质量都较难度量,生产效率也较难保证。其次,软件系统复杂程度也是超乎想象的。例如,宇宙飞船的软件系统源程序代码多达2000万行,如果按过去的生产效率一个人一年只能写1万行代码的话,将需要2000人年的工作量,这是非常惊人的。正因为软件如此复杂和难以度量,软件工程管理的发展还很不成熟。

    

    CMM,逐步的成熟

    

    美国Carnegie Mellon大学软件工程研究所(CMU/SEI)主持研究与开发的CMM/PSP/TSP技术,为软件工程管理开辟了一条新的途经。CMM是英文“Capability Maturity Model”的简称,意为能力成熟度模型。CMM的本质是软件管理工程的一个部分。根据软件生产的历史与现状,CMM框架可用5个不断进化的层次来表达:其中初始层是混沌的过程,可重复层是经过训练的软件过程,定义层是标准一致的软件过程,管理层是可预测的软件过程,优化层是能持续改善的软件过程。任何单位所实施的软件过程,都可能在某一方面比较成熟,在另一方面不够成熟,但总体上必然属于这5个层次中的某一个层次。在某个层次内部,也有成熟程度的区别。在一个较低层次的上沿,很可能与一个较高层次的下沿非常接近,此时由这个较低层次向该较高层次进化也就比较容易。反之,在一个较低层次的下沿向较高层次进化,就比较困难。在CMM框架的不同层次中,需

[1] [2] [3]