SEI의 CMM (Capability Maturity Model)
CMM은 1991년에 미 국방성의 지원에 의해 카네기멜론 대학의 SEI(Software Engineering Institute)에서 개발되었으며, 미 국방성을 비롯하여 NASA, AT&T 등 미국내 정부기관과 통신업체 및 대부분의 소프트웨어개발 전문업체 등에서 공정평가 기반모델로 적용되고 있다.
CMM은 업체의 개발능력을 표시하는 성숙도의 레벨과 해당 레벨을 달성하기 위해 반드시 수행해야 하는 핵심공정분야 (key process area), 각 분야별 유사활동 (common features), 그리고 핵심공정분야의 효율적인 구현을 위해 필요한 상세규칙 (key practices)으로 구성되어 있다. 핵심공정분야는 각 레벨에 따라 만족시켜야 할 주요 요소가 정의되며, 유사활동은 각 레벨에 대해 공통되는 요소 (목적, 의무사항, 측정 및 분석 등 6가지)를 의미하고, 상세규칙은 해당 레벨을 달성하기 위해 만족시켜야 할 규칙들을 나타낸다. 예를 들어 레벨 2를 달성하려면 요구사항 관리, 계획수립, 추적관리, 계약관리, 품질보증, 형상관리 등 핵심공정분야에 대해 상세규칙 약 75개를 만족시켜야 한다.
CMM이란 이와 같은 「조직의 능력 개선 Model」이며 LEVEL 2로의 추진으로서 제안되어 있는 주요 테마는 소프트웨어의 개발 조직에 한정되는 것은 아니며, 실제 H/W 조직에 대해서도 유효하다.
성숙도 레벨이 높을수록 개발기관의 능력이 우수함을 의미하며, 각 레벨은 상위 레벨로의 지속적인 성숙을 위한 기반을 제공한다. CMM에서 제안한 성숙도 레벨은 Trillium과 SPICE를 비롯한 대부분의 개발공정평가 모델에서 유사하게 적용되고 있다.
- 레벨1(initial)은 소프트웨어 개발공정이 정의되어 있지 않고 임시변통적으로 진행되는 수준으로, 프로젝트의 성공이 개인의 노력과 능력에 의해 좌우되는 경우가 이에 해당된다.
- 레벨 2(repeatable)는 프로젝트 관리를 위한 기본공정이 사용자 요구사항과 비용 및 일정을 추적•관리하기 위해 설정된 수준으로, 초기에 성공한 프로젝트의 기본 원칙들이 반복적으로 적용되는 경우가 이에 해당된다.
- 레벨 3(defined)은 관리 및 공학 활동이 조직 차원에서 통합되어 표준화되고 문서화된 수준으로, 소프트웨어 개발 및 유지를 위한 모든 활동이 조직에 의해 승인되고 정의된 표준에 의해 통제되는 경우가 이에 해당된다.
- 레벨 4(managed)는 소프트웨어 공정 적용결과와 제품품질 측정결과가 상세히 수집되고 소프트웨어 공정과 제품이 정량적으로 이해되며 통제되는 수준으로, 공정이 정량적으로 이해되고 안정화되는 경우가 이에 해당된다.
- 레벨 5(optimizing)는 혁신적인 생각(idea)과 최신 기술의 시험운용 결과를 정량적으로 피드백함으로써 지속적 공정 개선이 가능한 수준으로, 조직의 모든 사람이 공정개선에 참여하는 경우가 이에 해당된다.
CMM에서 제시하는 각 레벨을 공정, 인력, 기술 및 측정 수준으로 분류하여 정의하면 표 2와 같다. [출처] SEI의 CMM (Capability Maturity Model)|작성자 함께해요
이밖에 ‘94년에 발표된 CMM V.1.1에는 CMM을 이해하는 법과 CMM 적용법, NASA에서 우주선에 사용되는 소프트웨어 개발공정을 대상으로 공정평가를 수행한 예를 제시하고 있으며, 레벨별로 만족시켜야 할 규칙 약 250개를 정의하고 있다.