I. 제품생산성과 품질향상 위한 CBD(Component Based Development) 방법론의 개요
가. CBD(Component Based Development) 방법론의 정의
- 객체지향 개발 방법론의 단점인 SW 재사용 한계 개선, 기 개발된 SW 컴포넌트를 조립하여 새로운 시스템 구축하는 방법
나. CBD 방법론의 등장배경
구분 |
내용 |
OOP 문제점 해결 필요 |
OOP는 코드수준의 재사용 |
조직의 변화 |
(과거) 부서중심 단일업무 |
- 객체지향 개발 방법론(OOP) 문제점인 개발 생산성, 재사용성, 시스템 유지보수성 등 해결 위한 대안
다. CBD 방법론의 특징
구분 |
내용 |
생산성 향상 |
-컴포넌트 조립 통한 시간 단축 |
고품질 |
-품질 고려한 컴포넌트 설계 및 구현 |
기술 집약성 |
-기술 숙련에 대한 집중 |
변경 용이 |
-요구사항 변화/수용에 안정적, 신속한 변경 가능 |
관리 용이 |
-독립적인 컴포넌트 단위 관리로 복잡성 최소 |
II. CBD 방법론 기반 개발 프로세스 및 구성요소
가. CBD 방법론 기반 개발 프로세스
- CBD : Repository에 저장된 컴포넌트를 필요 시, 컴포넌트 검색 통해 재사용
나. CBD 방법론 구성요소
항목 |
내용 |
CD (Component Development) |
-SW 개발에 필요한 부품 만드는 작업 -비즈니스 영역에 대한 이해와 기술 아키텍처에 대한 이해 선행 필요 -재사용 목적상 해당 도메인에 대한 분석이 핵심 -비즈니스/소프트웨어 컴포넌트 병행 개발 |
CBD (Component Based Development) |
-컴포넌트 조립하여 SW 개발 -반복적 개발 프로세스 적용하여 혁신적인 개발생산성 향상 |
다. CBD 방법론의 개발 단계 및 산출물
단계 |
액티비티 |
산출물 |
요구파악 |
요구사항 이해 |
요구사항 기술서, 용어사전, 개념 모델 |
요구사항 정의 |
유스케이스 모델 |
|
분석 및 설계 |
요구사항 분석 |
객체 모델, UI 설계서 |
아키텍처 정의 |
아키텍처 기술서 |
|
컴포넌트 설계 |
인터페이스 명세서, 컴포넌트 명세서, 컴포넌트 설계서 |
|
데이터베이스 설계 |
데이터베이스 설계서 (ERD와 테이블을 정의한 문서) |
|
구현 |
개발표준 정의 |
명명규칙, 코딩지침 등 |
코드 구현 |
플랫폼 종속적 코드 |
|
테스트 |
테스트 계획 |
테스트 계획서 |
테스트 수행 및 보고 |
컴포넌트 테스트 보고서, 통합테스트 보고서, 인수테스트 보고서 |
III. 객체지향 방법론과 비교
구분 |
CBD |
OOD |
개발 중점 |
검색 및 조립 |
신규 개발(객체 독립성 중점) |
필요 기술 |
업무지식 바탕으로 명세 통한 연동 |
높은 설계 및 개발 수준 필요 |
상호운용성 |
객체지향 개발 SW보다 상호운영성 높음 |
상대적으로 낮음 |
시스템 복잡성 |
낮음 |
높음 |
확장방법 |
인터페이스 |
상속, 동적 바인딩(Dynamic Binding) |
확장 레벨 |
실행파일 (Binary Level) |
언어 재사용(Source Level) |
조립 방법 |
조립 통한 수행 |
재 컴파일 후 수행 |
재사용성 |
재사용 및 범용성 |
하나의 시스템, 동일 언어에서만 사용가능 |
유통 |
유통시장에서 유통 가능 |
유통 아닌 SW 유지보수 등 강화 |
공통점 |
- 유스케이스 중심 개발 - 반복적, 점증적 개발 - 객체에 대한 개념 - 아키텍처 기반 개발 |
|
차이점 |
- 서비스 기반의 개발(인터페이스 중심) - 명세와 구현의 분리 - 컴포넌트 아키텍처 중심 - 객체기반 재사용이 아닌 컴포넌트 기반 재사용 |
IV. 국내 컴포넌트 산업의 문제점 및 해결 방안
항목 |
문제점 |
해결 방안 |
컴포넌트 |
공용 컴포넌트 부족 및 공유 체제 미흡 |
공용 컴포넌트 개발 및 관리체계 수립 |
기반기술 |
컴포넌트 개발 기반기술 및 전문업체 부족 |
컴포넌트 기술 개발 지원 |
유통 |
컴포넌트의 특성 반영한 유통 구조 미비 |
전문업체 육성 통한 유통 체계 수립 |
환경 |
컴포넌트 기반 활용 환경 조성 미흡 |
컴포넌트 활용 환경 조성 |
V. 성공적인 CBD 구축방안
구분 |
내용 |
수행조직 |
컴포넌트 개발팀, 솔루션 개발팀, 조직 지원 팀의 역할 분담 |
표준 및 방법론 |
실행환경 표준: .NET, J2EE, CCM 개발표준: UML 기반과 같은 개발표준 및 RUP같은 방법론 |
아키텍쳐 |
서브시스템 상호간의 인터페이스와 상호작용을 정의 해 놓아야 함 |
정책 |
개발자들이 컴포넌트에 대해 긍정적 마인드를 갖도록 고취 |
VI. CBD의 향후 전망
1구분 |
내용 |
재사용성 |
컴포넌트를 넘어 아키텍처 기반의 재사용(MDA/MDD), 제품라인(Product line), 도메인 공학에 의한 재사용으로 발전 예상 |
전문성 |
Business Architecture, SW Architecture 등의 영역별 세분화, 전문화 진행( MDA) |
발전성 |
WEB 서비스의 출현 이후 비즈니스 컴포넌트의 진화 예상 |
'정보관리기술사&컴퓨터응용시스템기술사 > SW공학과 프로젝트관리' 카테고리의 다른 글
나선형 모델(Spiral Model), 위험 최소화를 위한 진화적 프로토타이핑 (0) | 2020.12.30 |
---|---|
프로토타이핑 모델(Prototyping Model), 고객의 원활한 의사소통을 위한 시제품을 통한 점진적 개발 방법 (0) | 2020.12.22 |
[RAD(Rapid Application Development)], 사용자 참여와 도구를 활용한 개발속도 향상 방법 (0) | 2020.12.21 |
[SDLC(Software Development Life Cycle)], 소프트웨어 개발 생명주기 (0) | 2020.12.20 |
Incremental Development Model(증분형 개발모델) vs Evolutional Development Model(진화형 개발모델) 비교분석 (0) | 2020.12.18 |
댓글