스펙 시퀀스 다이어그램은 디자이너의 마인드에서 하나의 특정 스레드만 표시합니다. 따라서 특정 인스턴스 및 메시지가 누락됩니다. 그러나 실행(애니메이션) 시퀀스 다이어그램은 오브젝트 간의 전체 협업을 반영합니다. 따라서 스펙 시퀀스 다이어그램과 실행 시퀀스 다이어그램 간의 단순 비교는 항상 실패합니다. IBM® Rational® Rhapsody®는 시퀀스 비교를 수행할 때 두 가지 유형의 다이어그램 간의 필수 차이점을 일부 보상할 수 있게 하는 다양한 옵션을 제공합니다.
시퀀스 다이어그램 비교 창에서 옵션을 선택하여 시퀀스 다이어그램 비교 옵션 창을 여십시오.
일반 탭의 다음 필드를 사용하여 동기화 사용 여부 및 옵션 설정 저장 또는 업로드 여부를 지정하십시오.
메시지 도착 순서가 중요하지 않은 경우가 있습니다. 동기화 옵션을 사용하여 메시지 도착 시간을 무시하고 메시지 전송 순서만 고려할 수 있습니다.
결과 비교 표시에서 등가 메시지는 인접 창 분할창에 세로로 동기화됩니다. 따라서 두 다이어그램 모두에서 해당 메시지를 쉽게 찾을 수 있습니다.
동기화 옵션을 사용하거나 사용하지 않으려면, 일반 탭에서 동기화 상자를 선택하거나 지우십시오.
옵션 설정을 파일에 저장한 후 후속 메시지 비교를 위해 다시 로드할 수 있습니다.
설정을 저장하려면 다음을 수행하십시오.
<SD2>_<SD1>.sdo
파일 확장자 .sdo는 시퀀스 다이어그램 옵션을 나타냅니다. 원하면, 옵션 파일의 경로 및 기본 이름을 편집하십시오.
옵션 설정을 다시 로드하려면 다음을 수행하십시오.
파일에 마지막으로 저장된 설정으로 시퀀스 비교 옵션이 복원됩니다.
다음 그림에 표시된 메시지 선택 탭을 사용하여 포함시킬 메시지와 비교에 인수를 포함시킬지 여부를 선택할 수 있습니다.

이 메시지 선택 탭에서 "무시"라는 단어는 모든 메시지의 인수 열의 기본 설정입니다. 이는 기본적으로 메시지에 대해 인수 비교를 무시함을 의미합니다.
이 탭을 사용하여 다음을 수행할 수 있습니다.
스펙 시퀀스 다이어그램은 일반적으로 특정 유스 케이스 또는 시나리오에 필수적인 정보를 포함합니다. 대다수의 경우, 스펙 시퀀스 다이어그램은 초기화 단계(Phase) 메시지를 제외하는 반면 실행 시퀀스 다이어그램은 모든 메시지를 포함합니다. 따라서 비교를 수행할 때 생성자와 같은 특정 메시지를 무시해야 할 수도 있습니다. 결과 비교 창에서 무시된 메시지에는 액세스할 수 없습니다.
비교에서 메시지를 제외하려면 다음을 수행하십시오.

메시지가 동일한지 여부를 판별하는 두 가지 옵션이 있습니다. 첫 번째는 메시지 이름과 모든 인수를 비교하는 것이고 두 번째는 메시지 이름만 비교하는 것입니다. 시퀀스 다이어그램은 다음 네 가지 서로 다른 유형의 인수를 표시하기 때문에 후자 옵션이 더 유용합니다.
스펙 시퀀스 다이어그램에서는 메시지 인수에 대한 전체 정보를 항상 제공하지는 않을 수 있습니다. 실행 시퀀스 다이어그램은 시스템이 실제로 수행한 작업을 기록하기 때문에 항상 인수 값과 이름을 둘 다 표시합니다. 따라서 메시지 비교는 이상적으로 인수를 사용하지 않고 메시지 이름에 주로 초점을 맞춥니다.
두 메시지의 이름이 동일하게 지정된 경우, 인수를 비교할 수 있습니다.
예를 들어, evDigitDialed(Digit) 메시지를 고려하십시오. 인수 이름(Digit)만 비교하면 메시지가 같습니다. 그러나 값(EvDigitDialed(Digit=0), EvDigitDialed(Digit=1) 등)을 비교하면 인수 값이 같지 않습니다.
인수 비교는 다음 단계로 발생합니다.
인수 이름을 사용할지 또는 값을 사용할지 여부를 지정하려면 다음을 수행하십시오.
일반적으로 사용되는 설정은 다음과 같습니다.
| 스펙 시퀀스 다이어그램 | 실행 시퀀스 다이어그램 | 값 |
|---|---|---|
| Message() | Message(Arg = 1) | 인수 무시 |
| Message(Arg) | Message(Arg = 1) | 이름만 비교 |
| Message(1) | Message(Arg = 1) | 이름 및 값 비교 |
스펙 시퀀스 다이어그램에서는 환경이 전송한 모든 메시지가 특정 오브젝트에서 비롯됩니다. 그러나 실행 시퀀스 다이어그램에서는 이런 메시지가 애니메이션과 상호작용하는 사용자에서 비롯될 가능성이 있습니다. 이 차이점이 비교를 손상시킬 수 있습니다.
일반적으로 실행 시퀀스 다이어그램과 스펙 시퀀스 다이어그램 간에 완벽한 오브젝트 일치를 요구하는 것은 요구사항을 너무 엄격히 적용한 것입니다. 솔루션은 한 시퀀스 다이어그램의 오브젝트를 다른 시퀀스 다이어그램의 기타 오브젝트와 연관시키는 것입니다. 소스 및 대상 오브젝트가 두 시퀀스 다이어그램에서 모두 연관되면 메시지가 일치할 수 있습니다.
오브젝트를 서로 연관시키려면 오브젝트 그룹을 작성하십시오. 오브젝트 그룹은 본질적으로 상위 레벨 유스 케이스와 실제 구현 간의 차이를 브릿지하는 인스턴스 추상화입니다. 오브젝트 그룹을 사용하면 이름이 동일하지 않은 오브젝트를 비교하거나 한 오브젝트를 몇 개의 기타 오브젝트와 비교할 수 있습니다.
오브젝트 그룹을 보려면, 시퀀스 다이어그램 비교 옵션 창에서 인스턴스 그룹 탭을 선택하십시오. 다음 그림에 표시된 인스턴스 그룹 탭이 모델의 기존 오브젝트 그룹 목록을 표시합니다. 각 오브젝트(기본적으로 자체 그룹의 유일한 멤버임)에 대해 하나의 오브젝트 그룹이 있습니다.

그룹에 속한 오브젝트가 창 맨 아래의 오브젝트 그룹 목록에 표시됩니다. 이는 SD1에 대해 나열된 오브젝트를 SD2에 대해 나열된 오브젝트와 논리적으로 동일한 것으로 간주함을 의미합니다.
인스턴스 그룹 탭을 사용하여 다음 조작을 수행할 수 있습니다.
인스턴스 그룹을 작성하려면 다음을 수행하십시오.
기존 오브젝트 그룹을 삭제하려면 다음을 수행하십시오.
삭제된 그룹에 속했던 오브젝트를 이제 사용하지 않으며 다른 오브젝트 그룹에 지정할 수 있습니다.
인스턴스 그룹을 모두 삭제하려면 다음을 수행하십시오.
모든 오브젝트를 이제 사용하지 않으며 새 오브젝트 그룹에 지정할 수 있습니다.
표시된 오브젝트와 다른 오브젝트를 연관시키려면, 하나 이상의 오브젝트를 다른 오브젝트 그룹으로 이동하거나 그룹을 작성하십시오. 오브젝트는 동시에 한 그룹에만 속할 수 있기 때문에 어느 경우든 오브젝트를 현재 사용 중인 그룹에서 이동 중인 오브젝트를 먼저 제거해야 합니다.
그룹에서 오브젝트를 제거하려면 다음을 수행하십시오.
그룹에 오브젝트를 추가하려면 다음을 수행하십시오.
모든 오브젝트 그룹을 기본값(오브젝트당 한 그룹)으로 다시 설정하려면, 인스턴스 그룹 탭에서 기본값으로 설정을 클릭하십시오. 그룹에 속한 SD1 및 SD2의 동일 오브젝트와 함께 각 오브젝트에 오브젝트 그룹이 추가됩니다.
스펙 시퀀스 다이어그램에서는 메시지 시퀀스를 판별하기 위해 메시지 큐 작동 방법을 가정해야 하는 경우가 많습니다. 스펙 시퀀스 다이어그램에서는 메시지 순서가 상태 차트에 지정된 실제 순서와 다를 가능성이 높습니다. 순서 지정 가정이 올바르지 않아 대형 불일치가 발생할 수 있습니다.
이러한 문제점을 방지하려면 비교에서 메시지 타이밍을 무시할 수 있어야 합니다. 예를 들어, A2 인스턴스가 M2 메시지를 보낸 후에 A1 인스턴스가 보낸 M1 메시지는 M2 전에 보낸 동일한 메시지와 일치할 수 있습니다.

두 개 이상의 메시지가 동시에 전송되는 경우도 있을 수 있지만 순서는 중요하지 않습니다. 메시지 그룹을 사용하여 순서 지정이 중요하지 않은 메시지 그룹을 지정할 수 있습니다. 그룹에서 메시지가 임의 순서로 발생하면 일치합니다.
다음 그림에 표시된 메시지 그룹 탭을 사용하여 메시지 그룹을 작성, 수정 및 삭제할 수 있습니다.
