테마
UML 다이어그램의 종류
UML(Unified Modeling Language, 통합 모델링 언어) 2.5.1은 다이어그램 14종을 정의하고, 이를 시스템의 정적인 모습을 그리는 구조 다이어그램과 움직이는 모습을 그리는 행위 다이어그램으로 나눈다. 시험에서는 설명을 주고 다이어그램 이름을 쓰게 하거나, 유스케이스 다이어그램(use case diagram)·순차 다이어그램(sequence diagram)·패키지 다이어그램(package diagram)의 구성 요소를 묻는다. 구성 요소는 다음 문서에서 본다.
구조 다이어그램
구조 다이어그램(structure diagram)은 시간이 흘러도 변하지 않는 시스템의 구성, 즉 무엇이 있고 어떻게 연결되는지를 그린다.
| 이름 | 표현하는 것 |
|---|---|
| 클래스(class) | 클래스와 속성, 클래스 사이의 관계 |
| 객체 | 특정 시점의 객체(인스턴스)와 관계 |
| 컴포넌트 | 구현 모듈인 컴포넌트와 인터페이스 |
| 배치 | 노드(node) 등 물리적 요소의 위치 |
| 복합체 구조(composite structure) | 클래스·컴포넌트의 내부 구조 |
| 패키지 | 모델 요소를 묶은 패키지 사이의 관계 |
| 프로파일(profile) | UML을 특정 분야용으로 확장하는 틀 |
객체 다이어그램(object diagram)은 클래스 다이어그램의 한 순간을 찍은 사진과 같다. 컴포넌트 다이어그램(component diagram)과 배치 다이어그램(deployment diagram)은 구현 단계에서 주로 쓴다.
행위 다이어그램
행위 다이어그램(behavior diagram)은 시간에 따라 일어나는 일, 즉 누가 무엇을 주고받고 상태가 어떻게 바뀌는지를 그린다.
| 이름 | 표현하는 것 |
|---|---|
| 유스케이스 | 사용자 관점에서 본 시스템 기능 |
| 활동(activity) | 처리 로직과 조건에 따른 흐름 |
| 상태(state) | 한 객체의 상태 변화 |
| 순차 | 객체들이 주고받는 메시지의 시간 순서 |
| 커뮤니케이션(communication) | 메시지와 객체 사이의 연관 |
| 상호작용 개요(interaction overview) | 상호작용 다이어그램 사이의 제어 흐름 |
| 타이밍(timing) | 상태 변화와 시간 제약 |
순차·커뮤니케이션·상호작용 개요·타이밍 네 가지는 행위 다이어그램 중에서도 상호작용 다이어그램(interaction diagram)으로 묶인다. 상태 다이어그램의 명세상 이름은 상태 머신 다이어그램(state machine diagram)이다. 럼바우(James Rumbaugh)의 OMT(Object Modeling Technique, 객체 모델링 기법)와 연결해 물으면, 객체 다이어그램은 객체 모델링에, 상태 다이어그램은 동적 모델링에 쓰인다고 답한다.
시험 포인트
- 구조 → 클래스·객체·컴포넌트·배치·복합체 구조·패키지. 행위 → 유스케이스·활동·상태·순차·커뮤니케이션·상호작용 개요·타이밍.
- "한 객체의 상태 변화" → 상태 다이어그램. "처리 흐름을 순서대로" → 활동 다이어그램.
- "물리적 요소의 위치" → 배치 다이어그램. "특정 시점의 인스턴스" → 객체 다이어그램.
