1. CBD(Component Based Development) 방법론의 개요
1) CBD 정의
- 독립적으로 실행 가능한 컴포넌트 단위의 기능 구현을 통해, 응용 소프트웨어 구현 시 필요한 컴포넌트를 재사용하여 생산성을 높이는 개발 방법론 입니다.
- 기 개발된 S/W 컴포넌트를 조립하여, 새로운 시스템을 구축하는 방법으로 객체지향의 단점인 S/W 재사용성을 극대화한 개발 방법론 입니다.
- 소프트웨어 전반의 개발 라이프사이클에 대한 모든 측면과 절차를 컴포넌트 기반으로 접근하는 개발 방법론 입니다.
2) 컴포넌트의 정의
- 독립적으로 배포할 수 있는 실행 가능한 단위 소프트웨어
3) CBD 방법론의 주요 특징
- 유용성 : 동일 기능 반복 배재로 투자 대비 효율
- 확장성 : 다른 컴포넌트 영향 없는 신규기능 추가
- 유지보수 용이성 : 일관된 유지 보수 및 변화 적용 용이
- 재사용성 : 동일 컴포넌트의 재사용으로 중복 제거
- 생산성 : 컴포넌트 조립을 통한 개발 시간 단축
4) 컴포넌트의 주요 특징
- 구현 : 실행시간 바인딩 가능한 코드 (실행코드)
- 명세화 : 컴포넌트 용도, 유형, 기술표준, 인터페이스 정보 명세화 (재사용명세서)
- 표준 : 재사용 및 컴포넌트 개발 표준 (EJB, COM+, CCM)
- 패키지화 : 컴포넌트 문서+코드 패키지 제공 (필요 기능 패키지)
- 배포가능 : 독립적 단위 컴포넌트 배포 (재사용 자원)
2. CBD 프로세스 및 핵심 구성 요소
1) 프로세스
단계 | 활동 | 작업 | 설명 |
요구정의 | 비즈니스 모델링 | 비즈니스 프로세스 모델링 | BPM, 업무 프로세스 정의 및 개선 |
비즈니스 개념 모델링 | 도매인 모델 | ||
요구사항 정의 | 요구사항 정의 | 고객의 요구사항 정의 | |
유스케이스 모델링 | 기능적 요구사항 분석 | ||
이터레이션 계획 | 우선 순위에 따른 이터레이션 계획 수립 | ||
분석 | 유스케이스 상세화 | 유스케이스 상세화 | 유스케이스 정의서 작성 |
유스케이스 분석 | 유스케이스 정적 분석 | 유스케이스 정적 실체화 | |
유스케이스 동적 분석 | 유스케이스 동적 실체화 | ||
설계 | UI 설계 | UI 설계 | 화면 및 네비게이션 설계 |
컴포넌트 정의 | 컴포넌트 식별 | 전체 컴포넌트 식별 및 인터페이스 정의 | |
컴포넌트 상호작용 정의 | 컴포넌트간 상호작용 정의 | ||
컴포넌트 설계 | 컴포넌트 정적 설계 | 컴포넌트 내부 관계 정의 | |
컴포넌트 동적 설계 | 컴포넌트 내부 상호작용 정의 및 오퍼레이션 명세 |
||
DB 설계 | 논리적 DB 설계 | 논리 ER 모델 정의 | |
물리적 DB 설계 | 물리 ER 모델 정의 | ||
배치 설계 | 배치 설계 | 물리적 배치 정의 | |
구현 | 개발 | 개발 | 컴포넌트 개발 |
테스트 | 단위 테스트 | 컴포넌트 테스트 | |
통합 테스트 | 컴포넌트간 연계 테스트 |
2) 핵심 구성요소
(1) 컴포넌트 : 독립적으로 배포할 수 있는 실행 가능한 단위 소프트웨어
(2) 인터페이스 : 컴포넌트의 역할과 접근 방법 지시자
(3) 컴포넌트 조립 : 아키텍처에 기반한 상호작용 및 의존성에 의한 컴포넌트 간의 연결
3. CBD 방법론의 종류
1) Catalysis
- 단계 : 비즈니스 모델 확립, 컴포넌트 명세, 아키텍처 디자인, 컴포넌트 구현
- 특징 : 고정 프로세스가 아닌 패턴 제공. 정형화되지 않았고 지침 제시하지 못함.
- 학계에서 연구대상으로 채택하여 이론적인 접근법 제시, 실제 프로젝트 활용 쉽지 않음.
2) RUP(Rational Unified Process)
- 단계 : 비즈니스 모델링, 요구사항, 분석, 설계, 구현, 테스트
- 특징 : 유스케이스 중심적, 아키텍처 중심적, 반복 점진적
- 일반적 보편적으로 만들어져 다양한 분야의 개발에 적용 용이
3) 마르미-Ⅲ
- 유스케이스 중심, 시스템 개발 초기에 견고한 아키텍처 구축
- 단계 : 요구사항 획득, 아키텍처 설계, 점진적 개발, 인도
- 특징 : 국내 여건 반영하여 개발한 한국형 방법론.
- 절차서, 기법 정의서, 양식, 적용사례가 함께 제공
4) Select Perspective
- 단계 : 정렬(Align), 아키텍트(Architect), 조립(Assemble)
- 실무 경험을 토대로 만들어져 실용적인 지침과 안내서 풍부
- LUCID 기(Linkage to the Business, Use Case Model, Class Model, Integrated Model, Data Model/Develop/Test & Deploy)
5) Advisor(CBD96)
- Catalysis를 약간 변형 시킴
- 다양한 컴포넌트 기반 개발 도구들을 제공(COOL:Biz, COOL:Gen...)
6) UML Components
- 국내 CBD 프로젝트에서 대부분 사용하였음
- Catalysis, Advisor 등의 영향을 받음
- 실용적, 쉽게 적용할 수 있도록 프로세스가 간소화되어 있음
4. 유사 방법론 비교
1) CBD와 정보공학 방법론 비교
구분 | 정보공학 | CBD |
공통점 | 하향식 방식, 추상화, 모듈화, 공학적 접근 방식, 사용자 참여 유도, 모델링 기법의 사용 | |
차이점 | 반복적, 점증적 개발 | - 아키텍처 중심 설계, 구현 - 서비스 기반의 분석 방법 - 다 계층 분산 환경 설계 |
2) CBD와 객체지향 방법론 비교
구분 | CBD | OOD |
개발 중점 | 검색 및 조립 (재사용성 중점) |
신규 개발 (객체 독립성 중점) |
필요 기술 | 업무 지식을 바탕으로 명세를 통한 연동 | 높은 설계 및 개발 수준 필요 |
상호운영성 | 객체지향 개발 SW보다 높음 | 상대적으로 낮음 |
시스템복잡성 | 낮음 | 높음 |
확장 방법 | 인터페이스 | 상속, 동적 바인딩 |
재사용 기준 | 실행 코드 기반 | 소스 기반 |
플랫폼 | 이종 컴파일러 수용 | 동일 컴파일러 제한 |
조립 방법 | 조립을 통한 수행 | 재 컴파일 후 수행 |
재사용성 | 재사용 및 범용성 | 하나의 시스템에서 동일 언어에서만 사용 가능 |
모듈 유통 | 유통시장에서 유통 가능 | 유통이 아닌 SW 유지보수 등 강화 |
공통점 | - 유스케이스 중심 개발 - 반복적, 점증적 개발 - 객체에 대한 개념 - 아키텍처 기반 개발 |
|
차이점 | - 서비스 기반의 개발(인터페이스 중심) - 명세와 구현의 분리 - 컴포넌트 아키텍처 중심 - 객체기반 재사용이 아닌 컴포넌트 기반 재사용 |
5. 핵심성공요인
1) 수행 조직 : 컴포넌트 개발팀, 솔루션 개발팀, 조직 지원 팀의 역할 분담
2) 표준 및 방법론 : 실행환경 표준은 .NET, J2EE, CCM으로 하며, 개발 표준은 UML기반 개발표준 및 RUP와 같은 방법론
3) 아키텍처 중심적 : 아키텍처 중심 개발을 통한 가시성 확보, 위험 조기 식별 및 대응
4) 프레임워크 기반 : 개발 생산성 향상 및 품질향상의 기반 역할
5) 개발팀 역량 : 개발팀원의 기반 기술 습득 정도, 표준 이해 및 준수 정도
6) 재사용 관리 체계 : 컴포넌트 재사용 자산 축적 및 품질관리 체계 구축 중요
7) 경험 축적 : 프로젝트 관리나 아키텍처 정립에 대한 경험과 적용 능력 중요
'IT 기본개념' 카테고리의 다른 글
[IT품질] CMMI(Capability Maturity Model Integration) (0) | 2022.11.28 |
---|---|
[IT구축] SCRUM 방법론 (0) | 2022.11.27 |
[IT기획/구축] 정보공학(Information Engineering) 방법론 (0) | 2022.11.26 |
[IT서비스] ITSM(IT Service Management) (0) | 2022.11.25 |
[IT정보관리] VRM(Vendor Relationship Management) (0) | 2022.11.24 |
댓글