1. SysML::Call Action Node - 다른 행동이나 연산을 호출/실행
Call Action Node는 다른 행동(Behavior)이나 연산(Operation)을 호출하여 실행하는 Action Node의 한 유형입니다. 이는 SysML Activity Diagram에서 특정 작업(Task)이나 행동(Behavior)을 재사용하거나 실행하는 데 사용됩니다.
- 행동 호출: Call Action Node는 다른 활동(Activity), 작업(Task), 함수(Function), 또는 클래스의 메서드(Operation)을 호출하여 실행합니다.
- 재사용 가능: Call Action Node를 사용해 이미 정의된 행동을 호출함으로써 설계의 재사용성을 높입니다.
- 입출력 지원: Call Action Node는 데이터를 입력받아 행동에 전달하며, 실행 결과를 출력으로 반환할 수 있습니다.
1-1. 호출 대상
- Call Behavior Action: 다른 행동(Behavior)이나 활동(Activity)을 호출합니다.
- Call Operation Action: 객체(Object) 또는 클래스(Class)에 정의된 메서드(Method)나 연산(Operation)을 호출합니다.
1-2. 입출력 핀
- 입력 핀(Input Pin): 호출된 행동에 전달할 데이터를 받습니다.
- 출력 핀(Output Pin): 호출된 행동의 실행 결과를 반환합니다.
1-3. 재사용성
- 이미 정의된 행동을 재사용하므로 중복 작업을 줄이고 설계의 효율성을 높입니다.
1-4. 시각적 표현
- 사각형 안에 호출 대상의 이름이 포함되어 있으며, 행동 이름이 명확히 표시됩니다.
- 예: Calculate Total, Process Payment
1-5. Call Action Node의 역할
- 행동(Behavior) 호출: 다른 활동(Activity)이나 작업(Task)을 호출하여 실행 흐름을 확장합니다. (예: 계산 함수 호출, 외부 API 호출, 또는 시스템의 다른 서브프로세스를 실행)
- 작업의 모듈화: 복잡한 작업을 하위 행동으로 분리하여 설계의 이해도를 높이고, 다이어그램의 복잡성을 줄입니다.
- 입출력 데이터 처리: Call Action Node는 입력 데이터(Input Pin)를 전달하고 실행 결과(Output Pin)를 반환하여, 작업 간 데이터를 효과적으로 주고받을 수 있습니다.
- 다이어그램 간 연결: Call Action Node는 다른 활동(Activity)을 호출하거나 외부 작업과 연결하여 다이어그램 간 통합을 돕습니다.
2. SysML::Central Buffer Node - 작업간 데이터를 임시로 저장/관리
Central Buffer Node는 SysML(Activity Diagram)에서 Object Node의 한 유형으로, 작업 간 데이터를 임시로 저장하거나 관리하는 데 사용됩니다.
- 데이터 임시 저장소: Central Buffer Node는 작업(Action) 간 데이터를 임시로 저장하여 흐름이 원활하게 이어지도록 합니다.
- 중앙 데이터 관리: 여러 작업에서 데이터를 주고받을 때 데이터의 중앙 저장소 역할을 수행합니다.
- 비순차적 데이터 처리: 데이터가 처리 순서를 기다리지 않고 비동기적으로 처리될 수 있도록 지원합니다.
2-1. 시각적 표현
- 사각형 모양: Object Node처럼 사각형으로 표시되며, 내부에 중앙 버퍼의 이름이 명시됩니다.
- 중앙 버퍼임을 나타내기 위해 이름 위에 <<centralBufferNode>>라는 표기가 붙습니다.
2-2. 데이터의 중간 상태
- Central Buffer Node는 데이터가 중간에 머무는 상태를 표현하며, 데이터가 즉시 소비되지 않을 수 있음을 시각적으로 나타냅니다.
2-3. 비동기적 처리
- 데이터를 임시 저장하고 필요에 따라 분배하므로, 작업의 순서가 엄격히 정의되지 않아도 됩니다.
2-4. 여러 작업 간 연결
- 여러 작업(Action) 간 데이터를 공유하거나 병렬 작업에서 데이터를 처리하기 위한 허브로 사용됩니다.
2-5. Central Buffer Node의 역할
- 작업 간 데이터 전달: Central Buffer Node는 작업(Action) 간 데이터를 연결하여 다이어그램의 데이터 흐름을 명확히 표현합니다.
- 비동기 데이터 관리: 데이터를 즉시 처리하지 않고 임시로 저장하여 작업 간의 비동기적 데이터 흐름을 지원합니다. (예: 데이터가 생성되는 즉시 소비되지 않고, 소비 작업이 준비될 때까지 버퍼에 대기)
- 데이터 중복 방지: 동일한 데이터를 여러 작업에서 사용해야 하는 경우, Central Buffer Node는 데이터를 중복 생성하지 않고 공유하는 역할을 합니다.
- 데이터 흐름 안정화: 데이터 생성 속도와 소비 속도가 다를 때, 데이터를 임시로 저장하여 시스템 동작을 안정화합니다.
3. SysML::Datastore Node - 데이터를 영구적으로 저장/읽기/쓰기
Datastore Node는 SysML(Activity Diagram)에서 Object Node의 한 유형으로, 데이터를 영구적으로 저장하거나 읽고 쓰는 작업을 표현하는 노드입니다.
- 영구 데이터 저장소: Datastore Node는 파일 시스템, 데이터베이스, 클라우드 스토리지 등 데이터를 영구적으로 저장하는 시스템을 나타냅니다.
- 데이터의 영구적 접근: 데이터를 읽거나 저장할 수 있으며, 작업(Action) 간 데이터 교환에 사용됩니다.
- 데이터의 상태 표현 가능: 저장된 데이터의 상태를 나타내거나, 상태 변경을 시각적으로 표현할 수 있습니다.
3-1. 시각적 표현
- 사각형 모양: 일반 Object Node와 유사한 사각형으로 표현되며, 아래쪽에 작은 2개의 선이 추가되어 Datastore Node임을 나타냅니다.
3-2. 데이터 흐름
- 데이터는 입력 화살표(Write)로 저장되거나, 출력 화살표(Read)로 검색됩니다.
3-3. 영구 저장
- Datastore Node는 데이터를 영구적으로 저장하므로, 다이어그램의 데이터 흐름을 단순히 임시로 저장하는 Central Buffer Node와는 다릅니다.
3-4. 상태 정보
- 저장된 데이터의 상태를 {}를 사용해 표현할 수 있습니다.
- 예: Order {Shipped}, Customer Data {Updated}.
3-5. Datastore Node의 역할
- 영구 데이터 관리: 작업(Action)에서 생성된 데이터를 영구적으로 저장하거나 기존 데이터를 검색하여 재사용할 수 있습니다. (예: 주문 기록 저장, 고객 정보 조회)
- 작업 간 데이터 전달: 작업 간 데이터를 연결하는 역할을 하며, 한 작업에서 저장된 데이터를 다른 작업에서 읽도록 지원합니다. (예: 재고 업데이트 후 재고 데이터를 다른 작업에서 사용)
- 데이터 읽기 및 쓰기: 데이터를 저장소에 저장(쓰기)하거나, 저장된 데이터를 검색(읽기)하는 작업을 나타냅니다. (저장된 데이터는 다른 작업이나 외부 시스템에서도 접근 가능)
- 데이터 상태 추적: 데이터가 저장될 때 특정 상태를 가질 수 있으며, 상태를 시각적으로 표현하여 데이터 흐름을 명확히 합니다. (예: Order {Processed}, Inventory {Updated})
4. SysML::Control Operator Action Node - 제어 흐름 조작
Control Operator Action Node는 SysML(Activity Diagram)에서 Action Node의 한 유형으로, 제어 흐름(Control Flow)을 조작하거나 제어 로직을 수행하는 노드입니다.
- 제어 로직 수행: 특정 조건이나 논리적 연산을 수행하여 제어 흐름을 조정하는 역할을 합니다.
- 조건 기반 제어: 입력 데이터를 처리하거나 조건을 평가해 작업 흐름을 분기 또는 선택하도록 지원합니다.
- 흐름의 유연성 확보: 제어 흐름의 논리를 명확히 표현하며, 복잡한 동작을 관리할 수 있도록 설계됩니다.
4-1. 입출력 핀
- 입력 핀(Input Pin): 데이터를 입력받아 처리하거나 조건을 평가합니다.
- 출력 핀(Output Pin): 처리 결과를 다음 작업으로 전달하거나 Guard Condition 평가에 사용됩니다.
4-2. 조건 연산 수행
- 논리적 또는 수학적 연산을 수행하여 입력 데이터를 처리하거나 제어 흐름을 조정합니다.
4-3. 시각적 표현
- 일반 Action Node와 유사한 사각형으로 표현되며, 노드 내부에 수행할 연산 또는 제어 작업의 이름이 명시됩니다.
- 예: Evaluate Condition, Filter Data
4-4. 결합 가능성
- Control Operator Action Node는 Decision Node, Merge Node 등과 결합하여 복잡한 제어 흐름을 구현할 수 있습니다.
4-5. Control Operator Action Node의 역할
- 조건 평가 및 제어: 입력된 데이터나 제어 흐름을 분석하여 조건에 따라 작업(Action)을 활성화하거나 분기합니다. (예: 특정 값 비교, 논리 연산 수행)
- 데이터 기반 흐름 조정: 입력 데이터를 처리하여 제어 흐름을 조정하거나, Guard Condition 평가에 필요한 데이터를 생성합니다. (예: 데이터 필터링, 값 계산)
- 복잡한 제어 논리 관리: 복잡한 제어 논리를 단순화하여 다이어그램의 흐름을 명확히 합니다. (예: Decision Node와 결합하여 Guard Condition에 필요한 값을 생성)
- 흐름의 유연성 증가: 작업(Action) 간의 흐름을 동적으로 제어할 수 있으며, 조건에 따라 다른 동작을 수행하도록 지원합니다.
5. SysML::Accept Event Action Node - 특정 이벤트 발생까지 대기
Accept Event Action Node는 SysML(Activity Diagram)에서 Action Node의 한 유형으로, 특정 이벤트(Event)가 발생하기를 기다리고 이를 처리하는 작업을 나타냅니다.
- 이벤트 수신: 특정 이벤트(예: 신호, 메시지, 시간 경과 등)를 수신하고, 이를 기반으로 작업 흐름을 시작하거나 제어합니다.
- 이벤트 기반 실행: Accept Event Action Node는 이벤트가 발생하지 않으면 대기 상태를 유지하며, 이벤트가 발생한 경우 실행 흐름을 활성화합니다.
- 외부 입력과 상호작용: 외부 시스템, 사용자, 센서 등에서 발생하는 이벤트를 다룰 때 사용됩니다.
5-1. 입출력 데이터
- 입력 없음: Accept Event Action Node는 이벤트를 수신하기 때문에 입력 핀이 필요하지 않습니다.
- 출력 가능: 이벤트가 발생한 후 관련 데이터를 출력으로 전달할 수 있습니다.
5-2. 이벤트 유형
- 시간 이벤트(Time Event): 특정 시간이 지났을 때 발생.
- 신호 이벤트(Signal Event): 다른 작업이나 시스템에서 신호를 보낼 때 발생.
- 메시지 이벤트(Message Event): 외부 시스템 또는 사용자로부터 메시지를 받을 때 발생.
5-3. 시각적 표현
- Accept Event Action Node는 사각형으로 표현되며, 사각형 내부에 수신할 이벤트의 이름이 명시됩니다.
- 예: Accept Order Signal, Receive User Input
5-4. Accept Event Action Node의 역할
- 이벤트 대기: 특정 조건이 충족되거나 이벤트가 발생할 때까지 작업 흐름을 멈추고 기다립니다. (예: 사용자 입력을 기다림, 시스템 알림을 대기)
- 작업 흐름 제어: 이벤트를 수신한 후, 실행 흐름을 다음 단계로 진행하거나 특정 작업을 수행합니다. (예: 신호가 도착하면 관련 작업을 실행)
- 비동기적 처리: 외부에서 발생하는 이벤트를 비동기적으로 처리할 수 있습니다. 이벤트가 발생하면 대기 상태에서 벗어나 실행 흐름을 활성화합니다.
- 시스템 상호작용: Accept Event Action Node는 외부 시스템, 사용자, 센서, 또는 다른 프로세스와의 상호작용을 모델링합니다.
6. SysML::Accept Time Event Node - 특정 시간 이벤트 발생까지 대기
Accept Time Event Node는 SysML(Activity Diagram)에서 Action Node의 한 유형으로, 특정 시간 이벤트(Time Event)가 발생하기를 기다리고 이를 처리하는 작업을 나타냅니다.
- 시간 기반 대기: 특정 시간이 지나거나, 일정한 시간이 흐른 후 실행 흐름을 활성화합니다.
- 시간 이벤트 처리: Accept Time Event Node는 시간 조건(예: 타이머, 특정 시점 등)에 따라 이벤트를 수신합니다.
- 비동기적 실행: 시간 조건이 충족될 때까지 대기 상태를 유지하며, 조건 충족 후 실행 흐름을 활성화합니다.
6-1. 입출력 핀
- 입력 없음: Accept Time Event Node는 시간 조건을 기다리므로 입력 핀이 필요하지 않습니다.
- 출력 가능: 시간 이벤트 발생 후, 실행 흐름을 다음 작업으로 전달할 수 있습니다.
6-2. 시간 조건
- 특정 시간(Time): 절대적인 특정 시점.
- 시간 경과(Duration): 일정 시간이 흐른 후.
- 예: After 10 seconds, At 12:00 PM.
6-3. 시각적 표현
- Accept Time Event Node는 사각형으로 표현되며, 내부에 시간 조건이 명시됩니다.
- 예: Wait for 10 seconds, Trigger at 12:00 PM.
6-4. 대기 동작
- Accept Time Event Node는 시간 조건이 충족될 때까지 실행 흐름을 멈춥니다.
6-5. Accept Time Event Node의 역할
- 시간 이벤트 대기: 특정 시간이 도달하거나 타이머가 종료될 때까지 실행 흐름을 대기 상태로 유지. (예: 타이머가 종료되면 특정 작업 실행)
- 시간 기반 작업 실행: 특정 시간 조건을 만족한 후 다음 작업(Action)을 실행. (예: 정해진 시간 후 알림 발송)
- 비동기적 흐름 제어: Accept Time Event Node는 다른 실행 흐름과 독립적으로 동작하여, 비동기적인 시간 기반 작업을 지원.
- 프로세스의 시간적 제어: 작업의 실행 순서를 시간 조건에 따라 제어하며, 프로세스의 타이밍 조정 역할을 수행.
7. SysML::Send Signal Action - 특정 신호를 외부로 전송
Send Signal Action은 SysML(Activity Diagram)에서 Action Node의 한 유형으로, 특정 신호(Signal)를 외부로 전송하는 작업을 나타냅니다.
- 신호 전송: Send Signal Action은 시스템 내부 또는 외부로 신호를 보내 특정 이벤트를 트리거하거나, 다른 활동(Activity)이나 구성 요소(Component)를 활성화합니다.
- 비동기적 통신: 신호는 비동기적으로 전송되며, 수신 측에서 처리될 때까지 기다리지 않습니다.
- 신호 데이터 포함 가능: 전송되는 신호에 데이터를 포함시켜 특정 정보를 전달할 수 있습니다.
7-1. 입출력 핀
- 입력 핀(Input Pin): 신호에 포함될 데이터를 받습니다.
- 출력 없음: 신호는 비동기적으로 전송되므로 출력 핀이 없습니다.
7-2. 신호 객체(Signal Object)
- 전송되는 신호는 SysML에서 정의된 신호 객체(Signal)로 모델링됩니다. 신호 객체는 전달할 데이터와 함께 의미를 정의합니다.
7-3. 비동기성
- Send Signal Action은 신호를 전송한 뒤 수신 측의 응답을 기다리지 않고 즉시 다음 작업으로 진행합니다.
7-4. 시각적 표현
- Send Signal Action은 사각형 내부에 <<sendSignal>> 표기가 추가되며, 전송할 신호의 이름이 명시됩니다.
- 예: <<sendSignal>> Alarm, <<sendSignal>> UpdateStatus
7-5. Send Signal Action의 역할
- 신호 전송: 특정 이벤트를 트리거하거나, 다른 시스템이나 구성 요소에 명령을 전달합니다. (예: 센서 데이터 알림, 작업 완료 신호)
- 비동기적 상호작용: 다른 작업(Action)이나 구성 요소가 독립적으로 실행될 수 있도록 비동기적인 상호작용을 지원합니다.
- 정보 전달: 신호에 데이터를 포함하여 다른 활동(Activity)이나 구성 요소에 필요한 정보를 전달합니다. (예: 상태 업데이트, 명령 실행)
- 시스템 간 상호작용: 내부 또는 외부 시스템 간 신호를 주고받아, 시스템 간 통신 및 협력을 모델링합니다.
8. SysML::Primitive Action Node - 단순 작업 또는 행동
Primitive Action Node는 SysML(Activity Diagram)에서 가장 기본적인 Action Node로, 시스템이 수행할 수 있는 단순한 작업 또는 행동을 나타냅니다. 복잡한 행동이나 서브프로세스 호출 없이, 개별적인 작업 단위를 모델링할 때 사용됩니다.
- 단일 작업 표현: Primitive Action Node는 하나의 작업 또는 동작을 수행하며, 더 작은 작업으로 세분화되지 않습니다.
- 구체적 작업 정의: 작업의 입력, 처리, 출력이 명확히 정의된 간단한 행동을 표현합니다.
- 확장 가능성: Primitive Action Node는 복잡한 행동의 구성 요소로 사용될 수 있습니다.
8-1. 입출력 핀
- 입력 핀(Input Pin): 작업에 필요한 데이터를 입력받습니다.
- 출력 핀(Output Pin): 작업 결과를 출력하거나 다음 작업으로 전달합니다.
8-2. 단순성
- Primitive Action Node는 하나의 작업만을 수행하며, 추가적인 서브프로세스나 복잡한 호출이 없습니다.
8-3. 시각적 표현
- Primitive Action Node는 사각형으로 표현되며, 수행할 작업의 이름이 명시됩니다.
- 예: Assign Value, Initialize Data
8-4. 확장 가능성
- Primitive Action Node는 다른 행동 노드(Call Action, Send Signal Action 등)와 결합하여 더 복잡한 작업 흐름을 형성할 수 있습니다.
8-5. Primitive Action Node의 역할
- 기본 작업 수행: 시스템이 처리해야 할 단순 작업(예: 값 할당, 데이터 수정, 단순 연산 등)을 명확히 표현합니다. (예: 변수에 값 저장, 특정 데이터 초기화)
- 복잡한 행동의 구성 요소: 복잡한 작업을 작은 단위로 나눌 때, Primitive Action Node는 행동의 세부 요소를 나타냅니다. (예: 데이터베이스 읽기, 메시지 전송, 상태 변경)
- 명확한 데이터 흐름 표현: Primitive Action Node는 입력과 출력을 명확히 정의하여 데이터의 흐름을 쉽게 파악할 수 있도록 합니다.
- 프로세스 가독성 향상: 시스템의 전체 동작 중 간단한 작업을 시각적으로 분리하여 다이어그램의 가독성을 높입니다.