관리 메뉴

사과하는 제라스

[소프트웨어 분석 및 설계] 6. Activity Diagram 본문

대학 전공 공부/소프트웨어 분석 및 설계

[소프트웨어 분석 및 설계] 6. Activity Diagram

Xerath(제라스) 2022. 10. 18. 04:52

목차

    728x90
    반응형

    Activity Diagram이란...?

    : 일련의 활동(Activity)들로 workflow(i.e.Runtime-control flow)를 표현하는 다이어그램으로 Behavior Modeling을 위한 UML Diagram 4가지 중 하나이다.

     

    - Sequence Diagram(순서 다이어그램) Activity Diagram은 시스템 전체, sub 시스템의 흐름을 표현하지만, Sequence Diagram은 주로 Use Case Set을 다룬다.

     

    추가 정보...

    - State Diagram(상태 다이어그램)과의 차이: State Diagram은 하나의 객체의 흐름을 표현함.

     

    그렇다면 이제 Activity Diagram의 구성을 알아보자!

    Activity Diagram 예시

    Activity Diagram의 구성요소

    1. Action/Activity

    Action: 더이상 분해할 수 없는 작업 단위(atomic operation)

    Activity: 몇 개의 Action으로 분리될 수 있는 작업(compound, 복합 기능)

    Activity의 예시로 보통 Activity 제목을 위처럼 좌측 상단에 적는다.

    2. Initial / Final Node

    initial Node: Action이나 Activity가 시작되는 노드로 하나만 존재. 검은색 원 ●으로 표현

    Initial Node 예시

    final Node

    1) Activity Final Node: 전체의 흐름이 종료되는 노드로 일반적으로 하나가 존재. 검은색 원을 포함한 원으로 표현

    Activity Final Node 예시

    2) Flow Final Node: 단일 흐름이 종료되는 노드. X를 포함한 원으로 표현

    Flow Final Node

    3. Control Flow

    : 작업이 연달아 일어나는 Sequential Control Flow가 있음. 이때 객체나 데이터는 Control Flow에 따라 전달되지는 않음.

    Sequential Control Flow 예시

    Choice, Iteration, Closed Loop 등의 Control Flow도 존재함.

    4. Decision / Merge Node

    1) Decision Node

    : 해당 노드로 들어온 flow는 상호 배타적(mutually exclusive)인 Guard Condition을 갖음.

    Decision Node 예시

     

     

    2) Merge Node

    : 병합 노드로 여러 flow가 들어오고 이 flow들이 병합되어 하나의 flow로 빠져 나감.

    Merge Node 예시

    5. Parallelism - Fork/Join

    1) Fork Node

    : Concurrent 쓰레드들의 시작점

    2) Join Node

    : Concurrent 쓰레드들의 종점

    -> Fork에서의 쓰레드 개수 == Join에서의 쓰레드 개수 

    Fork / Join Node 예시

    6. Exception

    Exception Handler: 예외 처리를 하는 기능으로 각 예외 처리에 대해서 Exception 타입이 주어짐. 

    Exception Handler 예시

    7. Partition

    : 각 participant들에게 기능들을 할당하기 위한 용도로 쓰임. Class, Component, Sub-System 등이 각 partition이 될 수 있음.

    Partition의 예시

    8. Object Node / Data Store

    1) Object Node: 객체나 데이터가 넘어가는 것을 표현하는 것으로, Action을 취한 다음 어떤 Object를 만드는지 명시하고 싶을 때 씀.

    Object Node 예시

    2) Data Store: 객체나 데이터가 아닌 Database가 넘어가는 것을 표현하는 것으로 Object Node와 비슷한 기능.

    Data Store 예시

    9. Invocation Patterns

    1) Sequential Processing

    : 반복, 브랜치, 분할 등의 작업 없이 다양한 기능들의 컴포넌트들이 순서를 갖고서 실행되는 패턴.

    Sequential 예시

    2) Explicit Invocation

    : 메뉴에서 여러 옵션들이 있고 이를 택하는 패턴. 하나의 옵션이 실행될 때는 다른 옵션들은 실행될 수 없음(synchronous invocation).

    Explicit Invocation 예시

    3) Closed-Loop

    : 다른 개입이 있을 때까지 작업들을 반복하는 패턴

    ex) 자율주행 자동차

    Closed Loop 예시

    4) Parallel Processing

    : 시스템의 하나의 control flow가 여러 쓰레드로 분리되어 각 쓰레드들이 독립적으로 실행되는 패턴. 모든 쓰레드들이 수행이 끝나면 그들은 병합됨.

    Parallel Processing 예시

    5) Event-based

    : 이벤트가 도착하면 그에 맞는 이벤트 핸들러를 선택하여 실행해주는 패턴.

    Event-Based 예시

    6) Timer-based

    : 타이머처럼 주기적으로 해당 timer 조건에 맞을 때마다 실행해주는 패턴.

    Timer-Based 예시

    야야 그렇다면 이 Invocation Patterns 예시를 보여줘봐...!!

    1) 스마트 거울

    -> 거울인데 이미지를 인식하고 그걸 디스플레이로 계속 보여줘야 하니까 Closed Loop를 씀.

    2) 정보 검색 및 SW 분석

    -> 계속해서 정보를 검색하고 이에 해당하는 작업을 실행하는 것이므로 Closed Loop + Event Processing을 씀.

    Activity Diagram 그리는 순서

    1) Initial, Final 노드 정의

    2) Action / Activity 추가

    3) Control Flow 추가 (Branching, Decision, Merge, Loop 등)

    4) Fork / Join Node 추가

    5) Event Source, Sink 추가

    6) Object Node, Data Node 추가

    7) Exception Handler 추가

     

    728x90
    반응형