소프트웨어 개발에 꼭 맞는
표준화된 방법을 제시하다
소프트웨어 개발 방법론 마르미는 한국형 정보시스템 구축 방법론으로 자신의 몸에 적합한 옷을 만들기 위해 재단한다는 우리말, ‘마름질’에서 착안했다.
체계적인 구성을 갖추고 있지 못한 개념, 방법, 기법, 절차 및 경험적 지식들을 쉽고 편리하게 사용할 수 있도록 재구성하여 우리 개발 여건에 적합하도록 만들어진 시스템 개발 방법론이다.
01
국산 기술 개발의
필요성
소프트웨어는 하드웨어 기술 개발과 달리 눈에 보이는 유형의 것이 아니기 때문에 일반적으로 생각하고 있는 것처럼 프로그램을 작성할 때 발생하는 문제점보다 큰 여러 가지 문제점을 동반한다. 대부분의 프로젝트가 계획했던 일정보다 지연되고, 개발 초기에 예상했던 비용을 초과하며, 개발된 소프트웨어 산출물의 유지보수가 어렵다. 이런 문제점으로 하드웨어와 소프트웨어의 생산성 차이가 발생하고, 프로젝트 비용에서 소프트웨어가 차지하는 비중이 커지게 되어, 소프트웨어 때문에 프로젝트를 추진하기 어려워짐으로 소프트웨어 위기(Software crisis)가 온다는 것이다.
선진국에서는 이미 오래전부터 소프트웨어 위기를 극복하고, 시스템 개발의 생산성과 품질 저하를 해결하기 위해 시스템 개발 방법론을 연구했다. 한편, 국내에서도 1980년대 후반부터 방법론의 도입이 시작되었고, 특히 시스템 통합 사업의 팽창으로 1990년대부터는 더욱 가속화되었다.
그러나 국내에 도입되고 있는 대부분의 방법론이 외국에서 만들어졌고 우리의 개발 문화와 상이한 점이 많으며 방법론의 확장이나 특성에 따라 방법론을 변경하여 사용할 때 상당한 애로점이 제기되고 있었다. 국내 중소기업들은 자체적인 개발방법론의 개발 여력이 부족하거나 고가의 외산 방법론 도입이 어려운 실정이었다.
02
우리의 기술을
만들 것이라는 믿음
ETRI는 국내 현실의 어려운 상황을 인식하여 지난 1995년부터 국내의 개발 여건을 반영한 한국형 정보시스템 구축 방법론 마르미(MaRMI-Magic and Robust Methodology Integrated)를 개발하였다.
이렇게 개발된 마르미는 국제 표준인 ISO/IEC 12207의 개발공정을 기반으로 하여 골격이 이루어졌다. 마르미는 당시 국내에서 널리 사용되고 있는 구조적 방법, 정보공학 방법 그리고 기존 방법론의 주요 기법이나 작업들을 보다 사용하기 쉽도록 재구성하고 단순화시켰다. 기존 방법론의 습득을 위해서는 방법론 매뉴얼만으로 진행하기가 어려워 전문가의 컨설팅을 받았었지만, 마르미는 매뉴얼만으로도 내용을 충분히 습득할 수 있도록 하였다. 또한 사용자, 개발자, 관리자 관점에서 다양한 관점을 반영해 사용자들이 자신의 작업이 무엇인지를 알 수 있도록 구성했다. 우리의 기술로 우리의 소프트웨어 산업에 이바지하고 싶다는 포부가 만들어낸 결과였다.
이후 1980년대 말 객체지향 개발 방법론에 대한 연구나 활용 또한 1980년대 말부터 시작하여 급속히 확산되고 있었다. 객체지향 방법의 리더인Booch, Rumbough, Jacobson 등이 자신들의 방법론의 장점들을 융합하여 제시한 UML(Unified Modeling Language)이 1997년 11월 OMG(Object Management Group)의 표준으로 채택되었다. 하지만, 객체지향 모형의 표현에 대한 표준화 노력이 활발한데 비해 개발 절차, 기법, 관리적 측면의 지원 등에 대한 연구 결과는 부족한 형편이었다. ETRI는 UML을 기반으로 마르미 개발방법론의 장점인 상세한 개발절차 및 지침을 제공하는 객체지향 개발 방법론 마르미-II를 개발하게 되었다.
03
국산 기술로
국산 산업 발전에 이바지하다
소프트웨어 재사용, 적시성, 유지보수 등이 중요시되면서, 작은 단위의 부품을 조립하여 제품을 만들어내는 일반적인 산업의 개념을 소프트웨어에 도입하여 생산성을 향상시키고자 하는 움직임이 활발하게 진행되었다. ETRI에서는 이러한 흐름에 발맞춰 객체보다 확장된 개념으로 지속 데이터와 공용 오퍼레이션을 가지고 캡슐화 되어 있다는 점에서 객체와 유사하나 보다 큰 서비스의 집합으로 응집도가 높고 결합도는 낮은 객체의 그룹이라고 할 수 있는 컴포넌트 기반 시스템 개발 방법론인 마르미-III를 개발했다.
21세기에 들어서면서 ETRI는 발 빠르게 미래 유비쿼터스(Ubiquitous, 장소에 상관없이 자유롭게 네트워크에 접속할 수 있는 환경) 세상을 준비해 나갔다. 2006년에는 고품질의 다양한 임베디드 시스템(특정 기계를 컨트롤하려는 목적으로 그 기계에 내장된 시스템)을 적시에 경제적으로 개발할 수 있는 제품 계열(Product-line) 기반의 마르미-Ⅳ를 개발했다. 마르미 개발방법론은 국내외 어느 개발 방법론보다도 상세하고, 쉽게 기술되어 있다. 개발자 자신이 그동안 개발하는 과정에서 사용하여 온 절차, 양식, 기법 등으로 느낄 수 있는 정도의 방법론이라고 할 수 있다. 또한 절차서 뿐 아니라, 방법론을 실제 프로젝트에 각각 적용하여 방법론을 검증하고 검증된 결과를 토대로 방법론을 수정, 보완하였다.
마르미는 현재 공공기관, 감리기관, 대학, 기업 등 180여 곳에 기술이전이 완료되었다. 비싼 외산 방법론을 도입하기 어려웠던 일반 기업들에게 양질의 국산 방법론 마르미를 통해 소프트웨어 개발을 효과적이고 효율적으로 할 수 있는 기반을 마련했다는 데 큰 의미가 있다. 기술 개발 이후부터 10년이 지나도 사용되고 있는 마르미, 마르미를 통해 많은 기업들이 지금도 우수한 소프트웨어를 개발하여 국가 기술에 이바지하고 있다.
- 1997.
- 구조적 방법 및 정보공학 기반 마르미 개발
- 1998.
- 객체지향 개발방법론 마르미-Ⅱ 개발
- 2003.
- 컴포넌트 기반 개발방법론 마르미-Ⅲ 개발
- 2006.
- 제품 계열 기반 임베디드 시스템 개발방법론 마르미-Ⅳ 개발