일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 디자인패턴
- 데이터베이스
- iOS 개발 오류
- Swift 기능
- 치지직
- react
- apple developer academy 후기
- ObservedObject
- sqoop
- SWIFT
- global soop
- 소프트웨어분석및설계
- Apple Developer Academy @ POSTECH
- StateObject
- ObservableObject
- 애플 디벨로퍼 아카데미 21주차 회고
- 애플 디벨로퍼 아카데미
- 네이버 치지직
- 애플 아카데미 후기
- 데이터베이스 공부
- swift문법
- 애플 디벨로퍼 아카데미 후기
- 네이버 부스트캠프
- 제앱소
- OS
- useReducer
- 숭실대
- 운영체제
- 앱 비교 프로젝트
- Swift 문법
- Today
- Total
사과하는 제라스
[소프트웨어 분석 및 설계] 7. State Machine Diagram(상태 머신 다이어그램) 본문
[소프트웨어 분석 및 설계] 7. State Machine Diagram(상태 머신 다이어그램)
Xerath(제라스) 2022. 10. 27. 03:42목차
State Machine Diagram
: 상태 혹은 상태의 변화에 대한 행위를 나타내는 다이어그램
- 주로 전체 시스템이나 서브 시스템, 객체가 타깃이 될 수 있음.
- 객체 지향 개발에서는 객체가 타깃임.
State
- state: 일정 시간동안 타깃이 차지하는 특정 조건을 나타냄.
- current state: 현재 타깃이 남아있는 state로 단 하나만이 될 수 있음.(한번에 여러 state에 위치 불가능.)
Transition
: 현재 state의 변화. Event에 의해서 발생함.
Transition의 3요소
1) Event
: Transition을 실행하기 위한 트리거.(ex. 속도 증가 버튼 클릭)
2) Guard
: Transition을 실행하기 위한 Boolean 조건(ex. 현재 속도가 최대가 아님(즉, 증가시켜도 됨))
3) Effect
: Transition이 실행되면 일어나는 optional 행위(ex. 속도 5km/h 증가)
State 구성요소
- entry: 해당 state에 들어왔을 때 실행하는 행위
- do: 해당 state에서 실행하는 행위
- exit: 해당 state에서 나갈 때 실행하는 행위
Composite State(합성 State)
: 내부에 substate들이 여럿 있는 State.
Fork & Join
- Fork: 들어오는 Transition을 다수개의 Transition으로 나눔.
- Join: 나가는 Transition들을 merge하여 하나로 합침.
Class Diagram과 State Machine Diagram 간의 일치성
: 클래스 다이어그램에서의 Operation과 SMD의 Event는 동일한 역할을 한다.
SMD 그리는 과정
step 1. SMD로 그리려는 타깃 결정
step 2. 모든 State 결정
step 3. 모든 Event 결정
step 4. 관련된 State간의 Transition에 Event를 작성
step 5. State compartment, guard, effect 작성
step 6. 클래스 다이어그램과 STD 간에 일치하는지 확인
'대학 전공 공부 > 소프트웨어 분석 및 설계' 카테고리의 다른 글
[소프트웨어 분석 및 설계] 8. Functional and Data Components (0) | 2022.11.12 |
---|---|
[소프트웨어 분석 및 설계] 1. 소프트웨어 분석 및 설계 (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 |