最近一直再看有关软件工程方面的书,结合自身的项目经验,借此写下读书体会.
以下是比较官方的解释:
SEI(美国卡内基梅隆大学软件工程研究所(Software Engineering Institute, SEI))开发的CMM模型有:
用于软件的(SW-CMM;SW代表'software即软件'),
用于人力资源管理的(P-CMM;P代表'人'),
用于系统工程(SE-CMM),
用于集成产品开发的(IPD-CMM),
用于软件收集的(SA-CMM)
有不同模型之间有不一致的地方,并且不可避免地还有某种程度上的冗余.
因此,SEI决定开发一个单个集居的成熟度模型框架,即能力成熟度模型集成(CMMI)
将5个现有能力成熟度模型中的4个集成进一个模型---CMMI,SA-CMM留待以后加入
什么是CMMI?
软件能力成熟度模型(Capability Maturity Model For Software ,简称SW-CMM/CMMI),是由美国卡内基梅隆大学软件工程研究所(CMU SEI)研究出的一种用于评价软件承包商能力并帮助改善软件质量的方法,其目的是帮助软件企业对软件工程过程进行管理和改进,增强开发与改进能力,从而能按时地、不超预算地开发出高质量的软件。其所依据的想法是:只要集中精力持续努力去建立有效的软件工程过程的基础结构,不断进行管理的实践和过程的改进,就可以克服软件开发中的困难。
CMM/CMMI将软件过程的成熟度分为5个等级,以下是5个等级的基本特征(SW-CMM):
1 成熟度级别:初始级(initial)
这样的组织里,有效的软件过程管理方法在本质上没有获得使用.取而代之的是,每件事都在一个特别的基础上进行.由有竞争力的软件管理人员和优秀的软件开发人员组成的小组来开发某个具体的项目,项目可能会成功.通常的情况是由于有效管理和特殊计划的缺乏造成软件开发的超时和超支.
工作无序,项目进行过程中常放弃当初的计划。管理无章法,缺乏健全的管理制度。开发项目成效不稳定,项目成功主要依靠项目负责人的经验和能力,他一但离去,工作秩序面目全非。
2 成熟度级别:可重复级(Repeatable)
此级别使用了基本的软件项目管理措施,根据从类似产品中获得经验对新的产品进行计划和管理.因而,这个级别的名字是可重复级.在级别2,测量工作是充分实现一个过程的基本的第一步.典型的测试包括对花费和工作进度表的仔细跟踪.与级别1公公在软件开发过程出现问题的时候才采取措施相反,在此级别,管理人员能及时发现问题,并立刻采取纠正措施阻止这些问题演化成大的危机.问题的关键在于,如果不进行测量工作,在问题变得不可以控制之前我们不可能发现这些问题.并且,一个项目中的测量工作,在问题变得不可控制之前我们不可能发现这些问题.并且,一个项目中的测量工作能为以后项目时间和费用表的制定提供现实的依据
管理制度化,建立了基本的管理制度和规程,管理工作有章可循。 初步实现标准化,开发工作比较好地按标准实施。 变更依法进行,做到基线化,稳定可跟踪,新项目的计划和管理基于过去的实践经验,具有重复以前成功项目的环境和条件。
(3)已定义级(Defined)。开发过程,包括技术工作和管理工作,均已实现标准化、文档化。建立了完善的培训制度和专家评审制度,全部技术活动和管理活动均可控制,对项目进行中的过程、岗位和职责均有共同的理解 。
(4)已管理级(Managed)。产品和过程已建立了定量的质量目标。开发活动中的生产率和质量是可量度的。已建立过程数据库。已实现项目产品和过程的控制。可预测过程和产品质量趋势,如预测偏差,实现及时纠正。
(5)优化级(Optimizing)。可集中精力改进过程,采用新技术、新方法。拥有防止出现缺陷、识别薄弱环节以及加以改进的手段。可取得过程有效性的统计数据,并可据进行分析,从而得出最佳方法<!---->
对于自身所处于软件能力成熟模型层次有了一定的认知.目前,我所处公司的,所在cmmi的层次还属于初级,项目经常会出现延迟,反复的迭代需求,造成开发人员信心丧失等情况,文档也只是简单的用户操作手册而已,这也映射着国内大部分软件公司的现状.不重视技术的精益求精,只注重效益,唉............