객체지향 소프트웨어 개발 과정에서 산출물을 명세화, 시각화, 문서화할 때 사용되는 모델링 기술과 방법론을 통합해서 만든 표준화된 범용 모델링 언어
키워드 : 관계, 구조, 위치
종류 : 클래스(class) / 객체(object) / 컴포넌트(Component) / 배치(Deployment) / 복합체 구조(Composite Structure) / 패키지(Package)
클래스 다이어그램 접근제어자
| 종류 | 설명 |
|---|---|
| - | 클래스 내부 접근만 허용(private) |
| + | 클래스 외부 접근을 허용(public) |
| # | 동일 패키지, 파생 클래스에서 접근 가능(protected) |
| ~ | 동일 패키지 클래스에서 접근 가능(default) |
키워드 : 요구 분석, 메시지, 상태 변화, 로직, 흐름, 제약
종류 : 유스케이스(Use Case) / 시퀀스(Sequence) / 커뮤니케이션 / 상태(State) / 활동(Activity) / 타이밍(Timing) / 상호작용 개요(Interaction Overview)
| 관계 | 설명 |
|---|---|
| 연관 관계(Association) | -2개 이상의 사물이 서로 관련된 상태를 화살표 실선으로 표현 - 양방향 관계의 경우 화살표를 생략하고 실선 표현 ex) 집 <— 사람 |
| 집합 관계(Aggregation) | 포함되는 쪽(부분)에서 포함하는 쪽(Whole)으로 속이 빈 마름모를 연결하여 표현 ex) 컴퓨터 ◆— 프린터 |
| 포함 관계(Composition) | - 포함 관계는 집합 관계의 특수한 형태로, 포함하는 사물의 변화가 포함되는 사물에 영향을 미치는 관계를 표현 - 포함되는 쪽(부분)에서 포함하는 쪽(전체)으로 속이 채워진 마름모를 연결하여 표현 ex) 문 ◇— 열쇠 |
| 일반화 관계(Generalization) | - 일반화 관계는 하나의 사물이 다른 사물에 비해 더 일반적인지 구체적인지를 표현 - 일반적인 개념을 부모(상위)라고 하고, 구체적인 개념을 자식(하위)이라 함 - 구체적(하위)인 사물에서 일반적(상위)인 사물 쪽으로 속이 빈 화살표를 연결하여 표현 ex) 커피(부모) ◁— 아메리카노(자식) |
| 의존 관계(Dependency) | - 한 사물의 명세서가 바뀌면 그것을 사용하는 다른 사물에게 영향을 끼치는 것 - 영향을 주는 사물이 영향을 받는 사물 쪽으로 점선 화살표를 연결하여 표현 ex) 할인율 ← - - 등급 |
| 실체화 관계(Realization) | - 실체화 관계는 사물이 할 수 있거나, 해야하는 기능(행위, 인터페이스)으로 서로를 그룹화할 수 있는 관계를 표현 - 한 객체가 다른 객체에게 오퍼레이션을 수행하도록 지정함 - 사물에서 기능 쪽으로 속이 빈 점선 화살표를 연결하여 표현 ex) 날 수 있다 ◁- - - 비행기 |
UML에서 표현하는 기본 기능 외에 추가적인 기능을 표현하는 것
스테레오 타입은 '<< >>'(길러멧; Guillemet) 기호를 사용하여 표현
| 종류 | 설명 |
|---|---|
| <<include>> | 하나의 유스케이스가 어떤 시점에 반드시 다른 유스케이스를 실행하는 포함 관계 |
| <<extend>> | 하나의 유스케이스가 어떤 시점에 다른 유스케이스를 실행할 수도 있고, 그렇지 않을 수도 있는 확장 단계 |
| <<interface>> | 모든 메소드가 추상 메소드이며, 바로 인스턴스를 만들 수 없는 클래스로 추상 메소드와 상수만으로 구성된 클래스, 인터페이스 정의 |
| <<entity>> | 일반적으로 정보 또는 오래 지속되는 연관된 행위를 형상화하는 클래스로 유스케이스 처리 흐름이 수행되는 과정에서 기억 장치에 저장되어야 할 정보를 표현하는 클래스 |
| <<boundary>> | 시스템과 외부 액터와의 상호작용을 담당하는 클래스 |
| <<control>> | 시스템이 제공하는 기능의 로직 및 제어를 담당하는 클래스 |