CH8. 소프트웨어 안전 및 위험원 분석

김유찬·2023년 6월 11일
0

소프트웨어 공학

목록 보기
7/12
post-thumbnail

■ 소프트웨어 사고 사례

□ 부산역 KTX 열차 충돌 사고

  • 기능제어 SW 존재?: Y
  • SW 기능이 정상 작동했는가?: Y -> Operation Failure

□ 상왕십리역 사고 사례

  • 기능제어 SW 존재?: Y
  • SW 기능이 정상 작동 했는가?: N
  • 입력이나 이벤트가 정상 전달 됐는가?: N
  • 복구 기능(저감기능)이 있는가?: N -> Software Failure

■ 소프트웨어 안전 소개

□ 소프트웨어 안전의 개념

  • 비안전산업군: 제품 및 서비스가 안전에 관련 없는 산업
  • 안전산업군: 제품 및 서비스가 안전에 관련된 산업
  • sw안전산업군: 제품 및 서비스가 sw 안전에 관련된 사업

  • QM, ASIL A,B,C,D: 뒤로 갈수록 수용 불가 위험
  • ASIL >= A: 수용 가능 위험 -> 일반 프로세스 개발

□ 소프트웨어 안전 관련 국제표준 및 동향

  • 일반 사업군: 고품질 제공
  • sw안전사업군: 고품질 제공 + 안전성 달성 + 안전성 근거 수립
  • sw안전사업군의 특성:
  1. 안전성의 달성을 위해서 필요한 sw안전기술과 안전성 근거에 대한 안전규격이 제정됨
  2. 시장진입을 위해 안전규격의 준수가 요구되며, 필요시 독립된 기관의 인증 수행

  • Standards는 각 산업의 도메인 별로 표준화 단체에서 제정하고 있으나 관점, 범위, 추상화 수준, 중복, 해석의 상이 등의 이슈 존재
  • 또한, 산업혁명 속도대비 현 표준이나 지침의 개정 속도가 쫓아가고 있는 상황

□ 주요 안전 표준 개요

○ IEC 61508
ㅋpart1: 일반 요구사항
part2: E/E/PE 안전관련 시스템을 위한 요구사항
part3: 소프트웨어 요구사항
part4: 정의 및 약어

○ IEC 61508 basic concept

  • random hardware failure
    -노화 등으로 인해 랜덤하게 발생되는 H/W적인 failure
    -방법: redundancy(중복성), diversity(다양성), diagnostics(진단), reliability(신뢰성)

  • systematic failure
    -제조 프로세스, 운영 프로세스, 문서화 등 주로 체계적인 부분에서 발생, S/W적인 failure
    -방법: V-model

-safety lifecycle(SLC): systematic error를 줄이기 위한 접근 모델

  • probability failure analysis: SIL(safety integrity level) 등급을 정하기 위한 정량적(확률적) 분석

○ SIL(safety intigrity level)

  • 안전 관련 시스템이 정의된 시간 및 조건하에서 요구되는 안전 기능을 정상적으로 수행할 수 있는 확률
    -RISK 정도에 따라 안전관련 시스템(E/E/PE safety-related system)의 기능이 확보해야 할 등급을 결정
    -Risk reduction을 위해 적용되는 기술 및 검증 방법을 결정하는 등급

○ 주요 안전 표준 방향성

  • 시스템의 개념이 하드웨어, 소프트웨어, 인간자용 등의 복잡하게 연계된 개념으로 확장
  • 시스템의 생명주기 전 과정을 포괄하는 공통의 프로세스 Framework을 제공
  • 2012년 변경에서 적용범위가 SW에서 system and SW로 변경

■ 소프트웨어 위험원 분석

□ 소프트웨어 개발 프로세스와 위험원 분석

  • 안전 관련 제품 개발 시 초기 concept 단계 이후에 위험분석(hazard and risk assessment,hara) 과정 수행
  • 위험 분석 결과로 시스템 레벨의 safety requirement 도출
  • system safety requirement는 sub-system별로 할당
  • system safety requirement가 technical 명세서로 작성됨
  • system safety requirement specification이 hw개발 및 sw 개발

○ 소프트웨어 개발 안전 생명주기

○ sw/hw/시스템 개발

○ Life Cycle Phase

  • 개념단계: 소프트웨어 관리계획, 품질보증 등에 관한 계획 수립(확인 및 검증 계획단계보고서)
  • 요건단계: 소프트웨어 요구사항 및 요건에 대한 이해와 문서화 이행(확인 및 금정요건 요약보고서)
  • 설계단계: 소프트웨어 요건을 근거로 상세설계 이행(확임 및 검증설계 요약보고서)
  • 구현단계: 소프트웨어 설계가 실제적인 코드로 변환되는 과정. 소스코드의 컴파일, 링크작업을 통해 실행파일 생성(확인 및 검증구현 요약보고서)
  • 시험단계: 하드웨어와 소프트웨어가 통합된 환경에서 시험 이행. 통합시험 절차서는 기능 요건서에 기록된 모든 요건이 빠짐없이 시험되는가를 확인(확인 및 검증시험 요약보고서)
  • 현장설치단계: 실제 현장환경에 맞게 기기가 설치되는 작업을 수행(최종확인 및 검증 보고서)

□ 소프트웨어 안전 기법의 종류와 분석 개념

○ 위험 분석 유형

  • 분석 목적, 시점, 범위, 상세도, 시스템 범위
  • 수명 주기 상에서 분석 초점에 따라 7개로 구분

○ 위험 분석 기법

  • 컨셉 설계 위험 분석(CD-HAT)
  • 사전 설계 위험 분석(PD-HAT)
  • 상세 설계 위험 분석(DD-HAT)
  • 시스템 설계 위험 분석(SD-HAT)
  • 운용 설계 위험 분석(OD-HAT)
  • 보건 설계 위험 분석(HD-HAT)
  • 요구사항 설계 위험 분석(RD-HAT)

○ 생명주기 단계발 위험 분석 시점

○ PHA Results(Preliminary hazard analysis, 예비 위험원 분석 절차)

profile
eukddan

0개의 댓글