IT recording...
[SoftwareV&V] 05. Finite Models 본문
[원문링크]
https://adorable-aspen-d23.notion.site/SoftwareV-V_05_Finite-Models-95a4069f07c64b179bfa2ea5478d0f34
[2021 - 1학기 수강한 Software V&V 강의 정리본입니다.]
(Software Verification & Validation)
Basic Techniques - Finite Models
: Test & Analysis 와 개발 프로세스는 함께 움직여야 한다! (개별적 NO!)
Learning Objectives
- Finate state abstraction의 Goal과 함축적 의미 파악하기
- program control > Control Flow 모델링 하는 법 배우기
- sw system structure > Call graph 모델링 하는 법 배우기
- finite state behavior > Finite State Machine 모델링 하는 법 배우기
1. 기본 용어
- Model : artifact를 추상화 시켜서 simple해진 것
- Directed graph with Labels
- : 방향 그래프의 노드에 program의 코드를 넣음 (program execution 표현 가능)
- Finite Abstractions
- Corsening of execution model : 모델이 정교하지 않게 된다.
- 2) Introduction of nondeterminism : 어떤 것을 선택해야 할지 모름
2. Control Flow Graph (Intraprocedural)
: 프로그램이 실행 중에 횡단할 수 있는 모든 경로를 그래프 표기법을 사용하여 표현한 것
https://ko.wikipedia.org/wiki/제어_흐름_그래프
- Node = basic block : maximal program region(single entry and single exit point)
- 프로그램에서 추출 가능하다.
- CFG의 용도
- Testing의 철저한 기준을 세우기 위할 때
- 철저한 criteria를 세우는 다른 model을 정의할 때
- ex) LCSAJ (Linear code sequence and jump)
3. Call Graphs (Interprocedural)
: 컴퓨터 프로그램의 서브 루틴 간의 호출 관계를 나타내는 제어 흐름 그래프입니다.
- Node : Procedures, methods, functions
- CFG보다 design issue와 trade-off가 더 많다.
- call relation의 과대평가
- : 절대 실행되지 않는데 그려 놓는 것도 있음.
- context의 sensitive(파라미터 등 존재)/ insensitive (일반적임)
4. Finite State Machines
: 유한한 상태를 가진 추상기계, 한 번에 하나의 상태만을 가질 수 있으며 Event에 의해 전이(transition)가능하다.
- 코드 작성 이전에 완성되며(requirement, design 단계) , specification으로의 역할을 수행한다.
- CFG ↔ FSM 왔다 갔다 가능
- Nodes : 유한한 states
- SRS, SDS를 가지고 FSM을 만들고, code가 작성된다. 이후 CFG 만들어짐
- FSM을 모델링 하기 위한 abstract function
- : CFG를 만들 때는 기계적으로 가능하지만 FSM을 만들기 위해서는 사람의 개입이 필요하다.
Summary
- Model은 단순해야 한다.
- Model은 충분히 자세해야 한다.
- CFG는 software program으로 부터 만들어진다.
- FSM은 code작성 전(sw program 전) 에 document behavior를 위해서 만들어진다.
'V&V' 카테고리의 다른 글
[SoftwareV&V] 07. Symbolic Execution and Proof of Properties (0) | 2022.02.17 |
---|---|
[SoftwareV&V] 06. Data Dependency & Data Flow Models (0) | 2022.02.17 |
[SoftwareV&V] 04. Software Process (0) | 2022.02.17 |
[SoftwareV&V] 03. Basic Principles (0) | 2022.02.17 |
[SoftwareV&V] 02. Framework (0) | 2022.02.17 |
Comments