CMMI(Capacity Maturity Model Integration)-cmm 모델을 사용하는 입장에서는 각각의 모델을 별개로 적용하는 것보다는 전체적 관점에서 시너지 효과를 내기 위해서는 어떻게 적용할 것인가에 대한 방안이 필요하게 되어 개발된 통합 모델.-1996년부터 1997년 사이에 모델들을 통합하기 위한 노력이 있었고 그 결과로 CMM 개발자 가이드 발표.-다섯 가지 CMM 모델 중에서도 SW-CMM, SE-CMM, IPD-CMM 등이 널리 알려지고 사용되어 왔으며, 통합 CMM의 최초 노력은 위의 세가지 모델의 통합을 대상으로 했다.-최초로 발표된 통합 CMM은 CMMI-SE/SW 1.1버전으로서 시스템엔지니어링과 소프트웨어엔지니어링 분야를 다루고 있다. CMMI-SE/SW/IPPD 1.1.버전은 시스템엔지니어링, 소프트웨어엔지니어링, 통합 제품 및 프로세스관리(IPPD) 등을 포함하고 있다.-CMMI-SE/SW/IPPD는 CMMI-SE/SW와 비교해 다음과 같은 특징이 있다.▶IPPD는 두 가지 프로세스를 추가하고 있는데, 통합을 위한 조직환경(OEI, Organization Environment for Integration)과 통합된 팀구성(Integrated Teaming) 등이다.▶통합 프로젝트 관리(IPM, Integrated Project Management)는 IPPD 관련 프로세스들을 포함함으로써 보다 강화되고 있다.※1.1버전의 다른 모델: 2002년 봄에 발표될 예정인 CMMI-SE/SW/IPPD/SS-이것은 CMMI-SE/SW/IPPD에 공급자 소싱(SS, Supplier Sourcing)을 추가한 것이다.새로운 모델은 2000년 12월에 발표된 CMMI-SE/SW/IPPD/A의 내용을 포함하게 되는데 다음과 같은 특징을 갖는다.
★조직 성숙도 평가 모델[CMM (capability maturity model)]1. 등장배경-미 국방성은 1984년 Carnegie Mellon 대학에 소프트웨어 공학 연구소(SEI : Software Engineering Institute)를 설립하였다. 1986년에 SEI는 미 공군이 최상의 품질의 제품을 인도할 것으로 기대되는 업체를 선정하는 것을 돕기 위한 프로젝트를 시작하여 1987년 SEI는 소프트웨어 프로세스 성숙 모델의 개략적인 형태를 발표하였으며 1991년에 CMM 이라는 성숙도 모델을 발표.2. 종류▶SW-CMM: 조직의 소프트웨어 공정 성숙수준을 평가하고, 그 수준을 향상시키기 위하여 수행해야 할 주요 활동 정의▶P-CMM: 소프트웨어 개발 인력을 관리하고, 그들의 수행 능력을 향상시키기 위하여 필요한 요소들 정의▶SA-CMM: 벤치마킹을 포함한 소프트웨어의 획득을 위한 공정을 향상시키기 위한 모델▶SE-CMM: 조직의 시스템 공학 공정을 구성하는 핵심 요소들을 정의▶IPD-CMM: IPD 방식의 설계, 개발, 평가 및 개선에 대한 지침을 제공3. 정의▶효율적인 소프트웨어 개발 공정의 핵심 요소들을 기술하는 프레임워크이다.▶소프트웨어 개발과 유지를 계획하고 설계하고 관리하기 위한 시행 규칙을 다룬다.▶조직의 개발 공정의 성숙도를 판단할 수 있는 척도를 수립한다.4. 구조▶개발 공정의 성숙도 모델은 5개의 성숙도 단계로 구성되어 있다.▶1단계를 제외하고 각 성숙도 단계는 여러 개의 핵심 공정 영역으로 구성되어 있다.▶각 핵심 개발 공정 영역은 공통 특성이라 부르는 5개 부문으로 체계화된다.▶공통 특성들은 공동으로 다루어질 때 핵심 공정 영역의 목표들을 달성하는 핵심 공정 영역들을 구체적으로 기술한다.공정 성숙도 가리킨다 성숙도 단계(Process Capability) (indicate) (Maturity Levels)포함한다 (contain)목표 달성한다 핵심공정영역(Goals) (archieve) (Key Process Areas)으로구성된다 (organized by)실행 및 정규화 강조한다 공통특성(Implementation or Institutionalization) (address) (Common Features)포함한다 (contain)기반구조 및 활동 나타낸다 핵심 프랙티스(Infrastructure or Activities) (describe) (Key Practices)[개발 공정의 성숙도 모델의 구조]▶성숙도 단계(Maturity Levels): 성숙한 소프트웨어 개발 공정 달성을 위해 잘 정의되고 발전된 안정 상태이다. 5개의 성숙도 단계들은 개발 공정 평가 모델의 상위 수준의 구조를 제공.▶공정 성숙도(Process Capability): 소프트웨어 개발 공정 능력은 핵심 공정 영역의 소프트웨어 개발 공정들에 의해 달성될 수 있는 기대 결과들의 범위를 기술한다. 조직의 소프트웨어 개발 공정 능력은 조직이 수행하는 다음의 소프트웨어 프로젝트로부터 기대될 수 있는 가능하다고 생각되는 결과들의 예측에 관한 방법들을 제공.▶핵심 공정 영역 (Key Process Areas): 각 성숙도 단계는 핵심 공정 영역들로 구성된다. 각 핵심 공정 영역은 공동으로 수행될 때, 그 성숙도 단계에서 개발 공정 능력을 확립하기 위해 중요하다고 생각되는 일련의 목표들을 달성하는 관련 활동들의 집합을 나타낸다. 핵심 공정 영역들은 단 하나의 성숙도 단계에서 존재하도록 정의.▶목표(Goals): 핵심 공정 영역의 핵심 프랙티스들을 요약하고, 조직 또는 프로젝트가 핵심 공정 영역을 효과적으로 이행하고 있는지에 대해 결정하기 위해 사용될 수 있다. 목표들은 각 핵심 공정 영역의 범위, 경계 그리고 목적을 의미.▶공통 특성(Common Features): 핵심 프랙티스들은 5개의 공통 특성 부문들로 나누어진다. 공통 특성들은 핵심 공정 영역의 이행 및 제도화가 효과적이고, 반복 가능하며 영속하는지를 가리키는 속성.▶핵심 프랙티스(Key Practices): 각 핵심 공정 영역은 이행될 때 그 핵심 공정 영역의 목표들을 충족시키는 데에 도움을 주는 핵심 프랙티스들에 관하여 기술된다. 핵심 프랙티스들은 핵심 공정 영역의 효과적인 이행과 제도화의 대부분에 기여하는 하부구조와 활동들을 기술.5. 레벨의 정의-조직들은 그들의 소프트웨어 작업 산출물들을 개발하고 유지 보수하는 소프트웨어 개발 공정들을 정립하고 개선함으로써, 성숙도의 단계들을 통하여 발전한다.1 단계초기 단계(Initial) 숙련된 공정2 단계반복 가능 단계(Repeatable) 표준화되고 일관성 있는 공정3 단계정의된 단계(Defined) 예측 가능한 공정4 단계관리된 단계(Managed) 지속적으로향상되는 공정5 단계최적화되는 단계(Optimizing)[개발 공정 성숙도 모델의 5개의 성숙도 단계]각 성숙도 단계는 지속적인 개발 공정 개선을 위해 기반이 되는 단층을 제공한다. 각 핵심 공정 영역은 일련의 목표들로 구성되는데, 이들이 만족되면 소프트웨어 개발 공정의 중요한 구성 요소들은 안정된다. 성숙도 모델의 각 단계를 달성하면 소프트웨어 개발 공정의 차이나는 구성 요소를 제도화하는데, 그 결과로 조직의 개발 공정 능력이 전체적으로 증가하게 된다.▶초기 단계(Initial)조직들의 소프트웨어 개발 공정 능력은 작업이 진행되면서 소프트웨어 개발 공정이 끊임없이 변경되고 수정되므로 예측이 불가능하다. 납기, 예산, 기능 그리고 제품 품질을 일반적으로 예측할 수 없다. 성과는 개인들의 능력에 의존하며, 그들이 가진 타고난 기술, 지식, 그리고 열의에 따라 변한다. 눈에 띄는 안정된 소프트웨어 개발 공정은 거의 없고 성과는 조직적인 능력보다는 오직 개인에 의해 예측될 수 없다.▶반복 가능 단계(Repeatable)조직들의 소프트웨어 개발 공정 능력은 소프트웨어 프로젝트의 계획과 추적이 안정되어 있고, 이전의 성공들이 반복될 수 있으므로 훈련되어 있다라고 요약될 수 있다. 프로젝트의 개발 공정은 이전 프로젝트의 성과를 기초로 한 현실적인 계획을 준수하고 있으므로, 프로젝트 관리 시스템의 효과적인 통제 하에 있다.▶ 정의된 단계(Defined)조직들의 소프트웨어 개발 공정 능력은 소프트웨어 공학과 관리 활동들이 안정되고 반복 가능하므로, 표준화되고 일관성이 있다라고 요약할 수 있다. 설정된 제품 라인내에서는 비용, 납기일 그리고 기능이 통제 하에 있고, 소프트웨어 품질이 추적된다. 이 개발 공정 능력은 정의된 소프트웨어 개발 공정에 있는 활동, 역할, 책임들에 대한 공통의 조직 전체적인 이해에 기초하고 있다.▶관리된 단계(Managed)조직들의 소프트웨어 개발 공정 능력은 개발 공정이 측정 가능한 범위 내에서 측정되고 운영되기 때문에 예측 가능한 것으로 요약될 수 있다. 개발 공정 능력의 이 단계는 이러한 한계의 정량적인 범위 내에서 개발 공정과 제품 품질의 경향을 예측하는 조직이라고 인정한다. 이들 한계가 초과되면 상황을 수정하기 위한 조치가 취해진다.▶최적화하는 단계(Optimizing)조직들은 그들의 개발 공정 능력 범위를 개선하기 위해 지속적으로 노력하고 그로 인해서 그들 프로젝트들의 개발 공정 성과를 개선하기 때문에, 지속적인 개선으로 특성화될 수 있다. 개선은 기존 개발 공정의 점진적인 발전에 의해서도 일어나지만, 새로운 기술과 방법들을 사용하는 혁신들에 의해서도 일어난다.6. 핵심 공정 영역(KPA, Key Process Area)-각 핵심 공정 영역은 공동으로 수행되었을 때, 소프트웨어 개발 공정 능력을 향상시키는데 중요하다고 생각되는 일련의 목표들을 달성하는 관련 활동들의 집합을 나타낸다. 핵심 공정 영역들은 단 하나의 성숙도 단계에서 존재하도록 정의되어 있다.1단계를 제외하고 각 성숙도 단계는 조직이 소프트웨어 개발 공정 개선을 위해 초점을 맞추어야 할 영역을 나타내는 몇 개의 핵심 개발 공정 영역으로 분해된다.▶2단계: 기본적인 프로젝트 경영 관리들의 수립과 관련된 소프트웨어 프로젝트의 관심 사항에 초점을 맞춘다.▶3단계: 조직이 모든 프로젝트 전반에 걸쳐 효과적인 소프트웨어 공학과 관리 공정들을 제도화하는 하부 구조를 확립하는 것과 같이, 프로젝트 및 조직의 현안들을 다룬다.▶4단계: 소프트웨어 개발 공정과 제작되는 소프트웨어 작업 산출물들에 대한 정량적인 이해를 확립하는데 초점을 맞춘다.▶5단계: 조직과 프로젝트들이 지속적이고 측정 가능한 소프트웨어 개발 공정 개선을 이행하기 위한 현안들을 포함한다.-정의에 따르면, 핵심 공정 영역들은 단 하나의 성숙도 단계에서 표현된다. 그렇지만 각 핵심 공정 영역들은 서로 관계들을 맺고 있으며, 특정한 관리 또는 기술적인 분야에서의 개선들은 하나의 핵심 공정 영역에 제한할 필요가 없다.