본문 바로가기
Concepts/UML

UML - 협력

by ocwokocw 2021. 5. 9.

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

https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-uml-collaboration-diagram/

 

- 협력(Collaborations)

경매에는 한 명의 판매자와 여러 명의 구매자들, 많은 상품들 그리고 부르는 가격이 있다.

위의 다이어그램은 이런 요소들을 클래스 다이어그램으로 나타낸것이다. 클래스다이어 그램에서 구매자나 부르는 가격등을 클래스라고 부르지만 협력에서는 다른 이름으로 부른다. 협력 다이어그램의 요소를 하나씩 살펴보자.

  • 경매 협력(Collaboration): 점선의 타원으로 표시된 부분이다.
  • 역할(role): 구매자, 부르는 가격, 판매자, 경매 건에 해당한다. 해당 역할은 실제 인터페이스나 클래스를 보여주기도 하지만 꼭 그렇게 하지는 않아도 된다.

위 그림은 시퀀스 다이어그램을 나타낸것이다. 보통 참가자의 이름과는 다르게 참가자명 / 역할명 : 클래스명 형식으로 이름이 붙으며 이는 모두 선택사항이다.


- 협력 사건(Collboration occurence)

어플리케이션 내의 클래스들이 표현된 클래스 다이어그램에 협력사건을 그릴 수 있다. 클래스에서 협력으로 연결된 링크는 클래스들이 협력에서 정의된 수행하는 역할을 나타낸다.

위 다이어그램에서 클래스들은 경매 협력과 연결을 맺고 있다. 그리고 이 연결에는 앞에서 정의한 수행하는 역할을 나타낸다.


- 협력의 사용

시퀀스 다이어그램과는 달리 협력 다이어그램은 객체들간의 관계를 나타내는 다이어그램이다. 시퀀스 다이어그램과 협력 다이어그램 모두 비슷한 정보를 표현하지만 그 방법이 다르다.

 

협력 다이어그램은 작은 수의 객체들의 상호작용 분석에 효과적이다. 하지만 객체 및 메시지의 수가 늘어나면 가독성이 떨어진다. 또한 타이밍이나 결정사항 그리고 시퀀스 다이어그램에서는 쉽게 표기할 수 있는 비구조적인 메시지를 나타내기 어렵다. 협력 다이어그램은 아래 상황에서 주료 사용한다.

  • 유스케이스의 기능이나 동작을 전달하는 객체들이나 역할들간의 협력을 표현할 때
  • 시스템의 아키텍처 디자인에서 메카니즘 모델링
  • 협력내에서 객체들이나 역할들간의 메시지를 전달하는 상호작용을 나타낼 때

- 마치면서

2번째 링크에서는 협력 다이어그램 사용에 대해서 더 많은 사용예제 및 많은점에 대해서 설명하고 있다. 반면 UML Distilled 에서는 협력 다이어그램을 거의 사용할일이 없다는 늬앙스로 말하고 있다. 사실 나도 실제로 사용해본적은 없다. 하지만 모든 툴의 본질이 그러하듯 적재적소에 잘 사용하면 좋은것이니 협력 다이어그램이 무엇인지는 알아두도록 하자.

댓글