UML(Unified Modeling Language)
UML
UML이란?
- Unified Modeling Language 의 약자
- 이번 포스트에서 UML의 역사와 종류들에 대한 소개를 다루겠다.
Software Modeling
- Model = 시스템의 추상화
- 복잡성을 줄이기 위해 불필요한 세부정보 생략
- 이해관계자(클라이언트, 분석가, 프로그래머) 간 아이디어 및 결과 공유
- UML: 사실상의 모델링 표준 (de facto standard)
UML 역사
- 1990년대 OOP 방법론 전쟁 (OOAD, OMT, OOSE, Fusion 등)
- 서로 다른 기법 → 각기 다른 표기법, 프로세스, 도구 사용
- UML = OMT(Rumbaugh) + OOAD(Booch) + OOSE(Jacobson)
- 주요 버전 연혁:
- 1995: Unified Method 0.8
- 1997: UML 1.0, 1.1
- 2005: UML 2.0
- 2017: UML 2.5.1 (최신 공식 버전 기준)
Categories of UML Diagrams
1. Structure Diagrams
What things must be in the system
(시스템 내에 무엇이 있어야 하는가?)
- Class Diagram
- Component Diagram
- Composite Structure Diagram
- Deployment Diagram
- Object Diagram
- Package Diagram
2. Behavior Diagrams
What must happen in the system
(시스템 내 ‘무슨 일이’ 일어나는가)
- Activity Diagram
- State Diagram (Statechart)
- Use Case Diagram
3. Interaction Diagrams
The flow of control and data among the things
(Behavior Diagrams의 하위 집합)
- Sequence Diagram
- Communication Diagram
- Interaction Overview Diagram
- Timing Diagram
tree 형식으로 보면 다음과 같다.

주요 다이어그램 요약
| 다이어그램 | 목적 및 설명 |
|---|---|
| Use Case Diagram | 사용자(Actor)의 목표와 시스템 기능 표현 |
| Class Diagram | 시스템의 정적 구조 표현 (클래스, 속성, 관계) |
| Object Diagram | 객체 수준에서 구조 표현 |
| Activity Diagram | 순차적 흐름 표현 (워크플로우, 플로우차트 유사) |
| State Diagram | 객체의 상태 변화 표현 (유한 상태 기계) |
| Sequence Diagram | 객체 간 상호작용, 메시지 흐름 시각화 |
UML과 개발 프로세스의 연계
| 단계 | 활용 UML 다이어그램 |
|---|---|
| 요구정의 | Use Case Diagram |
| 분석/설계 | Class, Object, State, Activity, Sequence Diagram 등 |
| 구현 | Component, Composite, Deployment Diagram |
| 테스트 | Package Diagram 등 |
- 번외 (UML 도구) : 툴
1.Star UML
- 오픈소스, 다양한 플랫폼 지원
- 다이어그램 작성 + 자동 코드 생성
- [http://staruml.sourceforge.net
2. UMLet
- 텍스트 기반 빠른 편집
- 클래스 다이어그램에 최적
- https://www.umlet.com
3. Enterprise Architect (EA)
- 상용 도구, 강력한 기능 제공