협력 다이어그램이란 ?

객체 사이의 연관관계 뿐만 아니라, 각 객체들이 주고 받는 메시지들을 공간에 따라 배열한 것. 객체 다이어그램의 확장으로 볼 수 있다. 


◎시퀀스 다이어그램과의 유사점 및 차이점

유사점: 시퀀스 다이어그램처럼 객체들 사이의 교류를 보여준다. → 따라서, 시퀀스와 협력다이어그램의 상호 변환이 쉽다.

차이점: 

- 시퀀스 다이어그램: 객체간의 교류를 시간의 순서에 초점을 두어 표현

- 협력 다이어그램 : 공간에 따라 배열시킴, 교류를 수행하는 객체들의 전체적인 조직과 상황(Context)에 초점을 맞춤


◎표현

- 두 객체 사이를 연관선으로 연결. 연관선 위에 메시지가 전달되는 객체 쪽으로 화살표 방향을 가진 선을 긋는다. 메시지의 의미는 "메시지를 받는 객체로 하여금 어떤 오퍼레이션을 실행하라" 라는 의미. 메시지 끝에 '( )' 을 붙임으로써 매개변수를 넣을 수 있도록 한다.


예제) 아래 그림

1. GUI는 키 입력은 운영체제에게 알린다. 

2. 운영체제는 CPU에게 그 사실을 알린다. 

3. 운영체제는 GUI를 갱신한다. 

4. CPU는 비디오 카드에게 GUI갱신에 필요한 명령을 내린다. 

5. 비디오 카드는 모니터로 메시지를 전송한다. 

6. 모니터는 화면에 문자를 표시하고, 사용자에게 피드백을 제공한다.

+ State Diagram 상태변화 추가


표현 

객체의 사각형 안에 객체의 상태를 나타낸다. 변경된 상태의 객체를 나타내는 사각형에다가 쇄선을 그리고 스테레오타입 <<become>>을 붙인다. 


◎"음료수 사기" 쓰임새를 시퀀스 다이어그램으로 표현

1. 소비자가 자판기의 프론트 앞에 서서 투입구에 돈을 넣는다. (insert)

2. 소비자가 마실 음료수를 고른다. (Select)

3. 돈이 금전등록기에 들어간다. (Send)

4. 등록기는 선택된 음료가 디스펜서에 들어있는지를 체크한다. 

5. 간단한 시나리오이기 때무에, 선택된 소다가 준비되어 있고, 등록기는 현금잔고를 갱신한다. 

6. 등록기는 디스펜서를 사용하여 소다를 자동 판매기의 프론트로 보낸다.


◎"음료수 사기" 에서 "액수가 맞지 않는경우"

1. 사용자가 음료수 가격보다 많은 돈을 투입한 경우

2. 음료수 자판기가 충분한 거스름돈을 가진 경우

3. 음료수 자판기가 충분한 거스름돈을 가지지 않은 경우


* 각 단계의 소수점 숫자의 표현은 동일한 단계에서 여러시나리오가 중첩됨을 나타냄

◎ "음료수사기" 시나리오에서 "음료수 자판기가 충분한 거스름 돈을 가지고 있지 않을 때"


1. 거스름 돈이 없음을 알리는 메시지를 출력한다. 

2. 투입된 돈을 돌려준다.

3. 맞는 돈을 넣을 것을 지시한다. 

4. 이때, 사실상 사용자와 자판기와의 거래(Transaction) 는 끝이 난다.

◎While문을 표현 : * [조건]


메시지를 받는 객체 사각형을 사선방향으로 쌓는다.

객체로 전송되는 메시지에는 ' * ' 가 붙은 대괄호 조건문을 붙여준다. 만약, 메시지 전송순서가 필요하다면, 조건문에 1.... n 처럼 순서를 표시할 수있다. 


Ex) 은행원이 여러창구에 늘어선 고객들을 순서대로 맞아 서비스를 하려고 할때.

◎ 동기화

다른 메시지들과 자신의 메시지를 동기화 하는것. 즉, 다른 메시지들이 전송이 이루어진 후에야 자신의 메시지를 전송하는 상황을 의미함.


◎표현 

메시지가 전송되기 전에 완성되어야 할 메시지 리스트를 ' ; '로 구분하여 나열하고 ' / ' 로 리스트의 끝임을 알린다.


◎ 판촉 캠페인 

1. 수석 마케팅 부회장은 판촉 VP에게 특정 제품의 캠페인을 만들것을 요구한다.

2. 판촉 VP는 캠페인을 만들고 이것을 판촉 관리자에게 할당한다.

3. 판촉 관리자는 판매원에게 이 캠페인에 따라 제품을 팔 것을 요구한다.

4. 판매원은 고객들에게 제품을 사줄 것을 부탁한다.

5. 판촉 VP가 할당을 내리고 판촉 관리자가 지시를 마친후에, 회사 홍보 담당 전문가가 지역 신문에 자신들의 캠페인을 광고로 실어줄 것을 요청한다.




◎ 활동 다이어 그램이란?


처리단계(Activity), 결정(Decision), 분기처리(Branch)를 표현하는데 있어서, 업무과정이나 Operation 에서 처리되는 일들을 효과적으로 나타내는데 유용하게 사용된다.


활동 다이어그램은 Flow Chart와 상당히 흡사하다. State Diagram의 확장으로 볼 수 있다. 해당 활동 내의 처리가 끝나면 그 다음의 활동으로 자동적으로 옮겨진다. 

◎ 신호

 

활동이 진행되는 도중에 신호(Signal)을 보낼 수도 있다. 신호가 보내어지면 그 신호를 받은 쪽은 활동을 개시해야 한다.


◎ 동시경로

◎ 짜장면 집에서 주문을 하는 과정 


1. 손님이 메뉴에서 음식을 고른다.

2. 웨이터를 부르고, 주문한다.

3. 웨이터는 주방장에게 주문사항을 알린다.

4. 만약 주문한 음식의 재료가 떨어졌으면 주방장은 웨이터에게 알린다. 

5. 웨이터는 손님에게 알린다.

6. 다시 1번 부터 반복한다.



◎ 활동 다이어그램에 역할 (Role)을 표시함으로써 처리 과정에 속해있는 각 활동의 책임이 누구에게 있는지 나타낼 수 있다.