중소기업정보기술융합학회논문지제 2 권제 1 호 pp. 11-18, 2012 안전필수시스템을위한안전성분석기법 김의섭, 윤상현, 유준범 * 건국대학교정보통신대학 A Survey on Safety Analysis Techniques for Safety-Critical Systems Eui-Sub Kim, Sanghyun Yoon, Junbeom Yoo College of Information and Communication, Konkuk University 요약소프트웨어의규모가커지고복잡해지면서소프트웨어의기능적실패 (Functional Failure) 를만들어내는위험 (Hazard) 요소들을분석하기가어려워지고있다. 안전필수시스템 ( 원자력발전소, 항공관제시스템, 철도운영시스템 ) 에서이런기능적실패는곧큰사고 ( 인명피해, 환경오염 ) 로이어지게된다. 따라서이러한기능적실패를방지하고소프트웨어의안전성을높이기위해서는소프트웨어안전성분석이필요하다. 하지만몇가지이유 ( 시간과노력, 안전성분석기법의다양한지식부족, 기관이나회사의관습적인방법사용 ) 로적절하지못한안전성분석기법을선택하게되는경우가있다. 따라서본논문에서는기존안전성분석기법과최신안전성분석기법, 통합모델몇가지를소개하겠다. 이것을통해전문가는여러종류의안전성기법을간략하게확인할수있을것이고, 시스템에맞는안전성분석기법을선택하는데도움을받을수있을것이다. 키워드 : 안전성분석기법, 안전필수시스템 Abstract As scale of software has been expanded and complicated, it is difficult to detect hazards which induce functional failure of software. Functional failure of safety-critical system (nuclear power plant, air traffic control systems, railway operating system) could result in a disaster (personal injury, environmental pollution). Therefore, it is necessary to conduct a safety analysis for preventing functional failure and increasing safety of the software. However, there are some reasons (time and effort problem, low knowledge of various safety analysis techniques, selecting conventional technique in company, organization) which disturb selecting an apposite one. This paper presents some traditional safety analysis techniques, recently presented techniques and combined models. We expect that it helps stakeholders to choice adequate one for target system. Key Words : Safety analysis technique, Safety-Critical System 1. 서론 소프트웨어의규모가커지고, 복잡해지면서소프트웨 * 교신저자 (jbyoo@konkuk.ac.kr) 접수일 (2012 년 4 월 2 일 ), 심사완료일 (2012 년 6 월 17 일 ) 어의기능적실패 (Failure) 를만들어내는위험 (Hazard) 요소들을분석하기가어려워지고있다. 소프트웨어가일상생활뿐만아니라, 안전성이강조되는분야 ( 원자력발전소, 항공관제시스템, 철도운영시스템 ) 에도쓰이게되면서, 이런기능적실패는곧큰사고 (accident) 로이어지 11
중소기업정보기술융합학회논문지제 2 권제 1 호 게된다. 사고는작게는일상의불편함이나혼란과같은작은피해를가져오지만, 안전필수시스템 (safety-critical system) 일경우에는인명피해나환경오염처럼재난과도같은결과를가져오게된다 [1]. 그렇기때문에소프트웨어의기능적실패를제거하고, 안전성과신뢰성을높이기위해안전성분석이필요해지고있다. 또한, 시스템과관련된여러규제기관들도시스템의시행허가를위해안전성분석을요구하고있다. 소프트웨어가발전한만큼다양한안전성분석기법들이연구되어왔다. 안전성분석기법의적용은많은시간과노력이필요하고 [1], 안전성분석기법들이각각대상으로하는개발단계가다르기때문에전문가 (Stakeholder) 는이런다양한안전성분석기법중에서시스템에맞는적절한안전성기법을신중히선택해야한다 [2]. 그러나안전성분석기법에대해다양하게모르거나, 기관이나회사에서사용하는방법을관습적으로계속사용하기때문에적절하지않은안전성분석기법을사용하는경우가많다. 그림 1과그림 2는적절하지않은기법의사용을보여준다. 그림 1, 2에서원 A와 B는안전성분석기법을나타내고, 원의크기는안전성분석기법이다룰수있는범위와그에해당하는비용을나타낸다. 그림 1은불필요한고비용의기법사용을나타내고있고, 그림 2는소프트웨어에대해안전성을충분히만족하지못한기법의사용을나타내고있다. 그림 2의경우는소프트웨어에서특히안전성이더필요한부분을포함하고있는기법 A 를사용하는것이 B를사용하는것보다옳다는것을보여준다. 하지만많은전문가들은위에나열된이유때문에적절한안전성기법을사용하지못한다. 그림 2. 모든기능에대해안전성을만족하지못한기법사용 Fig 2. Use of Unsatisfiable Safety Analysis 본논문에서는과거안전성분석기법과최신안전성분석기법들의특징을설명한다. 여러종류의안전성기법을간략하게확인할수있을것이고, 이것을통해전문가는시스템에맞는안전성분석기법선택에도움을받을수있을것이다. 용어정의 [3] Error: 설계 (design) 의결함또는바랐거나의도했던상태로부터벗어남 Hazard: 시스템환경에서다른상태들과연관되어필연적으로사고를발생시키게되는시스템의상태나상태들의모임 Failure: 특정환경상태에서특정시간동안시스템또는컴포넌트 (component) 가수행하기를희망했던기능의불이행, 불능 Accident: 특정수준의손실이라는결과를내는바랐거나계획하지않았던이벤트 2. 안전성분석기법 그림 1. 고비용의안전성분석기법사용 Fig 1. Use of High-Cost Safety Analysis 2.1 FHA Functional Hazard Assessment(FHA) 는 failure 에유발하는기능 (function) 을찾아내는기법이다 [4, 5]. 개발초기또는시스템을정의하는단계에서적용할수있으며, 하향식 (Top-down) 으로분석을반복한다. 브레인스토밍 (Brainstorming) 을통해기능과관련된위험을정의하고, 위험이미칠영향, 영향의심각성을정의한다. 이런과정을통해사용자는안전성목표 (Safety objective) 를얻을수있다. 12
안전필수시스템을위한안전성분석기법 Approach: 안전성목표를통해시스템이 safe하기위해필요한것들을정의할수있고, 이것을기반으로사용자는 safety 한개발을진행할수있다. Output: Function, Failure Condition(Hazard Description), Phase, Effects of failure Condition on aircraft/crew), Classification, Reference to Supporting Model, Verification 등의속성을포함하는테이블이생성된다. (1) 모든컴포넌트를리스트형태로정의를하고, (2) 각각의고장모드가영향을미칠모든컴포넌트, 시스템을정의하고, (3) 각각의고장모드의가능성과심각성을계산하는것이다 [3]. 소프트웨어개발수명주기의이른단계에이분석기법을사용하는것이비용측면에서유리하다. 단계에서의적용은경고 (warning) 또는예방 (preventive) 을통해 safety 를위한설계수정을최소화할수있다. 2.2 PHA PHA(Preliminary Hazard Analysis) 는요구사항분석의늦은단계나, 설계과정의이른단계에서사용하기좋다. 이기법도브레인스토밍방법을사용한다. 따라서시스템을잘이해하고있는전문가나, 안전성분석기법경험자가사용하기에적합하다. PHA 과정에서는안전성분석을위한체크리스트를사용한다. 체크리스트 : Life-cycle 모든단계에서사용되며, 사용자가직접손으로작성한다. 실수 (mistake), 교훈 (lessen) 을적음으로써피드백을제공한다. Output: 테이블형태의문서를제공하고, 테이블에는 Function, Failure Condition, Phase, Effect, Class, Verification 등의속성이있다. 단계 : (1) 위험으로이어질시스템요소나이벤트를식별한다. (2) 사고로이어질위험의이벤트 sequence 고려한다. (3) 사고의결과와수정방법을고려한다. 위와같은방법론으로각각의시스템구성컴포넌트의동작또는고장 (failure) 이시스템의 safety 에어떻게영향을미치는지조사하는 SHA(System Hazard Analysis), 컴포넌트동작의조합또는고장모드 (mode) 가시스템의 safety에영향을미치는지조사하는 SSHA (Subsystem Hazard Analysis), 사람과기계의인터페이스에있는위험을조사하는 OSHA (Operating and Support Hazard Analysis) 등도있다. Output: 테이블형태의문서를제공하고, 테이블에는컴포넌트, 고장가능성, 고장모드, 모드별고장, 고장효과등의속성이있다. 2.4 FSD FMEA 는컴포넌트의고장을확인하기에아주좋은분석기법이다. 하지만컴포넌트의상호작용에대해서는설명하지못한다. 그래서이런 FMEA의단점을보완하기위해 UML의 Sequence diagram을사용한 Failure Sequence Diagram(FSD)[7] 이제시되었다. FSD은 FMEA의조사단계가끝난후수행되고, 컴포넌트간의상호작용을보여주기위해 UML Sequence diagram을작성한다. 이것을통해현재의제어상태와참조하고있는행동 (Action) 에대해서기술할수있다. 그림 3을통해 Hazard Actor에서발생된입력이컴포넌트들을거치면서사용자에게어떻게고장의형태로전달되는지를그과정을볼수있다. 2.3 FMEA Failure Mode and Effect Analysis(FMEA) 는존재하고있는또는잠재적인고장, 문제, 오류들이사용자에게닿기전에찾고 (identify), 정의하고 (define), 제거하는 (eliminate) 안전성분석기법이다 [6]. FMEA의단계는 그림 3. FSD 의예 Fig 3. Example of FSD 13
중소기업정보기술융합학회논문지제 2 권제 1 호 2.5 HAZOP HAZard and OPerability Analysis(HAZOP) 은이름에서알수있듯이위험과시스템의운영상의위협요소를조사하는기법이다. 전통적으로성공한, 널리알려진방법중에하나이다. 기본적으로시스템을검토하고잠재적인위험을찾는것이목적이고, 브레인스토밍단계에서 Guide word[8] 를이용한다는특징이있다. Approach: 설계와운영성에서의차이 ( 편차 ) 로인해사고는발생된다. 따라서이런편차를발생시킬 수있는설계나, 편차와연관된모든위험을찾는것이목적이다. 편차즉, less flow, more flow, pressure와같은요소를밝히기위해파라메터 ( 온도, 압력등 ) 로구성된 Guidewords(NO, NOT, NONE, MORE, LESS, PART OF) 를사용한다. 표 1 은 Guidewords 와이들의의미를보여준다. Output: Guideword, Deviation, Possible Causes, Possible Consequences 등의속성을포함하는테 이블형태이다. HAZOP 은위험을찾아내는것뿐만아니라운영상에서의문제까지성공적으로찾아내었기때문에자연스럽게여러종류의분야 ( 의학진단시스템, 도로안전성측정, 광발전시설의위험분석 ) 로확장되고있다 [9]. 표 1. Guidewords 의예 Table 1. Example of Guidewords Guideword NO, NOT, NONE MORE (LESS) Meaning 의도된결과를얻지못하였다. 하지만아무일도일어나지않았다. 의도한것보다실제수치가더많이 ( 적게 ) 나왔다. (higher pressure, higher temperature) REVERSE 의도한것과논리적으로반대의것이발생되었다. (forward flow 대신 backflow 발생 ) 그림 4. FTA 의예 Fig 4. Example of FTA Approach: 최상위수준 (root) 에의도하지않은이벤트를두고, 이를발생시킬수있는잠재적인 faulty event 또는 normal mode 를노드 (node) 로표현하고, 이것을 Boolean logic(and, OR) 을사용해조합하여비쥬얼하게보여준다. 2.7 TFT FTA는시간의변화에따른조건을을표현하지못한다는단점이있다. 이것은실시간시스템에서는문제가된다. 따라서 FTA에 Temporal Gates 를추가한 TFT가제시되었다. Temporal Fault Tree(TFT)[11] 는 FTA에결함과이벤트사이의임시적인의존성 (temporal dependency) 을 Temporal Gate를통해표현할수있다. 그림 5는 PREV의 Gate 형태의표현과현재시간과의관계를보여주고있다. PREV는현재시간보다 p 시간전을표현한다. 그림 6은 PREV 2 에해당하는 non-tft 의모습이다. 2.6 FTA Fault Tree Analysis(FTA)[10] 는시스템의기능과고장에대한정보를그림 4와같이트리 (tree) 구조로제공한다. 현재항공, 전자공학, 원자력등다양한분야에서사용되고있다. 개발의모든단계에서사용가능하다는장점이있지만, 지금까지언급한기법들과달리 FTA는위험이발생할원인들을분석할수는있지만, 위험을찾아내는기법은아니다. 그림 5. PREV 에관한 temporal gate 와시간표현 Fig 5. Temporal gate of PREV and express of time 14
안전필수시스템을위한안전성분석기법 다. 이기법은시스템의전체수명주기단계에서사용할수있지만, 설계가만들어지기전에사용하는것이가장비용효과적이다. 그림 6. PREV 에 temporal gate 와 non-tft Fig 6. Temporal gate of PREV and replacement 2.8 STAMP System-Theoretic Accident Model and Processes (STAMP)[14] 은단순히컴포넌트고장뿐만아니라컴포넌트간의상호작용도포함하여고장의원인을분석한다. Approach: 과거안전성분석기법들은현재새로운시스템에잘맞지않는다 - 빠른속도의기술변화, 새로운위험발생, 사람과기계사이의관계가복잡해짐등. 따라서새로운관점의안전성분석기법이필요하게되었다. 사고의원인을사람과환경, 사회까지폭넓게생각한다. STAMP 의기본적인개념은이벤트가아니라제약사항을중심으로보는것이다. 즉, Safety constraint가제대로지켜지지못했기때문에손실로이어지는이벤트가발생하는것으로볼수있다. 현재다양한분야에서 STAMP 의적용이활발히이루어지고있는중이다 [13, 14]. 단계 : (1) 기본적인사항을작성한다 (accident, hazard, constraints, high-level 의 safety control 구조 ). (2) 잠재적인 unsafe control action을식별한다. (3) hazardous control action이어떻게발생하게되었는지 (4) 시스템위험을상위수준에서의 Safety 요구사항으로변환한다. (5) 상위수준의 Safety 제약사항을컴포넌트수준의상세 Safety 요구사항으로재정의하고, 손실에대한시나리오를작성한다. (6) 결과를이용하여시스템설계를작성하고, Safety를향상시키는데반영한다. 2.9 STPA System-Theoretic Process Analysis (STPA) [14] 는다른기법에서는다루지않은, STAMP 로부터정의된새로운결함원인인자 (causal factor) 를사용하는것이다. 전자기적, 기계적특성을갖는컴포넌트에만초점을맞추었던기존의방법들과는달리, 설계오류, 소프트웨어결함, 컴포넌트간의상호작용에의한사고, 그리고사람, 기관, 관리요소들이만든오류등과같은새로운원인들까지관심을가지고있다. STPA 기법의목표는 (1) 사람, 기관, 환경등의전체적인것을포함하는사고시나리오를만든다. (2) HAZOP 과마찬가지로 Guideword 를사용해사용자에게가이드를제공한다. (3) 설계단계에서 Safety 를위해필요한정보를개발자에게제공해 Safety 한설계를도와준 그림 7. Socio-Technical Control 의일반적인모델 Fig 7. General Form of a Model of Socio-Technical Control 3. 안전성분석기법기반확장모델 3.1 CHASSIS Combined Harm Assessment of Safety and Security for Information System(CHASSIS) [15] 은 Safety 와 15
중소기업정보기술융합학회논문지제 2 권제 1 호 Security 두가지측면에초점을맞추고있다. 이두속성을모두만족하고싶은사용자에게유용하게사용될수있는확장모델이다. Security 측면은 Misuse Case (MUC), Misuse Sequence Diagram(MUSD) 을사용하였고, Safety 측면은 MUC와 Failure Sequence Diagram(FSM) 을사용하였다. 그리고기본바탕으로는 HAZOP 을사용한안전성분석기법을기반으로하는통합모델이다. 그림 8. CHASSIS 의주요과정과기법들 Fig 8. Main activities and Techniques of CHASSIS Approach: Safety 와 Security 를통합적으로만족하고위험과고장을보다시각적으로보여주기위해 UML 의개념을사용한통합모델이다. 3.2 HiP-HOPS Hierarchically Performed Hazard Origin and Propagation Studies(HiP-HOPS)[2] 은하드웨어나소프트웨어의실행단계인함수수준으로부터안전성에대한정보를통합분석할수있도록하는계층적통합기법이다. 이기법에서는 Functional Failure Analysis (FFA), Interface focused-fema(if-fame), FTA를사용하고있다. FFA는설계를시작하는단계에서사용된다. 이단계에서기능고장을찾을수있고, FFA의결과는설계를구성하는데 Safety 요소강화에도움을준다. 설계의분할단계에서시스템은하위시스템, 컴포넌트로나뉘게되고, 하위시스템, 컴포넌트는 Interface Focused-FMEA 를통해컴포넌트고장을분석을하게된다. 이것을통해지역고장모델을정의하게된다. HiP-HOPS는기존 FFA의단점 ( 단일의기능고장만확인 ) 을보완하기위하여탐지및복구기능을추가, 확장한 FFA를제공한다. 그리고 FMEA의단점 ( 컴포넌트사이의고장발견 ) 을보완하기위해 IF-FMEA 를사용하였다. 또한결함트리를자동적으로생성하게하는도구도제공하고있다. 단점은 CHASSIS 는위험을찾고, 조사하고, 완화시키지만리스크를관리할수는없다. 그림 8은 CHASSIS의주된과정과기법을보여준다. 이과정은 (1) 시스템기능과서비스를정의한다.(UML 을이용해 Use Case diagram [step 1] 과 textual use case[step 2], sequence diagram[step 3] 을작성하게된다.) (2) Safety 와 Security 의요구사항을얻는다. MUC 다이어그램을통해 misusers, harm use case를찾는다 [step 4]. HAZOP 의 Guideword 를통해체계적으로 misuse case를찾을수있다. MUC 다이어그램을작성한다 [step 5]. FSD, MUSD 를이용하여사용자는위험시나리오를정의할수있다. [Step 6] (3) HAZOP 테이블을얻는다 [Step 7]. 이를통해 Safety, Security 요구사항을얻을수있다 [Step 8]. 그림 9. HiP-POPS 의 safety analysis 와 design 개요 Fig 9. Design & safety analysis overview in HiP-HOPS Output: 시스템의실행적인측면의자세한사항을기록한계층모델을얻게된다. HiP-POPS에서는시스템의구조와컴포넌트의지역적고장동작 (IF-FMEA) 을알고있다면시스템의고장동작에대한정보 ( 결함트리 ) 를자동적으로얻을수있는도구를제공하고있다. 이결함트리를통해서시스템의 16
안전필수시스템을위한안전성분석기법 취약한부분을찾을수있다. 4. 결론소프트웨어는많은발전을이루어왔다. 규모가커지고, 복잡해지고, 사용분야도일상과밀접한곳부터안전필수시스템까지다양한곳에쓰이게되었다. 특히안전필수시스템에서는안전성을위해안전성분석기법의적용이필수적이다. 하지만안전성을분석기법의적용은많은시간과노력이필요하고, 안전성분석기법들이각각대상으로하는개발단계가다르기때문에전문가는이런다양한안전성분석기법중에서시스템에맞는적절한안전성기법을신중히선택해야한다. 현재다양한안전성분석기법들이제시되어왔으며, 새로운안전성분석기법들도계속해서제시되고있다. 이런것들을모두배우고조사하는것역시많은시간과노력이필요하다. 본논문은이런시간과노력을줄여주기위해전통적으로많이쓰였던안전성분석기법과최신기술, 통합모델의개요를나열하였다. 이것을통해전문가는시스템에맞는안전성분석기법을선택하는데도움을받을수있을것이다. Acknowledgement 본연구는지식경제부및정보통신산업진흥원의대학 IT연구센터지원사업의연구결과로수행되었음 "(NIPA-2012-(H0301-12-3004)). 또한한국원자력연구원주요사업 " 원자력계통건전성선진화체계구축 " 사업의지원으로연구한결과입니다. 참고문헌 [1] Daniel Jackson Software for Dependable System: Sufficient Evidence? National Academy of Sciences 2007 [2] Y. Papadopoulos Analysis and synthesis of the behavior of complex programmable electronic system in conditions of failure Reliability Engineering and System Safety 71 (2001), pp.229-247 [3] Nancy G. Leveson SAFEWARE: System Safety and Computers Addision-Wesley 1995 [4] EUROCONTROL Guidelines for the identification of hazards, How to make unimaginable hazards imaginable? NLR-CR-2004-094 March 2004 [5] P J Wilkinson Functional Hazard Analysis for Highly Integrated Aerospace System Certification of Ground/Air Systems Seminar (Ref. No. 1998/255), IEE [6] D. H. Stamatis Failure Mode Effect Analysis: FEMA from Theory to Execution Second Edition 2003 [7] Christian Raspotnig Supporting Failure Mode and Effect Analysis: A Case Study with Failure Sequence Diagram International Journal of Secure Software Engineering (IJSSE), Volume 3, Issue 1. 2012. 17 pages. [8] Giuseppe Mauri Integrating Safety Analysis Techniques, Supporting Identification of Common Cause Failures, September 2000 [9] Jordi Dunjo Hazard and Operability (HAZOP) analysis. A literature review Journal of Hazardous Materials 173 (2010) 19-32 [10] Vesely WE. Fault tree handbook, US Nuclear Regulatory Committee Report NUREG-0492, US NRC, Washington DC, United States, 1981. p. X.15 8. [11] Girish Keshav Palshikar Temporal fault trees Information and Software Technology 44 (2002) 137-150 [12] Haruka Nakao Safety Guided Design of Crew Return Vehicle in Concept Design Phase Undesig STAMP/STPA STAMP/ STPA Workshop, MIT, April 2012 [13] Safety Assurance in NextGen by Cody Fleming, Melissa Spencer, Nancy Leveson, and Chris Wilkinson (Honeywell). NASA Technical Report NASA/CR-2012-217553. [14] Nancy G. Leveson Engineering a Safer World July 2009 [15] Christian Raspotnig A combined process for elicitation and analysis of safety and security requirements Not published. 저자소개김의섭 (Eui-Sub Kim) 2012년 2월 : 건국대학교컴퓨터공학부학사 < 관심분야 > : 소프트웨어공학, 안전성분석, 정형기법 17
중소기업정보기술융합학회논문지제 2 권제 1 호 윤상현 (Sanghyun Yoon) [ 비회원 ] 2010년 2월 : 건국대학교컴퓨터공학부학사 2012년 2월 : 건국대학교컴퓨터공학부석사 2012년 3월 ~ 현재 : 건국대학교컴퓨터공학부박사과정 < 관심분야 > : 소프트웨어공학, 안전성분석, 정형기법 유준범 (Junbeom Yoo) [ 정회원 ] 2005년 8월 : KAIST 전자전산학과전산학전공박사 2008년 2월 : 삼성전자주식회사통신연구소책임연구원 2008년 3월 ~ 현재 : 건국대학교컴퓨터공학과조교수 < 관심분야 > : 소프트웨어공학, 안전성분석, 정형기법 18