System Engineering/SysML

SysML Reference Guide: 활동 다이어그램(Activity Diagram) - 제어 흐름 (Control Flow) 표현

habana4 2024. 11. 27. 05:54
728x90
반응형

 

1. SysML::Merge Node - 하나의 제어 흐름으로 합치기

Merge Node는 Activity Diagram에서 Control Node의 한 유형으로, 여러 개의 흐름(Control Flow)을 단순히 하나로 합치는 역할을 수행합니다.

  • 단순 합치기: Merge Node는 여러 입력 흐름 중 하나가 활성화되면, 해당 흐름을 출력으로 전달합니다.
  • 조건 없음: Merge Node는 흐름을 합치는 역할만 하며, 조건 평가나 선택 기능은 없습니다.
  • 흐름 전달: Merge Node를 통해 합쳐진 단일 흐름은 다음 활동(Activity)이나 노드로 이어집니다.

Merge Node

1-1. 입력과 출력

  • 다중 입력: 여러 개의 입력(Control Flow)을 가질 수 있음.
  • 단일 출력: 입력 흐름을 하나로 병합해 단일 출력으로 전달.

1-2. 시각적 표현

  • Merge Node는 다이아몬드 모양(◇)으로 나타나며, 여러 입력 화살표와 하나의 출력 화살표를 가집니다.
  • Decision Node와 동일한 모양이지만, 입력 개수와 출력 개수로 구분됩니다.

1-3. 조건 평가 없음

  • Merge Node 자체는 조건을 평가하거나 선택하지 않고 단순히 흐름을 합치는 역할만 합니다.

1-4. Merge Node의 역할

  • 다양한 흐름 병합: 여러 경로로 나뉘었던 활동 흐름을 다시 하나의 공통 경로로 통합합니다. 예를 들어, 조건에 따라 분리된 흐름이 특정 단계에서 동일한 프로세스를 공유해야 할 때 사용됩니다.
  • 활동 흐름 단순화: 다이어그램의 복잡성을 줄이고 가독성을 높이기 위해 사용됩니다. 또한 병합 노드를 활용하면 분기 후 발생하는 여러 경로를 간단히 정리할 수 있습니다.
  • 조건 분기와 함께 사용: Decision Node에서 조건에 따라 나뉜 흐름을 Merge Node로 병합하여 다시 하나의 흐름으로 처리합니다. 이를 통해 다이어그램 내에서 조건부 흐름과 병합 흐름을 명확히 표현할 수 있습니다.

2. SysML::Decision Node - 제어 흐름을 여러 경로로 분기

Decision Node는 Activity Diagram에서 Control Node의 일종으로, 하나의 흐름(Control Flow)을 조건에 따라 여러 경로로 분기시키는 역할을 수행합니다.

  • 조건 분기: Decision Node는 입력된 흐름에 대해 Guard Condition(경계 조건)을 평가하여 어떤 경로로 진행할지 결정합니다.
  • 단일 입력, 다중 출력: 하나의 입력 흐름을 받아 여러 개의 출력 흐름 중 하나를 활성화합니다.
  • 조건 기반 제어: Decision Node는 조건을 기반으로 프로세스의 진행 방향을 제어하는 핵심적인 도구입니다.

SysML::Decision Node

2-1. 입력과 출력

  • 하나의 입력 흐름(Control Flow)과 여러 개의 출력 흐름(Control Flow)을 가집니다.
  • 출력 흐름 각각은 Guard Condition으로 제어됩니다.

2-2. 시각적 표현

  • 다이아몬드 모양(◇)으로 나타납니다.
  • 단일 입력 화살표와 다중 출력 화살표를 가지며, Guard Condition이 출력 흐름에 표시됩니다.

2-3. Guard Condition

  • Guard Condition은 UML 표기법으로 대괄호([]) 안에 작성됩니다.
  • 예: [x > 10], [x <= 10]

2-4. 조건의 상호 배타성

  • Guard Condition은 상호 배타적이어야 하며, 동시에 여러 경로가 활성화되지 않아야 합니다.

2-5. Decision Node의 역할

  • 조건에 따른 흐름 분기: 특정 조건에 따라 실행 흐름을 여러 가지 경로로 나눕니다. 또한 각 출력 흐름에는 Guard Condition이 정의되어 있으며, 조건을 만족하는 흐름만 활성화됩니다.
  • 프로세스 제어: Decision Node를 사용하면 복잡한 조건 논리를 간단히 표현할 수 있습니다. 분기된 흐름은 이후의 단계에서 서로 다른 작업(Activity)을 수행하거나 상태를 나타냅니다.
  • Default Flow 설정: 모든 Guard Condition이 만족되지 않는 경우를 대비해 Default Flow를 설정할 수 있습니다. Default Flow는 [else]로 표현되며, 조건이 없는 기본 경로로 설정됩니다.

3. SysML::Join Node - 여러 흐름을 병렬로 결합

Join Node는 Activity Diagram에서 Control Node의 한 유형으로, 여러 흐름(Control Flow)을 병렬로 결합하여 하나의 출력 흐름으로 통합하는 역할을 수행합니다.

  • 병렬 흐름의 결합: 동시에 실행되던 여러 작업(Activity)의 흐름이 완료된 후, 하나의 공통 흐름으로 이어질 때 사용됩니다.
  • 동기화: 여러 흐름이 모두 완료될 때까지 기다린 후 다음 단계를 실행합니다.
  • 다중 입력, 단일 출력: 여러 개의 입력 흐름을 받고, 하나의 출력 흐름을 생성합니다.

SysML::Join Node

3-1. 입력과 출력

  • 다중 입력: 여러 개의 입력 흐름을 받을 수 있습니다.
  • 단일 출력: 모든 입력 흐름이 완료된 후 하나의 출력 흐름을 생성합니다.

3-2. 시각적 표현

  • Join Node는 굵은 가로선 또는 세로선으로 나타나며, 입력 화살표가 여러 개, 출력 화살표가 하나인 구조를 가집니다.

3-3. 조건 없음

  • Join Node는 입력 흐름의 조건이나 상태를 평가하지 않고, 단순히 모든 흐름이 완료되었는지만 확인합니다.

3-4. 논리적 동작

  • 모든 입력 흐름이 활성화되었을 때만 출력 흐름이 활성화됩니다.

3-5. Join Node의 역할

  •  병렬 작업의 동기화: 여러 병렬 작업(Activity)이 완료될 때까지 기다렸다가 다음 작업을 진행하도록 제어합니다. 또한 병렬 작업이 모두 완료되지 않으면 Join Node는 출력 흐름을 활성화하지 않습니다.
  • 다중 흐름 병합: 여러 경로로 나뉘어진 흐름을 다시 하나로 결합하여 다음 단계를 실행합니다. 이를 통해 복잡한 다이어그램의 흐름을 간단하게 정리할 수 있습니다.
  • 활동 프로세스 제어: Join Node는 활동(Activity) 간의 종속성을 명확히 하고, 병렬 작업 완료 후 실행 흐름을 일관되게 유지합니다.

4. SysML::Fork Node - 하나의 흐름을 병렬 흐름으로 분리

Fork Node는 Activity Diagram에서 Control Node의 한 유형으로, 하나의 입력 흐름(Control Flow)을 여러 병렬 흐름으로 분리하는 역할을 합니다.

  • 병렬 작업 생성: Fork Node는 단일 입력 흐름을 여러 경로로 나누어 병렬 작업(Activity)을 동시에 수행할 수 있도록 합니다.
  • 다중 출력: 하나의 입력을 받아 여러 개의 출력 흐름을 생성합니다.
  • 동시 실행 보장: 모든 출력 흐름은 병렬로 동시에 활성화됩니다.

SysML::Fork Node

4-1. 입력과 출력

  • 단일 입력: 하나의 입력 흐름을 가집니다.
  • 다중 출력: 여러 개의 출력 흐름을 생성합니다. 모든 출력은 병렬로 동시에 활성화됩니다.

4-2. 시각적 표현

  • Fork Node는 굵은 가로선 또는 세로선으로 나타나며, 입력 화살표가 하나, 출력 화살표가 여러 개인 구조를 가집니다.

4-3. 조건 없음

  • Fork Node는 조건 없이 모든 출력 흐름을 동시에 활성화합니다.

4-4. Fork Node의 역할

  • 병렬 흐름의 시작: 단일 입력 흐름을 여러 병렬 흐름으로 분리하여 동시에 실행되는 작업을 생성합니다. 예: 데이터 처리와 백업 작업을 동시에 수행.
  • 프로세스 병렬화: 복잡한 프로세스의 작업 효율을 높이기 위해 여러 작업을 병렬로 실행할 수 있습니다. 예: 생산 라인에서 여러 조립 작업을 동시에 시작.
  • 활동 간 의존성 분리: Fork Node는 병렬로 실행되는 작업이 서로 독립적으로 실행되도록 보장합니다.

5. SysML::Initial Node - 활동의 시작 지점

Initial Node는 Activity Diagram에서 Control Node의 한 유형으로, 활동(Activity)의 시작 지점을 나타냅니다.

  • 활동 시작: Initial Node는 Activity Diagram에서 흐름이 시작되는 지점을 명확히 지정합니다.
  • 단일 출력: Initial Node는 항상 단일 출력(Control Flow)만 가질 수 있으며, 여러 개의 출력 흐름은 허용되지 않습니다.
  • 시각적 표현: Initial Node는 검은색 원(circle)으로 표시됩니다.

SysML::Initial Node

5-1. 입력과 출력

  • 입력 없음: Initial Node는 입력 흐름을 가질 수 없습니다.
  • 단일 출력: 항상 하나의 출력 흐름만을 가질 수 있습니다.

5-2. 시각적 표현

  • Initial Node는 검은색 원으로 표시되며, 다이어그램의 가장 왼쪽 또는 위쪽에 배치되는 것이 일반적입니다.

5-3. 다이어그램의 유일성

  • 하나의 Activity Diagram에는 하나의 Initial Node만 존재할 수 있습니다.
  • 활동 흐름이 여러 개로 나뉘더라도 시작점은 항상 단일합니다.

5-4. Initial Node의 역할

  • 활동 흐름의 시작점: Diagram 상에서 작업의 시작 위치를 정의합니다. 또한 Initial Node를 통해 활동(Activity)의 흐름이 어디서 시작되는지를 명확히 알 수 있습니다.
  • 실행 흐름 활성화: Initial Node는 첫 번째 작업(Activity)을 실행하기 위해 흐름을 활성화합니다. 활동 다이어그램의 첫 번째 노드로 사용되어, 활동의 첫 단계로 연결됩니다.
  • 다이어그램 구조 명확화: Initial Node를 통해 Diagram의 시작 지점을 명확히 하여 가독성과 이해도를 높입니다.

 

6. SysML::Activity Final Node - 활동의 전체 실행을 종료

Activity Final Node는 Activity Diagram에서 Control Node의 한 유형으로, 활동(Activity)의 전체 실행을 종료하는 데 사용됩니다.

  • 활동 종료 지점: Activity Diagram에서 작업이 모두 끝나는 지점을 명시합니다.
  • 전체 흐름 종료: Activity Final Node에 도달하면, 다이어그램 내의 모든 흐름이 즉시 종료됩니다.
  • 시각적 표현: 이중 원(circle)으로 표현되며, 바깥쪽 원 안에 채워진 검은색 원이 포함된 형태입니다.

SysML::Activity Final Node

6-1. 입력과 출력

  • 입력 가능: 여러 입력(Control Flow)을 받을 수 있습니다.
  • 출력 없음: Activity Final Node에서 실행 흐름은 종료되므로 출력 흐름이 없습니다.

6-2. 시각적 표현

  • 이중 원(◎)으로 표시됩니다. 바깥쪽 원은 흰색, 안쪽 원은 검은색으로 채워져 있습니다.

6-3. 전체 흐름 종료

  • Activity Final Node에 도달하면 다른 모든 실행 흐름도 즉시 종료됩니다. 병렬 작업이 진행 중이더라도 중단됩니다.

6-4. Activity Final Node의 역할

  • 활동 흐름 종료: 활동(Activity) 또는 프로세스가 완료되었음을 나타냅니다. 또한 ㅇ다이어그램 내의 모든 실행 흐름이 Activity Final Node에 도달하는 순간 즉시 중단됩니다.
  • 전체 실행 중단: Activity Final Node는 다이어그램 내의 병렬 흐름을 포함한 모든 실행을 중단합니다. 이는 특정 작업이 완료된 후 전체 프로세스의 종료를 보장합니다.
  • 다이어그램의 구조적 명확성: Activity Diagram의 종료 지점을 명확히 정의하여 가독성과 논리성을 향상시킵니다.

 

7. SysML::Flow Final Node - 특정 흐름을 종료

Flow Final Node는 Activity Diagram에서 Control Node의 한 유형으로, 특정 흐름(Control Flow)을 종료하는 데 사용됩니다.

  • 개별 흐름 종료: Flow Final Node는 특정 실행 흐름만 종료시키며, 다이어그램 내의 다른 흐름에는 영향을 미치지 않습니다.
  • 시각적 표현: Flow Final Node는 작은 원 안에 X(⊗)로 표현됩니다.

SysML::Flow Final Node

7-1. 입력과 출력

  • 입력 가능: 여러 입력(Control Flow)을 받을 수 있습니다.
  • 출력 없음: Flow Final Node는 입력된 흐름을 종료하며 출력 흐름은 없습니다.

7-2. 시각적 표현

  • Flow Final Node는 작은 원 내부에 X(⊗)가 그려진 형태로 나타납니다.

7-3. 범위

  • 특정 흐름만 종료되며, 다른 병렬 흐름에는 영향을 미치지 않습니다.

7-4. Flow Final Node의 역할

  • 특정 흐름의 종료: 특정 작업(Activity)이나 흐름이 더 이상 필요하지 않을 때 해당 경로를 종료합니다. 다른 병렬 흐름이나 작업에는 영향을 미치지 않고, 지정된 경로만 종료합니다.
  • 병렬 작업 유지: Flow Final Node를 통해 병렬로 실행 중인 다른 흐름을 유지하면서 특정 흐름만 종료할 수 있습니다. 병렬 작업에서 일부 경로를 종료해도 전체 활동(Activity)은 계속 진행됩니다.
  • 다이어그램의 가독성 향상: 불필요한 흐름을 명확히 종료함으로써 다이어그램의 가독성을 높이고 논리적 오류를 방지합니다.

 

8. SysML::Decision Input Behavior Node - 추가적인 계산 또는 입력 처리를 수행

Decision Input Behavior NodeDecision Node와 함께 사용되어, 흐름을 분기할 때 필요한 추가적인 계산 또는 입력 처리를 수행하는 노드입니다.

  • 보조 역할: Decision Node 자체에서 분기를 결정하는 조건을 평가할 수 있지만, 복잡한 계산이나 조건 처리가 필요한 경우 Decision Input Behavior를 사용해 추가 로직을 실행합니다.
  • 행동(Behavior)의 정의: UML/SysML에서 행동은 특정 로직을 실행하거나 입력 데이터를 처리하는 작은 단위의 프로세스를 의미합니다.
  • 조건 평가 지원: Decision Input Behavior는 Decision Node의 Guard Condition 평가를 도와 분기를 더 정확하게 제어합니다.

SysML::Decision Input Behavior Node

8-1. Decision Node와의 연결

  • Decision Input Behavior는 Decision Node에 연결되어 Guard Condition 값을 계산하거나 평가를 지원합니다.

8-2. 행동(Behavior)의 정의

  • Decision Input Behavior는 데이터 처리, 수식 계산, 외부 데이터 입력 등 다양한 작업을 수행할 수 있습니다.

8-3. 시각적 표현

  • Decision Input Behavior는 별도로 시각적으로 나타나지 않으며, Decision Node에 포함된 행동(Behavior)으로 정의됩니다.

8-4. Guard Condition과의 관계

  • Decision Input Behavior에서 생성된 값은 Decision Node의 Guard Condition에 사용됩니다.

8-5. Decision Input Behavior Node의 역할

  • 복잡한 조건 처리: Decision Node에서 단순 조건만 평가하는 대신, Decision Input Behavior를 통해 복잡한 조건 계산이나 데이터 변환을 수행할 수 있습니다. 예: 사용자 입력 데이터를 사전 처리한 뒤 분기 조건으로 활용.
  • 조건 계산 지원: Decision Input Behavior는 Guard Condition에 사용될 값을 계산하거나 제공하는 역할을 합니다. 예: 수식을 계산하거나 데이터를 필터링하여 조건 분기에 필요한 데이터를 생성.
  • 분기 로직 단순화: 복잡한 로직을 Decision Node에 직접 포함하지 않고, Decision Input Behavior에서 처리하도록 분리해 다이어그램을 간결하고 이해하기 쉽게 만듭니다.
  • 다이어그램의 유연성 증가: Decision Input Behavior는 Guard Condition의 값을 외부 요소나 데이터 흐름에 따라 동적으로 결정할 수 있게 합니다.
728x90
반응형