UML 다이어그램의 메시지

메시지는 상호작용의 인스턴스 간 특정 유형의 통신을 정의하는 UML(Unified Modeling Language) 다이어그램의 한 요소입니다. 메시지는 라이프라인으로 표시되는 한 인스턴스에서 상호작용의 다른 인스턴스로 정보를 전합니다.

메시지 유형

메시지는 송신측과 수신측을 지정하고 라이프라인 간에 발생하는 통신 유형을 정의합니다. 예를 들어, 통신은 동기 호출 메시지나 비동기 호출 메시지를 사용하여 오퍼레이션을 호출하고, 비동기 신호를 사용하여 신호를 올리며, 참여자를 작성하거나 제거합니다.

다음 표에 나와 있는 다섯 가지 유형의 메시지를 사용하여 상호작용의 라이프라인 간 통신을 표시할 수 있습니다.

메시지 설명 예제
작성 메시지 작성 메시지는 상호작용의 인스턴스 작성을 나타냅니다. 작성 메시지는 «create» 키워드로 표시됩니다. 대상 라이프라인은 작성 메시지 시점에 시작됩니다. 금융 시나리오에서 은행 관리인은 서버에 작성 메시지를 보내서 클라이언트에 대한 신용 조사를 시작할 수 있습니다.
제거 메시지 제거 메시지는 상호작용의 인스턴스 제거를 나타냅니다. 제거 메시지는 «destroy» 키워드로 표시됩니다. 대상 라이프라인은 제거 메시지 시점에 종료되며 X로 표시됩니다. 은행 관리인은 신용 조사를 시작한 후 고객의 신용 프로그램 응용프로그램을 닫거나 제거할 수 있습니다.
동기 호출 메시지 오퍼레이션과 연관된 동기 호출에는 송신 및 수신 메시지가 있습니다. 메시지는 소스 라이프라인에서 대상 라이프라인으로 송신됩니다. 소스 라이프라인은 대상 라이프라인으로부터 응답을 수신할 때까지 기타 오퍼레이션이 차단됩니다. 은행 직원은 승인을 위해 은행 관리인에게 신용 거래 요청을 송신하고 고객에게 추가 서비스를 제공하기 전에 응답을 기다려야 합니다.
비동기 호출 메시지 오퍼레이션과 연관된 비동기 호출에는 일반적으로 송신 메시지만 있지만 응답 메시지가 있을 수도 있습니다. 동기 메시지와 반대로, 소스 라이프라인은 기타 메시지 수신 또는 송신이 차단되지 않습니다. 송신 및 수신 위치를 개별적으로 이동하여 송신과 수신 이벤트 사이의 시간을 지연시킬 수도 있습니다. 응답이 시간 또는 순서에 민감하지 않은 경우 이를 수행하도록 선택할 수 있습니다. 은행 고객은 신용 거래를 신청할 수 있지만 신용 거래 신청에 대한 안내를 기다리는 동안 전화로 금융 정보를 받아보거나 ATM에서 현금을 요청할 수 있습니다.
비동기 신호 메시지 비동기 신호 메시지는 신호와 연관되어 있습니다. 신호는 신호와 연관된 오퍼레이션이 없다는 점에서 메시지와 다릅니다. 신호는 인터럽트나 오류 조건을 나타낼 수 있습니다. 신호를 지정하기 위해 비동기 호출 메시지를 작성하고 메시지 특성 보기의 유형을 변경합니다. 신용 기관은 은행 관리인에게 신용 조사서에 연결하는 데 실패했음을 알리는 오류 신호 메시지를 보낼 수 있습니다.

비동기 메시지는 개별적으로 송신 및 수신 위치를 이동시킬 수 있는 유일한 메시지 유형입니다. 비동기 메시지의 위치를 이동시켜 송신 이벤트와 수신 이벤트 사이의 시간 지연을 조작할 수 있으며, 그 결과를 왜곡된 메시지라 부릅니다. 동작 실행 스펙을 포함하거나 동작 실행 스펙 없이 비동기 메시지를 작성할 수 있습니다.

자체 지정된 메시지는 소스 라이프라인에서 자체로 송신되는 메시지입니다. 자체 지정된 메시지는 반복 호출 또는 동일한 오브젝트에 속하는 다른 오퍼레이션이나 신호에 대한 호출일 수 있습니다.

소스 라이프라인이 대상 라이프라인에 보내는 메시지는 대상 라이프라인이 구현하는 오퍼레이션이나 신호를 나타냅니다. 메시지의 이름과 순서를 지정할 수 있습니다. 화살촉이나 선의 모양은 메시지의 특성을 반영합니다. 다음 표는 UML 다이어그램의 메시지를 표시하는 그래픽을 표시합니다.

유형 그래픽 설명 표시
비동기 오른쪽을 가리키는 여느 화살촉이 있는 선. 여는 화살촉이 있는 선 이 그래픽은 소스 오브젝트가 메시지를 보내고 즉시 다음 단계를 계속하는 비동기 신호나 비동기 호출을 나타냅니다.
동기 오른쪽을 가리키는 단색 화살촉이 있는 선. 수신 라이프라인 쪽을 가리키는 단색 화살촉이 있는 선 이 그래픽은 소스 오브젝트가 메시지를 보내고 해당 소스가 계속하기 전에 대상으로부터 리턴 메시지를 기다리는 동기 호출 오퍼레이션을 나타냅니다.
동기 리턴 왼쪽을 가리키는 단색 화살촉이 있는 점선. 기원된 라이프라인 쪽을 가리키는 단색 화살촉이 있는 점선 이 그래픽은 호출에서 프로시저로의 리턴 메시지를 나타냅니다. 동기 메시지를 작성할 때 리턴 메시지가 기본적으로 작성됩니다. 환경 설정 창에서 이 기본값을 변경할 수 있습니다.

메시지는 신호의 송신과 수신 또는 오퍼레이션 호출을 나타냅니다. 메시지가 오퍼레이션을 나타내는 경우 오퍼레이션 이름은 메시지를 식별합니다. 메시지의 인수는 대상 소스로 전달됩니다. 리턴 메시지는 결과적인 오퍼레이션 호출의 인수를 포함합니다. 메시지가 신호를 나타낼 때에는 메시지의 인수가 신호 그 자체입니다. 메시지가 비동기 호출인 경우 호출하는 라이프라인이 계속되기 전에 호출된 라이프라인에서 호출하는 라이프라인으로 리턴 메시지가 발생합니다.

이름이나 오퍼레이션 서명을 사용하여 메시지를 식별할 수 있습니다. 이름은 오퍼레이션과 연관되지 않은 메시지의 이름만 식별합니다. 오퍼레이션이 메시지와 연관되면 오퍼레이션 이름이 이름을 바꿉니다. 오퍼레이션 서명이 표시되어 오퍼레이션의 이름을 식별합니다. 디자인 단계(phase) 중 다이어그램에서 서명을 사용하여 디자인을 코딩하는 개발자에게 세부사항을 제공할 수 있습니다.

다음 그림에 표시된 대로, 메시지는 메시지가 송신되는 방향 즉, 송신 메시지 끝에서부터 수신 메시지 끝까지 가리키는 화살표가 있는 선으로 표시됩니다. 다음 예제는 은행 고객이 다음 프로세스에 따라 대출을 신청하는 금융 시나리오를 나타내는 시퀀스 다이어그램에 메시지가 표시되는 방식을 보여줍니다.
  • 고객이 은행 직원에게 대출 신청서를 제출합니다.
  • 은행 직원은 은행 관리인이 처리할 신청서를 보내고 관리인이 완료할 때까지 기다립니다.
  • 은행 관리인은 신용 조사 프로그램을 시작하고, 데이터를 입력한 후 신용 기관이 결과를 보낼 때까지 기다립니다.
  • 은행 관리인은 응답을 수신하고 은행 직원에게 결정사항을 알리는 메시지를 보냅니다.
  • 은행 직원은 고객에게 대출이 승인되었다는 메시지를 보냅니다.
  • 은행 관리인은 신용 기관 프로그램을 닫고 고객은 거래를 완료합니다.

여러 다른 금융 라이프라인 간에 전달되는 메시지를 보여주는 금융 거래 예제.


피드백