본문 바로가기
대학공부/소프트웨어공학

Software Fault-Tolerance

by 진진리 2023. 10. 6.
728x90

하드웨어의 경우: TMR(Triple Modular Redundancy), RAID 등

 

  • Recobery block: alternative의 적합성 여부를 Acceptance test로 검사
    • 실패한 경우 후보가 있으면 alternative 실행
    • 실패하는 경우를 대비한 checkpoint estabilish / restore
    • 문제점
      • acceptance test에서 문제가 발생하는 경우 fail-tolerance 불가능.
      • 비교적 시간이 걸리므로 domain dependent(실시간 sw에 영향을 미침).
      • acceptance test와 alternative간의 근본적인 차이가 없음.
      • alternative간의 common mode failure를 피하기 어렵고 우선순위 설정 어려움.
      • 지원하는 언어가 없고 checkpoint가 복잡도를 증가시켜 실제로 사용되지 않음.
  • N-version programming: 같은 명세로부터 독립적인 프로그램을 N개 만든 후 voting
    • 독립적인 프로그램 - 다른 개발 팀, 다른 언어 등
    • 문제점
      • voting 로직 자체에도 오류가 발생 가능.
      • majority voting을 규정하기 어려움.
      • 서로 다른 버전의 소프트웨어에서 같은 failure 발생 가능. 
      • 신뢰도가 생각보다 높지 않음(각각의 failure가 통계적으로 독립적이지 않음). 
    • 대안이없으므로 사용

 

'대학공부 > 소프트웨어공학' 카테고리의 다른 글

Software Testing  (0) 2023.10.06
Software Metric: Cost Estimation, COCOMO, Function Point  (0) 2023.10.06
소프트웨어 개발방법론  (0) 2023.10.06
SPI, CMMI, 기타 용어  (0) 2023.10.06
Formal Methods 정형 기법  (0) 2023.10.06