Component Diagram 1
Agenda 컴포넌트란? 컴포넌트 다이어그램이란? 컴포넌트 다이어그램의 표현 컴포넌트 다이어그램의 사용처 컴포넌트 다이어그램의 유의사항 정리 참고자료 2
컴포넌트란? 교환 가능한 시스템의 구성 부품 중의 하나로, 내부에 구현을 포함하고 외부에 인터페이스를 공개하고 있는 것 1 개의 컴포넌트는 1 개 이상의 클래스, 인터페이스, 컴포넌트로 구성되어 있다 명확히 정의된 하나 이상의 인터페이스를 가지는 소프트웨어의 부분 인터페이스를 가지며 다른 컴포넌트에 대한 명시적인 의존관계 만을 가지는 조립의 단위. 소프트웨어 컴포넌트는 시스템을 이루는 물리적 요소 객체 지향 개발에서는 전체 시스템의 클래스들을 기능적인 연관성을 고려하여 결합력이 강한 클래스들을 그룹으로 묶어 새로운 단위의 하위 시스템을 구성할 수 있다. 이와 같은 단위를 컴포넌트라고 한다 3
컴포넌트란? 시스템 컴포넌트 컴포넌트는 전체 시스템을 구성하는 하나의 구성요소이다. 각 컴포넌트는 전체 시스템 기능의 일부를 제공한다. 시스템 컴포넌트 4
컴포넌트란? 대학정보시스템의 컴포넌트 대학정보 시스템 컴포넌트 5
컴포넌트란? 인터페이스 컴포넌트가 외부에 공개하고 있는 것 컴포넌트들이 조립되어 동작되기 위한 컴포넌트 간의 표준 규약 컴포넌트가 제공할 기능에 대한 명세 다른 객체들이 자신의 오퍼레이션 수행을 요청할 수 있게 하기 위해 제공하는 “얼굴” 컴포넌트의 오퍼레이션은 그 컴포넌트의 인터페이스를 통해서만 사용할 수 있다 컴포넌트 실현 6 인터페이스
컴포넌트란? 인터페이스의 표현 인터페이스 실현 컴포넌트 7
컴포넌트란? 인터페이스의 역할 인터페이스를 실현하는 컴포넌트와 인터페이스를 통하여 컴포넌트의 기능을 이용하는 다른 컴포넌트 사이에서 인터페이스는 계약으로서의 역할을 한다 서비스 사용자 계약 서비스 제공자 8
컴포넌트란? 컴포넌트의 이점 컴포넌트는 기존의 함수, 클래스 등에 비하여 보다 큰 규모이므로 재사용을 하는 경우 재사용의 효과가 보다 크게 된다 컴포넌트는 매우 강한 수준의 정보 은닉 개념을 지원한다 기존 컴포넌트를 수정하는 대신에 아예 새로운 컴포넌트로 기존 컴포넌트를 대체하는 것도 가능하다 9
컴포넌트 다이어그램이란? 물리적인 것을 모델링 하기 위한 다이어그램 기본설계 및 상세설계 단계에서 작성 컴포넌트 사이의 관계를 나타내기 위한 다이어그램 대형 시스템을 좀 더 이해하기 쉽고 재사용하기 용이한 형태로 클래스들을 묶는 매커니즘 컴포넌트A 컴포넌트C 컴포넌트B (그림) 컴포넌트 다이어그램 10
<<file>> 컴포넌트 다이어그램의 표현 컴포넌트 내부에는 Classfier, 성과물, 컴포넌트를 정의할 수 있고, 컴포넌트에 <<file>>라고 하는 스테레오 타입을 붙임으로써 물리적인 파일을 나타낸다 Classfier : 움직임과 구조를 갖는 부품의 총칭으로 클래스, 인터페이스, 컴포넌트들이 Classfier 성과물 : 컴포넌트가 구현되어 있는 성과물 성과물의 이름은 파일명 의존관계 : 클래스 다이어그램의 의존관계와 동일 컴포넌트 대출관리 의존관계 작품관리 Classfier 라이브러리 작품 인터페이스 <<file>> TitleManager.jar 성과물 11
컴포넌트 다이어그램의 사용처 컴포넌트내에 어떤 Classfier를 포함할지, 컴포넌트간의 이용관계가 어떻게 되는지를 그림으로써 컴포넌트 개발자가 컴포넌트 구성요소를 설계할 때 사용 이미 만들어진 컴포넌트를 이용할 경우 시스템 내에 컴포넌트를 어떻게 이용할 것인지 검토 시 사용 컴포넌트 다이어그램에서는 컴포넌트=파일로 다이어그램을 그릴 수 있으므로 파일의 구성관계를 모델화하여 파일구성을 검토 개발된 시스템을 운영에 인스톨 시 컴포넌트간의 의존관계를 이용하여 인스톨 순서를 검토 시 사용 부하를 분산시키기 위한 분산시스템 검토 시 컴포넌트의 적절한 배치를 위하여 사용 12
컴포넌트 다이어그램의 유의사항 패키지와 혼동하지 않는다 실현 가능성을 고려한다 기술적으로 구현이 어렵거나 불가능한 시스템이 되지 않도록 모델링한다 예) 순환참조 등 물리 구성과 정합성을 취한다 개발 시 파일의 변경이 빈번히 발생하는데 파일구성을 표현하고 있는 컴포넌트 다이어그램과 실제 파일구성을 일치시켜 두지 않으면 모델과 현실에 괴리가 생기면서 시스템의 추적성을 저하시킨다 13
정리 컴포넌트 다이어그램은 자주 쓰이지는 않으므로 흔하지 않은 다이어그램이지만 구현 담당자/빌드 담당자/운용 담당자에게는 도움이 될 경우가 많습니다 객체지향에서 컴포넌트의 개념은 매우 중요 14
참고자료 다이어그램으로 쉽게 배우는 UML (한빛미디어 – 2008년) - 이노우에 타케시 저 | 이영희 윤정모 교수님 홈페이지 - http://cat1.snut.ac.kr/~yimhoon/cgi-bin/ezboard.cgi?db=jmyoon3&action=read&page=2&num=15&dbf=200703120001&depth=0 웹사이트 - http://www.moment.pe.kr 15
수고하셨습니다!!! 16