성공적인 SW 개발 6대 원칙.. "짐 럼바" 박사 방한 세미나 요약

 객체 모델링 분야의 표준언어인 UML(Unified Modeling Language) 창시자이자 소프트웨어(SW) 개발 방법론의 세계적인 권위자인 미국 래쇼날사의 짐 럼바 박사가 최근 우리나라를 방문해 「성공적인 SW 개발의 6가지 원칙」이라는 세미나를 개최했다. 럼바 박사는 이 세미나에서 규모가 점점 커지고 구현내용이 복잡해지는 SW 개발작업을 효과적으로 진행하기 위해 반복적인 SW 개발, 요구사항 관리, 컴포넌트 기반 아키텍처의 활용 등 새로운 방법론과 다양한 방안들을 소개했다. 이를 요약, 정리한다.

<편집자>

 소프트웨어를 체계적으로 개발하기 위해서는 우선 반복적으로 SW를 개발해야 한다. 대부분의 SW개발 프로세스는 요구사항 정의·분석·설계·구현·통합·테스트·유지보수의 형태를 답습해왔으며 지금도 이러한 방식이 애용되고 있다. 그러나 이 방식은 70∼80년대 단순한 논리만이 요구되는 간단한 시스템 개발에는 적합했지만 90년대 들어 처리해야 할 업무가 더욱 방대해지고 다운사이징 등의 분산환경과 인터넷이 등장하면서 점점 무의미해지고 있다. 이런 상황에서 어떤 개발 프로젝트이든 사용자 요구사항을 한번의 과정만으로 구현한다는 것은 불가능하다. 특히 프로젝트 진행 중에 대두되는 기술변화, 요구사항 변화 등을 수렴하기 위해서라도 반복적인 SW개발 방식이 필요하다.

 둘째로 요구사항을 관리해야 한다. 시스템을 개발할 때 가장 중요한 사항 중 하나가 요구사항을 추출·조직화·문서화하는 것이며 요구사항과 연관된 시스템의 기능성과 제한점 등을 파악하는 것이다. 이를 위해 현장에서 검증된 사용 사례(Use Case)와 시나리오를 찾는 것이 중요하다. 이러한 사용 사례는 시스템을 분석하고 설계·구현·테스트하는 전과정에 일괄적으로 적용될 수 있다.

 셋째, 컴포넌트 기반 아키텍처를 사용해야 한다. 안정된 시스템을 구축하고 설계하기 위해서는 유연하고 탄력적이며 재사용이 가능한 개발 프로세스를 설정해야 한다. 이 방법 중 하나가 컴포넌트 기반 아키텍처를 이용하는 것이다. 즉 잘 정의된 아키텍처 틀에 컴포넌트를 조립해 시스템을 완성하는 방법을 사용하거나 인터넷 기반의 컴포넌트 기술과 코바·EJB·COM으로 대별되는 분산 객체기술 등의 컴포넌트 기반 인프라를 이용한다.

 넷째, 시각적인 SW모델링이 필요하다. 아키텍처와 컴포넌트의 구조적이며 동적인 부분을 묘사하기 위해 어떻게 SW를 모델링하는가가 중요해지고 있다. 이를 위해 객체 모델링 언어표준인 UML을 활용할 것을 제안한다. 복잡하고 난해한 프로그램을 상세한 수준까지 이해하지 않더라도 시각적인 빌딩블록만으로도 충분한 이해가 가능하기 때문에 SW 프로젝트에 연관된 모든 참여자의 수준과 공감대를 높일 수 있으며 시스템을 품질을 높여주는 역할을 한다.

 다섯째, SW품질을 검증하지 않으면 안된다. 동작하지 않은 시스템, 낮은 품질의 시스템, 애플리케이션 성능과 신뢰성 부족은 SW 프로젝트 실패사례의 공통된 요소들이다. 따라서 이를 해결하기 위해 테스트 계획·설계·구현·실행·평가에 이르는 테스팅 전략이 필요하며 이를 개발 프로세스의 한 과정으로 간주하는 것이 요구된다.

 마지막으로 SW에 관련된 변화를 제어해야 한다. 어떠한 SW 프로젝트일지라도 시간이 경과되면서 쏟아져나오는 다양한 산출물에 대한 변화는 피할 수 없다. 또한 개발 프로세스 모델이 반복적일 경우 이 변화는 더욱 빈번해진다. 따라서 이러한 변화를 추적·제어하며 모니터링하고 이력을 관리하는 형상관리와 변경관리가 무엇보다 중요하다.

조인혜기자 ihcho@etnews.co.kr