UML (Unified Modeling Language)에 관하여 설명하시오.
UML (Unified Modeling Language, 통합 모델링 언어) 는
소프트웨어 시스템의 구조, 동작, 상호작용 등을 시각적으로 모델링 하기 위해 사용되는 표준화된 그래픽 언어입니다.
| 역할/목적 | 설명 |
|---|---|
| 의사소통 수단 | 개발자, 설계자, 사용자 간 공통 이해를 위한 시각적 표현 |
| 문서화 도구 | 시스템의 구조 및 동작을 문서화함 |
| 설계 도구 | 시스템 개발 전 설계를 위한 도식적 도구 |
| 분석 및 명세화 수단 | 요구사항 분석, 기능 명세화 가능 |
| 소프트웨어 재사용성 향상 | 컴포넌트 기반 설계 및 재사용성 제고 |
UML은 크게 3가지 측면으로 분류됩니다:
사물 (Things)
관계 (Relationships)
다이어그램 (Diagrams)
| 구성요소 | 설명 |
|---|---|
| 클래스 (Class) | 객체의 구조와 행동을 정의하는 틀 |
| 객체 (Object) | 클래스의 인스턴스 |
| 컴포넌트 (Component) | 독립적으로 배포 가능한 모듈 |
| 인터페이스 (Interface) | 클래스/컴포넌트가 구현해야 하는 기능 집합 |
| 액터 (Actor) | 시스템과 상호작용하는 외부 사용자 |
| 유스케이스 (Use Case) | 시스템이 수행해야 하는 기능 단위 |
UML 다이어그램은 구조(Structure) 와 행동(Behavior) 다이어그램으로 나뉩니다.
| 종류 | 설명 |
|---|---|
| 클래스 다이어그램 | 클래스 간 관계, 속성, 메서드 표현 |
| 객체 다이어그램 | 객체의 상태와 관계 표현 |
| 컴포넌트 다이어그램 | 모듈 단위 구성 요소 간 의존 표현 |
| 배치 다이어그램 | 시스템의 물리적 배치 구조 표현 |
| 종류 | 설명 |
|---|---|
| 유스케이스 다이어그램 | 사용자와 시스템 간 상호작용 표현 |
| 시퀀스 다이어그램 | 객체 간 메시지 교환 순서 표현 |
| 커뮤니케이션 다이어그램 | 객체 간 메시지 흐름과 구조 표현 |
| 상태 다이어그램 | 객체 상태 변화 표현 |
| 활동 다이어그램 | 흐름 제어를 중심으로 한 행위 표현 |
추상화(Abstraction)
복잡한 현실을 단순화하여 모델로 표현
캡슐화(Encapsulation)
데이터와 메서드를 하나의 단위로 묶음
모듈화(Modularity)
시스템을 독립적 단위로 나눔
재사용성(Reusability)
정의된 모델을 반복 사용 가능
| 용어 | 의미 |
|---|---|
| UML | 통합 모델링 언어 |
| OMG | Object Management Group, UML 표준화 기구 |
| 유스케이스 | 사용자 관점에서 본 시스템의 동작 단위 |
| 액터 | 시스템 외부의 사용자 또는 시스템 |
| 시퀀스 다이어그램 | 시간 순서에 따른 메시지 흐름 표현 |
| 항목 | 설명 |
|---|---|
| DFD (Data Flow Diagram) | 데이터 흐름 중심, 절차적 시스템에 적합 |
| UML | 객체 지향 중심, 다양한 관점 제공 가능 |
| 장점 | 단점 |
|---|---|
| 시스템 복잡도 감소 | 학습 곡선 존재 |
| 다양한 다이어그램 제공 | 과도한 문서화 시 비효율 발생 |
| 개발자 간 의사소통 원활 | 표현 규칙 미숙 시 오해 가능 |
"UML은 복잡한 컴퓨터 프로그램을 그림처럼 쉽게 보여주는 언어야!
어떤 인물이 어떤 일을 하고, 무슨 일이 언제 일어나는지를
도형과 선으로 그려서 우리 눈에 보이게 만들어주는 도구야!"