티스토리 뷰

IT

형상관리 정의

#*! 2017. 2. 27. 01:03

오늘은 형상관리 정의는 무엇인지 알아보려 합니다.

많은 분들이 IT에서 형상관리를 사용하고 계시지만 그 의미를

명확하게 알고 계시는 분은 많지 않으신것 같습니다.

버전 관리에 관점에서 사용되는 툴이라고 생각하기도 하구요.

그럼 형상관리가 무엇인지 한번 알아봅시다.

 

 


 

 

소프트웨어에서 말하는 형상관리(SCM)란 무엇일까요?

IT에서 일을 하다보면 "형상 관리"라는 단어를 자주듣게 되죠.

형상 관리가 무엇인지 네이버 사전에서 검색 해보면 아래와 같이 설명되있죠. 

 


 

 

 

※ 형상관리 정의

 

형상       : 사물의 생긴 모양이나 상태.(단어의 의미)

형상관리  시스템 형상 요소의 기능적 특성이나 물리적 특성을 문서화하고 그들 특성의 변경을 관리하며, 변경의 

               과정이나 실현 상황을 기록·보고하여 지정된 요건이 충족되었다는 사실을 검증하는 것, 또는 그 과정.

 

 

위 내용만 보면  "사물(소프트웨어)의 모양이나 상태를 문서화하고 변경과정을 기록,보고 관리하는 것" 이죠.

예를들어 보면 자동차를 만들기 위해서 수만가지 부품을 서로 조합합니다..

정해진 위치에 규격에 맞는 부품을 조합하여 자동차가 완성되지요. 

신형 자동차가 나온다고 하면 전년도 자동차의 특정 부품등을 신규/변경/교체해야 합니다.

위 작업을 하기위해서는 기존 부품 모양/크기/재질/위치 등을 기억하고 관리해야겠죠.

우리가 말하는 소프트웨어 형상관리도 이와 비슷합니다.

 

  


 

 

※ 형상관리의 필요성

 

 

그런데 왜 형상관리를 사용하는 걸까요? 이유가 궁금해집니다.

형상관리 필요성을 이야기하려면 소프트웨어 품질에 관하여 알아야합니다

어떻게하면 소프트웨어품질을 높일수 있을까 라는 것에서 시작된  "소프트웨어 품질의 3요소"는 아래와 같습니다.

 

소프트웨어 품질의 3요소입니다.
소프트웨어 품질의 3요소입니다.

 

 

 

위에 3가지 요소(프로세스,사람,기술)가 적절히 조화를 이룰때 고품질의 소프트웨어가 만들어 진다고 하죠. 

 

소프트웨어 3요소를 각각 살펴보면

1.사람

당연히 소프트웨어를 개발하기위해서는 사람이 필수 조건입니다.

개발에 필요한 적절한 인력이 투입되어야 하고 그 인력은 체계적으로 관리되어야 겠죠?

 

예를 들어 

①. "100명이 2달동안 구현 해야하는 프로젝트에 50명이 구현을 한다?" <= 누가봐도 제대로 된 결과를 얻기는 힘들어 보입니다.

②.  적절한 인력이 투입되었지만 특정 사람에게 업무가 집중된다면?  <= 제가 그 담당자라면 퇴사 충동을 느낄 것 같군요.

③.  담당자가 퇴사하여 업무 인수인계로 일정이 지연된다면?  <= 다들 경험하셨듯이 인수인계가 잘 안되는 것이 사실이죠.

 

위와 같은 일이 발생되면 당연히 일정은 지연고 고품질의 소프트웨어가 만들어지기는 어려울 것입니다. 

 

2.기술 

소프트웨어를 만들때 기술이 없이는 어떤 프로젝트도 수행될 수 없습니다.

특정언어로 구현하는 프로젝트에서는 당연히 해당 언어를 다룰 수 있는 기술이 필요한것은 당연한 것이겠죠.

중요한것은 이런 기술은 항상 변하고 그에 따라 학습하고 변화하려는 노력이 중요하다는 것입니다.

 

3.프로세스

어디서든 작업을 효율적으로 하기위해서는 프로세스가 매우 중요합니다.

예를 들어

직장에서 휴가신청을 할때 부장이 신청하고 신입이 승인해준다거나? 보통은 경험이 많은 상사가 결제권을 갖는 경우가 많죠.

물론 서구(?)적인 회사에서는 가능할지 모르지만(안다녀봐서 모름) 일반적인 회사는 그렇지 않죠.

그래서 프로젝트 성공적으로 진행하기 위해서 기본적인 프로세스를 정하고 관리해아합니다.

 누가 어떤 역할을 할지.

 문서는 언제 어떻게 만들지.

 산출물은 어떻게 관리할지. 

 

위 설명처럼 프로젝트 규모에 맞는 인력, 기술과 역량, 기본적인 업무 절차에 대한 정의 및 역할 분담이 매우 중요합니다.

 

 

 

그럼 형상관리는 왜 필요할까요?

참 멀리 돌아왔습니다. 형상관리가 왜 필요하다는 것일까요? 

일반 프로젝트를 큰 역할자로 나눠보면 고객, 관리자, 개발자 로 구성됩니다.(실제 더 많은 역할자가 존재하고 분류됩니다)

각각의 역할자 관점에서 보면

 

 고객  관리자  개발자
 ☞ 우수한 품질로 서비스.
 ☞ 개발의 고품질, 비용절감.
 ☞ 체계적인 관리, 프로세스 준수.
 ☞ 계획된 일자에 서비스시작.
 ☞ 어떤업무를 누구에게 지시해야하는지.
 ☞ 이슈는 해결(처리)되고 있는지.
 ☞ 개발 진척률을 신뢰할 수 있는지.
 ☞ 테스트는 믿을 수 있는지.
 ☞ 언제 시스템을 Open할 수 있는지.
 ☞ 잦은 요구 사항 변경.
 ☞ 각종 문서 작성
   (회의, 보고, 교육, 기타 산출물)
 ☞ 특정 개발자에게 작업 집중.
 ☞ 테스트에 대한 부담.

 

 

 

동일한 프로젝트에 참여하고 있지만 서로 바라보는 관점은 이처럼 다르죠.

우리는 프로세스(컨설팅,내부교육)를 수립하고 각 시스템(도구)도 운영하고 현황,보고서 등이 제출되지만 

"왜 개발관리가 안 된다 하고, 애플리케이션은 문제가 생기는 걸까??" 라는 고민을 하게됩니다.

 

- 정말 프로세스에 맞게 작업이 이루어지는가?

- 누가 언제 작성/수정한 것인가?

- 어떤 산출물이 최종인가?

- 요청된 작업은 처리는 되었는가?

- 현황 및 보고서는 보기만 좋은 것은 아닌가?

- 수작업으로 작성된 형황을 보고 있는 건 아닌지?

- 공정 단계별 검증이 명확하지 않은 것인지?

- 의사 소통에 문제는 없는지?

 

위 나열된 사항처럼 공동작업을 하게 되면 여기저기서 다양한 문제점이 발생합니다.

이러한 문제점을 해결하기 위해서 형상관리와 같은 도구들이 필요하게되었죠.

형상관리는 크게 이슈관리 / 버전관리 / 배포관리 등을 지원하는 도구로 공동작업시 필수적으로 고려해야합니다. 

 

 

 

형상관리 구성입니다
형상관리 구성입니다

 

 

 


 

 

 

※소프트웨어 형상관리

 

형상관리 단어 뜻 처럼 다양한 산출물의 변경 관리, 이력 추적/역추적 할 수 있도록 관리해야합니다.

이런 형상관리는 몇가지 활동을 통하여 관리되야하며 작업 산출물의 무결성을 확보해야 합니다.

 형상관리 활동으로는  "형상식별, 형상통제, 형상 감사, 형상 상태보고"있습니다.

이런 한 관리활동으로 애플리케이션 생명 주기에 다양한 단계별 산출물을 통제하고 체계적으로 대상을 관리합니다.

하나씩 정리해보면 아래와 같습니다.

 

- 형상 식별 : 형상 관리 대상이 무엇인지 식별하는 것.

- 형상 통제 : 형상 대상의 변경 요구를 적절히 검토하여 통제하는 것.(형상통제위원회)

- 형상 감사 : 요구사항에 맞게 형상 항목의 변경이 이루어졌는지 확인하는 것.

- 형상 상태 보고(기록) : 형상 항목의 변경을 기록하고 보고하는 것.

 

 

 


 

 

 

 

 

 

※형상 식별

 

형상 식별은 형상관리 활동 중 가장 밑바탕이 되는 활동입니다.형상관리 프로젝트를 성공적으로 수행하기 위해서는 밑바탕이 되는 형상 식별부터 체계적으로 수행해야합니다. 형상 식별 활동을 조금 더 들여다 보면 아래와 같습니다.               -

 형상 관리 대상을 식별. 

  -

 형상 항목 선정. 

  -

 

식별된 형상항목에 식별자를 부여.  -

 

베이스라인(BaseLine) 기준 선정.

 

 

 형상항목   - 개발 프로세스 중 생산 또는 사용된 모든 작업 산출물/산출물들의 집합체를 의미함
  (예 : 소스, 요구사항명세서, 설계/인터페이스명세서, 테스트 설계/결과서와 같은 문서)
 형상항목 선정   내부 관리 관점에서 변경관리에 대한 통제가 필요한 산출물을 선정.
 형상 식별자   - 형상 항목에 식별이 가능한 식별자(코드)를 부여하는 체계임.
   EX) 프로젝트ID.타입(산출물).버전
  - 형상 식별자를 파일명으로 사용할 경우 산출물의 유형 최종버전을 알기 용이함.

 베이스라인
 (baseline)
  - 형상관리대상을 선정 후 형상 항목이 완전한 산출물로 쓰일 수 있는 한 세트를
    베이스라인으로 선정.
  - 베이스라인은 책임있는 역할자(조직)를 통해 관리하고 변경이 있을때
    공식적인 검토 / 승인을 얻은 후 
  - 베이스라인을 변경.(일반적으로 형상 통제 위원회)
  - 요구사항분석단계 / 설계단계 / 구현단계 별로 베이스라인이 생성됨.
 

 


 

 

 

 

 

 

cmmi 형상관리

 

CMMI에서는 형상관리는 3가지 Goal을 중심으로 설명합니다.
SG1: 기준선 확립
SG2: 변경 추적 및 통제
SG3: 무결성 확립

 

 

CMMI,SP인증 관련 부분은 조금 더 심도있는 내용으로 추후에 기회가 되면 다시 설명하겠습니다.

 

 


 

 

 

참고 정보

 

정보통신산업 진흥원에서 소프트웨어공학센터를 통하여 다양한 정보를 공유하고 있습니다.

소프트웨어 게발,테스트,관리 등등 다양한 부분에 관련해서 정보를 제공하고 있으니 참고하시면 많은 도움이 됩니다.

찾아보니 소프트웨어 형상관리도 있더군요.(정기간행물도 도움이됩니다)

 http://www.sw-eng.kr/member/customer/Webzine/BoardView.do?boardId=00000000000000034114

 

 


 

 

이상으로 형상관리가 무엇인지 간단하게 알아봤습니다.

소프트웨어 형상관리를 구축부터 관리까지 도입하기위해서는 준비해야 할 것이 매우 많습니다.

그래서 소프트웨어 형상관리를 도입 할 때도 상황에 맞는 여러 방법으로 구축을 합니다.

- 프로토타입 선정후 선 구축.

- 특정 기능 부터 적용(예: 버전관리부터 도입, 이슈/배포관리 추후 구축)

- 한번에 구축(형상관리에 익숙한 조직에 적합)

 

소프트웨어 형상관리가 도입되면 이점이 많지만 그렇지 않은 조직도 있을 수 있습니다.

무조건적인 도입보다는 우리 조직이 형상관리를 받아들이 준비가 되어있는지 고민하셔야합니다.

당연히 규모/도입목적 등을 정리하고 도입하시는 것이 좋겠죠.

참고로 형상관리 툴을 고민하고 계신다면 아래 글을 참고해 주세요.

 

 

 


 

 

댓글