Learning
토픽 66 / 192·소프트웨어 테스트

정형 기법 (Formal Methods)

정형 기법 (Formal Methods)

수학적 표기법과 논리적 추론을 사용하여 소프트웨어/시스템의 명세, 설계, 검증을 수행하는 기법

목적: 정확한 명세, 논리적 검증, 결함 조기 발견, 안전성 증명

Z 표기법 (Z Notation)

  • 집합론과 1차 술어 논리 기반
  • 스키마(Schema) 구조로 상태와 연산 기술
  • ISO 표준(ISO/IEC 13568), 학계에서 널리 사용

VDM (Vienna Development Method)

  • IBM 비엔나 연구소 개발, 모델 기반 명세
  • VDM-SL(명세 언어), 정제(Refinement)를 통한 단계적 개발
  • 산업계 적용 사례 다수

Petri-Net

  • 동시성, 동기화, 분산 시스템 모델링에 적합
  • Place(상태), Transition(이벤트), Token(자원) 구조
  • 데드락/라이브니스/도달 가능성 분석 가능
  • 변형: CPN(Colored Petri-Net), 시간 Petri-Net

모델 검사 (Model Checking)

  • 시스템 모델의 모든 상태를 자동 탐색하여 속성 검증
  • 도구: SPIN, NuSMV, UPPAAL
  • 장점: 자동화, 반례 제공
  • 단점: 상태 폭발 문제

정리 증명 (Theorem Proving)

  • 수학적 증명으로 프로그램 정확성 검증
  • 도구: Coq, Isabelle, Lean
  • 완전 검증 가능, 자동화 한계

비교: Z/VDM(명세중심/상태기반) vs Petri-Net(동시성/그래프) vs 모델검사(자동/상태폭발) vs 정리증명(완전/수동)

연관: 안전 필수 시스템, DO-178C, MISRA-C, 정확성 검증