본문 바로가기
Concepts/UML

UML - 커뮤니케이션 다이어그램

by ocwokocw 2021. 4. 21.

- 이 글은 UML Distilled (마틴 파울러)책을 기반으로 작성하였습니다.

 

- 커뮤니케이션 다이어그램

교류 다이어그램의 일종으로 요소들 간의 데이터 연결을 강조한다. 시퀀스 다이어그램은 모든 참여 요소들의 생명선을 있고, 수직방향으로 메시지의 순서를 표시한다. 반면 커뮤니케이션 다이어그램에서는 번호를 붙여 메시지의 순서를 나타낸다.

위 그림은 중앙 집중 제어방식의 커뮤니케이션 다이어그램이다. 커뮤니케이션 다이어그램을 통해서 참여 요소들이 어떻게 연결되었는지 보여줄 수 있다.

 

연관에서의 링크 뿐만 아니라 흐름상에서 발생하는 임시 링크(transient link)도 나타낼 수 있다. 주문에서 상품을 보면 <<local>> 이라고 되어있는데, 이는 지역 변수를 의미한다. <<parameter>>나 <<global>>도 있는데 UML2 에서는 없어졌지만 유용하므로 관례적으로 사용하면 더 명확한 의미를 보여할 수 있다. 객체의 생성과 제거는 <<create>>와 <<delete>> 키워드를 사용하기도 한다.


- 순서 Numbering

위 다이어그램에서 1~7과 같이 순서를 표기한 형식은 엄격한 잣대로 보면 적법한 UML은 아니다. 엄격한 기준에 따르면 아래 다이어그램과 같이 Numbering을 해야 한다.

할인 계산하기(1.5:) 와 할인 정보 가져오기(1.5.1:) 을 살펴보자. 왜 이렇게 번호를 붙였을까? 1.5.1은 1.5의 메소드에서 호출된다는것을 명확하게 나타낼 수 있기 때문이다. 1~7과 같이 단계없이 번호를 붙이면 해당 메소드가 어떤 메소드에서 호출된것인지 아니면 자체적으로 호출된것인지 알 수 없다.

 

하지만 적법하다고 해서 꼭 좋은것은 아닌데, 단계가 복잡해져서 1.1.3.2.1과 같이 번호가 붙으면 명확함에서 얻는 이익보다 복잡함으로 인한 손해가 더 클수도 있기 때문이다.


- 언제 사용하는가?

성향에 따라 시퀀스 다이어그램이나 커뮤니케이션 다이어그램을 사용하면 된다. 시퀀스 다이어그램은 호출의 순서에 더 중점을 두고 있고, 커뮤니케이션 다이어그램은 서로간의 연결을 강조하는데 좋다. 

댓글