파이어맨 이야기

CMMI® for Development, Version 1.3

  

파트 1: 개발을 위한 CMMI에 대해서 

 

 

1. 소개

 

요즘은 많은 회사들이 상품과 서비스를 보다 싸고 빠르고 더 좋게 배포를 하기를 원합니다. 동시에 21세기 첨단 기술 환경에서 거의 모든 조직의 상품 또는 서비스가 점점 더 복잡해지고 있다는 것을 알게 되었습니다

요즘은 하나의 조직에서 복잡한 상품 및 서비스에 대한 모든 구성요소를 개발하는 것은 일반적이지 않습니다. 일반적으로는 여러 구성요소는 개발하고 다른부분은 다른 곳에서 가져와서 모든 구성요소들은 최종 상품 또는 서비스로 통합이 됩니다.

 

조직은 복잡한 개발 및 유지보수 프로세스를 제어 및 관리할 수 있어야 합니다.

이러한 조직들의 오늘날 고민은 통합된 접근방식을 요구하는 전사적 솔루션입니다

 

조직의 비즈니스 성공을 위해서,  조직의 재산을 효과적인 관리하는 것은 중요합니다. 본질적으로 이러한 조직들의 그들의 비즈니스 목표를 달성의 일환으로 개발 활동을 관리하는 방법은 필요합니다.

 

현재 시작에에 있는 성숙도 모델(maturity models) , 표준(standards) , 방법론(methodologies), 그리고 지침(guidelines) 은 조직이 비즈니스를 수행하는데 도움을 줄 수 있습니다. 그러나, 대부분의 가능한 개선 방법은 사업의 고유한 부분을 다루고 있어 대부분의 조직이 직면하고 있는 문제를 체계적으로 접근하지 못합니다. 사업의 한 영역의 개선에 초점을 맞춤으로써 이 모델은 불행하게도 조직에 장벽이 됩니다

 

CMMI® for Development (CMMI-DEV)는 이러한 장벽을 피하거나 제거하는 기회를 제공합니다.  CMMI for Development 는 제품과 서비스에 적용된 개발활동에 관한 최고의 사례로 구성되어 있습니다. 배포와 유지보수를 포함한 상품의 생명주기를 지원하는 사례들로 구성하였습니다

 

강조할 것은 전체 제품을 구축하고 유지 보수하는 데 필요한 작업이라는 것입니다.

 CMMI-DEV 22개의 프로세스 영역을 포함하고 있습니다. 16개의 프로세스는 핵심 프로세스영역이고 1개는 공유된 프로세스영역 , 그리고 5개는 개발에 고유 프로세스  영역입니다

 

모든  CMMI-DEV 모델의 사례는 개발조직의 활동에 초점을 맞추고 있습니다.  5개의 프로세스는 요구사항개발, 기술 솔루션 , 제품 통합 , 검증 (verification,) , 확인 (validation.)에 초점을 맞추고 있습니다

 

 

 

 

About Process Improvement


이 조사에서 조직이 질 좋은 제품 및 서비스를 개발 및 유지보수를 하기 위해서 the Software Engineering Institute (SEI)는 조직이 비즈니스를 개선하기 위해 초점을 맞추어야 하는 여러 부분을 알게 되었습니다. Figure 1.1에서처럼 조직은 전통적으로 사람, 절차 및 방법 , 도구 및 장비로 세가지 중요한 차원에 초점을 맞추었습니다.

 

 



모든 것을 함께 가지고 있는 것은 무엇일까요? 그것은 당신의 조직 안에서 사용되는 프로세스입니다. 프로세스는 당신이 어떤 방법으로 비즈니스를 하도록 조정합니다. 그리고 프로세스는 어떻게 하면 더 잘 수행할 수 있는지에 대한 방법을 제공합니다. 프로세스는 당신이 자원을 활용하거나 사업동향을 조사하는데 도움을 줍니다. 이 것은 사람과 기술이 중요하지 않다고 말하는 것이 아닙니다. 우리가 사는 세상은 믿을 수 없이 빠르게 기술이 변하고 있습니다. 사람은 전통적으로 자신의 경력을 위해 많은 기업을 위해 일해 왔습니다. 우리는 역동적인 세상에 살고 있습니다. 프로세스에 초점을 맞추는 것은 끊임없이 변화하는 세상을 다루고 사람의 생산성과 기술의 사용을 최대화할 수 있는 인프라를 제공해 줄 것입니다.  


제조분야에서는 오랫동안 효율적인 프로세스의 중요성을 인식해 왔습니다. 오늘날, 많은 제조와 서비스분야의 조직은 질 좋은 프로세스의 중요성을 인식하고 있습니다. 프로세스는 조직의 조직의 노동력이 그들이 더 똑똑하게 일을 할 수 있도록 도와줌으로써 비즈니스 목표를 충족시키는데 도움을 줍니다. 효과적인 프로세스는 조직의 비즈니스 목표를 충족시키기 위한 새로운 기술을 소개 및 사용할 수 있는 수단을 제공합니다

 

 

 

About Capability Maturity Models


CMMI를 포함한 CMM(A Capability Maturity Model)는 세상을 단순화해서 표현하고 있습니다. CMM은 효과적은 프로세스의 필수요소를 포함하고 있습니다. 이 요소들은  Crosby, Deming, Juran, 그리고 Humphrey에 의해 개발된 개념을 기반으로 하고 있습니다.

 

1930년대에 Walter Shewhart 는 통계적 품질관리[Shewhart 1931]의 그의 원리로 프로세스 개선작업을 시작했었습니다. 이 원리는 W. Edwards Deming [Deming 1986], Phillip Crosby [Crosby 1979], and Joseph Juran [Juran 1988]에 의해 정제되었습니다.  Watts Humphrey, Ron Radice, 그리고 다른 사람들은 이 원리를 확장하여  IBM (International Business Machines)  the SEI [Humphrey 1989]에서 자신의 일을 소프트웨어에 적용하기 시작하였습니다. 소프트웨어 프로세스를 관리하는 Humphrey의 책은 많은 CCMs(Capability Maturity Models®)을 기반으로 기본 개념과 원리를 설명하였습니다

SEI의 프로세스 관리의 기본 전제는 "질 좋은 시스템 및 제품은 그것을 개발과 유지보수하는데 사용된 프로세스의 질에 많은 영향을 받는다." 이며 SEI는 이러한 전제를 담고 있는CMM을 구현하였습니다이 전제의 믿음은 International Organization for Standardization/International Electrotechnical Commission (ISO/IEC)에 의해 입증됨으로써 전세계적인 품질에 대한 움직임을 볼 수 있습니다

 

CMMs는 조직의 프로세스 개선을 초점에 맞추고 있습니다. CMMs는 하나이상의 훈련방법으로 효과적인 프로세스의 필수요소를 포함하고 있으며 미성숙한 프로세스에서 잘 훈련된 질 좋고 효율적은 프로세스까지 점진적으로 개선방법을 설명하고 있습니다

 

다른 CMMs와 같이, CMMI 모델은 프로세스를 개발할 때 사용할 수 있는 지침을 제공합니다. CMMI모델은 프로세스나 프로세스에 대한 설명이 아닙니다. 실제 조직에서 사용되는 프로세스는 어플리케이션 도메인 및 조직 크기 및 구조 등 많은 요소에 의존합니다. 특히 CMMI모델의 프로세스영역은 당신의 조직에서 사용되는 프로세스와 일대일 매핑하지 않습니다

SEI 는 소프트웨어 조직을 위해 처음 디자인된 CMM을 생성하였고 이 책에 배포하였습니다.  The Capability Maturity Model: Guidelines for Improving the Software Process [SEI 1995].

오늘날,  CMMI는 프로세스개선의 끝나지 않는 주기의 거의 한 세기 전에 소개된 원리이다.이 프로세스개선접근법의 가치는 시간이 지남에 따라 확인되었습니다. 조직은 증가된 생산성과 품질, 개선된 사이클 시간, 더 정확하고 예측 가능한 스케줄과 예산을 경험하게 되었습니다

 

Evolution of CMMI


CMM Integration®프로젝트는 여러 개의 CMMs의 사용에 대한 문제를 해결하기 위해서 생성 되었습니다.  선택된 모델의 조합을 하나의 개선된 프레임워크로 하여 기업 전반의 프로세스 개선을 추구하는 조직에 의해 사용되도록 하였습니다.

 

 통합된 모델을 개발하는 것은 하나이상의 모델의 내용을 포함합니다. 합의된 프로세스를 사용함으로써 CMMI 제품 팀은 여러 기라성같은 것을 수용할 수 있는 프레임 워크로 구축되었습니다

 

처음 개발된 모델은 단순히 "CMMI"라 불리는 CMMI for Development 모델이었습니다. Figure 1.2에서는 CMMI Version 1.3 내용을 나타냅니다 

 



 

초기에는 CMMI 3개의 소스 모델을 합친 하나의 모델이었습니다

( 3개의 모델 : the Capability Maturity Model for Software (SW-CMM) v2.0 draft C, the Systems Engineering Capability Model (SECM) [EIA 2002a], the Integrated Product Development Capability Maturity Model (IPD-CMM) v0.98.)

 

3개의 소스 모델은 조직에 성공적인 도입이나 조직의 프로세스 개선에 좋은 접근방식 때문에 선택되었습니다

 

처음 CMMI 모델 (V1.02)는 전사적 프로세스 개선을 추구하는 개발조직에서 사용하기 위해 설계되었습니다. 그 것은 2000년도에 릴리즈 되었습니다. 2년 후에 1.1이 릴리즈 되었고 4년후에 1.2버전이 릴리즈 되었습니다.

버전 1.2가 릴리즈 되었을 때 2개의 다른 CMMI모델이 계획되었습니다. 처음 CMMI 모델의 이름은 CMMI for Development로 변경되어야 했습니다. The CMMI for Acquisition model 2007년에 릴리즈 되었습니다. CMMI for Development V1.2가 만들어 진후로 그것은 Version 1.2로 불리었습니다. 2년후에 CMMI for Services모델이 릴리즈 되었습니다

2008년도에 버전 1.3에 대한 개발 계획이 시작되었습니다. . 3가지 모델의 Version 1.3 2010 11월에 릴리즈 되었습니다 

 

 

CMMI Framework


CMMI 프레임워크는 CMMI모델을 생산하고 구성요소를 평가 및 훈련할 수 있는 구조를 제공합니다. CMMI 프레임워크 안에서 여러 개의 모델의 사용을 허용하기 위해서 모델 구성요소는 모든 CMMI모델에 일반적인 것과 고유한 모델에 사용할 수 있는 것으로 분류되었습니다. 일반적인 구성요소는 "CMMI Model Foundation" 또는 "CMF"라고 불리었습니다

CMF의 구성요소들은 CMMI 프레임워크로부터 생성된 모든 모델의 부분입니다. 이 구성요소들은 모델을 생성하기 위해서 관심영역(e.g., acquisition, development, services)에 적용 가능한 재료와 합쳐졌습니다

 constellation”는 모델을 구축하고 훈련하고 관심영역의 문서를 평가를 하는 CMMI 구성요소로 정의되었습니다.  The Development constellations model CMMI for Development” 또는 CMMI-DEV”로 불리 웁니다.

 

 

CMMI for Development


CMMI for Development는 상품과 서비스를 개발하는 활동에 대한 기준 모델입니다.  항공우주, 금융, 컴퓨터 하드웨어, 소프트웨어, 국방, 자동차 제조 등 많은 산업의 조직들이 CMMI for Development를 사용합니다

CMMI for Development는 프로젝트관리, 프로세스관리, 시스템 엔지니어링, 하드웨어 엔지니어링, 소프트웨어 엔지니어링 등 다른 개발 및 유지보수에 사용되는 프로세스에 대한 사례를 포함하고 있습니다.


당신의 조직을 위해서 이 모델을 해설하기 위해서는 전문적인 판단과 상식을 사용이 필요합니다. 다시 말하면 대부분의 사용자를 위해 모범 사례가 이 모델에 설명 되어지고 있지만, 프로세스 영역과 사례는 당신의 비즈니스환경과 조직의 제약조건의 깊은 지식을 사용하여 해석되어져야 합니다.


% 오타 및 잘못된 내용이 있으면 말씀 부탁드립니다.  

 


출처 : http://www.sei.cmu.edu/reports/10tr033.pdf


'IT > 소프트웨어 엔지니어링' 카테고리의 다른 글

애자일을 적용할때 주의해야 할점  (0) 2015.09.10
Validation 과 Verification 차이  (0) 2015.09.07
테스팅의 주요원리 (testing principles)  (0) 2015.06.20
Code Coverage  (0) 2015.05.02
Autoit - Hello World!!  (0) 2015.04.22

공유하기

facebook twitter kakaoTalk kakaostory naver band