클래스 다이어그램
관계를 나타내는 화살표
클래스 다이어그램에서는 클래스간 관계를 나타내는 화살표를 사용한다. 각 관계를 나타내는 의미를 알아보자.
Associations (연관)
한 모델 요소의 인스턴스들이 다른 모델 요소의 인스턴스들과 연결되었다는 것을 나타낸다.
단방향 연관 관계
Diagram Loading...
이 다이어 그램은 학생과 선생님의 관계를 나타낸다. 선생님은 학생들을 관리하기 위해 항상 참조한다. 하지만, 학생은 선생님이 관심 없기 때문에 신경을 안쓰므로 학생은 선생님을 참조하지 않는다. 이는 단방향 관계이다.
양방향 연관관계
Diagram Loading...
하지만 반대로 자식과 부모의 관계는 양방향 관계이다. 부모는 자식과, 자식은 부모와 가족이기 때문에 서로를 참조한다.
연관관계
라고 한다.
Inheritances (상속)
한 클래스가 다른 클래스의 특성을 상속받았다는 것을 나타낸다.
이는 구현과는 다르며, 상속은 클래스 간의 관계를 나타낸다.
Diagram Loading...
이 다이어그램은 Animal
클래스가 Dog
클래스에 상속되고, Dog
클래스가 BorderCollie
클래스에 상속되는 상속 관계를 나타낸다.
interface
가 아닌 Abstract Class
또는 일반 Class
에서만 사용할 수 있다.
Realizations (실체화)
한 클래스가 인터페이스를 구현했다는 것을 나타낸다.
다른말로 implementation
이라고도 한다. 즉 구현하여 실체화하는 경우를 의미한다.
Diagram Loading...
포유류는 젖을 먹여 새끼를 키우는 동물을 일컷는 말이다. 포유류는 분류를 하기 위해 나눈 개념이기 때문에 실체가 아니다.
이를 실체화 하기위해 Dog
와 Human
클래스가 Mammal
인터페이스를 구현하고 있다.
Realization
/Implementation
관계는 interface
를 구현하는 클래스에 사용된다.
Dependencies (의존)
한 클래스가 다른 클래스에 의존하는것을 의미한다.
Diagram Loading...
의존
관계에 해당된다.
Aggregations (집합)
한 클래스가 다른 클래스를 소유하고 있다는 것을 나타낸다.
집합
관계는 연관
관계와 유사하지만, 의미론적으로 다르다.
Diagram Loading...
만약 교수가 학과에 속해있다면, 이러한 관계를 집합
관계라고 한다. 필드로 갖고 있다는 개념이 비슷하지만,
연관 관계에서는 참조를 의미하고 집합 관계에서는 소유를 의미한다.
Compositions (합성)
한 클래스가 다른 클래스에 종속하고 있다는 것을 나타낸다.
합성
관계는 집합
관계와 유사하지만, 의미론적으로 다르다. Aggregation은 독립적 이지만, Composition은 종속적이다.
Diagram Loading...
만약 사람이 심장, 뇌, 장기를 가지고 있다면, 각각의 구성요소는 사람에 종속적이다. 이러한 종속들의 집합을 합성
관계라고 한다.
또한 집합 관계에선 참조되는 필들에게 일부 작업을 위임한다.
합성
관계에서는 한 객체의 부분이 다른객체에 속할 수 없고, 부분 객체가 여러 객체에 동시에 속할 수 없다. 또한 부분 객체의 독립적인 재사용이 불가능하다.