산업별로 소프트웨어 의존성과 복잡성이 증가함에 따라 소프트웨어의 결함으로 인한 사고발생 가능성이 높아지게 되었으며, 소프트웨어로 인한 사고 발생 시 사회·경제적 피해가 막대할 가능성이 있으며, 소프트웨어 안전이 국민 안전 확보를 위한 핵심요소로 부각되고 있다. 그 동안 크게 부각되지 않던 소프트웨어안전이 중요해짐에 따라 그를 구현할 수 있는 방법에 대한 연구가 필요하게 되었다.
소프트웨어안전 선진국은 시스템안전 표준과 함께 소프트웨어안전 표준을 정하고, 소프트웨어안전을 지키기 위한 활동을 하고 있다. 소프트웨어안전 표준의 주요 활동은 안전 프로세스 적용이라 할 수 있다. 하드웨어의 안전은 안전 무결성 수준(Safety Integrity Level)을 결정하고 그에 맞는 실제 고장률을 측정하여 그 달성도를 확인한다. 소프트웨어안전의 경우는 실재 고장률 측정이 불가능하기 때문에 소프트웨어안전을 위한 개발 프로세스를 정하고 이에 따라 개발한 경우 소프트웨어안전이 구현되는 것을 전제로 하고 있다.
2015년과 2016년에 소프트웨어정책연구소에서 수행한 『소프트웨어안전 산업 동향 조사』에서는 국내의 경우 소프트웨어안전 프로세스 활동 중에서도 가장 중요한 위험도 분석이나 안전 메카니즘 분석, 설계보다는 테스트위주의 활동을 위주로 활동한다고 조사되어, 소프트웨어안전 확보의 주요 활동인 소프트웨어안전 프로세스 적용에 대한 적용현황을 조사하고, 활성화하는 정책의 필요성이 제기되었다.
본 연구의 목적은 소프트웨어안전 확보를 위한 소프트웨어 개발 프로세스 적용 현황을 면밀히 확인하고, 제품 및 기업 현황에 맞는 소프트웨어 안전 개발 프로세스의 적용과 확산방안의 도출이다.
3. 연구의 구성 및 범위
본 연구는 총 6장으로 구성되어 있다.
제 1장에는 서론으로 소프트웨어 안전 확보를 위한 개발 프로세스 적용 확산 방안 연구의 배경과 필요성, 목적, 내용 및 본 연구를 수행한 연구 수행 방법을 제시한다.
제2장에는 소프트웨어 안전 확보를 위한 요소들을 확인하고, 소프트웨어 개발 프로세스, 소프트웨어 안전 프로세스에 대해 정리한다. 본 장의 통해 정리된 프로세스를 기반으로 안전 개발 프로세스 조사지를 구성한다. 또한 문제점 도출 및 개선 방안 마련을 위해 소프트웨어 안전 미적용 사고 사례 및 표준 적용 사례를 분석한다.
제3장에는 소프트웨어 안전 개발 프로세스 실태 조사를 위한 조사 내용 및 조사 대상에 대한 내용으로 비표준 분야는 IEC 61508, 표준분야에서 자동차 분야는 ISO 26262, 철도분야는 IEC 62279, 항공 분야는 DO-178C를 중심으로 소프트웨어 안전 개발 프로세스 및 단계별 세부 활동 안전 기법 및 산출물을 조사하여 실태 조사지를 구성한다.
조사 대상은 소프트웨어정책연구소, 정보통신산업진흥원, 각 분야별 유관 협회 등에서 조사 대상 목록을 수집하고, 유효대상 선별 작업을 수행 한 후 사전 전화로 실태 조사 대상을 확정하고 개별 방문을 통한 조사지 조사 및 심층 인터뷰를 진행한다.
제4장에는 조사지 조사 및 심층 인터뷰 결과를 정리하고 안전 프로세스 적용 현황 조사 결과를 분석하였다. 조사지 응답자 특성 현황, 조사 결과에 대한 객관적 분석을 시행하고, 공통질문과 세부질문의 관계, 이전 질문과 다음 질문의 관계 등의 분석하여 결과에 대한 해석을 추가하였다.
제5장은 문제점 분석 및 개선 방안에 대한 내용으로, 소프트웨어 안전 개발 실무자들이 느끼는 현장에 적용이 어려운 문제들과 이를 해결하기 위한 개선 방안을 제시한다.
제6장은 결론으로 연구의 요약, 시사점과 향 후 연구, 연구의 한계점 등에 대해 기술한다.
4. 연구 내용 및 결과
본 연구에서 소프트웨어 안전 개발 프로세스 적용을 위한 확산 방안을 마련하기 위하여 필요한 국제 표준 소프트웨어 안전 관련 배경지식을 조사하였다. 소프트웨어 안전의 기본개념을 조사하고, 안전 확보를 위해 기본적으로 수행하는 활동을 정의하였다. 소프트웨어 안전 확보를 위해서는 첫째 안전 기능이 구현이 필요하고, 둘째 안전 등급에 따른 안전 무결성이 보장되어야 하며 마지막으로 소프트웨어가 안전 , 개발 프로세스에 따라 개발되어야 한다. 본 연구의 중심내용은 소프트웨어 안전 개발 프로세스에 대한 것인데, 안전 개발 프로세스가 기존 소프트웨어 개발 프로세스와 다른 점은 위험분석과 안전 검증이 추가된다는 점이다. 이에 따라 안전 전문 인력과 안전 지식이 필요하고, 추가 비용이 소요된다.
본 연구에서는 안전 미적용 사고 사례와 안전 프로세스 적용 사례를 추가하였는데, 사고사례로는 Therac 25 사고와 우버 자율주행차 사고를 분석하였다. 적용사례로는 해외 사례로 영국 61508 협회와 CASS Scherme 사례를 분석하였다. 국내는 안전보건공단의 활동에 대해 조사하였다.
조사는 자동차, 항공, 철도의 표준 분야와 비표준 분야로 나누어 시행되었다. 안전 프로세스 적용 현황 조사지 구성을 위해서 IEC 61508, ISO 26262, IEC 62279, DO-178C의 표준에서 소프트웨어 안전 프로세스를 정의하였다. 소프트웨어안전 프로세스의 내용이 방대하여 기본적인 소프트웨어 개발 프로세스는 제외하고 안전관련 활동에 집중하여 조사지를 작성하였다. 조사 대상이 이해할 수 있는 가능한 쉬운 용어로 조사지를 구성하였다. 소프트웨어 안전 전문 자문단과 논의하여 소프트웨어 안전개발 프로세스 적용을 위한 실태조사 항목과 질문을 확정하였다.
조사 대상 기업 현황, 표준 및 비표준 분야에 대한 공통 설문, 소프트웨어 안전 프로세스에 대한 각 분야별 설문, 향후 개선 및 지원 요구사항 등을 조사지로 구성하였다. 각 표준을 기반으로 한 조사항목은 조사를 위한 기본 자료로 사용하며, 각 조사자의 특성에 맞는 의견을 취합을 위한 부분도 조사지에 구성하였다.
분야별 설문의 경우 요구사항 분석, 아키텍처 설계, 상세 설계, 구현, 테스트의 공통 단계를 설정하고, 각 단계 수행여부에 대한 공통 질문을 구성하였으며, 각 산업별 특성을 가진 안전 개발 프로세스에 대한 내용은 하위 질문으로 추가 구성하였다. 표준분야로서 항공 분야는 DO-178C, 자동차 분야는 ISO 26262, 철도는 IEC 62279 기반으로 조사지를 설계하였다. 비표준 분야인 경우 기능 안전 모표준인 IEC 61508을 기준으로 조사지 항목을 설계하였다.
소프트웨어 안전 산업 확산을 위해 소프트웨어 안전 프로세스 적용을 위해 지원해야 하는 사항을 도출할 수 있도록 심층실태 조사를 실시하였다. 또한, 비표준 분야에서는 소프트웨어 안전 개념 및 적용 분야에 소프트웨어 안전 중요도에 대한 정도와 기존 소프트웨어 안전 프로세스 적용 시 문제점이 있는지에 대한 심층 실태 조사를 실시하였다.
심층 조사 분석을 위해 소프트웨어 안전성에 대한 업무를 수행하고 있는 기업을 대상으로 진행하였으며 소프트웨어 안전에 대한 소프트웨어 사업 , 현황, 인력 역량, 연구소 역량 등을 기본적으로 파악한 후 업체를 선정하여 진행하였다. 방문 심층 실태조사를 위해 비표준 분야 산업, 자동차, 철도, 항공 등 소프트웨어 안전 프로세스를 적용하고 있는 기업 50개를 선정하여 심층 실태 조사를 실시하였다. 심층 실태 조사에 참여한 현황은 비표준 15개 기업, 자동차 11개 기업, 철도 11개 기업, 항공 15개 기업을 대상으로 방문 조사를 실시하였다.
조사 결과와 분석 내용은 방대하여 본 요약에는 포함하지 않는다. 4장 실태조사 및 분석 마지막 절에 종합 의견을 추가하여 조사 분석 내용을 요약 정리하였다. 소프트웨어 안전 일반 사항에 관한 공통 설문 부분을 종합적으로 분석하면 철도, 항공 부분은 안전에 대한 의식, 준비, 활동 등이 높은 수준을 보였으며, 자동차는 중간 수준, 비표준 분야는 조금 부족한 것으로 조사되었다. 비표준 분야는 위험 분석, 안전 관리 측면에서 인식, 지식, 및 수행이 부족한 것으로 조사되었다.
소프트웨어안전 개발 프로세스 적용 실태 조사를 통해 그동안 추정하고 있던 사실들에 대한 좀 더 객관적인 데이터를 산출할 수 있게 되었다. 안전 인식에 대한 문제가 계속적으로 제기되었고 이번 조사를 통해 비표준 분야의 안전 인식 제고의 필요성이 도출되었다. 안전 프로세스 적용에서 가장 어려운 점 중의 하나로 안전 전문 인력 부족 문제가 도출되었다.
실태 조사 결과 분석을 바탕으로 자동차, 항공, 철도 등 표준 분야에서 다음과 같은 문제점이 도출되었다.
소프트웨어 안전성 보증을 위한 기법 적용이 어려움
소프트웨어 안전성 확보를 상세 설계 과정에서 구현을 위한 충분한 설계가 이루어지지 않고 있음
소프트웨어 안전 개발 프로세스 각 단계별 세분화된 프로세스 정보가 미흡
테스트 단계의 산출물이 계획 대비 소프트웨어 안전성 요구사항 추적이 어려움
소프트웨어 안전 개발 프로세스 적용에 따른 일정 및 예산 부족
소프트웨어 안전 개발 프로세스를 이해하는 전문가 부족
비표준 분야에서는 다음과 같은 문제점이 도출되었다.
소프트웨어 안전 제품 개발 시 안전 계획 수립이 어려움
소프트웨어 안전 개발 시 요구사항 도출 및 요구사항 추적이 어려움
소프트웨어 안전 개발 프로세스의 각 단계별 기법과 산출물 관리 미흡
소프트웨어 위험원 관리 및 위험성 평가 미흡
소프트웨어 안전 개발 프로세스 적용을 위한 환경 부족
소프트웨어 안전 개발 프로세스 적용에 대한 경험 부족
소프트웨어 안전 개발 프로세스를 이해하는 전문가 부족
소프트웨어 안전 개발을 위한 소프트웨어 공학 기술에 대한 이해 부족
이러한 문제점 해결을 위해 표준 분야에서 다음과 같은 개선 방안을 도출하였다.
소프트웨어 안전 개발 프로세스에 대한 지속적인 교육
소프트웨어 안전 개발 프로세스를 위한 전문 인력 확보
소프트웨어 안전 개발 프로세스에 대한 가이드나 방법론 제공
소프트웨어 안전 개발 프로세스 적용하기 위한 제도 장치 마련
비표준 분야에서는 다음과 같은 개선 방안을 도출하였다.
소프트웨어 안전 개발 프로세스에 적용을 위한 인식 개선 및 교육 수행
소프트웨어 안전 개발 프로세스를 수행 할 수 있는 인력 확보
소프트웨어 안전 개발 프로세스에 대한 표준 개발 및 가이드 제공
소프트웨어 안전 개발 프로세스 적용하기 위한 법제도 장치 마련
5. 정책적 활용 내용
본 연구결과는 소프트웨어 안전 개발 프로세스 적용을 위한 국내외 표준 및 사례를 조사하고 안전 표준이 있는 분야와 없는 분야의 실무자들의 적용 현황 및 기대사항을 조사하여 소프트웨어 안전 프로세스 확산을 위한 방안 및 정책 마련에 기초 자료로 활용될 수 있다.
6. 기대 효과
본 연구는 소프트웨어 안전 개발 프로세스 적용 및 확산을 위한 정책 마련의 기초가 되며, 궁극적으로 국내 소프트웨어 안전 개발 역량을 강화하여 보다 안전한 소프트웨어를 만들어 관련 산업의 국제 경쟁력 확보에 기여할 것이다.
Summary
1. Title:
Study on Activation of Development Process for Software Safety Assurance
2. Purpose and Necessity of the Research
As software dependency and complexity increase in each industry, the possibility of accidents caused by defects of software is increased. In case of accidents caused by software, social and economic damages can be enormous. Software safety is a key element for ensuring national safety. Has been highlighted. As software safety becomes more important, it is necessary to study how to implement it.
Software safety Advanced countries implement system safety standards together with software safety standards and ensure software safety. The main activity of the software safety standard is the safety process. The need for a policy to investigate and activate the activation of the software safety process has been raised.
The purpose of this study is to examine the application status of software development process and to find out how to apply and spread software safety development process according to product and company situation.
3. Composition and Range
In Chapter 1, we present the background, research purpose, content and method of conducting the research.
In Chapter 2, we describe the elements for software safety. We organize software development processes, software safety processes, and examples for safety processes.
In Chapter 3, we organize the survey paper for the actual condition of the software safety development process.
In Chapter 4, we summarize the findings of the survey and in - depth interviews and analyze the results of the survey on the application of the safety process.
In Chapter 5, we analyze the problems and suggest ways to improve software safety.
In Chapter 6, we describe the summary of the study, future research, and limitations of the study.
4. Main Contents and Results
In this study, we investigated the background knowledge of international standard software safety necessary to develop a proposal for applying the software safety development process. We have investigated the basic concepts of software safety and defined activities that are basically carried out to ensure safety. To ensure software safety, the first safety function needs to be implemented. Second, safety integrity according to the safety level must be ensured. Finally, software should be developed in accordance with the safety development process. The difference between the safety development process and the existing software development process is the addition of risk analysis and safety verification.
The survey was divided into non-standard and standard fields of automobile, aviation and railway. For the construction of the safety process application survey paper, the software safety process was defined in the standards of IEC 61508, ISO 26262, IEC 62279, and DO-178C. We discussed with the Software Safety Advisory Group and confirmed the facts and questions for applying the software safety development process.
The questionnaire consisted of the surveyed companies' status, common questionnaires on standard and non-standard fields, questionnaire on each field of software safety process, future improvement and support requirements. For each field survey, we set up common requirements analysis, architecture design, detailed design, implementation and testing. The common questions about whether or not to perform each step were constructed, and the contents of the safety development process with each industry characteristic were added as sub - questions. The standard field is DO-178C for aeronautical field, ISO 26262 for automobile field, and IEC 62279 for railway. In the case of non-standard fields, the study item was designed based on IEC 61508, the functional safety standard.
We conducted an in-depth surveys to find out what needs to be done to apply the software safety process to spread the software safety industry. A comprehensive analysis of the common questionnaire on software safety generalities showed that the railway and aviation sectors showed a high level of consciousness, preparation and activities for safety. The non-standard areas were found to lack awareness, knowledge, and performance in terms of risk analysis and safety management.
Based on the analysis of the survey results, the following problems were found in standard fields such as automobile, aviation, and railway.
Difficulty in applying techniques for software safety assurance
Sufficient design is not provided to implement software safety in detail design process
lack of detailed process information at each stage of software safety development process
The output of the test phase is difficult to trace software safety requirements against the plan
Schedule and budget shortage due to application of software safety development process
Lack of experts to understand the software safety development process
In the non-standard field, the following problems were derived.
Difficult to establish safety plan when developing software safety product
Difficulty in deriving requirements and tracking requirements in software safety development
Inadequate management of each step of the software safety development process
Lack of management of each state of technique and outcome of software safety development process
Lack of environment for applying software safety development process
Lack of experts to understand the software safety development process
Lack of understanding of basic software engineering skills for software safety development
In order to solve these problems, the following improvement measures have been derived in the standard field.
Continuous training on the software safety development process
Gaining experts for software safety development process
Providing guidance and methodology for software safety development process
Establishing a system for applying the software safety development process
In the non-standard field, the following improvement measures were derived.
Improving awareness and training for application to the software safety development process
providing that personnel are able to perform the software safety development process
Developing standards and guide for software safety development process
Providing legal system for applying software safety development process
5. Policy use
In this study, we investigate domestic and international standards and cases for application of software safety development process. We investigate the application status and expectation of practitioners in fields with and without safety standards. The results of this study can be used as basic data for policy proposal and policy making process.
6. Research Implication and Expected Effects
This study is the foundation of the policy for applying and spreading the software safety development process. Ultimately, it will contribute to obtaining the international competitiveness of related industries by strengthening domestic software safety development capability and creating safe software.
제1장 서론
제1절 연구 배경과 필요성
제2절 연구 목적
제3절 연구 내용
제4절 연구 방법
제2장 소프트웨어 안전 프로세스
제1절 소프트웨어 안전 프로세스 개요
1. 안전에 대한 이해
2. 소프트웨어 안전에 대한 이해
3. 소프트웨어 품질 프로세스와 비교
제2절 소프트웨어 안전 프로세스
1. 개요
2. 소프트웨어 안전 표준 및 프로세스 특징
제3절 소프트웨어 안전 미적용 사고 사례 및 표준 적용 사례
1. 소프트웨어 안전개발 프로세스 부재로 인한 사고 사례
2. 안전개발 설계 및 테스트 미흡으로 인한 사고 사례
3. 61508 CASS Scheme
4. 안전보건공단 사례
제3장 조사 설계 및 준비
제1절 개요
제2절 조사 항목 설계
1. 조사지 공통 구성 항목
2. 자동차 분야 안전개발 프로세스 조사지 설계
3. 철도 분야 안전개발 프로세스 조사 설계
4. 항공 분야 안전개발 프로세스 조사 설계
5. 비표준 분야 안전개발 프로세스 조사 설계
제4장 실태조사 및 분석
제1절 조사 개요
제2절 실태 조사 결과 및 분석
1. 설문 조사 응답자 특성
2. SW 안전 관련 일반 실태 조사 분석
3. 각 산업 분야별 소프트웨어 개발 프로세스 실태 분석
4. 소프트웨어 안전 확산 실태 조사 분석
제3절 종합 의견
제5장 문제점 분석 및 소프트웨어 안전 프로세스 확산 방안
제1절 문제점 분석
1. 표준 분야
2. 비표준 분야
제2절 소프트웨어 안전 프로세스 확산 방안
1. 표준 분야
2. 비표준 분야
제6장 결론
제1절 연구의 요약
제2절 시사점과 향 후 연구
제3절 연구의 한계
Contents
Chapter 1 Introduction
Section 1 Research Background
Section 2 Research Purpose
Section 3 Research Contents
Section 4 Research Method
Chapter 2 Software safety process
Section 1 Software Safety Process Overview
1. Understanding Safety
2. Understanding Software Safety
3. Comparison with Software quality process
Section 2 Software Safety Process
1. Overview
2. Software safety standards and process features
Section 3 Examples of Software Accident and Standard Application
1. Case of accident caused by absence of safety development process
2. Case of accidents caused by lack of safety development design and testing
3. 61508 Association and CASS Scheme Case
4. Safety and Health Corporation Case
Chapter 3 Design and preparation of Survey
Section 1 Overview
Section 2 Designing Survey
1. Common configuration items of survey
2. automobile Safety Development Process Survey Design
3. Railway Safety Development Process Survey Design
4. Aviation Safety Development Process Survey Design
5. Non-Standard Sector Safety Development Process Survey Design
Chapter 4 Survey and Analysis
Section 1 Overview
Section 2 Survey Results and Analysis
1. Survey Respondent Characteristics
2. Analysis of General Survey of Software Safety
3. Analysis of software development process by industry
4. Analyzing the Survey of Software Safety Process Activation