CMM(역량 성숙도 모델) 및 소프트웨어 엔지니어링 수준

CMM이란 무엇입니까?

역량 성숙도 모델은 조직의 소프트웨어 프로세스 성숙도를 측정하기 위한 벤치마크로 사용됩니다.

CMM은 80년대 후반 소프트웨어공학연구소에서 개발되었습니다. 하청업체의 작업을 평가하는 방법으로 미 공군의 자금을 지원받은 연구 결과로 개발되었습니다. Later 소프트웨어 개발의 성숙도를 평가하기 위해 1991년에 만들어진 CMM-SW 모델을 기반으로 하며, 다른 여러 모델이 CMM-I와 통합되어 있습니다.

기능 성숙도 모델

CMM(역량 성숙도 모델) 수준이란 무엇입니까?

  1. 처음의
  2. 반복 가능/관리됨
  3. 한정된
  4. 양적 관리
  5. 최적화

CMM(역량 성숙도 모델) 수준

CMM의 다양한 수준에서는 어떤 일이 발생합니까?

레벨 활동 장점
레벨 1 초기
  • 레벨 1에서 프로세스는 일반적으로 혼란스럽고 임시적입니다.
  • 능력은 조직이 아닌 개인을 기준으로 특성화됩니다.
  • 진행 상황이 측정되지 않음
  • 개발된 제품은 종종 일정과 예산을 초과합니다.
  • 일정, 비용, 기능 및 품질 목표의 다양한 변화
없음. 프로젝트는 Total Chaos입니다.
레벨 2 관리
  • 요구 사항 관리
  • 비용, 일정, 기능 등의 프로젝트 매개변수 추정
  • 실제 진행 상황 측정
  • 계획 및 프로세스 개발
  • 소프트웨어 프로젝트 표준이 정의됩니다.
  • 제품, 문제 보고 변경 사항 등을 식별하고 제어합니다.
  • 프로세스는 프로젝트마다 다를 수 있습니다.
  • 프로세스를 이해하기 쉬워집니다.
  • 관리자와 팀 구성원은 작업 수행 방법을 설명하는 데 소요되는 시간을 줄이고 실행하는 데 더 많은 시간을 소비합니다.
  • 프로젝트가 더 잘 예측되고, 더 잘 계획되고, 더 유연해집니다.
  • 품질은 프로젝트에 통합됩니다.
  • 비용은 처음에는 높을 수 있지만 시간이 지나면서 감소합니다.
  • 더 많은 서류와 서류를 요청하세요
레벨 3 정의
  • 고객 요구사항을 명확히 하세요.
  • 설계 요구 사항 해결, 구현 프로세스 개발
  • 제품이 요구 사항 및 사용 목적을 충족하는지 확인합니다.
  • 의사결정을 체계적으로 분석
  • 잠재적인 문제를 수정하고 제어합니다.
  • 프로세스 개선이 표준이 됩니다
  • 솔루션은 "코딩"에서 "엔지니어링"으로 진행됩니다.
  • 프로세스에 참여하는 전체 팀과 함께 프로젝트 노력 전반에 걸쳐 품질 게이트가 나타납니다.
  • 위험이 완화되고 팀을 놀라게 하지 않습니다.
레벨 4 정량적으로 관리됨
  • 프로젝트의 프로세스와 하위 프로세스를 통계적으로 관리합니다.
  • 프로세스 성과를 파악하고, 조직의 프로젝트를 정량적으로 관리합니다.
  • 조직 전반에 걸쳐 프로세스 성능을 최적화합니다.
  • 조직의 정량적 프로젝트 관리를 촉진합니다.
레벨 5 최적화
  • 불량 원인을 조기에 발견하고 제거
  • 요구 사항과 비즈니스 목표를 충족하기 위한 새로운 도구와 프로세스 개선 사항을 식별하고 배포합니다.
  • 조직 혁신 및 배치 촉진
  • 원인 분석 및 해결에 자극을 줍니다.

다음 다이어그램은 다양한 CMM 수준에서 발생하는 일을 그림으로 표현한 것입니다.

다양한 수준의 CMM

CMM을 구현하는 데 시간이 얼마나 걸리나요?

CMM은 모든 소프트웨어 개발 회사의 제품 품질을 유지하는 데 가장 바람직한 프로세스이지만 구현에는 예상보다 시간이 조금 더 걸립니다.

  • CMM 구현은 하루아침에 이루어지지 않습니다.
  • 이는 단순한 '서류'가 아닙니다.
  • 일반적인 구현 시간은 다음과 같습니다.
  • 3-6 개월 -> 준비를 위해
  • 6-12 개월 -> 구현을 위해
  • 3 개월 -> 평가 준비를 위해
  • 12 개월 ->새로운 레벨마다

CMM의 내부 구조

CMM의 각 레벨은 다음과 같이 정의됩니다. 핵심 프로세스 영역 또는 KPA, 레벨 1을 제외하고. 각 KPA는 관련 활동의 클러스터를 정의하며, 이를 함께 수행하면 소프트웨어 역량 개선에 필수적인 것으로 간주되는 목표 집합을 달성합니다.

다양한 CMM 레벨의 경우 KPA 세트가 있습니다. 예를 들어 CMM 모델-2의 경우 KPA는 다음과 같습니다.

  • REQM - 요구사항 관리
  • PP- 프로젝트 기획
  • PMC- 프로젝트 모니터링 및 제어
  • SAM - 공급업체 계약 관리
  • PPQA 프로세스 및 품질 보증
  • CM-구성 관리

마찬가지로 다른 CMM 모델의 경우 특정 KPA가 있습니다. KPA 구현이 효과적이고 지속 가능하며 반복 가능한지 알아보려면 다음 기준에 따라 매핑합니다.

  1. 수행하겠다는 약속
  2. 수행능력
  3. 활동 수행
  4. 측정 및 분석
  5. 구현 확인

CMM 모델의 한계

  • CMM은 프로세스를 구현하는 방법 대신 프로세스에서 해결해야 할 사항을 결정합니다.
  • 소프트웨어 프로세스 개선의 모든 가능성을 설명하지는 않습니다.
  • 소프트웨어 문제에 집중하지만 전략적 사업 계획, 기술 채택, 제품 라인 구축 및 인적 자원 관리는 고려하지 않습니다.
  • 조직이 어떤 종류의 사업을 해야 하는지 알려주지 않습니다.
  • 현재 위기에 처한 프로젝트에는 CMM이 유용하지 않을 것입니다.

CMM을 사용하는 이유는 무엇입니까?

오늘날 CMM은 소프트웨어 업계에서 "승인 도장" 역할을 합니다. 이는 소프트웨어 품질을 향상시키는 데 다양한 방법으로 도움이 됩니다.

  • 반복 가능한 표준 프로세스를 안내하므로 작업 수행 방법에 대한 학습 시간이 줄어듭니다.
  • CMM을 실천한다는 것은 개발을 위한 표준 프로토콜을 실천한다는 것을 의미합니다. 이는 팀이 시간을 절약하는 데 도움이 될 뿐만 아니라 무엇을 해야 하고 무엇을 기대하는지에 대한 명확한 시각을 제공한다는 의미입니다.
  • 양질의 활동은 별도의 이벤트로 생각되기보다는 프로젝트와 잘 어울립니다.
  • 프로젝트와 팀 사이의 통근자 역할을 합니다.
  • CMM의 노력은 항상 프로세스 개선을 향한 것입니다.

요약

CMM은 하청업체의 작업을 평가하기 위해 80년대 후반 미 공군에서 처음 도입되었습니다. Later on, 개선된 버전에서는 소프트웨어 개발 시스템의 품질을 추적하기 위해 구현되었습니다.

전체 CMM 레벨은 XNUMX개 레벨로 나누어집니다.

  • 레벨 1 (초기): 시스템 요구사항이 일반적으로 불확실하고, 오해되고, 통제되지 않는 경우. 프로세스는 일반적으로 혼란스럽고 임시적입니다.
  • 레벨 2 (관리): 프로젝트 비용, 일정, 기능을 추정합니다. 소프트웨어 표준이 정의됩니다
  • 레벨 3 (정의됨): 제품이 요구 사항 및 사용 목적을 충족하는지 확인합니다.
  • 레벨 4 (Quantitatively Managed): 프로젝트의 프로세스와 하위 프로세스를 통계적으로 관리합니다.
  • 레벨 5 (성숙도): 요구 사항과 비즈니스 목표를 충족하기 위해 새로운 도구와 프로세스 개선 사항을 식별하고 배포합니다.