소프트웨어 안전성 분석
소프트웨어 안전성 분석은 소프트웨어 결함이 피해로 이어지는 위험을 개발 단계에서 식별하고 제거하는 활동이다. 안전필수 시스템은 오동작이 사고로 직결되는 시스템이다. 항공 제어와 철도 신호가 여기 속한다. 같은 버그라도 피해가 다르므로, 분석은 기능보다 어떤 피해로 이…
주요 장면
대본
정의
소프트웨어 안전성 분석은 소프트웨어 결함이 피해로 이어지는 위험을 개발 단계에서 식별하고 제거하는 활동이다.
안전필수 시스템은 오동작이 사고로 직결되는 시스템이다. 항공 제어와 철도 신호가 여기 속한다.
같은 버그라도 피해가 다르므로, 분석은 기능보다 어떤 피해로 이어지는지를 먼저 본다.
세 기법의 질문 방식
세 기법은 분석 방향과 질문이 다르다. 대표 기법은 FTA, FMEA, HAZOP이다.
FTA는 최상위 사고에서 AND·OR 게이트로 원인을 나누고 최소 컷셋을 구한다.
FMEA는 구성요소 고장형태마다 영향을 보고, RPN으로 우선순위를 정한다.
HAZOP은 NO, MORE, LESS 같은 가이드워드로 설계 의도에서 벗어난 이탈을 찾는다.
FMEA의 RPN 계산
FMEA의 우선순위 점수는 RPN이다. RPN은 심각도, 발생도, 검출도를 곱한다.
각 항목은 1~10 척도로 매기며, 척도 정의는 분석 전에 먼저 정한다.
예를 들어 S=9, O=3, D=4이면 RPN은 9×3×4=108이다.
RPN이 큰 항목부터 대책을 세운다.
소프트웨어 FMEA의 차이
하드웨어는 고장률로 확률을 정하지만, 소프트웨어는 결함이 있거나 없거나 둘 중 하나다.
그래서 소프트웨어 FMEA는 요구사항·설계·코드·인터페이스의 결함 원인 목록을 기준으로 삼는다.
이 방식은 코드를 쓰기 전에 설계 명세의 누락, 불충분, 오류를 찾는 데 목적이 있다.
소프트웨어 FMEA는 설계 FMEA의 성격을 가진다.
FTA 최소 컷셋 예제
FTA 예제로, 두 모듈 A, B가 직렬로 연결된 경보 기능을 본다. 최상위 사고는 경보 미발생이다.
A와 B가 모두 고장나면 사고가 나므로 두 기본 사건은 AND로 묶는다.
공통 입력 오류 X3은 그 자체로 사고를 일으키므로 OR로 연결된다.
최소 컷셋은 {X3}과 {X1, X2}다. 기여도가 큰 경로를 먼저 줄인다.
직접 풀어 보기
세 기법을 함께 쓰면 상호 보완된다. FMEA로 고장을 찾고, FTA로 조합을 보고, HAZOP으로 이탈을 검토한다.
분석 결과인 심각도가 안전 등급과 관리 수준을 정한다.
앞에서 배운 RPN을 직접 계산해 보자.
정답과 정리
정답은 108이다. 9와 3과 4를 곱하면 108이 된다.
FTA는 최소 컷셋, FMEA는 RPN, HAZOP은 가이드워드로 정리하면 된다.
세 질문을 먼저 쓰면 설명 순서가 정리된다.