Formal Verification๋ ๋์งํธ ํ๋ก ์ค๊ณ์์ ์์คํ ์ ์ ํ์ฑ์ ์ํ์ ์ผ๋ก ๊ฒ์ฆํ๋ ํ๋ก์ธ์ค๋ฅผ ์๋ฏธํฉ๋๋ค. ์ด๋ ํ๋ก๊ฐ ํน์ ์ฌ์์ ์ถฉ์กฑํ๋์ง๋ฅผ ํ์ธํ๋ ๋ฐ ์ค์ ์ ๋๋ฉฐ, ์ฃผ๋ก ํ๋์จ์ด ์ค๊ณ์ ์ค๋ฅ๋ฅผ ์ฌ์ ์ ๋ฐ๊ฒฌํ๊ธฐ ์ํด ์ฌ์ฉ๋ฉ๋๋ค. Formal Verification์ ์ค์์ฑ์ ๋ค์๊ณผ ๊ฐ์ ์ฌ๋ฌ ์์์ ์ํด ๊ฐ์กฐ๋ฉ๋๋ค.
์ฒซ์งธ, ์ ํ์ฑ์ ๋๋ค. ๋์งํธ ํ๋ก๋ ๋ณต์กํ ๋ก์ง์ ํฌํจํ๊ณ ์์ผ๋ฉฐ, ์ด๋ฌํ ๋ณต์ก์ฑ์ ์ค๊ณ ์ค๋ฅ๋ฅผ ์ ๋ฐํ ์ ์์ต๋๋ค. Formal Verification์ ์ํ์ ๋ชจ๋ธ์ ์ฌ์ฉํ์ฌ ๋ชจ๋ ๊ฐ๋ฅํ ์ ๋ ฅ ์กฐํฉ์ ๋ํด ํ๋ก์ ๋์์ ๊ฒ์ฆํจ์ผ๋ก์จ ์ด๋ฌํ ์ค๋ฅ๋ฅผ ์ฌ์ ์ ๋ฐ๊ฒฌํ ์ ์์ต๋๋ค.
๋์งธ, ๋น์ฉ ์ ๊ฐ์ ๋๋ค. ์ด๊ธฐ ์ค๊ณ ๋จ๊ณ์์ ์ค๋ฅ๋ฅผ ๋ฐ๊ฒฌํ๋ฉด, ํ์ ๋จ๊ณ์์ ๋ฐ์ํ ์ ์๋ ์์ ๋น์ฉ์ ์ค์ผ ์ ์์ต๋๋ค. ํนํ VLSI ์์คํ ์ ๊ฒฝ์ฐ, ํ๋์จ์ด ๊ตฌํ ํ ์ค๋ฅ๋ฅผ ์์ ํ๋ ๊ฒ์ ๋งค์ฐ ๋น์ ์ ์์ต๋๋ค. Formal Verification์ ํตํด ์ด๋ฌํ ๋น์ฉ์ ์ต์ํํ ์ ์์ต๋๋ค.
์ ์งธ, ์ ๋ขฐ์ฑ์ ๋๋ค. ์์ -critical ์์คํ , ์๋ฅผ ๋ค์ด ํญ๊ณต๊ธฐ ์ ์ด ์์คํ ์ด๋ ์๋ฃ ๊ธฐ๊ธฐ์ ๊ฐ์ ๋ถ์ผ์์๋ ์์คํ ์ ์ ๋ขฐ์ฑ์ด ๋งค์ฐ ์ค์ํฉ๋๋ค. Formal Verification์ ์ด๋ฌํ ์์คํ ์์์ ์ค๋ฅ๋ฅผ ์ฌ์ ์ ๋ฐฉ์งํ์ฌ ์ ๋ขฐ์ฑ์ ๋์ด๋ ๋ฐ ๊ธฐ์ฌํฉ๋๋ค.
๋ง์ง๋ง์ผ๋ก, ๊ธฐ์ ์ ํน์ง์ผ๋ก๋ ๋ชจ๋ธ ์ฒดํฌ๋ง(Model Checking), ์ ๋ฆฌ ์ฆ๋ช (Theorem Proving), ์ถ์ ํด์(Abstract Interpretation) ๋ฑ์ด ์์ต๋๋ค. ์ด๋ค ๊ธฐ์ ์ ๊ฐ๊ฐ์ ๋ฐฉ์์ผ๋ก ํ๋ก์ ๋์์ ๊ฒ์ฆํ๋ฉฐ, ๋ค์ํ ์ค๊ณ ์ฌ์์ ๋ง์ถฐ ์ ์ฉ๋ ์ ์์ต๋๋ค. Formal Verification์ ์ด๋ฌํ ๊ธฐ์ ๋ค์ ํตํด ์ค๊ณ์ ๋์์ ์ ๋์ ์ผ๋ก ๋ถ์ํ๊ณ , ์ค๊ณ ์ฌ์๊ณผ์ ์ผ์น๋ฅผ ๋ณด์ฅํฉ๋๋ค.
Formal Verification์ ์ฌ๋ฌ ๊ตฌ์ฑ ์์์ ์ด์ ์๋ฆฌ๋ฅผ ํตํด ์ด๋ฃจ์ด์ง๋๋ค. ์ด ํ๋ก์ธ์ค๋ ์ผ๋ฐ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ ์ฃผ์ ๋จ๊ณ๋ก ๋๋ ์ ์์ต๋๋ค.
๋ชจ๋ธ๋ง: ์ค๊ณ๋ ํ๋ก๋ฅผ ์ํ์ ์ผ๋ก ๋ชจ๋ธ๋งํ๋ ๋จ๊ณ์ ๋๋ค. ์ด ๋จ๊ณ์์๋ ํ๋ก์ ๋์์ ์ ์ํ๊ณ , ์ด๋ฅผ ์ํ์ ํํ๋ก ๋ณํํฉ๋๋ค. ์ด๋ ์ฌ์ฉ๋๋ ๋ชจ๋ธ์ Finite State Machines (FSMs)๋ Petri Nets์ ๊ฐ์ ํ์์ ๋ชจ๋ธ๋ง ๊ธฐ๋ฒ์ด ํฌํจ๋ ์ ์์ต๋๋ค.
์ฌ์ ์ ์: ๊ฒ์ฆํ ์ฌ์์ ์ ์ํ๋ ๋จ๊ณ์ ๋๋ค. ์ด ๋จ๊ณ์์๋ ํ๋ก๊ฐ ์ถฉ์กฑํด์ผ ํ ์๊ตฌ ์ฌํญ์ ๋ช ํํ๊ฒ ๊ธฐ์ ํฉ๋๋ค. ์ฌ์์ ์ฃผ๋ก Temporal Logic๊ณผ ๊ฐ์ ํ์์ ์ธ์ด๋ก ํํ๋ฉ๋๋ค. ์ด๋ฌํ ์ฌ์์ ์์คํ ์ ๋์์ ์๊ฐ์ ์ผ๋ก ๊ธฐ์ ํ๋ฉฐ, ์์คํ ์ด ํน์ ์ํ์ ๋๋ฌํ๊ฑฐ๋ ํน์ ์กฐ๊ฑด์ ๋ง์กฑํด์ผ ํจ์ ๋ช ์ํฉ๋๋ค.
๊ฒ์ฆ ํ๋ก์ธ์ค: ๋ชจ๋ธ๊ณผ ์ฌ์์ด ์ ์๋ ํ, Formal Verification ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒ์ฆ ํ๋ก์ธ์ค๋ฅผ ์ํํฉ๋๋ค. ์ด ๊ณผ์ ์์๋ ๋ชจ๋ธ ์ฒดํฌ๋ง ๊ธฐ์ ์ด ์์ฃผ ์ฌ์ฉ๋๋ฉฐ, ์ด๋ ๋ชจ๋ ๊ฐ๋ฅํ ์ํ๋ฅผ ํ์ํ์ฌ ๋ชจ๋ธ์ด ์ฌ์์ ์ถฉ์กฑํ๋์ง๋ฅผ ํ์ธํฉ๋๋ค. ์ด๋ ์ฌ์ฉ๋๋ ์๊ณ ๋ฆฌ์ฆ์ BDD (Binary Decision Diagrams) ๋๋ SAT (Satisfiability) ๊ธฐ๋ฐ์ ๋ฐฉ๋ฒ๋ค์ด ์์ต๋๋ค.
๊ฒฐ๊ณผ ๋ถ์: ๊ฒ์ฆ ๊ฒฐ๊ณผ๋ฅผ ๋ถ์ํ๋ ๋จ๊ณ์ ๋๋ค. ์ด ๋จ๊ณ์์๋ ๊ฒ์ฆ ๋๊ตฌ๊ฐ ์ ๊ณตํ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ์ผ๋ก ์ค๋ฅ๋ฅผ ์๋ณํ๊ณ , ํ์ํ ๊ฒฝ์ฐ ์ค๊ณ๋ฅผ ์์ ํฉ๋๋ค. ์ค๋ฅ๊ฐ ๋ฐ๊ฒฌ๋๋ฉด, ์ค๊ณ์๋ ํด๋น ์ค๋ฅ๋ฅผ ์์ ํ๊ณ ๋ค์ ๊ฒ์ฆ ํ๋ก์ธ์ค๋ฅผ ๋ฐ๋ณตํฉ๋๋ค.
์ฆ๋ช ์์ฑ: ๊ฒ์ฆ์ด ์๋ฃ๋๋ฉด, ์ค๊ณ์ ์ ํ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํ ์ฆ๋ช ๋ฌธ์๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ์ด ๋ฌธ์๋ ์ค๊ณ์ ์ ๋ขฐ์ฑ์ ๋์ด๋ ๋ฐ ๊ธฐ์ฌํฉ๋๋ค.
์ด๋ฌํ ๋จ๊ณ๋ค์ ์ํธ ์ฐ๊ฒฐ๋์ด ์์ผ๋ฉฐ, ๊ฐ ๋จ๊ณ์์์ ๊ฒฐ๊ณผ๋ ๋ค์ ๋จ๊ณ์ ์ ๋ ฅ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค. Formal Verification์ ๊ตฌํ ๋ฐฉ๋ฒ์ ๋ค์ํ๋ฉฐ, ๊ฐ ๋ฐฉ๋ฒ๋ก ์ ๋ฐ๋ผ ํน์ ํ ์ฅ๋จ์ ์ด ์กด์ฌํฉ๋๋ค.
๋ชจ๋ธ ์ฒดํฌ๋ง์ Formal Verification์ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ ์ค ํ๋์ ๋๋ค. ์ด ๋ฐฉ๋ฒ์ ์์คํ ์ ๋ชจ๋ ๊ฐ๋ฅํ ์ํ๋ฅผ ํ์ํ์ฌ ์ฃผ์ด์ง ์ฌ์์ ๋ง์กฑํ๋์ง๋ฅผ ํ์ธํ๋ ๋ฐฉ์์ ๋๋ค. ๋ชจ๋ธ ์ฒดํฌ๋ง์ ์ฅ์ ์ ์๋ํ๊ฐ ๊ฐ๋ฅํ๋ค๋ ์ ์ด๋ฉฐ, ์ด๋ ๋ณต์กํ ์์คํ ์์๋ ํจ์จ์ ์ผ๋ก ์ ์ฉ๋ ์ ์์ต๋๋ค.
์ ๋ฆฌ ์ฆ๋ช ์ ์ํ์ ์ฆ๋ช ๊ธฐ๋ฒ์ ์ฌ์ฉํ์ฌ ์์คํ ์ ์ ํ์ฑ์ ๊ฒ์ฆํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ์ด ๋ฐฉ๋ฒ์ ์ฃผ๋ก ๋ณต์กํ ์์คํ ์์ ์ฌ์ฉ๋๋ฉฐ, ์ฌ์ฉ์๊ฐ ๋ช ์์ ์ผ๋ก ์ฆ๋ช ์ ์์ฑํด์ผ ํ๋ฏ๋ก ๋ ๋ง์ ์ ๋ฌธ ์ง์์ด ์๊ตฌ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด ๋ฐฉ๋ฒ์ ๋งค์ฐ ๊ฐ๋ ฅํ ๊ฒ์ฆ ๋ฅ๋ ฅ์ ์ ๊ณตํ๋ฉฐ, ํนํ ์์ -critical ์์คํ ์์์ ์ ์ฉ์ด ๋๋๋ฌ์ง๋๋ค.
Formal Verification์ ์ฌ๋ฌ ๊ด๋ จ ๊ธฐ์ ๊ณผ ๋น๊ต๋ ์ ์์ต๋๋ค. ์ด๋ค ๊ธฐ์ ์ ๊ฐ๊ธฐ ๋ค๋ฅธ ๋ฐฉ๋ฒ๋ก ๊ณผ ์ ๊ทผ ๋ฐฉ์์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ํน์ ์ํฉ์ ๋ฐ๋ผ ์ฅ๋จ์ ์ด ์กด์ฌํฉ๋๋ค.
Dynamic Simulation: Dynamic Simulation์ ํ๋ก์ ๋์์ ์ค์ ์ ๋ ฅ์ผ๋ก ์๋ฎฌ๋ ์ด์ ํ์ฌ ๊ฒ์ฆํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ์ด ๋ฐฉ๋ฒ์ ํน์ ์ ๋ ฅ ์กฐํฉ์ ๋ํ ๋์์ ํ์ธํ ์ ์์ง๋ง, ๋ชจ๋ ๊ฐ๋ฅํ ์ํ๋ฅผ ๊ฒ์ฌํ ์๋ ์์ต๋๋ค. ๋ฐ๋ผ์, Dynamic Simulation์ Formal Verification์ ๋นํด ์ ํ์ ์ธ ๊ฒ์ฆ ๋ฅ๋ ฅ์ ๊ฐ์ง๋๋ค.
Static Analysis: Static Analysis๋ ์ฝ๋๋ ํ๋ก์ ์ ์ ํน์ฑ์ ๋ถ์ํ์ฌ ์ค๋ฅ๋ฅผ ์ฐพ์๋ด๋ ๋ฐฉ๋ฒ์ ๋๋ค. ์ด ๋ฐฉ๋ฒ์ ์ฝ๋์ ๊ตฌ์กฐ์ ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ๋ ๋ฐ ์ ์ฉํ์ง๋ง, ๋ชจ๋ ๋์ ์๋๋ฆฌ์ค๋ฅผ ๊ณ ๋ คํ์ง ์๊ธฐ ๋๋ฌธ์ Formal Verification์ ๋์ฒด ์๋จ์ผ๋ก๋ ๋ถ์กฑํฉ๋๋ค.
Emulation: Emulation์ ํ๋์จ์ด์์ ์ค์ ๋์์ ์ฌํํ์ฌ ๊ฒ์ฆํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ์ด ๋ฐฉ๋ฒ์ ์ค์ ํ๊ฒฝ์์์ ๋์์ ํ ์คํธํ ์ ์์ง๋ง, ๋น์ฉ์ด ๋ง์ด ๋ค๊ณ ์๊ฐ์ด ์์๋ ์ ์์ต๋๋ค. Formal Verification์ ์ด๋ฌํ ์ค์ ํ๊ฒฝ์์์ ํ ์คํธ๋ฅผ ๋ณด์ํ์ฌ ์ด๋ก ์ ์ ํ์ฑ์ ๋ณด์ฅํฉ๋๋ค.
Real-world Examples: Formal Verification์ ์ฌ๋ฌ ์ฐ์ ๋ถ์ผ์์ ๋๋ฆฌ ์ฌ์ฉ๋๊ณ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ํญ๊ณต ์ฐ์ฃผ ์ฐ์ ์์๋ ๋นํ ์ ์ด ์์คํ ์ ์ ํ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด Formal Verification์ด ํ์์ ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค. ๋ํ, ์๋์ฐจ ์ฐ์ ์์๋ ์์จ ์ฃผํ ์์คํ ์ ์์ ์ฑ์ ํ๋ณดํ๊ธฐ ์ํด Formal Verification ๊ธฐ์ ์ด ๋์ ๋๊ณ ์์ต๋๋ค.
Formal Verification์ ์ด๋ฌํ ๋ค์ํ ๊ธฐ์ ๊ณผ ๋น๊ตํ ๋, ์ ๋ฐ์ ์ธ ์ ํ์ฑ๊ณผ ์ ๋ขฐ์ฑ์ ์ ๊ณตํ๋ ๊ฐ๋ ฅํ ๋๊ตฌ์ ๋๋ค. ๊ฐ ๊ธฐ์ ์ ํน์ ์ํฉ์์์ ํ์์ ๋ฐ๋ผ ์ ํ๋ ์ ์์ผ๋ฉฐ, Formal Verification์ ํนํ ์์ ์ฑ๊ณผ ์ ๋ขฐ์ฑ์ด ์ค์ํ ์์คํ ์์ ํ์์ ์ธ ์ญํ ์ ํฉ๋๋ค.
Formal Verification์ ๋์งํธ ํ๋ก ์ค๊ณ์ ์ ํ์ฑ์ ์ํ์ ์ผ๋ก ๊ฒ์ฆํ์ฌ ์ค๋ฅ๋ฅผ ์ฌ์ ์ ๋ฐ๊ฒฌํ๊ณ , ์์คํ ์ ์ ๋ขฐ์ฑ์ ๋์ด๋ ์ค์ํ ๊ธฐ์ ์ ๋๋ค.