TY blog

소프트웨어 신뢰성, 안전성 공학 본문

소프트웨어 공학

소프트웨어 신뢰성, 안전성 공학

주짓수하는 개발자 2023. 11. 21. 14:53
1. 결함-오류-고장 모델 (fault-error-failure) : 결함 -> 오류 -> 고장(장애)으로 이어지는 개념 

 

 

1. 시스템 오류 또는 실수 (human error or mistake) 시스템 결함이 생기게 하는 사람의 행동
2. 시스템 결함 (system fault) 시스템 오류로 이어질 수 있는 시스템의 특성
3. 시스템 오류 (system error) 예기치 못한 시스템 행동으로 이어질 수 있는 시스템의 잘못된 상태
4. 시스템 장애 (system failure) 사용자가 기대하는 서비스를 시스템이 제공하지 못하는 특정 시점의 사건

 

2. 신뢰성을 위한 3가지 보완적인 접근법 

 

  1. 결함회피 (fault avoidance) : 설계 및 프로그래밍 오류를 피하는 소프트웨어 개발 방식으로 시스템에 도입되는 결함을 최소화한다. 
  2. 결함 감지 및 정정 (fault detection & correction) : 검증 및 확인 (v&v) 프로세스를 통해 결함을 발견하고 제거한다. 
  3. 결함 내성 (fault tolerance) : 실행 중에 결함이나 시스템의 예기치 못한 행동을 감지하며 시스템 장애가 일어나지 않도록 시스템을 설계하며 실행 중에 소프트웨어나 하드웨어 결함이 발생하고 시스템 상태가 잘못된 경우에도 시스템이 동작을 계속진행 
3. 가용성과 신뢰성 

 

  1. 가용성 : 주어진 시점에서 시스템이 운영 중이고 요청된 서비스를 제공할 확률 (어떤 시점에 시스템이 작동할 확률)
  2. 신뢰성 : 주어진 환경에서 특정 목적을 위해 지정된 시간 동안 고장 없이 운영될 확률 

 

4. 신뢰성 측정항목 - 척도

 

  1. POFOD (probability of failure on demand) 요구에 대한 고장 확률 : 시스템 서비스에 대한 요구가 시스템 장애를 일으킬 확률 - 요구에 대한 실패가 심각한 시스템 장애로 이어지는 경우 측정, POFOD = 0.001은 어떤 요구가 있을 때 1/1000 확률로 고장이 발생한다는 것을 의미한다.
  2. ROCOF (rate of occurrence of failure) 고장 발생 비율 : 어떤 시간 간격(또는 시스템 실행 횟수) 동안 발생할 수 있는 시스템 장애 횟수 - 요구의 빈도가 정기적일 때 측정하며 1000개의 트랜잭션 중 1개가 실패한다면 고장 확률이 0.001이라고 할 수 있다. 
  3. MTTF (mean time to failure) 평균 고장 시간 : (장애시간을 제외한 운영시간) / (장애난 횟수)로 계산할 수 있다.
  4. MTBF (mean time between failure) 평균 고장 사이 간격 : (총 운영시간) / (장애난 횟수) or MTTF + MTTR으로 계산할 수 있다. 
  5. MTTR (mean time to repair) 평균 수리 시간 : (장애시간) / (장애난 횟수)로 계산할 수 있다. 
  6. AVAIL (availability) 가용성 척도 : 서비스 요구가 있을 때 시스템이 운영중인 확률 (장애시간을 제외한 운영시간) / (전체시간) 으로 계산할 수 있다.

 

 * MTTF, MTBF, MTTR 계산 

동작 동작 장애 장애 동작 동작 동작 동작 동작 동작

 

테이블 1개당 1시간의 운영시간으로 잡아 계산을 진행하며 10시간에 2번 장애가 발생했다.

 

MTTF : 8시간 / 2(장애 횟수) => 4 

MTTR : 2시간 / 2(장애 횟수) ==> 1

MTBF : MTTF + MTTR = 10시간 / 2(장애 횟수) ==> 5 

 

이렇게 계산할 수 있다. 

 

5. 안전성 (safety)

 

사람의 사망이나 부상을 초래할 위험이 없고 시스템 환경에 대한 손상 없이(정상 또는 비정상적으로) 작동하는 시스템의 능력을 반영하는 속성

 

위험(hazard) : 사고로 연결될 수 있는 상황이나 사건(부품 고장, 계산오류)을 말하며 위험이 항상 사고로 이어지는 것은 아니다. 

 

 * 안전성 요구사항 : 일어나지 말아야 할 상황이나 사건을 명시 (하지 말아야 할 요구사항)

예시) 자동차 시스템에서 주차완료 후에는 엑셀을 밟아도 앞으로 가지 말아야 한다. 

 

6. 위험 주도 안전성 명세 프로세스

 

  1. 위험 식별(hazard identification) : 시스템을 위협할 수 있는 위험들을 식별한다. 
  2. 위험 평가(hazard assessment) : 어떤 위험들이 가장 위험한지, 가장 발생가능성이 높은지 평가
  3. 위험 분석(hazard analysis) : 시스템 위험의 원인을 분석하고 리스크를 줄이기 위함 
  4. 리스크 감소(risk reduction) : 리스크가 사고로 이어져도 피해가 최소화될 수 있게 보장 

 

 

* 참고문헌 : (주)한티에듀 소프트웨어공학 제10판 

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

소프트웨어 형상관리  (0) 2023.12.06
분산 소프트웨어 공학  (0) 2023.11.28
확실성 있는 소프트웨어 시스템  (0) 2023.11.14
소프트웨어 재공학  (0) 2023.11.07
소프트웨어 개발 테스팅  (0) 2023.10.17
Comments