본문 바로가기
CS/소프트웨어 공학 에센셜

동적 모델링

by k-mozzi 2021. 6. 3.
반응형
Preface

 

이번 장은 이전의 내용들 보다 많은 시간이 소요됐다.

다양한 표들의 작성 방법을 익히고 각각의 차이점을 이해하는 것이 생각보다 어렵고 복잡했다.

 

항상 학습에 피드백을 주는 친구는 나의 하소연을 들은 후 pm을 계획하는 것이 아니라면 해당 개념 전체를 이해하려고 하기 보단 단순히 훑어보는 식으로 보는 것이 좋다고 말했다.

 

그러나 무슨 일이든 꼼꼼히 하고자 하는 성격 탓에 괜한 오기가 생겨 불필요한 스트레스를 받는 것 같다.

 

이번 일을 계기로 모든 일을 완벽히 처리하고자 하는 성격을 버리고 나에게 꼭 필요한 것들의 우선순위를 정하여 효율적이고 생산적으로 업무를 처리할 수 있는 사람으로 성장하고자 한다.

 

마지막으로 시간이 지나 간단한 웹사이트 혹은 어플리케이션을 구현할 수 있는 단계에 오른다면 꼭 만들고자 하는 프로그램이 있는데, 그 때 상태변화도를 사용한다면 업무의 진행 단계, 필요한 시스템의 유·무 등을 보다 쉽게 인지할 수 있어 설계에 많은 도움이 될 것이라고 생각했다.


- 동적 모델링 : 시간과 변화의 관점에서 시스템을 묘사한 것

 

- 제어(control) : 외부의 자극에 시스템이 어떤 동작을 수행하는지 나타낸 것


1. 실시간 시스템

 

- 제한된 시간 내에 외부에서 주어진 사건에 응답하고 자료를 처리해야 하는 시스템이다.

① 최근 빠른 속도로 중요성 증가

② 동적 모델링과 깊은 연관

③ 여러 프로세스를 동시에 병행하여 수행

④ 프로세스의 처리에 우선순위를 가짐

⑤ 자원에 대한 동시 접근 및 할당

→ 통신 시스템, 비행기 운행 관리 시스템, 자동차 자동 속도 조절 장치 etc.


2. 유한상태기계 (finite transition state)

 

- 시스템의 동작을 표시하는 추상적 모델이다.

트랜잭션에 가까운 개념

특정 언어를 고려한 것이 아님

 

- 3요소

① 제어(control) : 자료의 변환

② 기능(function) : 기능의 입출력 표시

③ 자료(data) : 기능이 일어나는 순서 표시

 

- '상태'는 원 및 타원, '사건'은 화살표로 나타낸다.

 

[자판기 유한상태기계]

 

- 기점 상태(originating state) : 사건을 받기 이전 상태

 

- 종착 상태(destination state) : 사건을 받은 후의 상태


3. 상태 변화(전이)도 (STD : State Transition Diagram)

 

- 유한상태기계를 확장하여 도식적으로 표시한 것이다.

① 상태(state) : 시스템이 가지고 있는 값을 표시

② 사건(event) : 외부에서 상태에 가해지는 사건

③ 시스템의 제어 흐름, 동작의 순서를 나타냄 (제어 흐름의 순서는 X)

 

[전화선 상태 변화도]


4. 전화 시스템 동적 모델링

 

- 시나리오(scenario) 작성과 사건 추적(event trace) 과정을 이용한다.

→ 좀 더 쉽고 논리적인 상태 변화도 작성을 위해

 

- 시나리오 : 시스템이 작동하며 일어나는 사건들의 순서 (일반적 경우 + 예외적 경우)

 

- 사건 추적도(event trace diagram) : 사건의 순서와 사건을 주고받는 객체 및 시스템을 보여줌

→ '객체·시스템'은 수직으로, '사건'은 수평으로 나타냄

 

[사건 추적도 예시]

 

- 사건 추적으로부터 작성된 상태 변화도

① 전이에서 나타나는 동작은 동작을 일으키는 사건 뒤에 빗금(/) 표시를 함

② 동작 : 순식간에 일어나는 작용

③ 활동 : 시간을 가지고 일어나는 작용 → 이름 앞에 'do : '를 표시

 

[사건 추적으로부터 작성된 상태 변화도]


5. 실시간 시스템을 위한 구조적 분석 기법의 확장

 

- 시스템 상태 변화와 프로세스들의 활성화를 나타내고자 할 때 사용된다.

 

- 구조적 분석 기법의 확장 : 데이터의 처리 및 결과를 돌려주는 환경을 제어하도록 시스템 기술

→ 기능 모델 + 동적 모델 = 복합(composite) 모델

 

- 제어 명세서 : 시스템의 행위 기술

① 자료 흐름도에 수직선 기호로 표시

② CASE 도구 이용 시 내용을 직접 참조 가능

 

- 자료 흐름도의 실시간 확장 모델 : 제어 명세서의 구체적 활동 기록에 용이

 

[자료 흐름도의 실시간 확장 모델 표시 기호]

 

- 데이터 흐름 : 계산에 사용 → 새로운 데이터 생성 및 변형

 

- 제어 흐름 : 계산에 직접 사용 X → 계산의 순서나 조건 표시 {ex : 플래그(flag)}

 

- 연속적인 신호(continuous signal) : 데이터로 분류

 

- 이산 신호(discrete signal) : 계산에 쓰이면 데이터로, 제어에 쓰이면 제어로 분류

 

- 제어 논리

① 조합 논리(combinational logic) : 순서가 문제되지 않음

② 순열 논리(sequential logic) : 순서가 중요시됨

 

[조합·순열 논리 예시]

 

- 제어 명세서 기술 유형


- 프로세스 활성표(PAT : Process Activation Table)

① 주어진 사건에 의해 특정 프로세스를 활성화시키는 동작을 기술

② 입력 제어 흐름의 순서를 고려하지 않는 조합 논리에 적합

 

[제어 명세서와 프로세스 활성표]

 

- 결정표(DT : Decision Table)

① 한 프로세스와 연관된 모든 동작을 표시, 프로세스 수행 중 요구되는 결정 및 조건 기술

② 입력 제어 조건들의 순서를 고려하지 않는 조합 논리에 적합

 

[신호등 시스템 결정표]

 

- 상태 사건표(SEM : State Event Matrix)

① 상태 변화도에 표현된 정보를 테이블 형태로 표현한 것

② 열(column)은 사건을, 행(row)은 상태를 나타냄

 

[맹꽁이 자술쇠 상태 사건표]

 

- 복합 제어 명세(composite c-specs) : 여러 제어 명세가 혼합되어 나타나야 할 때 사용

 

[복합 제어 명세서]

 


 

 

 

 

참고 문헌 : 윤청, 소프트웨어 공학 에센셜(생능출판), 2019, p.184~204.

 

 

728x90
반응형

'CS > 소프트웨어 공학 에센셜' 카테고리의 다른 글

객체지향 분석 기법  (0) 2021.06.12
정보 모델링  (0) 2021.06.05
기능 모델링  (0) 2021.06.02
요구사항 분석과 모델링  (0) 2021.05.31
프로젝트 계획  (0) 2021.05.30

댓글