Component_Diagram
정의 :
1. 시스템을 구성하는 임의의 물리적인 요소
2. 물리적인 요소 : 가상의 모델을 실제로 구현하여 나타내는 것을 의미
3. 객체지향의 원리에 따라 업무 기능 + 관련 데이터를 하나의 단위로 처리
4. 시스템을 구성하는 물리적인 컴포넌트와 그들 사이의 의존관계를 나타내는 다이어그램
5. 컴포넌트 , 인터페이스 , 의존관계로 표현
이점 :
1. 컴포넌트는 기존의 함수, 클래스 등에 비하여 보다 큰 규모이므로 재사용을 하는 경우 재사용의 효과가 보다 크게 된다.
2. 컴포넌트는 매우 강한 수준의 정보 은닉 개념을 지원한다.
3. 기존 컴포넌트를 수정하는 대신에 아예 새로운 컴포넌트로 기존 컴포넌트를 대체하는 것도 가능하다
객체지향 원리에서 컴포넌트
정의 :
1. 인터페이스에 의해서 기능이 정의된, 독립적으로 개발 , 배포 , 조립이 가능한 시스템의 구성 단위로 정의
Ex) j2EE 플랫폼의 JAR파일 , 닷넷 플랫폼의 DLL파일
컴포넌트 다이어그램의 구성 요소
종류 :
1. 컴포넌트 : 논리적 요소들이 물리적으로 패키지화
2. 인터페이스 : 컴포넌트가 실현하고자 하는 여러 오퍼레이션의 모임
3. 의존관계 : 컴포넌트와 컴포넌트 간의 관계
4. 지원관계 : 컴포넌트와 인터페이스 간의 관계
UML관점 vs CBD관점 ( component Based Development )
UML 관점 |
CBD 관점 |
1. 음악 플레이어를 구성하는 클래스파일(play.class)와 서블릿소스(play.java),music_player.exe 등은 컴포넌트에 해당된다 |
1. 인터페이스와 연결된 music_player.exe만이 컴포넌트에 해당 2. 클래스 파일,자바 소스 등은 컴포넌트에 해당하지 않음
|
표현 방법
1. 컴포넌트 :
ㄱ. 탭이 달린 직사각형으로 표현
ㄴ. 모든 컴포넌트는 반드시 이름을 가지고 있어야 한다
ㄷ. 컴포넌트가 패키지에 포함되어 있다면 컴포넌트의 이름 앞에 패키지 이름을 붙인다.
ㄹ. 클래스처럼 컴포넌트에 꼬리표 값을 달아주거나 컴포넌트 내부의 오퍼레이션을 보여줄 수도 있다
ㅁ. 컴포넌트 내부에는 Classfier , 성과물 , 컴포넌트를 정의할 수 있고, 컴포넌트에 <<file>>라고 하는 스테레오 타입을 붙임으로써 물리적인 파일을 나타낸다.
*컴포넌트의 표현 방법*
2. 인터페이스 :
ㄱ. 컴포넌트와 인터페이스를 연결하는 화살표 모양의 점선으로 나타낼 수 있다
(의존관계)
ㄴ. 실선으로 표현 가능하다
ㄷ. 인터페이스를 실체화 한다는 의미 : 실제로 동작하는 컴포넌트에 인터페이스를 적용한다는 것
ㄹ. 컴포넌트 다이어그램은 실체화 관계뿐만 아니라 의존관계도 표현가능
è 의존관계는 컴포넌트와 필수의 인터페이스 사이에 결정
3. 의존관계 :
ㄱ. 컴포넌트 사이의 의존관계는 한 컴포넌트에 변경이 발생한 경우, 그 변경의 범위를 추적해서 파악하고 싶을 때 매우 유용
Ex1)
Ex2)
설명 :
play.class에서 play.java로의 의존관계는 클래스 파일이 play.java의 소스 파일을 컴파일 함으로써 얻어지는 것이다.
Play.java 컴포넌트에서 music_player 인터페이스로의 의존관계는
Music_player.exe 컴포넌트가 인터페이스를 통하여 이용되는 것을 의미 한다
컴포넌트 다이어그램의 유의사항
1. 패키지와 혼동하지 않는다
2. 실현 가능성을 고려한다 à 기술적으로 구현이 어렵거나 불가능한 시스템이 되지 않도록 모델링한다
3. 물리 구성과 정합성을 취해야 한다
è 개발 시 파일의 변경이 빈번히 발생하는데 파일구성을 표현하고 있는 컴포넌트 다이어그램과 실제 파일구성을 일치시켜 두지 않으면 모델과 현실이 일치 하지 않게 되면서 시스템의 추적성을 저하시킨다.
'학부공부 > 소프트웨어공학' 카테고리의 다른 글
Component_Diagram( 컴포넌트 다이어그램의 간단한 예제 ) (0) | 2018.06.01 |
---|---|
Component_Diagram( 컴포넌트와 클래스의 공통점 , 차이점 ) (0) | 2018.05.31 |
State_Diagram_연습문제 1 ( 비디오숍관리 시스템 ) - starUML 파일 추가 (0) | 2018.05.29 |
State_Diagram_Example1_starUML 파일 추가 (0) | 2018.05.29 |
State_Diagram(슈퍼 상태와 서브 상태) (0) | 2018.05.26 |
#IT #먹방 #전자기기 #일상
#개발 #일상