CBD

개념
기 개발된 S/W 컴포넌트를 조립하여, 새로운 시스템을 구축하는 방식으로 객체지향의 단점인 S/W 재사용성을 극대화한 개발 방법론

  • 컴포넌트(COMPONENT )의 정의

    독립적으로 개발된 소프트웨어 패키지로서 이를 조립하여 완성된 소프트웨어를 개발할 수 있도록 만들어진 부품화된 소프트웨어

컴포넌트

설명

① Interface : 서비스를 외부에서 접근할 수 있도록 하는 Virtual Function

② Implementation : 인터페이스를 상속 받아 실제 서비스를 구현한 부분으로 객체, 클래스와 동일

 

 

  • 컴포넌트(COMPONENT )의 특징

특징

설명

식별가능성

컴포넌트는 다른 것들과 명확히 구별되어야 함

추적가능성

컴포넌트는 각자의 정체성을 가져야 하며, 다른 어플리케이션에 포함된 후에도 그 존재를 확인할 수 있어야 함

교체가능성

어플리케이션 사용에 영향을 주지 않고 다른 버전의 컴포넌트나, 동일한 서비스를 제공하는 컴포넌트로 교체 가능해야 됨

서비스의 고정성

물리적 구현과 관계없이 인터페이스를 통해서만 접근 가능

기록되는 서비스

인터페이스를 통해 제공되는 서비스 뿐만 아니라 어떠한 서비스가 제공되는지 이해할 수 있도록 문서로 기록되어야 함

 

  • 컴포넌트의 분류

분류

내용

비  고

요소 컴포넌트

더 이상 나누어질 수 없는 최소단위의 컴포넌트

재고계산

기능 컴포넌트

하나 이상의 요소 컴포넌트가 결합되어 하나의 기능 구현

입출고

서비스 컴포넌트

하나의 사용자 서비스를 수행하는 컴포넌트

자재관리

어플리케이션 컴포넌트

여러 서비스를 수행하는 시스템 컴포넌트

통합시스템

 

  • CBD(Component Based Development) 방법론의 정의

    - 기 개발된 S/W 컴포넌트를 조립하여, 새로운 시스템을 구축하는 방식으로 객체지향의 단점인 S/W 재사용성을 극대화한 개발 방법론

     

  • CBD 방법론의 등장배경
  1. 객체지향 개발 방법론의 문제점 해결 필요

구분

설명

기술적 측면

- OOP에는 Binary 형태의 표준이 없음

- OOP의 각 객체는 같은 컴파일러 사용

프로세스 측면

- 실제 재사용 가능한 소프트웨어를 이용한 개발이 거의 없음

- 대규모 프로젝트에서는 확장성 떨어짐

 

  • 업무, 기술, e-Business 조직의 변화

  •  

    Business 복잡도 증대에 따른 S/W개발 비용 증대, S/W 품질 저하, 관리의 어려움 등 발생

     

  • CBD 방법론의 특징

구분

내용

생산성

- 부품 조립을 통한 시간 단축

- 어플리케이션 개발 시간 단축

- 개발자의 생산성 향상, 품질이 검증된 컴포넌트 사용

고품질

- 지속적인 품질 관리로 검증된 컴포넌트의 사용

- 품질을 고려한 컴포넌트 설계 및 구현

재사용과 대체성

- 실행 기반의 재사용

[동일 기능의 중복 개발 없이 기존에 개발된 컴포넌트를 이용하여 새로운 시스템 구축 가능]

- 모델과 프레임웍 기반의 재사용

[다른 컴포넌트에 영향, 시스템 전체 변경 없이 새로운 기능 추가 및 컴포넌트 변경(대체) 가능]

변경 용이성

- 요구사항의 변화와 수용에 안정적이고 신속한 변경 가능

- 업무 변경에 따른 위험 최소

기술 집약성

- 기술 숙련에 대한 집중

- 아키텍처, 프레임워크, 분산 객체 기술 등

관리용이성

- 독립적인 컴포넌트 단위의 관리로 복잡성 최소

- 제작주기에 대한 예측 가능

- 제품 외주화 및 구매에 대한 선택 기회 부여

사용자 중심

- 사용자 관점 요구사항 분석으로 컴포넌트 식별가능

- 사용자 중심의 개발로 사용자 만족도 증가

 

  • CBD(Component Based Development) MAP

     

     

  • CBD 방법론의 개념도 및 개발 단계

     

    1) CD(Component Development) : SW 개발에 필요한 부품을 만드는 작업

    - 비즈니스 영역에 대한 이해와 기술 아키텍처에 대한 이해 선행 필요

    - 재 사용 목정상 해당 도메인에 대한 분석이 핵심사항

    - 비즈니스 컴포넌트와 소프트웨어 컴포넌트 병행 개발

     

    2) CBD(Component Based Development) : 컴포넌트들을 조립하여 SW개발

    - 반복적 개발 프로세스를 적용하여 혁신적인 생산성 향상

     

    3) COTS(Commercial Off The Shelf): 상업용 컴포넌트

     

  • CBD 방법론의 개발 단계 및 산출물

단계

액티비티

산출물

요구파악

요구사항 이해

요구사항 기술서, 용어사전, 개념 모델

요구사항 정의

유스케이스 모델

분석 및 설계

요구사항 분석

객체 모델, UI 설계서

아키텍처 정의

아키텍처 기술서

컴포넌트 설계

인터페이스 명세서, 컴포넌트 명세서, 컴포넌트 설계서

데이터베이스 설계

데이터베이스 설계서 (ERD와 테이블을 정의한 문서)

구현

개발표준 정의

명명규칙, 코딩지침 등

코드 구현

플랫폼 종속적 코드

테스트

테스트 계획

테스트 계획서

테스트 수행 및 보고

컴포넌트 테스트 보고서, 통합테스트 보고서, 인수테스트 보고서

 

  • CBD 공정표

단계

활동

작업

설명

요구정의

비즈니스

모델링

비즈니스 프로세스 모델링

BPM, 업무 프로세스 정의 및 개선

비즈니스 개념 모델링

도매인 모델

요구사항 정의

요구사항 정의

고객의 요구사항 정의

유스케이스 모델링

기능적 요구사항 분석

이터레이션 계획

우선 순위에 따른 이터레이션 계획 수립

분석

유스케이스

상세화

유스케이스 상세화

유스케이스 정의서 작성

유스케이스

분석

유스케이스 정적 분석

유스케이스 정적 실체화

유스케이스 동적 분석

유스케이스 동적 실체화

설게

UI 설계

UI 설계

화면 및 네비게이션 설계

컴포넌트

정의

컴포넌트 식별

전체 컴포넌트 식별 및

인터페이스 정의

컴포넌트 상호작용 정의

컴포넌트들 간 상호작용

정의

컴포넌트

설계

 

컴포넌트 정적 설계

컴포넌트 내부 관계 정의

컴포넌트 동적 설계

컴포넌트 내부 상호작용

정의 및 오퍼레이션 명세

DB 설계

논리적 DB 설계

논리 ER 모델 정의

물리적 DB 설계

물리 ER 모델 정의

배치 설계

배치 설계

물리적인 배치 정의

구현

개발

개발

컴포넌트 개발

테스트

 

단위 테스트

컴포넌트 테스트

통합 테스트

컴포넌트들 간 연계 테스트

 

  • CBD 방법론의 종류

종류

특징

RUP(Rational’s Unified Process)

-Use Case 중심적, 아키텍처 중심적, 반복 점진적

-4단계(Inception, Elaboration, Construction, Transition)

-6개 Core Disciplines(Business Modeling, Requirements, Analysis & Design, Implementation, Test, Deployment)

-3개 Supporting Disciplines(Configuration & Change Management, Project Management, Environment)

Catalysis

-요구분석(Requirements), 시스템 명세(System Specification), 아키텍처 설계(Architecture Design), 컴포넌트 내부 설계 (Component Internal Design)의 절차

-Business, Component Spec, Internal Design의 세 가지 레벨

-Collaboration, Type, Refinement의 세 가지 모델 구성 요소

-추상화 (Abstract), 구체화 (Precision), 조립부품 (Pluggable Parts)의 세 가지 원칙

-정형화된 구체적 절차 없이 개략적 개념만 제시, 비선형적 절차

마르미-Ⅲ

- Use Case 중심, 시스템 개발 초기에 견고한 아키텍처 구축

-계획, 요구획득, 아키텍처, 반복/점진적인 미니 프로젝트, 인도 단계를 거쳐 종료

-절차서, 기법 정의서, 양식, 적용사례가 함께 제공

Select Perspective

-실무 경험을 토대로 만들어져 실용적인 지침과 안내서 풍부

-정렬(Align), 아키텍트(Architect), 조립(Assemble)의 세 단계

-LUCID 기법(Linkage to the Business, Use Case Model, Class Model, Integrated Model, Data Model/Develop/Test & Deploy)

 

  • CBD 개발방법론과 객체방법론과의 비교

구분

CBD

OOD

개발 중점

검색 및 조립

신규 개발(객체 독립성 중점)

필요 기술

업무 지식을 바탕으로 명세를 통한 연동

높은 설계 및 개발 수준 필요

상호운영성

객체지향 개발 SW보다 높음

상대적으로 낮음

시스템복잡성

낮음

높음

확장방법

인터페이스

상속, 동적 바인딩

확장 레벨

Binary Level

Source Level

조립 방법

조립을 통한 수행

재 컴파일 후 수행

재 사용성

재사용 및 범용성

하나의 시스템에서 동일 언어에서만 사용 가능

유통

유통시장에서 유통 가능

유통이 아닌 SW 유지보수 등 강화

공통점

-유즈케이스 중심 개발

-반복적, 점증적 개발

-객체에 대한 개념

-아키텍처 기반 개발

차이점

-서비스 기반의 개발(인터페이스 중심)

-명세와 구현의 분리

-컴포넌트 아키텍처 중심

-객체기반 재사용이 아닌 컴포넌트 기반 재사용

 

  • CBD와 SOA와 비교

구분

SOA

CBD

관점

기업 내/외부 통합

기업 내부 특정 시스템

프로세스

프로세스에 집중

컴포넌트에 집중

컴포넌트 특성

서비스 컴포넌트

(높은 추상화 수준)

기능/기술 컴포넌트

(기술적 관점)

모델링 기법

컨설팅 기법(IDEF 등), UML, EA

UML

목표

비즈니스 목표와 연결 목적

시스템 관전 목표

플랫폼

이기종 통합 연계

J2EE, .NET 개별적 연계

연계방식

Loosely Coupling

(SOAP)

Tightly Coupling

(Serialization)

인터페이스

공개적인 인터페이스

(WSDL 활용)

개별 인터페이스

 

댓글