반응형

제목: 의료 기기 소프트웨어의 장애 모드: 15년간의 리콜 데이터 분석(FAILURE MODES IN MEDICAL DEVICE SOFTWARE: AN ANALYSIS OF 15 YEARS OF RECALL DATA)

저자: Dolores Wallace 1, National Institute of Standards and Technology, 미국

문서유형: 정부 연구 단체 페이퍼( 20페이지)

 

FDA(미식품의약국: Food and Drug Administration) 의료 기기 리콜 데이터베이스의 15년간의 데이터를 분석하여 장애의 증상(symptoms)과 장애를 일으킨 소프트웨어 결함(software faults)을 식별하고 이런 결함을 예방(prevention) 또는 발견(detection) 하기 위해 어떤 조치가 필요한지 분석



분석 대상 리콜 데이터

  • FDA 리콜 데이터는 리콜 번호(리콜 년도와 기기 타입 코드로 구성), 제품명(the product name), 문제 기술(a problem description), 원인 기술(a cause description)로 구성됨
  • 1983~1997년 사이에 테스팅/설치/사용중인 단계에서 제조업자가 자발적으로 리콜한 의료 기기의 장애 데이터를 분석(이 중 환자를 사망하게 하거나 심각한 부상을 입히는 문제는 없었음)
  • 1983-1991년 사이 의료 기기를 리콜하도록 한 품질 문제가 총 2,792건 있었는데 이 중 165(6%)건이 소프트웨어와 관련 장애이고, 1992-1997 사이의 데이터는 아직 채 완성이 안된 상태이지만 비슷한 양상을 보임
  • 1983-1997년 사이 총 소프트웨어 리콜 수는 383건으로, 1994년이 11%, 1995년이 10%, 1996년이 9%로 높은 비중 차지(근래에 의료기기에서 소프트웨어 비중이 크게 증가함에 따라 결함 건수도 증가한 것으로 추측됨). 이 페이퍼는 이 383건의 소프트웨어 관련 리콜을 분석 대상으로 함


의료 분야에 따른 장애 의료 기기 분류

소프트웨어 문제로 리콜된 의료 기기를 해당 의료 분야에 따라 7개 유형으로 분류했을 때 결과가 아래 그림과 같다(파이 상단 중심에서 시작하여 마취과 10%’부터 시계 방향으로 나열됨)

  • 마취과(anesthesiology)
  • 심장과(cardiology)
  • 일반 의료(general hospital)
  • 진단과(diagnostic): 화학(chemistry), 혈액학(hematology), 면역학(immunology), 미생물학(microbiology), 병리학(pathology), 독물학(toxicology) 등을 포함
  • 방사선과(radiology)
  • 일반 & 성형 수술(general & plastic surgery)
  • 기타(other): 건수가 적어서 별도의 카테고리로 분류하지 않은 산부인과(obstetrics & gynecology), 안과(ophthalmology) 등을 포함


초음파(ultrasound)나 단층 촬영(tomography) 등이 있는 방사선과의 기기가 알고리즘과 시스템 연계의 복잡성으로 인해 장애률이 높은 것으로 사료됨


장애 증상(failure symptoms)에 따른 분류

리콜 데이터베이스에 의료 기기에서 관측된 문제점이 아래 예처럼 서술되어 있다.        

) 알람이 울리지 않음, 약 투여가 너무 빠르거나 너무 느리거나 디스플레이상의 데이터와 일치하지 않게 중단됨, 디스플레이에 나타난 값들이 기기의 다른 시각 출력물과 일치하지 않음, 시스템이 갑자기 그냥 멈춤,

 

이렇게 기술된 문제점들을 아래의 13개의 증상(a symptom of the failure)으로 분류한다. 예를 들어 알람이 울리지 않는 것은 동작(behavior) 오류로 디스플레이 결과가 부정확한 것은 출력(output) 오류로 분류됨.

  • 동작(Behavior): 시스템이 특정 액션을 수행(, 받침대의 움직임)
  • 데이터(Data): 입력 데이터의 손상/손실 같은 데이터에 영향
  • 디스플레이(Display): 스크린상의 시각 디스플레이(다양한 형식의 숫자, 텍스트, 이미지)
  • 기능(Function): 대개 단일 계산 또는 작업, 한 모듈 내 소프트웨어 기능
  • 일반(General): 정보가 부족해 특정 카테고리에 할당되기 어려운 건
  • 입력(Input): 오퍼레이션 수행에 사용되는 일차적인 입력 데이터(다양한 형식의 입력 값)
  • 출력(Output): 특정 기능이 산출하는 결과물(대개 다음 단계에 있는 타 기능의 입력으로 사용됨)
  • 품질(Quality): “품질 요구사항을 만족하지 못한다는 사용자의 사용 경험에 따른 불만
  • 응답(Response): 발생하지 않아야 할 무언가가 발생(, 허용치 이상의 파워가 방출)
  • 서비스(Service): 다수의 기능과 관련된 식별 가능한 시스템 서비스(, pumping, 인공호흡, 약 투여). 대개 하나 이상의 컴포넌트(모듈, 서브시스템)와 관여
  • 시스템(System): 전체 시스템
  • 타이밍(Timing): 기기의 서비스 시간 또는 계측 시간
  • 사용자 설명(User instruction): 매뉴얼, 오퍼레이터/사용자를 위한 기타 설명서

 

장애 증상에 따라 리콜 기기를 분류한 결과가 아래와 같다(파이 상단 중심의 동작 22%’로 시작하여 시계 방향으로 나열됨). 기능 오류가 29%로 가장 높은 비중 차지.



소프트웨어 결함 유형(fault types)에 따른 분류

의료 기기의 관측된 장애 증상을 일으킨 소프트웨어 결함(software faults)이 무엇인지 의료 기기 공급업자(제조업자)가 판단하는 것이 가장 정확하지만, 많은 경우 공급업자가 이런 정보를 제공하지 않음. 별수 없이 기존의 발표된 여러 결함 분류표(taxonomies)를 참고하여 결함 유형을 선택하고, FDA 데이터베이스에 제공된 장애에 대한 설명을 기반으로 가장 적합한 유형으로 분류하는 작업을 수행. 정보가 충분하지 않은 경우도 있어서 단지 342건의 장애만 결함 유형을 파악. 아래는 결함 유형에 따른 분류 결과를 보여준다(파이 상단 중심부에서 계산 24%’로 시작하여 시계 방향으로 나열)


  • 로직(logic) 결함이 43%로 가장 높은 비중을 차지(이 카테고리에 요구사항 명세상의 잘못된 로직, 하나 이상의 조건이 동시에 발생할 때 예상치 못한 동작, 부적절한 한계치 등의 문제가 포함되어 있는데, 이들을 요구사항 결함같은 다른 결함 카테고리로 분류하기에 정보가 부족하여 로직 카테고리에 포함함)
  • 1996~1997년 사이에 방사선 기기에서 발생한 계산 결함(calculation faults)이 다른 의료 분야의 기기에 비해 9배가 높다.
  • 1996년에 발생한 총 11건의 로직 결함 중 심장과 기기에서 4, 방사선과 기기에서 3건이 발생. 1997년에는 진단과 기기의 로직 결함이 5, 방사선과 기기의 로직 결함은 단지 1건 이었다.
  • 전반적으로 로직 결함과 계산 결함이 비중을 차지함


결함 예방 및 발견 대책

위에 제시된 13개의 결함 유형으로 분류된 342건의 결함을 분석하여 각 유형 별로 주요 문제점과 결함 예방 및 발견 방법(여러 품질 보증/테스팅 기법들)을 기술함


계산(Calculation) 결함

문제점(Generic Problem)

예방(Prevention)

발견(Detection)

상수(Constants)가 부정확하게 코딩됨

코드 리딩에서 설계서에 명세된 상수표와 실제 코드와 관계 확인

코드 리딩, 인스펙션, 단위테스트

(OS 환경에 따른) 경계 조건 처리 부적절

어써션(Assertions), 비정상적인 경우에 대비한 결함 허용(Fault tolerance)

문제 분야에 중점을 둔 집중 인스펙션, 코드 리딩/워크쓰루, 단위 테스트

부적절한 데이터 구조 처리(배열, bitset, 리스트, , 스텍, 벡터 등)

하위 레벨 설계 리뷰, 코드 리뷰

코드 리딩/워크쓰루, 리뷰, 인스펙션, 단위 테스트

정밀성 문제(I/O나 계산에서 자르기와 반올림 에러)

하위 레벨 설계 리뷰, 코드 리뷰

코드 리뷰, 단위 테스트

부적절한 예외 조건 처리

어써션, 결함 허용

단위 테스트

의미 없는 그래픽 출력

다음 기능이 요구하는 계산 결과물에 대한 리뷰

인터페이스 테스트

오버플로우

어써션, 결함 허용

단위 테스트

 

변경 영향(change impact) 결함


나머지 12개의 결함 유형에 대해서도 위와 같은 표를 나열하고 있는데 정리할 필요성을 별로 못 느끼겠음. 관심 있으신 분들은 페이퍼 직접 보시기를... 


반응형

+ Recent posts