단독주택과 같은 작은 건물을 짓는 전문가에게 초고층빌딩을 짓는 의뢰가 들어올까? 아마도 단독주택 전문가가 초고층빌딩을 제대로 지을 수 있다고 생각하는 사람은 별로 없을 것이다. 큰 건물 전문가는 작은 집을 지을 수 있지만, 그 반대의 경우는 어려운 것이 일반적이기 때문이다.
마찬가지로 소프트웨어 개발에도 작은 건물 전문가와 초고층빌딩 전문가가 있다. 작은 건물 전문가를 프로그래머라고 하고, 초고층빌딩 전문가를 소프트웨어 공학자라고 한다.
일반적으로 소프트웨어를 개발한다는 일은 프로그래밍을 의미한다. 이를 위해 다양한 프로그래밍 언어를 잘 구사할 줄 알아야 하고, 자료의 구조를 잘 파악해 적당한 알고리즘을 만들어낼 줄 알아야 한다.
하지만 소프트웨어공학은 소프트웨어 개발뿐 아니라 유지 보수, 그리고 운영에 공학적인 방법을 적용하는 분야다. 따라서 프로그래밍 능력뿐 아니라 분석과 설계, 시험, 유지보수, 프로젝트 관리, 품질의 보증과 관리 등 좀더 세분화되고 체계적인 방법이 동원된다. 또한 여러 사람의 공동 작업이 중요하다. 초고층빌딩을 짓기 위해서는 여러 사람이 동원되는 것과 마찬가지다.
KAIST 전자전산학과는 우리나라에서 소프트웨어 공학을 가르치는 몇 안되는 곳이다. 배두환 교수를 비롯한 3명의 교수가 이끄는 소프트웨어공학 연구실이 우리나라 최고 소프트웨어공학자를 위한 산실이 되고 있다. 배두환 교수를 만나 소프트웨어공학에서 어떤 연구가 이뤄지고 있는지를 들어봤다.
제품공학 동원해 재활용 실현
배두환 교수의 연구실에서 이뤄지는 소프트웨어공학 연구는 크게 두가지다. 소프트웨어 개발의 기초가 되는 분석과 설계의 모델링, 그리고 소프트웨어 개발 프로세스의 개선이다.
모델링에는 소프트웨어 기법의 변화에 발맞춰 다양한 세부 연구가 진행된다. 먼저 현재 소프트웨어 개발에 널리 쓰이는 객체지향 언어의 사용 용이성을 높이는 연구가 있다. 예를 들어 개발자 사이에 인기가 높은 설계 패턴을 찾아내 소프트웨어를 좀더 쉽게 개발하는데 도움을 주는 것이다. 이와 함께 객체지향 기법의 문제점을 개선하는 연구도 이뤄지고 있다.
또다른 모델링 연구로는 차세대 소프트웨어 기법 개발에 관해서다. 지금까지 개발된 소프트웨어 문서는 많이 축적돼 있다. 하지만 새로 개발하려고 할 때 이 문서들을 재사용하지 못하는 실정이다. 마치 플라스틱이 개발돼 사용이 점점 늘어났지만 재활용 기술이 제대로 개발되지 못하는 때처럼 말이다. 현재 이 문제가 소프트웨어 기법의 최대 이슈가 되고 있다.
이 문제를 해결하기 위한 차세대 소프트웨어 개발에서 제품공학이 적용된다. 공장에서 생산라인을 따라 제품이 제조되듯 소프트웨어의 구성요소를 부품화해 빠른 시일 내에 소프트웨어를 개발한다는 것이다. 이 기법을‘컴포넌트 기반 개발’(CBD, Component-Based Develoment)이라고 한다.
배두환 교수의 연구실에서는 CBD의 설계기법, 기존 객체지향 모델로부터 소프트웨어 개발 부품에 해당하는 컴포넌트를 추출하는 기법, 그리고 컴포넌트를 저장하고 검색하는 기법 등을 연구하고 있다.
소프트웨어 수출국으로 가는 길
소프트웨어 개발 프로세스 개선과 관련해 배두환 교수는 정보통신부로부터 지원을 받아 지난해 7월부터 ‘소프트웨어 프로세스 개선 센터’를 운영하고 있다.
우리나라는 IT 강국이라는 말이 무색할 정도로 소프트웨어 수출이 취약한 편이다. 오히려 수입과 수출의 간격이 점점 벌어져 역조현상이 심화되고 있다. 그런데 소프트웨어의 총생산규모가 우리와 비슷한 인도는 정반대다. 인도의 소프트웨어는 80% 이상이 수출된다. 배두환 교수는“우리와 인도의 차이 중 하나가 개발절차에 있다”고 말한다. 좋은 개발 절차를 따라야 결과도 좋다는 의미다.
이런 까닭에 정부가 나서서 소프트웨어 프로세스 개선(SPI, Software Process Improvement)을 위한 연구를 지원하고 있다. 배두환 교수 연구실에서는 정보통신부로부터 지원을 받아 미 카네기멜론대 소프트웨어공학 연구센터에서 개발한 대표적인 SPI 모델인 CMM(Capability Maturity Model)을 국내에 보급하는 연구를 진행하고 있다.
CMM은 제조업계의 ISO인증과 비슷하다. CMM은 소프트웨어 개발 과정을 등급 1-5(5가 가장 우수)까지 평가한다. 이를 통해 소프트웨어 업체가 얼마나 좋은 개발 절차를 따르는지를 알 수 있다. 따라서 CMM 등급 5는 곧 수출의 지름길인 것이다. CMM 등급 5의 40%가 인도업체라고 한다. 우리나라의 업체에도 CMM을 도입함으로써 소프트웨어 프로세스를 개선하고자 하는 것이다.
SPI로 박사학위를 취득한 연구실 졸업생이 3년 전 소프트웨어 프로세스 개선을 위한 컨설팅을 전문으로 하는 벤처기업인‘솔루션링크’를 창업했다. 현재 이 회사는 졸업생 6명이 참여하고 있고 연간 매출액이 15억원에 이른다.
이 외에도 졸업생들은 대기업이나 한국전자통신연구원과 같은 공기업에 취직하거나 대학에 교수로 임용됐다. 현재는 박사과정 7명, 석사과정 9명으로 구성돼 있다.