UML(Unified Modeling Language)다이어그램 이란??
UML(Unified Modeling Language) 이란?
통합 모델링 언어라는 뜻으로 객체 지향 소프트웨어 엔지니어링 분야의 표준화된 범용 모델링 언어를 말합니다.
시스템의 모든 것을 문서화, 지정, 구축하는데 사용되는 표준 언어입니다.
요구분석, 시스템설계, 시스템 구현 등의 시스템 개발 과정에서, 개발자 간의 의사소통을 원활하게 이루어지게 하기 위해 표준화되었습니다.
UML 구성요소
사물 : 추상적 개념으로 모델 구성의 기본요소 입니다. 시스템의 구조, 행위를 표현하고 개념들을 그룹화 하는 것으로 부가적인 설명을 위한 것들이 있습니다.
관계 : 사물들 간의 연결 관계를 추상화 한 것입니다.
다이어그램 : 관련성이 있는 사물들 간의 상호관계를 도형 형태로 표현한 것입니다.
UML(Unified Modeling Language) 다이어그램 이란?
UML을 사용하여 시스템 상호작용, 업무흐름, 시스템 구조, 컴포넌트 관계 등을 그린 도면을 말합니다.
UML다이어그램을 사용함으로써 개발하는 시스템을 단순화시켜 표현하여 의사소통이 용이해지고 대규모 프로젝트의 로드맵을 만들거나 개발을 위한 시스템 구축에 기본을 마련합니다.
UML 다이어그램은 13종류의 다이어그램이 있습니다.
UML 다이어그램 종류
1. 유스케이스 다이어그램 (Use-case Diagram)
2. 클래스 다이어그램 (Class Diagram)
3. 순차 다이어그램 (Sequence Diagram)
4. 통신 다이어그램 (Communication Diagram)
5. 활동 다이어그램 (Activity Diagram)
6. 상태 다이어그램 (State Diagram)
7. 컴포넌트 다이어그램 (Component Diagram)
8. 배치 다이어그램 (Deployment Diagram)
9. 패키지 다이어그램 (Package Diagram)
10. 복합 구조 다이어그램 (Composite Structure Diagram)
11. 객체 다이어그램 (Object Diagram)
12. 인터액션 오버뷰 다이어그램 (Interaction Overview Diagram)
13. 타이밍 다이어그램 (Timing Diagram)
UML 특징
- 시각화(Visualization) 언어
시각적인 형태로 표현하며, 표준화된 다이어그램을 제공.
- 명세화(Specification) 언어
소프트웨어 개발 과정인 분석, 설계 단계의 각 과정에서 필요한 모델을 정확하고 완전하게 명세화.
- 구축(Construction) 언어
Java , C# 같은 다양한 프로그래밍 언어로 표현할 수 있으며, UML로 설계된 모델을 프로그램 코드로 자동 변환할 수 있다.
- 문서화(Documentation) 언어
StarUML을 이용하여 설계한 내용을 자동으로 문서화할 수 있다.
UML 관계
- 연관(Association)관계 : 한 사물의 객체가 다른 사물에 대한 객체와 연결되어 있음을 표현한다.
다중성을 가질 수 있으며 아래와 같이 표기한다.
1 => 1개
* => 0개 이상
1..* => 1개 이상
2,3 => 2개 or 3개
- 포함(Composition)관계(합성 연관) : 사물 사이의 포함관계를 표현한다.
- 집합(Aggregation)관계(집합 연관) : 전체와 부분간의 관계를 표현하며 두 클래스가 연관 관계를 갖고 있으면서 전체/부분 관계를 띄고 있다면 집합 연관으로 표기한다.
(집합관계는 UML 2.0부터 사용하지 않으며 포함관계만 사용한다.)
- 일반화(Generalization)관계(상속) : 일반화 된 개념적인 사물과 특수화된 구체적인 사물과의 관계를 표현한다.
- 의존(Dependency)관계 : 사물 간의 영향을 미치는 관계 표현, 즉 한 클래스가 변경 되었을 때 다른 클래스에 영향이 미치는 관계
- 실체화(Realization)관계 : 인터페이스와 실제 구현 클래스들 과의 관계
관계 |
표기법 |
의미 |
연관(Association)관계 |
![]() ![]() |
클래스 A와 클래스 B는 연관 관계를 가지고 있다. |
포함(Composition)관계(합성 연관) |
![]() |
클래스 B는 클래스 A의 부분이다. |
집합(Aggregation)관계(집합 연관) |
![]() ![]() |
클래스 B는 클래스 A의 부분이다. |
일반화(Generalization) 관계(상속) |
![]() ![]() |
클래스 B는 클래스 A의 하위 클래스이다. |
의존(Dependency)관계 |
![]() |
클래스 A는 클래스 B에 의존한다. |
실체화(Realization)관계 |
![]() |
클래스 B는 인터페이스 A를 실현한다. |
[참고 사이트]