UML 동작 다이어그램: 지침

Visual Studio Ultimate에서는 비즈니스 프로세스 또는 소프트웨어 알고리즘을 일련의 동작 워크플로로 기술하는 동작 다이어그램을 그릴 수 있습니다. 사용자, 소프트웨어 구성 요소 또는 장치에서 이러한 동작을 수행할 수 있습니다. 비디오 데모는 Capture Business Workflows by using Activity Diagrams를 참조하십시오.

UML 동작 다이어그램을 만들려면 아키텍처 메뉴에서 새 다이어그램을 클릭합니다.

다음과 같은 다양한 용도로 동작 다이어그램을 사용할 수 있습니다.

동작 다이어그램을 그리면 프로세스를 향상시킬 수 있습니다. 기존 프로세스의 다이어그램이 너무 복잡한 경우 프로세스를 간소화하는 방법을 고려할 수 있습니다.

동작 다이어그램의 요소에 대한 자세한 내용은 UML 동작 다이어그램: 참조를 참조하십시오.

항목 내용

다른 다이어그램과의 관계

동작 다이어그램을 그리는 기본 단계

제어 흐름 기술

데이터 흐름 기술

세부 동작 정의

동시 흐름

다른 다이어그램과의 관계

동작 다이어그램을 그려 사용자가 시스템을 사용하는 방식 또는 비즈니스 프로세스를 기술하는 경우 사용 사례 다이어그램을 그리면 같은 정보를 다른 뷰로 나타낼 수 있습니다. 사용 사례 다이어그램에서는 동작을 사용 사례로 나타냅니다. 사용 사례에 해당 동작과 같은 이름을 지정합니다. 사용 사례 뷰를 사용하면 다음과 같은 이점이 있습니다.

  • 포함 관계를 사용하여 더 큰 동작 또는 사용 사례가 더 작은 요소로 구성되는 방식을 하나의 다이어그램에 나타낼 수 있습니다.

  • 각 동작 또는 사용 사례를 실행에 관련된 외부 시스템 또는 사용자에 명시적으로 연결할 수 있습니다.

  • 시스템이나 각 주요 구성 요소에서 지원하는 동작 또는 사용 사례 주위에 경계를 그릴 수 있습니다.

소프트웨어 작업의 세부 디자인을 기술하기 위해 동작 다이어그램을 그릴 수도 있습니다.

동작 다이어그램에서는 동작 간에 전달되는 데이터의 흐름을 나타낼 수 있습니다. 자세한 내용은 데이터 흐름 기술 단원을 참조하십시오. 그러나 동작 다이어그램에서는 데이터의 구조를 기술하지 않습니다. 이를 위해서는 UML 클래스 다이어그램을 그릴 수 있습니다. 자세한 내용은 UML 클래스 다이어그램: 지침을 참조하십시오.

동작 다이어그램을 그리는 기본 단계

모델링 다이어그램을 만드는 자세한 단계는 방법: UML 모델 및 다이어그램 편집를 참조하십시오.

동작 다이어그램을 그리려면

  1. 아키텍처 메뉴에서 새 다이어그램을 클릭합니다.

  2. 템플릿에서 UML 동작 다이어그램을 클릭합니다.

  3. 다이어그램 이름을 지정합니다.

  4. 모델링 프로젝트에 추가에서 솔루션의 기존 모델링 프로젝트를 선택하거나 새 모델링 프로젝트 만들기를 선택합니다.

동작 다이어그램의 요소를 그리려면

  1. 도구 상자의 요소를 다이어그램으로 끌어 옵니다.

    주요 동작을 다이어그램에 배치하여 연결한 다음, 초기 노드와 최종 노드 같은 마지막 터치를 추가합니다.

    참고

    UML 모델 탐색기에서 기존 요소를 다이어그램으로 끌어 올 수는 없습니다.

  2. 요소를 연결하려면 다음 단계를 수행합니다.

    1. 동작 다이어그램 도구 상자에서 연결선을 클릭합니다.

    2. 다이어그램에서 소스 요소를 클릭합니다.

    3. 대상 요소를 클릭합니다.

      참고

      도구를 여러 번 사용하려면 도구 상자에서 도구를 두 번 클릭합니다.

동작을 다른 패키지로 이동하려면

  • UML 모델 탐색기에서 동작을 패키지로 끌어 옵니다.

    -또는-

  • UML 모델 탐색기에서 동작을 마우스 오른쪽 단추로 클릭하고 잘라내기를 클릭합니다. 그런 다음 패키지를 마우스 오른쪽 단추로 클릭하고 붙여넣기를 클릭합니다.

    참고

    첫 번째 요소를 다이어그램에 추가하는 경우에만 동작이 UML 모델 탐색기에 나타납니다.

제어 흐름 기술

동작 다이어그램은 비즈니스 프로세스 또는 소프트웨어 알고리즘을 일련의 동작으로 기술합니다. 연결선 화살표는 제어가 한 동작에서 다음 동작까지 순차적으로 전달되는 방식을 보여 줍니다. 일반적으로 이전 동작이 완료된 후에만 새 동작을 시작할 수 있습니다.

다음 그림은 동작, 연결선, 분기 및 루프를 사용하여 동작 시퀀스를 나타내는 방법을 보여 주는 예제입니다. 각 요소는 다음 단원에서 자세히 설명됩니다.

간단한 동작 다이어그램

동작 다이어그램은 동작연결선을 사용하여 한 동작에서 다음 동작까지 순차적으로 제어가 흐르는 일련의 동작으로 시스템 또는 응용 프로그램을 기술합니다.

  • 사용자, 시스템 또는 사용자와 시스템 공동으로 수행하는 각 주요 작업에 대해 동작(1)을 만듭니다.

    참고

    가능하면 몇 개의 동작만 사용하여 프로세스나 알고리즘을 기술하십시오. 동작 호출 동작을 사용하여 하위 동작 기술에 설명된 대로 동작 호출 동작을 사용하여 각 동작을 별도의 다이어그램에 자세히 정의할 수 있습니다.

  • 각 동작의 제목에 해당 동작으로 수행하는 작업이 명확하게 나타나도록 하십시오.

  • 연결선(2)을 사용하여 동작을 순서대로 연결합니다.

  • 각 동작은 제어 흐름의 다음 동작이 시작하기 전에 끝납니다. 겹치는 동작을 기술하려면 동시 흐름 단원에 설명된 대로 분기 노드를 사용하십시오.

동작 다이어그램으로 동작 시퀀스를 기술하지만 동작이 실행되는 방식이나 동작 사이에 제어가 전달되는 방식은 기술하지 않습니다. 한 사람이 다른 사람에게 전자 메일 메시지를 보내는 경우와 같이 다이어그램을 사용하여 비즈니스 프로세스를 나타내는 경우에는 제어가 전달될 수 있습니다. 다이어그램을 사용하여 소프트웨어 디자인을 나타내는 경우에는 명령문 사이의 일반적인 실행 흐름으로 제어가 전달될 수 있습니다.

의사 결정 및 루프 기술

  • 의사 결정 노드(3)를 사용하면 의사 결정의 결과가 다음 단계를 지정하는 지점을 나타낼 수 있습니다. 보내는 경로를 원하는 만큼 그릴 수 있습니다.

  • 동작 다이어그램을 사용하여 응용 프로그램의 일부를 정의하는 경우에는 각 경로를 가져올 시점이 명확하도록 가드(4)를 정의해야 합니다. 연결선을 마우스 오른쪽 단추로 클릭하고 속성을 클릭한 다음, 속성 창의 가드 필드에 값을 입력하면 됩니다.

  • 가드를 항상 정의해야 하는 것은 아닙니다. 예를 들어 동작 다이어그램을 사용하여 비즈니스 프로세스나 상호 작용 프로토콜을 기술하는 경우 분기는 사용자 또는 상호 작용하는 구성 요소에 공개되는 옵션의 범위를 정의합니다.

  • 병합 노드(5)를 사용하면 의사 결정 노드에서 분기된 둘 이상의 대체 흐름을 하나로 모을 수 있습니다.

    참고

    동작에서 흐름을 모으는 것이 아니라 대체 흐름을 모으기 위해 병합 노드를 사용해야 합니다. 예제의 경우 의사 결정 노드에서 직접 Choose Menu Item에 다시 연결할 수 없습니다. 이는 제어 스레드가 들어오는 모든 연결선에 도달할 때까지 동작이 시작되지 않기 때문입니다. 따라서 동작에서 동시 흐름만 모아야 합니다. 자세한 내용은 동시 흐름을 참조하십시오.

  • 예제에서와 같이 분기를 사용하여 루프를 기술할 수 있습니다.

    참고

    프로그램 코드에서 했던 것처럼 가능하면 올바르게 구조화된 방식으로 루프를 중첩하십시오. 이렇게 하면 기존 비즈니스 프로세스를 기술하는 경우 이를 향상시킬 수 있는 몇 가지 방법이 나타날 수 있습니다.

동작 시작

다음과 같은 두 가지 방법을 사용하여 동작의 진입점을 나타낼 수 있습니다.

  • 초기 노드

    작업의 첫 번째 동작을 나타내려면 초기 노드(6) 하나를 만듭니다.

    이 방법은 하위 동작을 기술하는 경우 또는 작업 시작점을 명시적으로 나타낼 필요가 없는 경우에 가장 유용합니다. 예를 들어 Order a Meal 동작은 고객이 배가 고플 때 시작됩니다.

  • 이벤트 적용 노드

    사용자 입력과 같은 특정 이벤트에 응답하는 스레드의 시작을 나타내려면 동시 흐름 단원에 설명된 대로 이벤트 적용 노드를 만듭니다. 들어오는 흐름을 노드에 제공하지 마십시오. 들어오는 흐름을 생략하면 이벤트가 발생할 때마다 스레드가 시작됩니다.

    이 방법은 특정 외부 이벤트에 대한 응답을 기술하는 경우에 가장 유용합니다.

동작 종료

동작 최종 노드(7)를 사용하여 동작의 끝을 나타낼 수 있습니다.

  • 제어 스레드가 동작 최종 노드에 도달하면 작업의 모든 동시 동작 및 하위 동작이 종료됩니다.

  • 동작 최종 노드를 두 개 이상 사용하면 추가 연결선으로 인해 복잡해지는 것을 방지할 수 있습니다.

동작 중단

사용자가 프로세스를 취소하는 경우와 같이 일반적인 동작 흐름이 중단되는 방식을 기술하려면 해당 이벤트를 수신하는 이벤트 적용 노드를 만들면 됩니다. 자세한 내용은 동시 흐름 단원을 참조하십시오. 이 노드에서 동작 최종 노드(7)로 이동하는 제어 흐름을 만듭니다.

스윔 레인

경우에 따라 작업의 동작을 해당 동작을 수행하는 다양한 개체 또는 비즈니스 역할에 해당하는 영역으로 정렬하면 유용합니다. 이러한 영역은 열로 정렬되고 스윔 레인이라고 합니다.

  • 도구 상자의 단순 도형 섹션에서 선 또는 사각형을 사용하여 스윔 레인이나 기타 영역을 그릴 수 있습니다.

  • 각 스윔 레인에 레이블을 지정하려면 주석을 만들고 투명 속성을 True로 설정합니다.

단순 도형은 UML 모델의 부분을 구성하지 않으며 UML 모델 탐색기에 나타나지 않습니다.

데이터 흐름 기술

다음과 같은 두 가지 방법 중 하나를 사용하여 동작 내부 또는 외부로 전달되는 데이터를 기술할 수 있습니다.

  • 개체 노드 사용. 이것은 동작 간의 정보 흐름을 기술할 수 있는 가장 간단한 방법입니다. 개체 노드는 프로그램의 변수와 비슷하며, 한 동작에서 다른 동작으로 전달하는 하나 이상의 값에 대한 저장소를 나타냅니다.

  • 출력 핀입력 핀 사용. 이 방법을 사용하면 한 동작의 출력과 다른 동작에 대한 입력을 개별적으로 기술할 수 있습니다. 핀은 프로그램의 매개 변수와 비슷하며, 개체가 동작을 시작하고 종료할 수 있는 포트를 나타냅니다.

    참고

    이 단원에서 사용되는 요소에 대한 개요를 보려면 UML 동작 다이어그램: 참조 항목의 데이터 흐름 단원을 참조하십시오.

개체 노드를 사용하여 데이터 흐름 기술

대부분의 제어 흐름은 데이터를 전달합니다. 예를 들어 "Customer provides details" 동작의 출력 흐름은 배송 주소에 대한 참조를 전달합니다.

다이어그램에 해당 데이터를 기술하려면 다음 그림과 같이 연결선을 개체 노드 및 두 개의 연결선으로 바꾸면 됩니다.

동작 간에 전달된 데이터를 표시할 수 있는 개체 노드

Dispatch Goods와 같이 모퉁이가 둥근 사각형은 처리가 발생하는 동작을 나타내고, Shipment Address와 같이 모퉁이가 각진 사각형은 한 동작에서 다른 동작으로의 개체 흐름을 나타냅니다.

동작 간에 흐르는 개체의 버퍼 또는 통로로서 노드의 역할을 반영하는 이름을 개체 노드에 지정합니다.

속성 창에서 개체 노드의 형식을 설정할 수 있습니다. 형식은 기본 형식(예: 정수)이거나 클래스 다이어그램에서 정의한 클래스, 인터페이스 또는 열거형일 수 있습니다. 예를 들어 Customer라는 다른 클래스에 대한 연결과 함께 Street Address, City 등의 특성을 포함하는 Shipment Address 클래스를 만들 수 있습니다. 자세한 내용은 UML 클래스 다이어그램: 지침을 참조하십시오.

참고

아직 정의되지 않은 형식의 이름을 입력하면 UML 모델 탐색기의 지정되지 않은 형식 아래에 항목이 추가됩니다. 이후에 클래스 다이어그램에서 같은 이름의 형식을 정의하면 새 형식을 참조하도록 개체 노드의 형식을 다시 설정해야 합니다.

개체 노드에서 데이터 버퍼링

개체 노드를 여러 개체의 버퍼로 사용할 수 있습니다. 다음 그림에서 제어 흐름은 사용자가 [choose more] 루프(1)를 여러 번 돌 수 있으며 동시에 Chosen Menu Items 개체 노드(2)에 사용자의 선택이 누적됨을 보여 줍니다. 마지막으로 사용자가 선택을 완료하면 Chosen Menu Items 버퍼로부터 전체 선택 목록을 받아들이는 Confirm Order 동작(3)에 제어가 전달됩니다.

개체 노드에서 데이터 버퍼링

다음과 같이 개체 노드의 속성을 설정하여 버퍼에서 항목이 저장되는 방식을 지정할 수 있습니다.

  • 순서 지정 속성을 설정합니다.

    • 순서 지정 안 됨 - 임의의 순서를 지정하거나 순서를 지정하지 않습니다. 이 속성의 기본값입니다.

    • 순서 지정됨 - 특정 키에 따라 순서를 지정합니다.

    • Fifo(선입선출) - 처음 들어간 것부터 사용하는 선입선출 방식으로 순서를 지정합니다.

    • Lifo(마지막에 들어간 것부터 사용) - 마지막에 들어간 것부터 사용하는 후입선출 방식으로 순서를 지정합니다.

  • 버퍼에 포함할 수 있는 최대 개체 수를 지정하려면 상한 속성을 설정합니다. 기본값은 *입니다. 이 값은 제한이 없음을 나타냅니다.

입력 핀과 출력 핀을 사용하여 데이터 흐름 기술

출력 핀입력 핀을 사용하여 한 동작의 출력과 다른 동작에 대한 입력을 개별적으로 기술할 수 있습니다.

작업 매개 변수로 사용되는 입력 및 출력 핀

핀을 만들려면 도구 상자에서 입력 핀 또는 출력 핀을 클릭한 후 동작을 클릭합니다. 그런 다음 동작 주위로 핀을 이동하고 이름을 변경할 수 있습니다. 동작 호출 동작, 작업 호출 동작, 신호 보내기 동작이벤트 적용 동작을 포함하여 모든 종류의 동작에 입력 핀과 출력 핀을 만들 수 있습니다.

개체 노드에 대한 흐름에서 하는 것과 마찬가지로 두 핀 사이의 연결선은 개체 흐름을 나타냅니다.

생성하거나 받아들이는 개체의 역할을 나타내는 이름을 각 핀에 지정합니다(예: 매개 변수 이름).

전송된 개체의 형식을 형식 속성에 설정할 수 있습니다. 이 값은 UML 클래스 다이어그램에서 만든 형식이어야 합니다.

연결된 핀 사이에 흐르는 개체는 어떤 식으로든 호환 가능해야 합니다. 이는 출력 핀에서 생성된 개체가 입력 핀 형식의 파생 형식에 포함되기 때문입니다.

또는 개체 흐름에 출력 핀 형식과 입력 핀 형식 간의 데이터 변환이 포함되도록 지정할 수 있습니다. 이 유형의 가장 일반적인 변환은 더 큰 형식에서 적절한 부분을 추출합니다. 그림의 예제를 보면 Order Detail에서 Shipping Address를 추출하는 변환이 있음을 알 수 있습니다.

세부 동작 정의

동작 이름을 사용하여 해당 동작을 통해 일반적으로 달성해야 할 결과를 명확히 나타낼 수 있을 뿐만 아니라 다음과 같은 몇 가지 방법을 사용하여 동작에 세부 내용을 추가할 수 있습니다.

  • 본문 속성에 자세한 설명을 작성합니다. 예를 들어 프로그램 코드나 의사(pseudo) 코드의 조각 또는 달성한 결과에 대한 전체 설명을 작성할 수 있습니다.

  • 동작을 동작 호출 동작으로 바꾸고 별도의 동작 다이어그램 내에 자세한 동작을 기술합니다. 자세한 내용은 동작 호출 동작을 사용하여 하위 동작 기술을 참조하십시오.

  • 동작의 로컬 사후 조건로컬 사전 조건 속성을 설정하여 결과를 더 구체적으로 기술합니다. 자세한 내용은 사후 조건 및 사전 조건 정의를 참조하십시오.

동작 호출 동작을 사용하여 하위 동작 기술

별도의 동작 다이어그램을 사용하여 더 자세한 동작을 기술할 수 있습니다. 호출된 동작은 동작 호출 동작에 의해 주 동작 다이어그램에 나타나는 동작 다이어그램입니다. 또한 동작 호출 동작을 사용하면 서로 다른 동작 사이에 공유되는 동작을 기술할 수도 있으므로 하위 동작을 여러 번 그릴 필요가 없습니다.

다음 그림에서 다이어그램 1은 동작 호출 동작이 있는 동작을 보여 주고 다이어그램 2는 호출된 동작을 나타내는 하위 동작 다이어그램을 보여 줍니다.

세부 작업을 보여 주는 별도의 동작 다이어그램

동작 호출 동작을 사용하여 하위 동작을 기술하려면

  1. 하위 동작에 대한 다이어그램을 만들려면 솔루션 탐색기에서 모델링 프로젝트를 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음, 새 항목을 클릭합니다.

  2. 새 항목 추가 대화 상자의 템플릿에서 동작 다이어그램을 클릭하고 이름 상자에 동작 호출 동작에 제공할 이름을 입력합니다.

  3. 하위 동작에 대한 자세한 워크플로를 그립니다. 이 워크플로를 호출된 동작이라고 합니다.

    • 호출된 하위 동작 다이어그램에서 초기 노드는 호출된 동작이 호출될 때 제어가 시작되는 위치를 나타내고, 동작 최종 노드는 제어가 부모 동작으로 반환해야 하는 위치를 보여 줍니다.
  4. 동작 호출 동작동작 속성을 설정하여 호출된 동작 다이어그램을 참조합니다.

    참고

    하위 동작 다이어그램에는 일부 요소가 있어야 합니다. 그렇지 않으면 동작 속성의 드롭다운 목록에서 해당 다이어그램을 사용할 수 없습니다. 또한 동작 속성을 설정하지 않으면 동작 호출 동작 모양에 삼지창 아이콘이 나타나지 않습니다.

  5. 동작의 동기 속성을 설정하여 호출된 동작이 완료될 때까지 기다릴지 여부를 나타냅니다.

    • 동기 속성을 false로 설정하면 호출된 동작이 끝나기 전에 다음 동작에서 흐름을 계속할 수 있음을 나타냅니다. 동작에서 출력 핀 또는 보내는 데이터 흐름을 정의하면 안 됩니다.

하위 동작 내부 또는 외부의 데이터 흐름 기술

소프트웨어에서 매개 변수를 사용하는 것과 같은 방식으로 하위 동작의 내부 및 외부로 흐르는 데이터를 기술할 수 있습니다.

  • 동작의 내부 또는 외부로 흐르는 각 데이터에 대해 동작 호출 동작에서 입력 핀과 출력 핀(1)을 만들고, 각각 적절한 이름을 지정합니다.

  • 하위 동작 다이어그램에서 호출하는 동작의 각 입력 핀과 출력 핀에 대해 동작 매개 변수 노드(2)를 만들고, 각 노드에 해당 핀과 같은 이름을 지정합니다.

    참고

    동작 매개 변수 노드는 개체 노드와 비슷합니다. 보고 있는 노드의 형식을 확인하려면 노드를 마우스 오른쪽 단추로 클릭하고 속성을 클릭합니다. 그러면 노드 형식이 속성 창 머리글에 표시됩니다.

  • 하위 동작 다이어그램에서 각 동작 매개 변수 노드로 들어오거나 나가는 개체의 흐름을 보여 주는 연결선을 그립니다.

동작 호출의 핀과 동작 매개 변수 매핑

사후 조건 및 사전 조건 정의

로컬 사후 조건로컬 사전 조건 속성을 사용하여 동작의 결과를 자세히 지정할 수 있습니다. 이러한 속성은 결과가 어떻게 달성되는지는 기술하지 않고 동작의 결과만 기술합니다.

이러한 속성을 설정하려면 동작을 마우스 오른쪽 단추로 클릭하고 속성을 클릭합니다. 그런 다음 속성 창에서 해당 속성에 값을 입력합니다.

로컬 사후 조건

사후 조건은 동작이 완료된 것으로 간주하기 위해 충족해야 하는 조건입니다. 예를 들어 Confirm Order 동작의 사후 조건은 다음과 같습니다.

고객이 신용 카드를 처리하는 데 필요한 완전하고 유효한 정보를 제공했습니다.

사후 조건은 동작이 발생하기 전후 상태 사이의 관계를 나타낼 수 있습니다. 예를 들면 다음과 같습니다.

이율은 이전의 2배입니다.

동작에서 처리하는 데이터의 특정한 특성을 참조하여 좀 더 형식적인 스타일로 사후 조건을 작성할 수 있습니다. 예를 들면 다음과 같습니다.

InvoiceTotal == Sum(OrderItem.MenuItem.Price)

로컬 사전 조건

사전 조건은 동작이 시작되기 위해 충족해야 하는 조건입니다. 예를 들어 Confirm Order 동작의 사전 조건은 다음과 같습니다.

고객이 메뉴에서 적어도 하나의 항목을 선택했습니다.

작업 호출 기술

일반적으로 동작은 사용자, 소프트웨어 또는 컴퓨터에 의해 수행되는 작업을 기술합니다. 그러나 작업 호출 동작을 사용하여 특정 소프트웨어 메서드 또는 함수에 대한 호출을 기술할 수 있습니다.

  • 작업 호출 동작의 이름을 설정하여 호출된 작업 및 작업을 호출한 개체 또는 구성 요소를 나타냅니다.

  • 작업 호출 동작에 입력 핀과 출력 핀을 추가하여 매개 변수 및 반환 값을 기술합니다.

  • 동작의 동기 속성을 설정하여 작업이 완료될 때까지 기다릴지 여부를 나타낼 수 있습니다.

    • 동기 속성을 false로 설정하면 호출된 작업이 완료되기 전에 다음 동작에서 흐름을 계속할 수 있음을 나타냅니다. 동작에서 출력 핀 또는 보내는 데이터 흐름을 정의하면 안 됩니다.

동시 흐름

분기 노드조인 노드를 사용하면 동시에 실행할 수 있는 동작 스레드를 두 개 이상 기술할 수 있습니다.

동시 흐름을 보여 주는 분기 및 조인 노드

분기 노드(1)는 제어 스레드를 둘 이상의 스레드로 분할합니다. 이전 동작이 끝나면 분기의 출력 쪽에 있는 모든 동작을 시작할 수 있습니다.

조인 노드(2)는 동시 스레드를 모읍니다. 조인 노드 이후의 동작은 조인 노드로 모이는 모든 동작이 완료된 후에 시작할 수 있습니다.

신호 및 이벤트 기술

프로세스에서 신호를 보내는 단계를 신호 보내기 동작으로 나타낼 수 있습니다. 또한 단계를 계속 진행하기 위해 특정 신호 또는 이벤트를 기다리는 단계를 이벤트 적용 동작으로 나타낼 수 있습니다.

예를 들어 주문을 보내는 단계를 나타낸 다음, 처리하기 전에 먼저 이 주문을 받아야 하는 다른 단계를 나타낼 수 있습니다.

신호 보내기

신호 보내기 동작(3)을 사용하여 다른 동작이나 프로세스에 일부 신호 또는 메시지가 전달됨을 나타낼 수 있습니다. 보내는 메시지의 종류를 나타내기 위해 동작 이름을 사용합니다.

  • 제어 흐름에서 다음 동작이 있는 경우 제어가 바로 전달됩니다.

  • 반환된 정보에 프로세스가 응답하는 방식을 기술하기 위해 신호 보내기 동작을 사용할 수는 없습니다. 이를 수행하려면 별도의 이벤트 적용 동작을 사용합니다.

  • 보내는 메시지와 함께 전달할 수 있는 데이터를 나타내기 위해 신호 보내기 동작에 대해 들어오는 데이터 흐름을 표시할 수 있습니다. 자세한 내용은 데이터 흐름 기술을 참조하십시오.

신호 또는 이벤트 대기

이벤트 적용 동작(4)을 사용하여 이 동작이 외부 이벤트 또는 들어오는 메시지를 기다린다는 것을 나타낼 수 있습니다. 기다리는 이벤트의 형식을 나타내기 위해 동작 이름을 사용합니다.

  • 작업이 흐름 내의 특정 지점에서 외부 이벤트나 메시지를 기다린다는 것을 나타내려면 작업의 적절한 위치에서 들어오는 흐름과 함께 이벤트 적용 동작을 그립니다.

  • 작업이 언제든지 외부 이벤트나 메시지에 응답할 수 있음을 나타내려면 들어오는 흐름 없이 이벤트 적용 동작을 그립니다. 명명된 외부 이벤트가 발생하면 작업에서 새 스레드가 시작됩니다. 이때 시작 위치는 이벤트 적용 동작입니다.

  • 신호 전송자에게 반환되는 값을 기술하기 위해 이벤트 적용 동작을 사용할 수는 없습니다. 이를 수행하려면 별도의 신호 보내기 동작을 사용합니다.

  • 동작이 신호에서 받은 데이터를 처리하는 방식을 나타내기 위해 동작에서 보내는 데이터 흐름을 표시할 수 있습니다. 출력 흐름을 둘 이상 나타내려면 이벤트 적용 동작의 역 마샬링 속성을 설정하여 동작이 들어오는 신호를 개별 구성 요소로 구문 분석한다는 것을 나타내야 합니다. 자세한 내용은 데이터 흐름 기술을 참조하십시오.

여러 데이터 흐름 기술

동작이 끝나면 둘 이상의 스레드가 나타나는 것을 보여 주기 위해 동작에서 나오는 두 개 이상의 제어 흐름 또는 개체 흐름을 그릴 수 있습니다. 제어 흐름과 개체 흐름을 함께 사용할 수 있다는 점을 제외하면 분기와 결과가 비슷합니다.

다음 예제에서는 동작에 대해 들어오고 나가는 여러 흐름을 보여 줍니다.

병렬 개체 흐름

"Customer provides details" 동작이 완료되면 "Shipment address"와 "Credit card details"라는 두 개의 개체가 생성됩니다. 이러한 두 개체는 다른 동작에 의해 처리되도록 앞으로 이동합니다.

동작을 시작하려면 먼저 모든 입력을 사용할 수 있어야 하므로 마지막 동작은 앞에 나오는 모든 동작이 완료된 후에 시작됩니다.

스트림

동작 다이어그램을 사용하면 동시에 실행되고 한 동작에서 다른 동작으로 계속 데이터를 전달하는 일련의 동작 또는 파이프라인을 기술할 수 있습니다.

다음 예제에서는 각 동작에서 개체를 생성하고 계속 작업할 수 있음을 보여 줍니다. 제어 흐름이 없으므로 각 동작은 첫 번째 개체를 받은 후 바로 시작할 수 있습니다.

이 예제의 연결선은 모두 동작 매개 변수 노드, 개체 노드, 입력 핀 또는 출력 핀에 최소한 하나 이상의 끝이 있으므로 개체 흐름입니다.

데이터 흐름

1. 이 예제에는 입력과 출력을 나타내는 동작 매개 변수 노드가 세 개 있습니다.

2. 개체 노드, 입력 핀 및 출력 핀은 버퍼를 나타낼 수 있습니다. 개체 노드의 상한 속성을 설정하여 동시에 버퍼에 있을 수 있는 개체의 수를 나타낼 수 있습니다.

3. 의사 결정 노드를 사용하면 스트림이 분할되어 개별 개체를 서로 다른 분기로 보낸다는 것을 나타낼 수 있습니다. 노드의 제목 또는 주석을 사용하여 분할 기준을 설명할 수 있습니다.

4. 분기 노드를 사용하면 개체의 복사본이 두 개 이상 생성되어 동시 처리를 위해 전송된다는 것을 나타낼 수 있습니다.

5. 조인 노드를 사용하면 두 처리 스트림이 다시 하나로 병합되는 것을 보여 줍니다.

선택 및 변환

개체 흐름의 개체가 전송되는지 선택되는지 아니면 둘 다인지를 지정할 수 있습니다. 개체 흐름은 핀 또는 개체 노드에 대한 흐름입니다.

  • 변환은 흐름에 들어가는 개체가 다른 형식으로 변환되는 방식을 기술합니다.

  • 선택은 흐름에 들어가는 개체 중 일부만 받는 동작에 전송되는 방식을 기술합니다.

이 예제에서는 변환을 보여 줍니다. 다이어그램 1의 첫 번째 동작은 출력 핀에서 우편 번호를 생성합니다. 생성된 우편 번호는 두 번째 동작의 입력 핀에 연결됩니다. 그러나 두 번째 동작에서는 주소를 완전하게 지정해야 합니다. 따라서 두 번째 동작 Address Lookup에 형식 변환이 지정됩니다. 이것은 개체 흐름의 변환 속성에서 참조됩니다. Address Lookup 동작은 들어오는 우편 번호에 대한 동작 매개 변수 노드와 보내는 전체 주소에 대한 동작 매개 변수 노드를 각각 하나씩 포함합니다.

다른 다이어그램에 정의된 개체 변환

다음과 같은 두 가지 방법으로 변환 또는 선택을 지정할 수 있습니다.

  • 입력 핀 또는 출력 핀에 주석을 연결합니다.

    • <<transformation>> 또는 <<selection>>을 사용하여 주석을 시작하면 이 설명과 일반적인 주석을 구별할 수 있습니다.
  • 별도의 동작 다이어그램에 변환 또는 선택을 자세히 지정합니다.

    • 이 방법을 사용하는 경우에는 읽는 사람이 변환이 정의되었음을 명확히 알 수 있도록 주석도 첨부하십시오.

별도의 동작 다이어그램에 변환 또는 선택을 지정하려면

  1. 변환 또는 선택 흐름을 기술할 새 동작 다이어그램을 만듭니다.

    • 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음, 새 항목동작 다이어그램을 차례로 클릭합니다. 그런 다음 변환 또는 선택 흐름에 적절한 다이어그램 이름을 지정하고 추가를 클릭합니다.
  2. 새 다이어그램에서 다음을 수행합니다.

    1. 입력 흐름과 출력 각각에 대한 두 개의 동작 매개 변수 노드를 만듭니다.

    2. 개체 흐름과 상호 연결된 동작을 만듭니다. 이것은 변환 또는 선택의 동작 방식을 보여 줍니다.

  3. 변환 또는 선택을 사용할 다이어그램에서 다음을 수행합니다.

    1. 개체 흐름, 즉 입력/출력 핀, 개체 노드 또는 동작 매개 변수 노드에 대한 연결선을 만듭니다.

    2. 개체 흐름을 마우스 오른쪽 단추로 클릭하고 속성을 클릭합니다.

    3. 변환 또는 선택 영역 속성에서 변환 또는 선택 흐름을 지정한 다이어그램을 선택합니다.

개체 노드 및 개별 입력 핀과 출력 핀에 대한 선택을 정의할 수도 있습니다. 이전 절차에서 했던 것처럼 선택 동작을 정의한 다음, 개체 노드 또는 입력 핀과 출력 핀의 선택 영역 속성을 설정하면 됩니다.

참고 항목

참조

UML 시퀀스 다이어그램: 참조

개념

방법: UML 모델 및 다이어그램 편집

UML 구성 요소 다이어그램: 참조

UML 사용 사례 다이어그램: 참조

UML 클래스 다이어그램: 참조

UML 구성 요소 다이어그램: 참조

기타 리소스

Video: Capture Business Workflows by using Activity Diagrams