<열린마당>소프트웨어 형상관리

◆박창환 칸소프트 대표 ks@khansoft.co.kr

 

 요즘 소프트웨어의 품질관리 활동이 중요시되면서 소프트웨어 형상관리(SCM:Software Configuration Management)에 대한 관심이 높아지고 있다. ‘형상’이라는 단어는 추상적이어서 일상생활에선 거의 쓰이지 않는다. 사전에서 그 단어를 찾아보면 ‘나타나는 모습’ ‘형태’란 뜻으로 풀이돼 있다.

 그러면 소프트웨어(SW)는 어떤 형상을 갖고 있을까. SW는 그 모습이 눈에 보이지 않아 ‘무형의 제품’이라 할 수 있다. 무형의 제품을 만들다 보니 개발자나 관리자에게 많은 어려움이 따르기 마련이다. 따라서 SW는 벌거벗은 임금님 우화에 나오는 ‘눈에 보이지 않는 옷’에, SW 엔지니어는 ‘안 보이는 옷을 만드는 사람’에 비유되기도 한다.

 SW 형상은 각자의 경험에 따라 다르게 비칠 수 있으나 한마디로 표현하자면 ‘문서’라 할 수 있다. SW 개발 및 유지보수 단계에서 발생하는 각종 결과물(문서 및 프로그램)이 ‘SW의 형상’이고, 이를 관리하는 것을 ‘형상관리’라고 한다. 형상관리의 대상은 ‘기준선 문서(baselined document)’들이며, 기준선 문서에 변경이 요구될 때 ‘누가, 언제, 어떻게, 왜’ 문서를 변경했는지 추적할 수 있도록 관리돼야 하며, 문서들 사이의 ‘무결성’을 보장할 수 있어야 한다. 여기서 ‘기준선 문서’란 공식적으로 검토 및 동의(서명)된 것으로 향후 개발의 기초가 되며 공식적인 변경 절차에 의해서만 변경 가능하다.

 SW 형상관리는 SW 개발 프로세스의 핵심적인 요소로 품질보증과 프로세스 개선에 필수적인 요소다. 형상에 대한 제어는 ‘변경제어’와 ‘버전제어’로 나눠 생각할 수 있다. ‘변경제어’는 변경 요청에 대한 식별·기록·평가·승인 및 감사를 포함하며, ‘버전제어’는 문서의 여러 버전들을 인식하고 추적하는 프로세스다. 또한 문서를 관리하고 이에 대한 변경을 체계적으로 관리·제어하기 위한 자동화시스템을 ‘형상관리시스템’이라 부르며 현재 국내외에서는 생산된 형상관리시스템의 경쟁이 치열하다. 형상관리시스템을 사용할 경우 사람이 수행해야 할 형상관리 활동을 SW를 통해 자동화함으로써 관리에 소요되는 비용과 인력을 줄일 수 있다는 장점을 가지고 있다.

 버전의 변경이 일어난 후에는 변경에 대한 추적성 및 변경 히스토리에 대한 정보를 제공하고, 동시에 여러 부서에서 작업할 수 있는 동시병렬개발작업을 지원해준다. 형상관리를 도입함으로써 얻을 수 있는 효과는 개발과정의 산출물(소스·실행파일·라이브러리·관련 문서·각종 스크립트 등)을 합리적·효율적으로 관리해 개발기간 단축 및 유지보수에 편리함을 제공하게 되는 것이다. 또 소스 및 실행파일을 변경할 경우 사전승인을 얻어야 하며 허가받지 않은 개발자는 버전의 변경이 불가능하다. SW 개발 단계부터 조직적·효율적으로 관리해 산출물들을 체계적으로 관리할 수 있다.

 국내 SW업체들도 이제 다른 나라들과 품질로 경쟁할 때가 됐다. 품질이 나쁜 SW제품은 결국 고객에게 외면당하고 기업에도 별 도움이 되지 못한다는 사실을 우리는 이미 충분히 경험했다. SW 품질관리는 체계적이고 조직적으로 이뤄져야 한다. 단순히 사람에 의지하는 SW 개발이 아니라 조직과 시스템에 의한 SW 엔지니어링이 돼야 한다. SW 형상관리는 SW 개발에서 나타나는 무질서와 복잡도를 관리해 예측 가능한 엔지니어링으로 만들어주는 기본적인 틀이라는 점에서 우리나라 SW 기술 발전을 위해 이에 대한 연구와 적용이 무엇보다 시급하다.