2023년 7월 2일 작성
UML - System 시각화하기
UML은 표준화된 모형을 만드는 언어로, program 설계를 시각화하여 소통을 원활하게 합니다.
Unified Modeling Language
- UML은 표준화된(Unified) 모형을 만드는(Modeling) 언어(Language)를 의미합니다.
- program 설계를 표현하기 위해 사용하는, 주로 그림으로 된 표기법입니다.
- 설계도를 만들기 위한 언어이며, programing language는 아닙니다.
- UML은 system에 대한 표준적인 표현 방법입니다.
- 표기법이 통일되기 때문에, 더 원활한 소통이 가능합니다.
- UML은 software system, 업무 modeling, system의 산출물을 규정하고 시각화하며 문서화하는 언어입니다.
- 개발 기획과 산출물에 대한 확실한 증거가 됩니다.
- 복잡한 system을 시각적으로 표현하여 text로 작성한 설계보다 이해하기 쉽습니다.
- 특히 한번에 이해하기 어려운 복잡한 system은 시각적 modeling이 필수이기 때문에, UML이 자주 사용됩니다.
- software system을 구축하기 전에 model을 설계하는 것은 건물을 지을 때 청사진을 그리는 것과 같이 필수적인 일입니다.
- 개발자와 개발자 사이, 개발자와 비개발자 사이에서의 소통을 위한 도구로도 UML을 사용합니다.
- UML은 개발 지식이 없는 사람도 program이 제공해야 할 기능과 구조를 표현하는 것을 가능하게 합니다.
- 일반적인 programming 언어와는 달리 도형으로 표현이 가능하기 때문입니다.
- UML은 개발 지식이 없는 사람도 program이 제공해야 할 기능과 구조를 표현하는 것을 가능하게 합니다.
- UML은 객체 지향 modeling 언어라고도 불립니다.
- 객체 지향 언어와 밀접한 관련이 있기 때문입니다.
- 그러나 UML은 modeling 언어일 뿐 방법론은 아닙니다.
UML의 종류
| UML | 설명 |
|---|---|
| Class Diagram | class 명세와 class 간의 관계를 표현 |
| Composite Structure Diagram | 전체-부분 구조를 가진 class를 실행할 때의 구조를 표현 |
| Component Diagram | hardware와 network 등 system의 물리 구조를 표현 |
| Object Diagram | instance 간의 연관 관계를 표현 |
| Package Diagram | package 간의 연관 관계를 표현 |
| Activity Diagram | 일련의 처리에 있어 제어의 흐름을 표현 |
| Sequence Diagram | instance 간의 상호작용을 시계열로 표현 |
| Communication Diagram | instance 간의 상호작용을 구조 중심으로 표현 |
| Interaction Overview Diagram | 조건에 따라 다르게 동작을 하는 sequence diagram을 activity diagram 안에 포함하여 표현 |
| Timing Diagram | instance 간의 상태 전이와 상호작용을 시간 제약으로 표현 |
| UseCase Diagram | system이 제공하는 기능과 이용자의 관계를 표현 |
| State Machine Diagram | instance의 상태 변화를 표현 |