[자격증]/정보처리기사 실기

1401100 UML 관계

Ben의 프로그램 2023. 9. 30. 19:15
728x90

핵심 Keyword

1. 관계

2. 

3. 


관계란?
관계란 사물과 사물 사이의 연관성을 표현하는 것이라고 이해할 수 있다. UML 다이어그램에는 사물, 관계, 다이어그램으로 이루어져 있는데, 관계에 대해서 알아보자. 관계에는 연관 관계, 집합 관계, 포함 관계, 일반화 관계, 의존 관계, 실체화 관계가 있다. 

 

연관 관계 Association Relationship
연관 관계는 2개 이상의 사물이 서로 관련되어 있는 관계를 의미합니다. 

연관 관계를 표현할 때는 사물 사이를 실선으로 연결하여 표현합니다. 방향성은 화살표로 표현합니다. 양방향 관계의 경우 화살표를 생략하고 실선으로만 연결합니다. 

이렇게 그린 선 위에 다중도를 표현합니다. 

여기서 헷갈리는 점이, 화살표의 방향인데, 위의 예시를 통해서 이해할 수 있다. 사람은 한 개의 집을 소유할 수 있고, 집도 한 명의 주인만을 가질 수 있다. 이때 사람은 자기가 쇼유하고 있는 집에 대해 알고  있지만 집은 누구에 의해 소유되고 있는지 모를 때에는 위와 같은 화살표를 그릴 수 있다. 


선생님은 학생을 가르치고 학생은 선생님으로부터 가르침을 받을 때에는 서로 관계를 가진다고 볼 수 있으므로, 화살표 없이 실선으로만 연결한 것을 확인할 수 있습니다.

 

집합 관계 Aggregation Relationship
집합 관계는 하나의 사물이 다른 사물에 포함되어 있는 관계를 의미합니다. 포함하는 쪽(전체, Whole)과 포함되는 쪽(부분, Part)은 서로 독립적인 특징이 있습니다. 포함되는 쪽(부분, Part)에서 포함하는 쪽(전체, Whole)으로 속이 빈 마름모를 연결하여 표현할 수 있습니다. 

예를 들어 위와 같이 표현할 수 있습니다. 집합 관계는 서로 독립적인 것이 가장 큰 특징입니다. 

 

포함 관계 Composition Relationship
포함 관계는 집합 관계의 특수한 형태로, 포함하는 사물의 변화가 포함되는 사물에게 영향을 미치는 관계입니다. 포함 관계가 집합 관계에 비해 다른점은 서로 독립적이지 않다라는 것입니다. 포함하는 쪽과 포함되는 쪽은 서로 독립될 수 없고 생명주기를 함께하는 특징이 있습니다. 포함되는 쪽에서 포함하는 쪽으로 속이 채워진 마름모를 연결하여 표현합니다. 

집합과 포함의 차이는 서로 독립적이냐 아니냐의 차이라는 점을 알고 있어야 합니다.

 

일반화 관계 Generalization Relationship
일반화 관계는 하나의 사물이 다른 사물에 비해 더 일반적이거나 구체적인 관계를 의미합니다. 

예를 들어 위와 같은 관계가 대표적인 일반화 관계입니다. 보다 일반적인 개념을 상위(부모), 보다 구체적인 개념을 하위(자식)라고 부릅니다. 구체적(하위)인 사물에서 일반적(상위)인 사물 쪽으로 속이 빈 화살표를 연결하여 표현합니다. 

 

의존 관계 Dependency Relationship
의존 관계는 연관 관계와 같이 사물 사이에 서로 연관은 있으나 필요에 의해 서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계를 의미합니다. 

예를 들어, 할인은 일시적으로 제공되는 혜택인데, 등급마다 다르게 주어진다면, 일시적으로 서로에게 영향을 주게 되는데 이런 관계를 우리는 의존 관계라고 합니다. 하나의 사물과 다른 사물이 소유 관계는 아니지만 사물의 변화가 다른 사물에도 영향을 미치는 관계입니다. 영향을 주는 사물(이용자)이 영향을 받는 사물(제공자) 쪽으로 점선 화살표를 연결하여 표현합니다. 

 

실체화 관계 Realization Relationship
실체화 관계는 사물이 할 수 있거나 해야 하는 기능으로, 서로를 그룹화 할 수 있는 관계입니다.

말이 어려운데, 예를 들어 위와 같이 날 수 있다는 기능은 비행기와 새 모두 가능한 기능입니다. 따라서 비행기와 새는 날 수 있다는 행위로 그룹화를 할 수 있습니다. 이럴 때는 사물에서 기능 쪽으로 속이 빈 점선 화살표를 연결하여 표현합니다.