관리 메뉴

기억을 위한 기록들

UML 구성요소 본문

Etc..

UML 구성요소

에드윈H 2021. 8. 22. 13:45

 

UML 구성요소는 크게 3가지가 있다. 1. 사물 2. 관계 3. 다이어그램 이렇게 3가지가 있고 각각을 설명하자면,

 

1. 사물

모델에서 가장 추상적인 개념으로 구조를 표현하는 정적 사물, 동작을 표현하는 동적 사물 부가적으로 설명하는 주해 사물이 있다.

 

- 정적 사물 : 모델의 구조 즉 개념적, 물리적 요소를 표현하는 명시.

(ex. 클래스, 인터페이스, 통신, 컴포넌트, 패키지, 노드 등)

 

- 동적 사물 : 모델의 동적인 부분을 동사로 표현하며 시간과 공간에 따른 동작을 나타낸다.

(ex. 교류, 유스케이스(요구 사항), 상태 머신(state machin) 등.)

 

- 주해 사물:  모델링에 참여하진 않지만, 모델링에 참여하는 다른 사물들뿐 아니라 모델링을 이해하는 데 필요한 정보 등 필요한 모든 설명을 표시하기 위해 사용.(주석과 비슷한 느낌?)

 

 

 

2. 관계

관계는 4가지로 의존, 연관, 일반화, 실체화라는 네 가지 관계가 있다.

 

- 의존 관계 : 두 사물간의 의미적 관계로, 한 사물의 명세가 바뀌면 다른 사물에 영향을 준다.( 그 반대가 반드시 성립되는 건 아니다.) (ex. 텔레비전과 리모컨이 있다. 텔레비전은 리모컨의 명세에 따라 동작한다.)

의존관계는 위와 같은 화살표를 사용한다.

"TV는 REMOTE에 의존한다."라고 표현할 수있다. 의존 대상이 되는 클래스를 향해 해당 화살표를 붙여주면된다.

 

- 연관 관계 : 객체 사이의 연결관계로 지속적으로 유지되는 관계. 연관의 양쪽 끝이 같으면 순환도 가능.

(ex. 이름, 역할, 다중성, 집합 연관 등)

한 클래스가 더 큰것을 대표하고, 더 작은것들로 이루어진 관계를 집한 연관이라고한다.(has a 관계)

- 일반화 관계 : 일반화된 사물과 더 특수화된 사물 사이의 관계로, 한 가지 종류를 의미, kind-of 관계라고도 함.

(ex. 동물과 [사자,호랑이,원숭이]는 일반화 관계. 자식 객체는 부모를 대신할 수 있지만 반대는 안된다.)

Car 종류에 Taxi/Bus/Truck등의 종류가 있다는 의미.

- 실체화 관계

한 객체가 다른 객체에게 오퍼레이션을 수행하도록 지정하는 의미적 관계.

대표적인 예로 인터페이스와 그것을 구현하는 클래스 사이의 관계이다. 엄밀히 정의하면 계약을 명세하는 클래스와 그 계약을 실현하는 클래스 사이의 관계라고 할 수 있다.

 

 

 

 

3. 다이어그램

대개 요소들과 사물간의 관계를 그래프로 나타낸 것.

크게 동적 다이어그램, 정적 다이어그램이 있고, 더 나눠보면

- 정적 다이어그램 : 클래스 다이어그램/컴포넌트 다이어그램/ 배치 다이어그램/ 패키지 다이어그램

- 동적 다이어그램 : 유스 케이스 다이어그램/ 순차 다이어그램/ 통신 다이어그램/ 활동 다이어그램/ 상태 다이어그램 

이렇게 총 9가지이다.

 

3-1 다이어그램 종류

- 클래스 다이어그램 : 클래스, 인터페이스, 통신과 함께 이들의 관계를 나타내며, 객체지향 시스템 모델링에서 가장 공통적으로 쓰인다.

 

-컴포넌트 다이어그램 : 컴포넌트 사이의 구성과 의존을 표현한 것. 클래스 다이어그램과 관련이 있는데, 일반적으로 컴포넌트는 하나 이상의 클래스, 인터페이스, 통신과 같은 논리 요소들을 물리적으로 구현한 것.

 

- 배치 다이어그램 : 실행 시 처리하는 노드와 그 노드에 있는 컴포넌트들의 구성을 표현한 것. 컴포넌트 다이어그램과 관련이 있는데, 일반적으로 노드 하나가 컴포넌트 다이어그램에 있는 하나 이상의 컴포넌트를 수용하기 때문.

 

- 패키지 다이어그램 : 클래스와 같은 여러 모델 요소를 그룹화하여 패키지를 구성, 이들 패키지 사이를 관계로 연결한다. 이때 패키지 사이의 관계는 일반화 관계와 의존 관계로 표현할 수 있다.

 

- 유스케이스 다이어그램 : 유스케이스와 액터의 관계를 구조적을 표현한 것. 유스케이스 다이어그램은 시스템 동작을 조직화하고 모델링하는데 특히 중요.

 

- 순차 다이어그램과 통신 다이어그램 : 둘 다 교류 다이어그램의 한 종류로, 교류 다이어그램은 객체, 관계, 메시지로 구성된다. 

순차 다이어그램은 메시지의 시간 순서를 강조하고, 통신 다이어그램은 메시지를 주고받는 객체의 구조적 구성을 강조한다.

순차 다이어그램은 시스템 외부 이벤트를 처리하기위해 시스템 내부 객체 간의 동적 메시지를 시간 흐름에 따라 표현한 것이고, 통신 다이어그램은 주로 객체 사이의 데이터 흐름을 표현한 것.

통신 다이어그램은 순차 다이어그램과 동일한 내용을 객체 상호 관계의 관점에서 표현한 것이므로 이 둘은 서로 변형이 가능.

 

 

- 활동 다이어그램 : 시스템 내부에 있는 활동의 흐름을 표현한 것. 시스템 기능을 모델링할 때 특히 중요하고 객체 간의 흐름에 중점을 둔다.

 

- 상태 다이어그램 : 상태 머신을 나타내며, 상태(state), 전이(transition), 이벤트(event), 활동(activity)으로 구성.

상태 다이어그램은 시스템의 내부 전이를 표현한 것. 상태 다이어그램은 인터페이스, 클래스, 통신의 동작을 모델링할 때 중요하며, 이벤트에 따라 순차적으로 일어나는 객체 동작에 중점을 두기 때문에 빠른 반응이 필요한 시스템을 모델링할 때 특히 유용.