일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- swift문법
- 애플 디벨로퍼 아카데미
- Swift 디자인패턴
- 제앱소
- global soop
- 애플 디벨로퍼 아카데미 21주차 회고
- react
- 숭실대
- ObservedObject
- SWIFT
- iOS 개발 오류
- 데이터베이스 공부
- useReducer
- 치지직
- sqoop
- Apple Developer Academy @ POSTECH
- 네이버 부스트캠프
- apple developer academy 후기
- 애플 아카데미 후기
- 운영체제
- ObservableObject
- Swift 문법
- Swift 기능
- 데이터베이스
- OS
- 소프트웨어분석및설계
- 앱 비교 프로젝트
- 네이버 치지직
- 애플 디벨로퍼 아카데미 후기
- StateObject
- Today
- Total
사과하는 제라스
[소프트웨어 분석 및 설계] 6. Activity Diagram 본문
목차
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의 구성요소
1. Action/Activity
Action: 더이상 분해할 수 없는 작업 단위(atomic operation)
Activity: 몇 개의 Action으로 분리될 수 있는 작업(compound, 복합 기능)
2. Initial / Final Node
initial Node: Action이나 Activity가 시작되는 노드로 하나만 존재. 검은색 원 ●으로 표현
final Node
1) Activity Final Node: 전체의 흐름이 종료되는 노드로 일반적으로 하나가 존재. 검은색 원을 포함한 원으로 표현
2) Flow Final Node: 단일 흐름이 종료되는 노드. X를 포함한 원으로 표현
3. Control Flow
: 작업이 연달아 일어나는 Sequential Control Flow가 있음. 이때 객체나 데이터는 Control Flow에 따라 전달되지는 않음.
Choice, Iteration, Closed Loop 등의 Control Flow도 존재함.
4. Decision / Merge Node
1) Decision Node
: 해당 노드로 들어온 flow는 상호 배타적(mutually exclusive)인 Guard Condition을 갖음.
2) Merge Node
: 병합 노드로 여러 flow가 들어오고 이 flow들이 병합되어 하나의 flow로 빠져 나감.
5. Parallelism - Fork/Join
1) Fork Node
: Concurrent 쓰레드들의 시작점
2) Join Node
: Concurrent 쓰레드들의 종점
-> Fork에서의 쓰레드 개수 == Join에서의 쓰레드 개수
6. Exception
Exception Handler: 예외 처리를 하는 기능으로 각 예외 처리에 대해서 Exception 타입이 주어짐.
7. Partition
: 각 participant들에게 기능들을 할당하기 위한 용도로 쓰임. Class, Component, Sub-System 등이 각 partition이 될 수 있음.
8. Object Node / Data Store
1) Object Node: 객체나 데이터가 넘어가는 것을 표현하는 것으로, Action을 취한 다음 어떤 Object를 만드는지 명시하고 싶을 때 씀.
2) Data Store: 객체나 데이터가 아닌 Database가 넘어가는 것을 표현하는 것으로 Object Node와 비슷한 기능.
9. Invocation Patterns
1) Sequential Processing
: 반복, 브랜치, 분할 등의 작업 없이 다양한 기능들의 컴포넌트들이 순서를 갖고서 실행되는 패턴.
2) Explicit Invocation
: 메뉴에서 여러 옵션들이 있고 이를 택하는 패턴. 하나의 옵션이 실행될 때는 다른 옵션들은 실행될 수 없음(synchronous invocation).
3) Closed-Loop
: 다른 개입이 있을 때까지 작업들을 반복하는 패턴
ex) 자율주행 자동차
4) Parallel Processing
: 시스템의 하나의 control flow가 여러 쓰레드로 분리되어 각 쓰레드들이 독립적으로 실행되는 패턴. 모든 쓰레드들이 수행이 끝나면 그들은 병합됨.
5) Event-based
: 이벤트가 도착하면 그에 맞는 이벤트 핸들러를 선택하여 실행해주는 패턴.
6) Timer-based
: 타이머처럼 주기적으로 해당 timer 조건에 맞을 때마다 실행해주는 패턴.
야야 그렇다면 이 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 추가
'대학 전공 공부 > 소프트웨어 분석 및 설계' 카테고리의 다른 글
[소프트웨어 분석 및 설계] 7. State Machine Diagram(상태 머신 다이어그램) (0) | 2022.10.27 |
---|---|
[소프트웨어 분석 및 설계] 5. 시퀀스 다이어그램(Sequence Diagram) (0) | 2022.10.27 |
[소프트웨어 분석 및 설계] 4. 클래스 다이어그램(Class Diagram) (0) | 2022.10.26 |
[소프트웨어 분석 및 설계] 3. Use Case Diagram 기능 모델링 (0) | 2022.10.26 |
[소프트웨어 분석 및 설계] 2. Essence of OOP (0) | 2022.10.26 |