시퀀스 다이어그램 메시지 교환

시퀀스 다이어그램은 프로젝트 내에서의 메시지 교환을 설명합니다. 소프트웨어 시스템 개발의 일부로 시퀀스 다이어그램에 메시지를 배치할 수 있습니다. 또한 애니메이션 시퀀스 다이어그램을 실행하여 실행 프로그램에서 메시지가 발생할 때 이를 감시할 수 있습니다.

시퀀스 다이어그램은 오브젝트가 수행하는 역할 간의 메시지 교환 시나리오를 표시합니다. 분석 및 디자인 시나리오, 실행 추적, 테스트 케이스에서의 예상 동작 등 이 기능을 다양한 방법으로 사용할 수 있습니다.

세로 축은 시스템 오브젝트 사이의 메시지 교환을 표시하는 시간 차원입니다. 메시지는 이벤트나 오퍼레이션 호출 양식에서 오브젝트 사이의 상호작용을 표시합니다. 상호작용은 오브젝트 라이프라인을 연결하는 화살표로 묘사됩니다.

다음 시퀀스 다이어그램은 거주자가 방에 들어가면 HomeHeatingSystem에서 발생하는 협업을 표시합니다. 시스템 오브젝트는 첫 번째 행에서 지정됩니다. 중첩 오브젝트는 해당 오브젝트 경로를 사용하여(최상위 레벨 오브젝트에서 시작하여 계층 구조를 따라) 식별할 수 있습니다. 오브젝트 배열에서 색인이 인스턴스를 표시합니다.

오브젝트의 완전한 동작 요구사항은 각 시나리오의 모든 오브젝트 라이프라인을 투영하는 것입니다. 시퀀스 다이어그램의 라이프라인 세트는 오브젝트의 전체 라이프사이클을 상태 차트로 형성합니다.

참고: Rational® Rhapsody® Developer for C에서 애니메이션이 활성화된 프로그램을 실행하는 동안, 패키지에 속하는 글로벌 오브젝트는 인스턴스 색인 없이 애니메이션 인스턴스 이름으로 원래의 이름을 보유합니다. 예를 들어, 글로벌 오브젝트 HomeHeatingSystem에는 HomeHeatingSystem[0]이 아닌 HomeHeatingSystem의 애니메이션 인스턴스 이름을 보유합니다.

이 시나리오에서는 오브젝트 사이에 다음 메시지가 이벤트로 전달됩니다.

메시지 송신자 수신자 설명
updateOcc() <inhabitant> OccSensor 누군가 방에 들어왔습니다.
occupied() <system> Room Room이 타이머를 수신합니다.
updateDtemp() <inhabitant> Room 거주자가 원하는 온도를 설정합니다.
heatReq() Room Furnace RoomFurnace의 열을 요청합니다.
motorReady() <system> Furnace 시스템은 Furnace의 모터가 작동 준비 상태인지 확인합니다.
Fstarted() Furnace Room Furnace는 시작되었음을 Room에 알립니다.
open() Room Valve Room은 난방 Valve가 열리도록 지시합니다.
stopHeat() Room Furnace 온도가 충분히 따뜻해지면 RoomFurnace가 열 생성을 중지하도록 지시합니다.
close() Room Valve Room은 난방 Valve가 닫히도록 지시합니다.
Fstopped() Furnace Room Furnace는 중지되었음을 Room에 알립니다.

시나리오에 있는 각 이벤트는 패키지 스펙 파일의 이벤트 구조에 생성됩니다. HomeHeatingSystem 예제에는 Default라고 하는 하나의 패키지만 있으므로, Default.h 파일에서 이벤트 정의가 생성됩니다.


피드백