지금까지 Dependability 중 Availability, Reliability를 다뤘으니 이제 Safety를 다룰 차례이다.
Safety란?
시스템이 비정상/정상이든 작동하면서 인간에게 상해나 사망을 초래하지 않고, 시스템 환경에 손상을 주지 않는 속성을 말한다
availability와 Reliability를 만족한다고 해서 Safety 한게 아니다. 명세와 부합하는지는 관련이 없다.
Unsafe 하다는 건 어떤건가요?
시스템에서 오랫동안 감지되지 않다가 드물게 결함이 나탈수도 있고, 명세에 오류가 있을수도 있고, 하드웨어 고장일수도, Context-sensitive 명령일수도... 요런 것들이다
중요한 용어 암기하기
safety-critical system : 시스템 작동이 항상 안전해야 하는 시스템
Accident (or mishap) | 계획되지 않은 사건 또는 일련의 사건으로, 인명 사상, 재산 손상, 또는 환경 피해를 초래합니다. 인슐린 과다 복용이 예입니다. |
Hazard | 사고를 일으킬 가능성이 있는 잠재적인 조건입니다. 예를 들어, 혈당을 측정하는 센서의 고장은 하나의 위험 요소입니다. |
Damage | 사고로 인한 손실의 측정입니다. 손상은 중대 사고로 많은 사람들이 죽는 것부터 경미한 부상이나 재산 손상까지 다양합니다. |
Hazard severity | 특정 위험으로 인한 최악의 피해 평가입니다. 재난 수준에서 경미한 피해까지 다양할 수 있습니다. |
Hazard probability | 위험을 초래하는 사건이 발생할 확률입니다. 확률 값은 임의적일 수 있지만, 발생할 가능성은 '높음'에서 '불가능'까지 다양합니다. |
Risk | 시스템이 사고를 일으킬 확률의 측정입니다. 위험은 위험 확률, 위험 심각성, 사고로 이어질 확률(hazard probability, the harard severity, and the probability that hazard will lead to an accident)을 고려하여 평가됩니다. |
Hazard가 존재한다면 Hazard의 심각성과 확률이 존재한다. 여기서 Accident(사고)로 이어질 확률이 Risk 이고, Accident 발생 시 손실을 측정한게 Damage가 된다.
Hazard를 어떻게 다뤄야 하나요? (iaas)
- 위험 요소 식별 (Hazard identification)
- 위험 요소 평가 (Hazard assessment)
- Severity와 Probability를 추정한다
- 가능성 높거나 심각한 것을 배제
- 위험 요소 분석 (Hazard analysis) : 근본 원인을 발견하는 것이 목표
- 귀납적으로(system failure -> 위험을 평가)
- 연역적으로(hazard로부터 -> 원인 추론)
- 안전 요구 사항 명세 (Safety requirements specification)
리스크를 줄이는 방법?
중요!! 이 부분을 암기하자. 언제 어떤 전략을 사용할지(ADL)
- 위험 회피(Hazard avoidance)
- 시스템이 일부 유형의 위험이 발생할 수 없도록 설계됩니다.
- ex) hazard 확률이 낮고, severity가 높은 경우?
- 위험 감지 및 제거(Hazard detection and removal)
- 시스템이 사고로 이어지기 전에 위험을 감지하고 제거하도록 설계됩니다.
- hazard 확률이 높지만 Severity가 높지 않은 경우
- 피해 제한(Damage limitation)
- 시스템에는 사고로 인한 피해를 최소화하는 보호 기능이 포함됩니다.
- hazard 확률이 높고 Severity도 높은 경우
Safety Engineering Process에는 어떤 것들이 있나요?(FMS)
요것도 외우기
- Formal verification : 수학적으로 명세를 세부적으로 정의. 명세 오류 및 누락, 프로그램 설계오류 발견에 효과적
- Model Checking : FSM으로 가능한 모든 경로 체크, 테스트하기 어려운 동시성 시스템 검증에 유용
- Static program analysis : 텍스트 구문분석. 프로그램이 해줌. Inspection의 보조 수단
'소프트웨어 공학 > 시험 공부 정리' 카테고리의 다른 글
[소공 시험공부] Software Reuse (0) | 2024.06.07 |
---|---|
[소공 시험공부] Software Reliability (0) | 2024.06.06 |
[소공 시험공부] System Dependability (0) | 2024.06.06 |
[소공 시험공부] Software Evolution (0) | 2024.06.06 |
[소공 시험공부] Software Testing (0) | 2024.06.06 |