시퀀스 다이어그램의 결합 단편

시퀀스 다이어그램에서, 결합 단편은 직사각형으로 표시되는 논리 그룹화이며 메시지 플로우에 영향을 주는 조건 구조를 포함합니다. 결합 단편은 상호작용 연산자를 포함하며 상호작용 연산자로 정의됩니다.

결합 단편의 유형은 상호작용 연산자로 결정됩니다. 결합 단편을 사용하여 간편한 방식으로 여러 제어 및 논리 구조를 설명할 수 있습니다. 상호작용 연산자는 결합 단편의 동작을 정의하는 논리 또는 조건문의 유형을 식별합니다.

결합 단편은 메시지 플로우에 영향을 주는 보다 복잡한 구조를 나타내는 추가 조건 구조를 포함한 중첩된 결합 단편이나 상호작용 사용을 포함할 수도 있습니다.

다음 그림에 표시된 대로, 결합 단편은 라이프라인을 보호하고 상호작용 연산자를 포함한 프레임으로 표시됩니다. 결합 단편은 포함된 상호작용 피연산자를 각 피연산자 사이의 가로 점선으로 분리합니다.

상호작용 프레임은
결합 단편에 포함된 상호작용 연산자, 피연산자 및 보호 조건을
표시합니다.

상호작용 연산자

상호작용 연산자는 결합된 단편의 시맨틱을 정의하고 결합된 단편에서 상호작용 피연산자를 사용하는 방법을 결정합니다. 연산자는 피연산자에 적용할 논리 조건 유형을 정의합니다. 예를 들어, 대체(alt) 상호작용 연산자가 있는 결합 단편은 if-then-else문처럼 행동합니다. 이전 그림에서, 루프 및 대체(alt) 상호작용 연산자는 두 개의 결합 단편을 정의합니다.

상호작용 피연산자

시퀀스 다이어그램에서, 상호작용 피연산자는 보호 조건이 충족될 경우에 실행되는 상호작용 단편 및 메시지를 그룹화하는 컨테이너입니다. 보호 조건이 없으면 항상 블록이 실행됩니다.

각 상호작용 피연산자는 상호작용의 단편이며 결합 단편의 라이프라인을 보호합니다. 상호작용 피연산자는 상호작용 제한조건이 포함된 보호 조건을 포함합니다. 상호작용 피연산자는 보호 조건이 true로 테스트되는 경우에만 실행됩니다.

상호작용 연산자의 유형에 따라 결합 단편에 하나 이상의 상호작용 피연산자가 있을 수 있습니다. 각 피연산자에는 보호 조건이 있어야 합니다.

이전 그림에서, 대체(alt) 결합 단편은 하나는 x>5 보호 조건이 있고 다른 하나는 x<=5 보호 조건이 있는 두 개의 상호작용 피연산자를 포함합니다. x=6이면 x<=5 보호 조건과 해당 피연산자 및 메시지가 실행됩니다. x>5 보호 조건과 해당 피연산자 및 포함된 메시지는 실행되지 않습니다.

보호 조건

시퀀스 다이어그램에서, 보호 조건은 부울 조건식 또는 루프의 경우 루프가 실행하는 최소 및 최대 횟수를 지정하는 표현식인 상호작용 제한조건과 선택적으로 증분 값을 포함합니다.

보호 조건은 결합 단편의 상호작용 피연산자에 대괄호로 묶여 설정되는 시맨틱 조건 또는 제한입니다. 결합 단편을 작성하면 보호 조건이 자동으로 작성됩니다. 기존 보호 조건이 없는 상호작용 피연산자에 보호 조건을 수동으로 작성할 수도 있습니다.

보호 조건은 상호작용을 시작할 때 표시되며 상호작용 피연산자를 실행할지 여부를 결정하는 데 필요한 모든 정보를 포함합니다. 보호 조건이 true로 테스트되면 상호작용 단편이 실행됩니다.

다음 그림에 표시된 대로, 상호작용 피연산자는 결합 단편에 직사각형으로 표시됩니다. 직사각형 안에는 보호 조건이 true일 때 실행되는 메시지가 있을 수 있습니다. 오른쪽의 코드는 대체(alt) 결합 단편에 대한 Pseudo 코드가 어떨지 보여줍니다.
상호작용 프레임은 라이프라인을 가로지르는 두 개의 결합 단편이 있는 두 개의 라이프라인을 표시합니다. 첫 번째 loop 결합 단편에는 하나의 상호작용 피연산자 및 보호 조건이 있습니다. 두 번째 alt 결합 단편에는 두 개의 상호작용 피연산자가 있으며 각각 보호 조건이 있습니다.
// This section is a combined fragment


//if else represents the interaction operator 
//if-else is the Alternative(alt) combined fragment
if ( value is greater than 5)
// the condition in the () is the guard condition
// The code in the {} is the interaction operand
// It runs if the guard condition is true
	{ A send a message to B;
	B sends a return message to A;
	}
else if(x is less than or equal to 5)		 
{
	B sends a message to A;
}

피드백