통합 모델링 언어(UML, Unified Modeling Language)
in Computer Science / Software-design
교과서 기초 개념 정리
통합 모델링 언어(UML, Unified Modeling Language)
- 시스템 분석, 설계, 구현 등의 개발 작업 과정에서 각 이해관계자들의 의사소통을 보다 원활하게 이뤄지도록 한 시각적 모델링 언어
- 객체지향 언어와 밀접한 관련이 있어 객체지향 모델링 언어라고도 함
- 소프트웨어 시스템, 업무 모델링, 시스템의 산출물을 규정하고 시각화하며 문서화하는 모델링 언어
UML 관계(Relationship) 개요 및 종류
- 사물(things, 객체) - 다이어그램에서 관계가 형성될 수 있는 대상으로 다이어그램의 가장 중요한 기본 요소
- 관계(Relation) - 사물과 사물 사이의 연관성을 표현
- 연관 관계(Association) -
is-member-of
- 사물과 사물 사이를 실선으로 연결하여 표기, 방향성이 있으면 화살표로 표시
- 서로에게 영향을 주는 양방향 관계는 그냥 실선으로 표시
- 다중성은 숫자로 표현
- 집합 관계(Aggregation) - 하나의 사물이 다른 사물에 포함되어 있는 관계
part-whole
,is-a-part-of
- 포함 관계(Composition) - 전체 사물의 변화가 포함되는 사물에 영향을 주는 관계
- 일반화 관계(Generalization) - 하나의 사물이 다른 사물에 비해 더 일반적인지 혹은 더 세부적인지 표현
is-a
- 의존 관계(Dependency) - 연관성은 있으나 필요에 의해 일정 시점에만 연관을 유지하는 관계
- 실체화 관계(Realization) - 행위 또는 인터페이스 중심으로 서로를 그룹화할 수 있는 관계
UML Diagram
- 사물과 관계를 도식화하여 표현
- 다양한 관점에서 시스템을 가시화한
뷰(View)
를 제공함으로써 이해자들 간의 의사소통에 도움
구조 다이어그램(정적 모델링)
다이어그램명 | 설명 |
---|---|
클래스 다이어그램(Class Diagram) | 클래스와 클래스가 갖는 속성, 클래스 사이의 관계 |
객체 다이어그램(Object Diagram) | 클래스에 속한 사물, 인스턴스를 특정 시점의 객체와 객체사이의 관계로 표현 |
컴포넌트 다이어그램(Component Diagram) | 컴포넌트간의 관계, 인터페이스를 표현 |
배치 다이어그램(Deployment Diagram) | 산출물, 프로세스, 컴포넌트 등의 물리적 요소의 위치를 표현 |
복합체 구조 다이어그램(Composite Structure Diagram) | 클래스, 컴포넌트가 복합적 구조를 갖는 경우 해당 내부구조를 표현 |
패키지 다이어그램(Pakage Diagram) | 클래스 모델 요소들을 그룹화한 패키지들의 관계를 표현 |
행위 다이어그램(동적 모델링)
다이어그램명 | 설명 |
---|---|
유스케이스 다이어그램(Usecase Diagram) | 사용자의 요구사항을 분석/사용자와 사용사례로 구성 |
시퀀스 다이어그램(Sequence Diagram) | 상호작용하는 시스템이나 객체들이 주고받는 메시지를 표현 |
커뮤니케이션 다이어그램(Communication Diagram) | 동작에 참여하는 객체들이 주고받는 메시지, 객체간의 연관까지 표현 |
상태 다이어그램(State Diagram) | 하나의 객체가 자신이 속한 클래스의 상태 변화 혹은 다른 객체와의 상호작용에 따라 변하는 상태를 표현 |
활동 다이어그램(Activity Diagram) | 시스템이 어떤 기능을 수행하는지 객체의 처리 알고리즘이나 조건에 따른 처리 흐름을 순서에따라 표현 |
상호작용 개요 다이어그램(Interaction Diagram) | 상호작용 다이어그램 간의 제어흐름 표현 |
타이밍 다이어그램(Timing Diagram) | 객체상태변화에 시간제약을 표현 |