UML 다이어그램이란?
Unified Modeling Language의 약어.
수학적인 문법과 구성으로 이뤄진 프로그래밍 언어와는 달리 UML은 모델링 언어이다. 다시말해 설계도를 그리기 위한 언어라는것. 학교다닐때 실과나 기술시간에 간단한 건물 도면 기호에 대해 배운 기억이 있다면, 그런 건축 도면과 유사하게 정해진 기호로 구조를 설명할 수 있도록 하는 언어라고 보면 된다. [1]
기원은 Rational 사의 Grady Booch, James Rumbaugh에 의해 1994년 10월에 처음 개발에 착수되었다. 이후 1995년 10월에 Unified Method 0.8의 명칭으로 OOPSLA '95에서 발표되었으며, 이후 Ivar Jacobson이 UML 개발에 함께 협력하면서 1996년에 버전 0.9를 발표하였고, 1997년 11월에는 UML 1.1 이 OMG[2]에 의해 표준으로 채택되었다.
2005년에 UML 2.0이 발표되었으며 현재 2011년에 발표된 UML 2.4.1 이 최신 표준이다. 2012년 10월에 진행중인 상태의 UML 2.5가 발표되었으며 여전히 진행중 상태.
Generalization 일반화
- 부모 클래스와 자식 클래스 간의 상속 관계를 나타냄.
- 반대의 개념은 부모 클래스를 자식 클래스로 구체화 (Specialize)하는 것.
- 상속은 부모 클래스의 필드 및 메서드를 사용하며 구체화해 필드 및 메서드를 추가하거나 필요에 따라 메서드를 오버라이딩하여 재정의함.
Realizaion 실체화
- 실체화는 interface의 명세, 정의만 있는 메서드를 오버라이딩하여 실제 기능으로 구현하는 것
- 인터페이스의 메소드를 구체화 하는 것
- 실체화의 표기법은 인터페이스를 클래스처럼 표기하고 스테레오 타입 <<interface>> 추가하고, 인터페이스와 클래스 사이의 관계를 점선과 비어있는 삼각형으로 연결한다.
- 또는 인터페이스를 원으로 표시하고 인터페이스와 클래스 사이를 실선으로 연결한다.
Dependency 의존
- UML에서 가장 많이 사용되는 관계로 어떤 클래스가 다른 클래스를 참조하는 것을 뜻함
- 위의 예로는 User클래스가 Schedule 클래스를 참조하고 사용한다고 볼 수 있다.
- 의존 관계에서는 메서드 내에서 대상 클래스의 객체 생성, 객체 사용, 메소드 호출, 객체 리턴, 매개변수로 해당 객체를 받는 것들이다.
- 해당 객체의 참조를 계속 유지하지는 않음!
- 위와 같이 의존 관계가 중요할 경우 <<>>라는 스테레오 타입으로 의미를 명확히 할 때도 있음!
Association 연관, Directed Association 직접 연관
- 연관은 다른 객체의 참조를 가지는 필드를 의미함
- 의존 Dependency와 다른 것은 클래스가 다른 클래스를 소유하고 있다는 점.
- User 클래스가 Address를 소유하고 있기 때문에 화살표의 방향성이 위와 같다.
- 화살표가 없는 선은 Adress가 User를 소유할 수도, 반대가 될 수도, 둘 다일 수도 있다는 점.
- 화살표 옆에 붙은 -addresses는 roleName(역할명)을 나타내며, 어떤 역할을 가지고 있는지 의미한다.
- 연관관계에서 참조 가능한 인스턴스의 수를 나타내기 위해 Multiplicity를 표기 한다.
Indicator |
Meaning |
0..1 |
0 또는 1 |
1 |
1개 |
* |
다수 (0 포함) |
1..* |
1 또는 다수 (0 제외) |
N..M |
N개부터 M개까지 |
- 위의 예를 보면 Undergraduate가 Studies를 1개 또는 N개를 소유할 수 있고, Studies는 Subject를 0또는 N개 소유할 수 있다는 것이다.
Aggregation 집합
- Composition(합성관계)과 함께 Associaion 관계를 조금 더 특수하게 나타낸 것으로 전체와 부분의 관계를 나타낸다.
- 표기하는 방법은 전체(User)와 부분(Address)을 실선으로 연결 후 전체에 비어있는 다이아몬드로 표시한다.
- 부분(Address) 쪽에는 화살표를 명시해도 되고, 하지 않아도 된다.
- Aggregation의 특징은 전체 클래스가 부분 클래스를 new로 생성하지 않고 외부에서 주입 받는다는 점이다.
- Set Method를 통해 외부에서 변수가 초기화 된다는 점이 합성과 다른 차이점이다.
Composition 합성
- Composition은 Aggregation과 거의 동일하지만 차이점이 사용하는 클래스에서 직접 new로 생성한다는 점이다.
- 전체에서 부분 클래스의 생명주기를 관리하는 점이 특징이다.
- Telephone 클래스의 생성자에서 Button과 Headset 클래스를 new로 생성한다.
- 집합에서는 new로 생성하는 것이 없지만 합성에서는 new로 생성한다는 점. 전체 클래스인 Telephone이 부분 클래스인 Button과 Headset의 생명주기를 관리한다는 점이 특징이다.
UML 다이어그램 예제
'Database > 데이터베이스 이론' 카테고리의 다른 글
[Database] ODS(Operational Data Store)란? (0) | 2020.07.29 |
---|---|
[UML] 유스케이스 다이어그램(Usecase Diagram) (1) | 2020.07.06 |
[데이터베이스 이론] ER 모델 - 개념적 모델링 (0) | 2020.03.31 |