컴포넌트 기반 방법론(CBD) – 개요 및 사업추진절차
- 2019-09-02
- Posted by: javasolution
- Category: 프로젝트방법론
컴포넌트 기반 방법론(CBD) – 개요 및 사업추진절차
1. 컴포넌트 기반 방법론 개요
IT 관련 기술이 다양해지고 정보시스템의 규모와 복잡도가 증가함에 따라 이에 대한 해 결책으로 최근에는 부품 조립 방식의 컴포넌트 기반 개발이 일반화되고 있다. 컴포넌트 란 독립적인 기능(서비스)을 제공하는 단위 소프트웨어 모듈을 의미한다.
컴포넌트의 특징은 바로 재사용성(reusability)과 대체성(replaceability)에 있다.
재사용성이란 컴포넌트가 독립적인 기능 혹은 서비스를 제공하는 독립적인 모듈이므로 이를 필 요로 하는 여러 애플리케이션에서 반복적으로 재사용되도록 한다는 것이다. 따라서 이는 코드 수준에서의 재사용이 아니라 실행 모듈 단위의 재사용이다. 즉, 애플리케이션 개발 의 관점을 구현이 아니라 이미 만들어진 부품을 바탕으로 조립하는 것으로 인식해야 한 다는 것이다.
그러므로 컴포넌트 기반 개발(CBD; Component Based Development) 방식을 적용하기 위해서는 개발하고자 하는 시스템에서 필요로 하는 기능 및 서비스를 제공 하는 컴포넌트를 식별하고 이를 정의하는 것이 핵심이다. 이처럼 CBD에서는 컴포넌트를 기반으로 시스템이 구성되므로 요구사항이 변화할 경우 이에 영향을 받는 부분을 식별하 여 손쉽게 다른 부품으로 대체할 수 있어 요구 변화에 유연하게 대처할 수 있다.
이처럼 컴포넌트 기반 개발(CBD; Component Based Development)은 기존 개발 방식 과는 달리 특정 프레임워크 상에서 실행되는 부품화된 컴포넌트를 바탕으로 이를 조립하여 더 큰 컴포넌트를 만들거나 애플리케이션을 개발하는 새로운 기법이다. 이러한 컴포 넌트 기반 개발은 과거 구조적 방법이나 객체지향 기술이 제대로 해결하지 못한 개발 생 산성, 소프트웨어 재사용성, 시스템 유지보수성을 향상시킬 수 있는 대안으로 주목받고 있다. 이외에도 요구사항과 다른 소프트웨어의 생산, 납기 지연, 비용 초과 등 소프트웨어 위기를 초래한 고질적인 문제들을 해결할 수 있는 방안으로 각광받고 있다. 이러한 컴포 넌트 관련 기술은 EJB, .NET, CORBA 등과 같은 컴포넌트 프레임워크 표준이 발표되고, 이를 기반으로 관련업계에서도 다양한 솔루션과 개발 도구들을 출시함에 따라 폭넓게 확 산되고 있다.
일반적으로 알려진 컴포넌트 기반 개발 방법의 장점은 다음과 같다.
첫째, 복잡한 개발 문제를 적당한 구현 단위로 분해하고, 조립 방식으로 애플리케이션을 개발 할 수 있어 개발 생산성을 높일 수 있다. 이는 컴포넌트의 경우 모든 접근 이 인터페이스를 통해서만 이루어지므로 독립적인 개발과 배포가 가능하다는 특성 에서 유래한다. 따라서 사용자들은 필요한 컴포넌트를 직접 개발하지 않고 요구사 항에 부합하는 컴포넌트를 시장에서 구입하여 활용할 수 있다. 이처럼 기 개발된 컴포넌트를 이용할 경우 개발 생산성을 극대화할 수 있다.
둘째, 컴포넌트가 제공하는 완벽한 캡슐화 기능을 통해 변화 또는 에러의 영향을 해당 컴포넌트 내부로 한정시킬 수 있어 유지보수성이 높다. 예를 들면, 업무처리 방식이 바뀌 어 비즈니스 로직이 달라질 경우, 전체 시스템을 재개발하지 않고 해당 컴포넌트를 수정하거나 새로운 항목으로 대체함으로써 이러한 변화를 수용할 수 있다.
셋째, 성능 극대화를 위해 개발된 애플리케이션을 시스템∙네트워크에 최적으로 분산 배치할 수 있는 단위로 나눌 수 있어 시스템의 업사이징(upsizing) 또는 다운사이징 (downsizing)에 신속하게 대응할 수 있다. 이를 통해 새로운 기능 추가, 성능 개선, 시스템 스케일의 변화 등에 손쉽게 대처할 수 있다.
넷째, 표준화된 아키텍처를 준수하므로 내부 설계나 코드와 같은 컴포넌트 구현부를 새 로운 기능 혹은 향상된 성능을 제공하는 다른 컴포넌트로 손쉽게 교체할 수 있다.
소프트웨어 컴포넌트 개발 패러다임은 지금까지의 소프트웨어 개발 패러다임과는 다른 다양한 이해관계자들 간의 관계로 확장된다. 예를 들면, 기존 방식에서는 개발 자(수주자)와 사용자(발주자)가 개발의 주체였다. 즉, 사용자의 요구사항을 반영하여 순차적으로 시스템을 개발하는 방식이었다. 그러나 새로운 패러다임은 사용자들이 시장에서 필요한 컴포넌트를 공급받아 조립/생산하는 방식이다. 따라서 각 주체들 이 목적과 역할에 따라 컴포넌트의 내용을 정확하게 이해하는 것이 중요하다.
2. 사업추진절차
CBD를 이용한 접근법은 개념적으로 두 가지로 구분할 수 있다.
즉, 컴포넌트 자체를 만들기 위한 “컴포넌트 개발(CB; Component Development)”과 이미 개발된 컴포넌트를 바탕으로 시스템을 개발하는 컴포넌트 기반 개발(CBD; Component Based Development)이 있다.
이 중에서 컴포넌트 개발은 완전한 시스템을 만드는 것이 아니라 재사용 가능한 부품을 만드는 것이므로 해당 도메인을 상세하게 분석하여 범용성이 높은 부품을 정의하는 것이 중요하다.
반면에 컴포넌트 기반 개발은 기존의 부품을 조 립하여 요건에 적합한 시스템을 완성하는 것이므로 비즈니스 요구사항을 분석하고, 이에 적합한 부품을 식별하고, 이를 조립하여 시스템의 기능적/비기능적 요건을 충족할 수 있 도록 관리하는 것이 중요하다. 따라서 CBD를 적용하기 위해서는 개발 대상 업무와 아키 텍처(비즈니스/시스템/네트워크 등)에 대한 이해가 필수적이다.
여기서는 주로 CBD에 대해 소개하고자 한다.
컴포넌트 기반 개발 방법론을 적용할 경우의 사업 추진 절차는 다음과 같다.
요구사항 분석 단계에서는 시스템에 대한 사용자의 요구사항을 파악하고, 대개 유스케이스를 사용하여 이의 세부 내역을 정의하는 작업을 수행한다.
설계 단계에서는 이전 단계에서 도출된 요구사항을 토대로 이를 반영할 수 있는 아키텍처(업무/시스템/네트워크)를 파악하고, 대개 클래스 다이어그램을 사용하여 이의 세부 내역을 정의하는 작업을 수행한다.
명세 단계에서는 설계 단계에서 정의된 아키텍처를 기반으로 구현 컴포넌트와 구 현 클래스를 파악하여, 대개 인터페이스 명세를 사용하여 이의 세부 내역을 정의하 는 작업을 수행한다.
구현 단계에서는 개발자가 명세가 완료된 모델을 바탕으로 이를 구현하는 작업을 수행한다.
구현 컴포넌트에 대한 인터페이스나 오퍼레이션과 등과 같은 세부사항을 묘사하 기 위해 컴포넌트를 개발하는 과정에서 개발자들이 필수적으로 작성해야 하는 산출 물을 정의할 필요가 있다. 이는 구현 컴포넌트를 이용한 조립 및 유통을 위해서는 개발 절차보다는 개발 과정에서 작성해야 하는 산출물과 이를 작성하는 방법을 이 해하는 것이 보다 중요하기 때문이다.
컴포넌트 구현 과정과 모델링 기법간의 관계는 다음과 같다.