구조 사물 (Structure Things)
: 시스템의 개념적, 물리적 요소를 표현
: 클래스(Class) / 유스케이스(Use case) / 컴포넌트 (Component) / 노드 (Node)
행동 사물 (Behavioral Things)
: 시간과 공간에 따른 요소들의 행위를 표현
: 상호작용(interaction), 상태 머신(State Machine)
그룹 사물 (Grouping Things)
: 요소들을 그룹으로 묶어서 표현
: 패키지(Package)
주해 사물(Annotation Things)
: 부가적인 설명이나 제약조건 등을 표현
: 노트(Note)
☝🏻 다중도 표기와 그 의미
다중도 | 의미 |
---|---|
1 | 1개의 객체가 연관되어 있음 |
n | n개의 객체가 연관되어 있음 |
0..1 | 연관된 객체가 없거나 1개만 존재함 |
0..* 또는 * | 연관된 객체가 없거나 다수일 수 있음 |
1..* | 연관된 객체가 적어도 1개 이상임 |
n..* | 연관된 객체가 적어도 n개 이상임 |
n..m | 연관된 객체가 최소 n개에서 최대 m개임 |
☝🏻 포함(집합)관계와 일반화 관계를 헷갈리지 말자!
종류 | 내용 |
---|---|
클래스 다이어그램 | 클래스와 클래스가 가지는 속성, 클래스 사이의 관계를 포함 |
객체 다이어그램 | 인스턴스(클래스에 속한 사물)들을 특정 시점의 객체와 객체 사이의 관계로 표현 / 럼바우 객체지향 분석 기법에서 객체 모델링에 활용됨 |
배치 다이어그램 | 결과물, 프로세스, 컴포넌트 등 물리적 요소들의 위치를 표현함 / 구현 단계에서 사용됨 |
복합체 구조 다이어그램 | 클래스가 컴포넌트가 복합 구조를 갖는 경우 그 내부 구조를 표현함 |
패키지 다이어그램 | 유스케이스나 클래스 등의 모델 요소들을 그룹화한 패키지들의 관계를 표현함 |
종류 | 내용 |
---|---|
유스케이스 다이어그램 | 사용자의 요구를 분석하는 것으로, 기능 모델링에 사용 / 사용자와 사용 사례로 구성 |
시퀀스 다이어그램 | 상호 작용하는 시스템이나 객체들이 주고받는 메시지를 표현 |
커뮤니케이션 다이어그램 | 동작에 참여하는 객체들이 주고받는 메시지와 객체들 간의 연관 관계를 표현 |
상태 다이어그램 | 하나의 객체가 자신이 속한 클래스의 상태 변화 / 다른 객체와의 상호 작용에 따라 상태가 어떻게 변화하는 지를 표현 |
활동 다이어그램 | 시스템이 어떤 기능을 수행하는지 객체의 처리 로직이나 조건에 따른 처리의 흐름을 순서에 따라 표현 |
상호작용 개요 다이어그램 | 상호작용 다이어그램 간의 제어 흐름을 표현 |
타이밍 다이어그램 | 객체 상태 변화와 시간 제약을 명시적으로 표현 |
표현 형태 | 의미 |
---|---|
<< include >> | 연결된 다른 UML 요소에 대해 포함 관계에 있는 경우 |
<< extend >> | 연결된 다른 UML 요소에 대해 확장 관계에 있는 경우 |
<< interface >> | 인터페이스를 정의하는 경우 |
<< exception >> | 예외를 정의하는 경우 |
<< constructor >> | 생성자 역할을 수행하는 경우 |