소프트웨어공학

본문 바로가기
사이트 내 전체검색


소프트웨어공학
소프트웨어공학

12. Component Diagram

페이지 정보

작성자 관리자 댓글 0건 조회 221회 작성일 22-08-15 13:57

본문

12. Component Diagram

1. Component Diagram


시스템을 구성하는 임의의 물리적인 요소를 의미

물리적인 요소란 가상의 모델을 실제로 구현하여 나타내는 것을 의미

객체지향의 원리에 따라 업무 기능과 관련 데이터를 하나의 단위로 처리


객체지향 원리에서 컴포넌트란

인터페이스에 의해서 기능이 정의된, 독립적으로 개발·배포·조립이 가능한 시스템의 구성 단위로 정의


컴포넌트의 대표적 예

- J2EE 플랫폼의 JAR 파일

- 닷넷 플랫폼의 DLL 파일


UML 관점

음악 플레이어를 구성하는 클래스 파일(play.class)와 서블릿 소스(play.java), music_player.exe 등은 컴포넌트에 해당


- 컴포넌트 다이어그램

시스템을 구성하는 물리적인 컴포넌트와 그들 사이의 의존관계를 나타내는 다이어그램  

컴포넌트, 인터페이스, 의존관계로 표현



컴포넌트 심벌


컴포넌트는 탭이 달린 직사각형으로 표현

모든 컴포넌트는 반드시 이름을 가지고 있어야 한다. 

컴포넌트가 패키지에 포함되어 있다면 컴포넌트의 이름 앞에 패키지 이름을 붙일 수 있으며, 

클래스처럼 컴포넌트에 꼬리표 값을 달아주거나 컴포넌트 내부의 오퍼레이션을 보여줄 수도 있다.


1.PNG


인터페이스 심벌


컴포넌트 인터페이스는 2가지 방식으로 표현

컴포넌트와 인터페이스, 그리고 이를 연결하는 화살표 모양의 점선(의존관계)으로 나타낼 수 있다. 


- 인터페이스를 실체화한다는 의미

실제로 동작하는 컴포넌트에 인터페이스를 적용한다는 것

- 컴포넌트 다이어그램은 실체화 관계뿐만 아니라 의존관계도 표현

의존관계는 컴포넌트와 필수의 인터페이스 사이에 설정


2.PNG 




의존관계 


컴포넌트 사이의 의존관계는 한 컴포넌트에 변경이 발생한 경우, 그 변경의 범위를 추적해서 파악하고 싶을 때 매우 유용


컴포넌트와 클래스의 공통점


둘 다 이름이 있고, 정해진 인터페이스를 실현할 수 있으며, 의존성과 일반화 및 연관관계에 참여할 수 있고 중첩이 가능

인스턴스를 가질 수 있으며, 교류에 참여할 수 있다



컴포넌트와 클래스의 차이점


- 클래스는 논리적으로 추상화한 것이며, 컴포넌트는 물리적인 것

컴포넌트는 노드(또는 프로세서)에 존재할 수 있지만 클래스는 그렇지 않다.

모델링을 하는 것이 노드에 직접 존재한다면 컴포넌트를 사용하고, 그렇지 않으면 클래스 사용


- 컴포넌트는 서로 다른 논리적 요소들을 물리적으로 패키지화한 것

컴포넌트는 클래스나 통신과 같은 서로 다른 논리 요소들을 물리적으로 구현한 것


- 클래스는 속성과 오퍼레이션을 직접 가질 수 있지만, 컴포넌트는 자신의인터페이스를 통해서만 접근할 수 있는 오퍼레이션들만 갖는다.

컴포넌트와 클래스는 둘다 인터페이스를 실현할 수 있으나, 컴포넌트가 갖는 서비스들은 항상 자신의 인터페이스를 통해서만 접근이 가능



2. 컴포넌트 다이어그램 실습

Star UML에서 컴포넌트 다이어그램을 추가한다.


3.PNG


ComponentDiagram_test로 수정한다.


4.PNG


Tetris 컴포넌트를 추가한다.


Toolbox에서 Component를 선택하고 작업영역에서 드래그하면 추가된다.

component명은 Tetris로 한다.


5.PNG


Game패키지에 Tetris 컴포넌트를 추가한다.

컴포넌트를 추가하고 컴포넌트명을 Game:Tetris로 하면 된다. 

컴포넌트명앞에 패키지명을 쓴다.


6.PNG


컴포넌트에 operation을 추가한다.


컴포넌트에서 우클릭하고 Add -> Operation을 선택한다.




7.PNG

Name을 play로 수정한다.


8.PNG



관계를 실습하기위해 컴포넌트를 추가한다.

컴포넌트명은 계산기로 한다.



9.PNG


Toolbox에서 interface를 선택하고 NumberButton 인터페이스를 추가한다.


10.PNG


계산기에 NumberButton 인터페이스를 실체화(realiazation)해 보겠습니다.


Toolbox에서 realization을 선택하고 계산기에서 NumberButton 인터페이스로 드래그한다.


11.PNG


TV 컴포넌트와 TV메뉴 인터페이스를 추가한다.


12.PNG


TV 컴포너트에 TV메뉴 인터페이스에 실체화 한다.

Toolbox에서 Realization을 선택하고 TV에서 TV메뉴로 드래그한다.


13.PNG


TV메뉴를 이용할 리모콘 컴포넌트를 추가한다.


14.PNG


TV메뉴와 리모콘 컴포넌트의 관계는 의존관계(Dependency)이다.

Toolbox에서 Dependency를 선택하고 리모콘 컴포넌트에서 TV메뉴 인터페이스로 드래그한다.


15.PNG


의존관계를 추가하면 TV메뉴 인터페이스의 모양이 바뀐다.

리모콘은 사용자가 되고, TV메뉴는 사용대상이 된다.



댓글목록

등록된 댓글이 없습니다.


개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 063-469-4551 FAX. 063-469-4560 전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과

Copyright © www.leelab.co.kr. All rights reserved.