UML 상세
1. 클래스 다이어그램
개념
객체 지향 모델링 시 클래스의 속성 및 연산과 클래스간 정적인 관계를 표현한 다이어그램
클래스와 클래스, 클래스 속성 사이의 관계를 표현한다.
구성요소
- 클래스 다이어그램의 구성요소는 클래스 이름, 속성, 연산, 접근제어자가 있다.
클래스 다이어그램
Person (클래스 이름) |
-age: int (속성) |
+getAge(): int (연산) |
구성요소 | 설명 |
클래스 이름 | 클래스의 이름 |
속성(Attribute) | 클래스의 특징에 이름을 부여 |
연산(Operation) | 클래스에 속하는 객체에 적용될 메서드를 정의 / 클래스의 동작을 의미하며, UML에서는 동작에 대한 인터페이스를 지칭 |
접근 제어자 (Access Modifier) | 클래스에 접근할 수 있는 정도를 표현 |
- : 클래스 내부접근만 허용(private)
+: 클래스 외부접근을 허용(public)
# : 동일 패키지/파생 클래스에서 접근 가능 (protected)
~ : 동일 패키지 클래스에서 접근 가능(default) |
2. 유스케이스 다이어그램
개념
- 시스템이 제공하고 있는 기능 및 그와 관련된 외부요소를 사용자의 관점에서 표현하는 다이어그램
구성요소
- 유스케이스 , 액터 , 시스템이 있다.
구성요소 | 설명 | 표기법 |
유스케이스 | 코드로 구현할 수 있는 최소 단위 |
시스템이 제공해야 하는 서비스
액터가 시스템을 통해 수행하는 일련의 행위 | 수강신청 |
| 액터 (Actor) | 사용자가 시스템에 대해 수행하는 역할
시스템과 상호 작용하는 사람 또는 사물 | 🧑🧑 |
3. 시퀀스 다이어그램
개념
- 객체 간 상호 작용을 메시지 흐름으로 표현한 다이어그램이다.
구성요소
- 객체, 생명선, 실행, 메시지가 있다.
구성요소 | 설명 | 표기법 |
객체(object) | 객체는 위쪽에 표시되며 아래로 생명선을 가짐 |
객체는 사각형 안에 밑줄 친 이름으로 명시 | 사각형 안에 밑줄친 이름 |
| 생명선 (Lifeline) | 객체로부터 뻗어 나가는 점선
실제 시간이 흐름에 따라 객체의 생명주기 동안 발생하는 이벤트를 명시 | 아래로 점선 |
| 실행 (Activation) | 직사각형은 오퍼레이션(함수)이 실행되는 시간을 의미
직사각형이 길어질수록 오퍼레이션 수행시간이김 | 아래로 점선 네모 점선 모양 |
| 메시지 (Message) | 객체 간의 상호 작용은 메시지 교환으로 이루어짐
한 객체에서 다른 객체로의 메시지를 전달하여 전달받은 객체의 오퍼레이션을 수행 | do->
(대충 이런 모양) |
UML의 관계
연관관계 (Association)
2개 이상의 사물이 서로 관련된 상태를 표현하는 관계
사물 사이를 실선으로 연결하여 표현, 방향성은 화살표로 표현
서로에게 영향을 주는 양방향 관계의 경우 화살표를 생략하고 실선으로만 연결
의존 관계 (Dependency)
사물 사이에 서로 연관은 있으나 필요에 따라 서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계를 표현하는 관계
사물의 변화가 다른 사물에도 영향을 미치는 관계
일반적으로 한 클래스가 다른 클래스를 오퍼레이션의 매개변수로 사용하는 경우에 나타나는 관계
영향을 주는 사물이 영향을 받는 사물 쪽으로 점선 화살표를 연결하여 표현
일반화 관계 (Generalization)
하나의 사물이 다른 사물에 비해 더 일반적인지 구체적인지를 표현하는 관계
일반적인 개념을 부모라 하고, 구체적인 개념을 자식이라 함
구체적인 사물에서 일반적인 사물 쪽으로 (아래에서 위로) 속이 빈 화살표를 연결하여 표현
실체화 관계 (Realization)
한 객체가 다른 객체에 오퍼레이션을 수행하도록 지정하는 관계
사물에서 기능 쪽으로 속이 빈 점선 화살표를 연결하여 표현
포함 관계 (Composition)
집합 관계의 특수한 형태로, 포함하는 사물의 변화가 포함되는 사물에 영향을 미치는 관계
포함되는 쪽에서 포함하는 쪽으로 속이 채워진 마름모를 연결하여 표현
집합 관계 (Aggregation)
집합 관계는 하나의 사물이 다른 사물에 포함된 관계
포함되는 쪽에서 포함되는 쪽으로 속이 빈 마름모로 연결하여 표현
UML 확장 모델의 스테레오 타입
UML의 기본적 요소 이외의 새로운 요소를 만들어 내기 위한 확장 메커니즘이다.
형태는 기존의 UML의 요소를 그대로 사용하지만 내부 의미는 다른 목적으로 사용하도록 확장한다.
UML의 스테레오 타입은 '<<>>' (길러멧 : Guillemet) 기호를 사용하여 표현한다.