가이드라인: 의사소통 다이어그램
주제
협력 다이어그램이 의사소통 다이어그램으로 이름이 바뀌었습니다. 자세한 정보는
UML 1.x 및 UML 2.0 간의 차이점을 참조하십시오.
의사소통 다이어그램은 특정 유스 케이스의 작동 또는 유스 케이스의 일부를
수행하기 위해 객체가 상호 작용하는 방법을 표시하는 데 사용됩니다.
순서 다이어그램과 함께 의사소통 다이어그램은 설계자가 유스 케이스의 특정 이벤트 플로우를
수행하는 객체의 역할을 정의하고 명확히 하는 데 사용됩니다.
이 다이어그램은 클래스 책임 및 인터페이스를 결정하는 데 사용되는 정보의 소스입니다.
순서 다이어그램과 달리 의사소통 다이어그램은 객체 간의 관계를 표시합니다.
순서 다이어그램 및 의사소통 다이어그램은 유사한 정보를 표시하지만 표시 방법은 다릅니다.
의사소통 다이어그램은 객체 간의 관계를 표시하므로 제공된 객체에 대한 모든 효과와 절차적 설계를 이해하는 데 더 좋습니다.
의사소통 다이어그램의 형식은 분석 활동에 더 적합합니다
(활동: 유스 케이스 분석 참조).
특히 의사소통 다이어그램은 적은 수의 객체에 대한 간단한 상호 작용을 표시하는 데 적합합니다.
객체 및 메시지 수가 커지면 다이어그램을 읽기가 매우 어려워집니다.
또한 타이밍, 결정 위치, 순서 다이어그램의 참고에 쉽게 추가할 수 있는
기타 구조화되지 않은 정보와 같은 추가 설명 정보를 표시하기도 어렵습니다.
의사소통 다이어그램의 컨텐츠
의사소통 다이어그램에 연관된 방법 및 상호 작용하는 방법에 대해 기술하는 메시지 및 링크와 함께
객체 및 액터 인스턴스도 있을 수 있습니다.
다이어그램은 메시지를 다른 객체에게 보내 객체가 통신하는 방법과 관련하여
관련 객체에서 발생하는 일에 대해 설명합니다. 유스 케이스의 이벤트 플로우에 대한
각 변형의 의사소통 다이어그램을 작성할 수 있습니다.

재활용 기계 시스템의 적립금 항목 받는 중 유스 케이스에 대한
이벤트 플로우의 일부를 설명하는 의사소통 다이어그램.
객체 이름 및 밑줄 친 해당 클래스를 표시하는 객체 기호로 표시되는 객체는 콜론으로 분리됩니다.
objectname : classname
다음과 같은 방법으로 의사소통 다이어그램에서 객체를 사용할 수 있습니다.
- 객체 클래스를 지정하지 않을 수 있습니다.
일반적으로 객체가 있는 의사소통 다이어그램을 먼저 작성한 다음 나중에 해당 클래스를 지정하십시오.
- 객체에 이름을 지정하지 않을 수 있으나 동일한 클래스를 가진 다른 객체를 구별하려면
이름을 지정해야 합니다.
- 객체의 클래스가 적극적으로 상호 작용에 참여할 경우, 객체 클래스 자체를 의사소통 다이어그램에
표현할 수 있습니다.
일반적으로 액터 인스턴스는 상호 작용 호출자로서 의사소통 다이어그램에서 발생합니다.
동일한 다이어그램에 여러 액터 인스턴스가 있으면 다이어그램 주위에 이를 보존하십시오.
링크는 다음과 같이 정의됩니다.
- 링크는 메시지를 보낼 수 있는 객체 간의 관계입니다.
의사소통 다이어그램에서 링크는 두 객체 간에 실선으로 표시됩니다.
- 객체는 다른 객체에 대한 링크를 사용하여 다른 객체와 상호 작용을 하거나 다른 객체로 이동합니다.
- 링크는 연관 인스턴스이거나 익명(연관이 지정되어 있지 않음을 의미함)일 수 있습니다.
- 메시지 플로우는 링크에 첨부되며 메시지를 참조하십시오.
메시지는 활동이 발생할 것이라고 예상하면서 정보를 전달하는 객체 간의 의사소통입니다.
의사소통 다이어그램에서 메시지는 링크 옆에 있는 레이블된 화살표로 표시됩니다.
이는 전송시에 링크가 사용된다는 것을 의미하며, 그렇지 않을 경우 대상 객체로의 메시지 전달을 구현하십시오.
화살표는 대상 객체(메시지를 받는 객체)의 방향에 있는 링크를 따라 가리킵니다.
화살표에는 메시지의 이름 및 해당 매개변수로 레이블이 붙습니다.
화살표에는 전체 반복 내에서 메시지의 순서를 표시하기 위해
순번으로 레이블이 붙을 수도 있습니다.
순번은 메시지의 상대적 순서를 기술할 수 있는 유일한 방법이기 때문에
종종 의사소통 다이어그램에 사용됩니다.
메시지를 지정하지 않을 수 있습니다. 이는 해당 이름이 메시지의 전체적인 의미를
기술하는 임시 문자열임을 의미합니다.
메시지의 대상 객체의 조작을 지정하여 나중에 메시지를 지정할 수 있습니다.
지정된 조작이 메시지의 이름을 대체합니다.
|