본문 바로가기
IT 기본개념

[IT구축] CBD(Component Based Development) 방법론

by 라이프해커 김탁구 2022. 11. 27.
반응형

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) 경험 축적 : 프로젝트 관리나 아키텍처 정립에 대한 경험과 적용 능력 중요

반응형

댓글