Unified Modeling Language
시스템 개발 과정에서 의사소통이 원활하게 이루어지도록 표준화한 객체지향 모델링 언어
구조를 표현하는 6개의 구조 다이어그램 작성 가능동작을 표현하는 7개의 행위 다이어그램 작성 가능모델을 구성하는 가장 중요한 기본 요소
다이어그램 안에서 관계가 형성될 수 있는 대상
구조 사물(Structural Things)
: 개념적, 물리적 요소
: 클래스(Class), 유스케이스(Use Case), 컴포넌트(Component), 노드(Node)
행동 사물(Behavioral Things)
: 시간과 공간에 따른 요소들의 행위
: 상호작용(Interaction), 상태 머신(State Machine)
그룹 사물(Grouping Things)
: 요소들을 그룹으로 묶어서 표현
: 패키지(Package)
주해 사물(Annotation Things)
: 부가적인 설명이나 제약조건
: 노트(Note)
사물과 사물 사이의 연관성
2개 이상의 사물이 서로 관련되어 있음
| 다중도 | 의미 |
|---|---|
| 1 | 1개의 객체가 연관됨 |
| n | n개의 객체가 연관됨 |
| 0..1 | 연관된 객체가 없거나 1개 존재 |
| 0..* 또는 * | 연관된 객체가 없어나 다수 |
| 1..* | 연관된 객체가 적어도 1개 이상 |
| n..* | 연관된 객체가 적어도 n개 이상 |
| n..m | 연관된 객체가 최소 n개에서 최대 m개 |
하나의 사물이 다른 사물에 포함되어 있는 관계
속이 빈 마름모를 연결하여 표현집합 관계의 특수한 형태
포함하는 사물의 변화가 포함되는 사물에게 영향을 미치는 관계
속이 채워진 마름모를 연결하여 표현하나의 사물이 다른 사물에 비해 더 일반적인지 구체적인지 표현
속이 빈 화살표 연결사물 사이에 서로 연관은 있으나 필요에 의해 서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계
점선 화살표를 연결할 수 있거나 해야하는 기능(오퍼레이션, 인터페이스)으로 서로를 그룹화 할 수 있는 관계
속이 빈 점선 화살표 연결사물과 관계를 도형으로 표현
클래스 다이어그램(Class Diagram)
: 클래스와 클래스가 가지는 속성, 사이의 관계를 표현
: 시스템의 구조 파악과 구조상의 문제점 도출 가능
객체 다이어그램(Object Diagram)
: 사물(객체)들, 즉 인스턴스(Instance)를 객체와 객체 사이의 관계로 표현
: 객체 모델링에 활용
컴포넌트 다이어그램(Component Diagram)
: 컴포넌트 간의 관계나 인터페이스 표현
: 구현 단계에서 사용
배치 다이어그램(Deployment Diagram)
: 물리적 요소들의 위치 표현
: 노드와 의사소통(통신) 경로 표현
: 구현 단계에서 사용
복합체 구조 다이어그램(Composite Structure Diagram)
: 클래스나 컴포넌트가 복합 구조를 갖는 경우 내부 구조 표현
패키지 다이어그램(Package Diagram)
: 모델 요소들을 그룹화한 패키지들의 관계 표현
유스케이스 다이어그램(Use Case Diagram)
: 사용자의 요구 분석
: 기능 모델링 작업에 사용
: 사용자(Actor)와 사용 사례(Use Case)로 구성
순차 다이어그램(Sequence Diagram)
: 상호 작용하는 시스템이나 객체들이 주고받는 메시지 표현
커뮤니케이션 다이어그램(Communication Diagram)
: 객체들이 주고받는 메시지 표현
: 객체들 간의 연관까지 표현
상태 다이어그램(State Diagram)
: 자신이 속한 클래스의 상태 변화 표현
: 이벤트(event)에 의한 상태 변화 표현
: 동적 모델링에 활용
활동 다이어그램(Activity Diagram)
: 객체의 처리 로직이나 조건에 따른 처리의 흐름 표현
: 오퍼레이션이나 처리 과정 동안 일어나는 일들을 단계적으로 표현
상호작용 개요 다이어그램(Interaction Overview Diagram)
: 상호작용 다이어그램 간의 제어 흐름 표현
타이밍 다이어그램(Timing Diagram)
: 객체 상태 변화와 시간 제약을 명시적으로 표현
UML에서 기본 기능 외에 추가적인 기능 표현
겹화살괄호(<<>>) 사이에 표현할 형태 기술
<<include>> : 연결된 다른 UML 요소에 대해 포함 관계
<<extend>> : 연결된 다른 UML 요소에 대해 확장 관계
<<interface>> : 인터페이스 정의
<<exception>> : 예외 정의
<<constructor>> : 생성자 역할 수행