KR101834247B1 - Method and apparatus for analyzing safety of automotive software - Google Patents
Method and apparatus for analyzing safety of automotive software Download PDFInfo
- Publication number
- KR101834247B1 KR101834247B1 KR1020160098501A KR20160098501A KR101834247B1 KR 101834247 B1 KR101834247 B1 KR 101834247B1 KR 1020160098501 A KR1020160098501 A KR 1020160098501A KR 20160098501 A KR20160098501 A KR 20160098501A KR 101834247 B1 KR101834247 B1 KR 101834247B1
- Authority
- KR
- South Korea
- Prior art keywords
- safety
- code module
- software
- software code
- information
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0639—Performance analysis of employees; Performance analysis of enterprise or organisation operations
- G06Q10/06395—Quality analysis or management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Economics (AREA)
- Educational Administration (AREA)
- Development Economics (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- Game Theory and Decision Science (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
컴퓨터에 의해 수행되는, 표준 플랫폼에 기반하여 작성된 전장용 소프트웨어 코드 모듈의 안전성을 분석하는 방법이 제공된다. 본 발명의 방법은, 소프트웨어 코드 모듈과, 소프트웨어 코드 모듈의 작성에 관련된 표준 플랫폼 식별 정보를 입력받는 단계; 분석 머신 - 분석 머신은, 차량 기능 안전에 관련된, 복수 개의 위험 메트릭 데이터 세트에 의해 미리 학습되고 훈련된 학습 머신임 - 을 이용해서, 소프트웨어 코드 모듈의 위험 여부를 결정하는 단계; 소프트웨어 코드 모듈이 위험하다고 결정된 경우, 데이터베이스로부터 소프트웨어 코드 모듈의 안전성 정보를 획득하는 단계 - 안전성 정보는, 표준 플랫폼 식별 정보에 기초하여 획득됨 -; 및 소프트웨어 코드 모듈의 위험 여부와 획득된 안전성 정보를 이용하여, 전장용 소프트웨어의 안전성에 관한 보고서를 작성하는 단계를 포함한다.There is provided a method of analyzing the safety of a software code module for a long-range, written on a standard platform, performed by a computer. The method includes receiving a software code module and standard platform identification information related to creation of a software code module; Wherein the analysis machine-analysis machine is a learning machine previously trained and trained by a plurality of risk metric data sets related to vehicle function safety, to determine the risk of the software code module; Obtaining safety information of the software code module from the database if the software code module is determined to be dangerous, the safety information being obtained based on the standard platform identification information; And generating a report on the safety of the software for the battlefield using the risk of the software code module and the acquired safety information.
Description
본 발명은, 차량 전장용 소프트웨어 안전성 분석 및 보고에 관한 것으로, 보다 구체적으로는 표준 플랫폼을 기초로 개발된 차량 전장용 소프트웨어의 안전성을 머신 러닝에 기초하여 분석하고 그 분석 결과를 효율적으로 보고할 수 있는 방법 및 장치에 관한 것이다.The present invention relates to software safety analysis and reporting for vehicular electric fields, and more particularly, to analyze the safety of vehicle electric vehicle software developed on the basis of a standard platform on the basis of machine learning and to efficiently report the analysis results And more particularly, to a method and an apparatus.
최근에는, 차량 전장용 소프트웨어의 다양화 및 고도화와 함께 자동차 전장품 시장도 급격하게 성장하고 있는 추세에 있다. 또한 차량 전장용 소프트웨어의 제조 효율 향상과 결함 방지를 위한 표준화 노력이 지속되고 있다. 특히, 많은 자동차 회사들이 ISO 26262 자동차 전기/전자 시스템의 안전인증 규격 및 AUTOSAR BSW 개발 플랫폼에 기초하여 각각 전장용 소프트웨어 개발에 나서고 있다.In recent years, along with the diversification and advancement of software for vehicle electric field, the automotive electronics market is also rapidly growing. In addition, efforts have been made to improve the manufacturing efficiency of the vehicle electric field software and standardization efforts to prevent defects. In particular, many automotive companies are developing software for field applications based on ISO 26262 automotive electrical / electronic system safety certification specification and AUTOSAR BSW development platform.
한편, 전장용 소프트웨어는 그 특성상 오류 발생시 회복할 수 없는 피해를 야기할 수 있게 된다. 그리고 전장용 소프트웨어의 오류로 인한 각종 사고 및 사건들은 꾸준히 발생하고 있는데, 그에 따라 전장용 소프트웨어의 안전성에 대한 관심은 날로 증대되어 가고 있다. 또, 전장용 소프트웨어의 고도화 및 다양화에 따라 소프트웨어의 결함 또는 장애로 인한 피해는 점점 더 심각한 수준에 이르고 있는바, 소프트웨어 결함에 의한 사고는 고객의 안전과 자동차 회사의 이미지에 치명적 손상을 줄 수 있다. 따라서, 전장용 소프트웨어의 결함 가능성을 해당 소프트웨어의 수명 초기에 예측하고 이를 신속하게 수정할 수 있도록 하는 것이 중요하며, AUTOSAR BSW 개발 플랫폼 등에 기초하여 작성된 소프트웨어의 경우에도 이러한 결함 가능성의 예측 및 검증은 매우 중요한 이슈이다.On the other hand, due to the nature of the battlefield software, it can cause damage that can not be recovered in the event of an error. In addition, various accidents and incidents caused by the errors of the battlefield software are occurring steadily, and the interest in the safety of the battlefield software is increasing day by day. In addition, due to the advancement and diversification of software for electric vehicles, damage caused by software defects or obstacles is becoming more and more serious, and accidents caused by software defects can damage the safety of customers and the image of automobile companies have. Therefore, it is important to predict the possibility of defects in the field software in the early stage of the life of the software, and to make it possible to modify them quickly. In the case of software written based on the AUTOSAR BSW development platform, etc., This is an issue.
그런데, 차량용 소프트웨어를 비롯한 각종 소프트웨어의 결함을 분석하고 예측하는 작업은 지금까지 통상적으로 사람의 손에 의해 수동으로 행하여져 왔다. 예를 들어, 전장용 소프트웨어의 경우, 주로 소프트웨어 전문가가 수동으로 각 소프트웨어 모듈에 대해 MISRA(Motors Industry Software Reliability Association) 지정의 코딩 룰 준수 여부를 확인하는 수준에 머물러 왔다. 그러나 이러한 수동으로 이루어지는 분석 방법은, 전장용 소프트웨어의 코드 구조의 복잡성이 날로 증가하고 있는 현재 상황에서, 분석 정확도가 낮고 분석의 안정성을 기대하기 어려운 문제가 있다. 또한, 이와 같이 수동으로 행하여진 분석의 결과는 단순 목록 나열식으로만 제공될 뿐이어서, 실제 소프트웨어 개발자/보수자 등으로서는 대규모의 전장용 소프트웨어 중에 어느 부분의 결함 보수가 시급한지 식별하는 것이 어려운 문제가 있으며, 소프트웨어 개발/보수 부분에서의 한정된 자원의 효율적 배분(예컨대, 개발/보수 인력의 배분)에 어려움이 있어 왔다. [0004] However, the task of analyzing and predicting defects in various kinds of software including automotive software has conventionally been manually performed by a human hand. For example, in the case of on-board software, software experts have been at the level of manually checking each software module for adherence to the coding rules of the Motors Industry Software Reliability Association (MISRA) specification. However, this manual analysis method has a problem that analysis accuracy is low and stability of analysis is difficult to expect in the current situation where the complexity of the code structure of software for electric field is increasing day by day. In addition, the result of the manual analysis is provided only as a simple list, so that it is difficult for the actual software developer / maintainer to identify which portion of the large-scale software for the battlefield needs to be repaired in an urgent manner , And there has been a difficulty in efficiently allocating limited resources (for example, allocation of development / maintenance personnel) in the software development / repair section.
따라서, 정확하고 안정성 있는, 자동화된 전장용 소프트웨어의 안전성 분석 방법이 필요로 된다. 또, 그 분석 결과를, 사용자가 직관적으로 인식할 수 있고 이를 즉각적으로 활용하여 추후 전장용 소프트웨어의 결함 보수를 위한 작업의 우선순위 결정 등에 있어서 참고할 수 있도록 하는 방식으로 제공할 필요가 있다.Therefore, there is a need for an accurate, reliable, and automated method of analyzing safety software for battlefields. In addition, it is necessary to provide the analysis result in a way that allows the user to intuitively recognize and immediately utilize the analysis result so as to be able to refer to, for example, prioritization of work for repairing defects in the battlefield software.
본 발명의 일 특징에 의하면, 컴퓨터에 의해 수행되는, 표준 플랫폼에 기반하여 작성된 전장용 소프트웨어 코드 모듈의 안전성을 분석하는 방법이 제공된다. 본 발명의 방법은, 소프트웨어 코드 모듈과, 소프트웨어 코드 모듈의 작성에 관련된 표준 플랫폼 식별 정보를 입력받는 단계; 분석 머신 - 분석 머신은, 차량 기능 안전에 관련된, 복수 개의 위험 메트릭 데이터 세트에 의해 미리 학습되고 훈련된 학습 머신임 - 을 이용해서, 소프트웨어 코드 모듈의 위험 여부를 결정하는 단계; 소프트웨어 코드 모듈이 위험하다고 결정된 경우, 데이터베이스로부터 소프트웨어 코드 모듈의 안전성 정보를 획득하는 단계 - 안전성 정보는, 표준 플랫폼 식별 정보에 기초하여 획득됨 -; 및 소프트웨어 코드 모듈의 위험 여부와 획득된 안전성 정보를 이용하여, 전장용 소프트웨어의 안전성에 관한 보고서를 작성하는 단계를 포함한다.According to one aspect of the present invention, there is provided a method for analyzing the safety of a software code module for a full-length network created based on a standard platform, which is performed by a computer. The method includes receiving a software code module and standard platform identification information related to creation of a software code module; Wherein the analysis machine-analysis machine is a learning machine previously trained and trained by a plurality of risk metric data sets related to vehicle function safety, to determine the risk of the software code module; Obtaining safety information of the software code module from the database if the software code module is determined to be dangerous, the safety information being obtained based on the standard platform identification information; And generating a report on the safety of the software for the battlefield using the risk of the software code module and the acquired safety information.
본 발명의 일 실시예에 의하면, 표준 플랫폼은 AUTOSAR BSW일 수 있고, 표준 플랫폼 식별 정보는 AUTOSAR BSW의 모듈 ID일 수 있다.According to one embodiment of the present invention, the standard platform may be AUTOSAR BSW, and the standard platform identification information may be the module ID of the AUTOSAR BSW.
본 발명의 일 실시예에 의하면, 데이터베이스는, 표준 플랫폼 식별 정보를 SAFE(Safe Automotive soFtware archiTecture) ISO 26262에서 정의된 복수의 안전 메커니즘 중 하나의 안전 메커니즘에 맵핑하는 정보를 저장할 수 있다. 데이터베이스는, 맵핑된 하나의 안전 메커니즘에 대응하여 미리 정의된 하나 이상의 안전성 정보를 더 저장할 수 있다.According to one embodiment of the present invention, the database may store information mapping standard platform identification information to one of the plurality of security mechanisms defined in SAFE (Safe Automotive sofware archiTecture) ISO 26262. The database may further store one or more predefined security information corresponding to one mapped security mechanism.
본 발명의 일 실시예에 의하면, 맵핑된 하나의 안전 메커니즘에 대응하여 미리 정의된 하나 이상의 안전성 정보는 갱신 가능할 수 있다.According to an embodiment of the present invention, one or more safety information predefined corresponding to one mapped security mechanism may be updateable.
본 발명의 일 실시예에 의하면, 맵핑된 하나의 안전 메커니즘에 대응하여 미리 정의된 하나 이상의 안전성 정보는, 결함보수의 우선순위, 구현 난이도, 및 투입 노력 시간 중 적어도 하나를 포함할 수 있다.According to an embodiment of the present invention, the one or more pieces of safety information predefined corresponding to one mapped security mechanism may include at least one of defect priority, implementation difficulty, and injection effort time.
본 발명의 일 실시예에 의하면, 결함보수의 우선순위 및 구현 난이도는 각각 소정의 복수의 레벨 중 각 하나의 레벨에 대응할 수 있다.According to an embodiment of the present invention, the priority of the defect repair and the implementation difficulty may correspond to each level of the predetermined plurality of levels, respectively.
본 발명의 일 실시예에 의하면, SAFE ISO 26262에서 정의된 복수의 안전 메커니즘은 소정 수의 카테고리로 분류되고, 맵핑된 하나의 안전 메커니즘은 소정 수의 카테고리 중 하나의 카테고리에 속할 수 있다.According to one embodiment of the present invention, a plurality of safety mechanisms defined in SAFE ISO 26262 are classified into a predetermined number of categories, and one mapped security mechanism may belong to one of a predetermined number of categories.
본 발명의 일 실시예에 의하면, 보고서는, 맵핑된 하나의 안전 메커니즘의 명칭, 맵핑된 하나의 안전 메커니즘에 관한 설명, 맵핑된 하나의 안전 메커니즘의 카테고리, 맵핑된 하나의 안전 메커니즘의 결함보수의 우선순위, 맵핑된 하나의 안전 메커니즘의 구현 난이도, 맵핑된 하나의 안전 메커니즘의 투입 노력 시간 중 적어도 하나를 포함할 수 있다.According to one embodiment of the present invention, the report includes a name of one mapped security mechanism, a description of one mapped security mechanism, a category of one mapped security mechanism, The priority level, the implementation difficulty of one mapped security mechanism, and the effort effort of one mapped security mechanism.
본 발명의 다른 특징에 의하면, 컴퓨터 장치로서, 전술한 방법들 중 어느 하나의 방법을 실행하도록 동작 가능한 컴퓨터 장치가 제공된다.According to another aspect of the present invention there is provided a computer apparatus operable to execute any one of the methods described above.
본 발명의 또 다른 특징에 의하면, 하나 이상의 명령어가 저장된 컴퓨터 판독 가능한 저장 매체로서, 하나 이상의 명령어는 컴퓨터에 의해 실행되는 경우, 컴퓨터로 하여금 전술한 방법들 중 어느 한 항의 방법을 실행하게 하는, 컴퓨터 판독 가능한 저장 매체가 제공된다.According to another aspect of the present invention there is provided a computer readable storage medium having stored thereon one or more instructions for causing a computer to execute a method of any of the methods described above, A readable storage medium is provided.
본 발명에 의하면, 머신러닝 또는 딥러닝 기술에 기초하여, 정확하고 안전성 있는 전장용 소프트웨어의 안전성 분석 방법이 제공될 수 있다. 본 발명에 의하면, 전장용 소프트웨어의 안전성 분석의 결과가, 사용자가 직관적으로 인식할 수 있고 이를 즉각적으로 활용하여 추후 전장용 소프트웨어의 결함 보수를 위한 작업의 우선순위 결정 등에 있어서 참고할 수 있도록 하는 방식으로, 제공될 수 있다.According to the present invention, an accurate and safe method for analyzing the safety of software for electric fields can be provided based on a machine learning or a deep learning technique. According to the present invention, the result of the safety analysis of the software for the electric field can be intuitively recognized by the user and can be immediately utilized to make reference to the prioritization of tasks for repairing defects of the software for the battlefield , ≪ / RTI >
도 1은, 본 발명의 일 실시예에 따른, 전장용 소프트웨어의 신뢰도 및 안전성 자동 분석을 위한 분석 머신의 생성 및 활용 과정을 개략적으로 보여주는 흐름 블록도이다.
도 2는, 본 발명의 일실시예에 따른, 분석 머신의 생성 및 훈련에서 입력 값으로서 이용될 위험 데이터 메트릭들의 예시적 집합을 도시한 도면이다.
도 3은, 본 발명의 일 실시예에 따른, 소프트웨어 신뢰도 및 안전성 분석 머신(300)의 기능 블록도이다.BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a flow block diagram schematically illustrating the process of creating and utilizing an analysis machine for automatic reliability and safety analysis of software for electrical field, according to an embodiment of the present invention;
Figure 2 illustrates an exemplary set of risk data metrics to be used as input values in the generation and training of an analysis machine, in accordance with an embodiment of the present invention.
3 is a functional block diagram of a software reliability and
이하, 첨부 도면을 참조하여 본 발명의 실시예에 관하여 상세히 설명한다. 이하에서는, 본 발명의 요지를 불필요하게 흐릴 우려가 있다고 판단되는 경우, 이미 공지된 기능 및 구성에 관한 구체적인 설명을 생략한다. 또한, 이하에서 설명하는 내용은 어디까지나 본 발명의 일 실시예에 관한 것일 뿐 본 발명이 이로써 제한되는 것은 아님을 알아야 한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. Hereinafter, when it is determined that there is a possibility that the gist of the present invention may be unnecessarily blurred, a detailed description of known functions and configurations will be omitted. In addition, it should be understood that the following description is only an embodiment of the present invention, and the present invention is not limited thereto.
본 명세서에서 사용되는 용어는 단지 특정한 실시예를 설명하기 위해 사용되는 것으로 본 발명을 한정하려는 의도에서 사용된 것이 아니다. 예를 들면, 단수로 표현된 구성요소는 문맥상 명백하게 단수만을 의미하지 않는다면 복수의 구성요소를 포함하는 개념으로 이해되어야 한다. 또한, 본 발명의 명세서에서, '포함하다' 또는 '가지다' 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것일 뿐이고, 이러한 용어의 사용에 의해 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 배제하려는 것은 아니다.The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the present invention. For example, an element expressed in singular < Desc /
본 명세서에 기재된 실시예에 있어서 '블록' 또는 '부'는 적어도 하나의 기능이나 동작을 수행하는 기능적 부분을 의미하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 '블록' 또는 '부'는, 특정한 하드웨어로 구현될 필요가 있는 '블록' 또는 '부'를 제외하고는, 적어도 하나의 소프트웨어 모듈로 일체화되어 적어도 하나의 프로세서로 구현될 수 있다.As used herein, the term " block " or " part " means a functional part that performs at least one function or operation, and may be implemented in hardware or software or a combination of hardware and software. Also, a plurality of 'blocks' or 'sub-units' may be embodied in at least one processor integrated with at least one software module, except for 'blocks' or 'sub-units' that need to be implemented in specific hardware .
덧붙여, 달리 정의되지 않는 한 기술적 또는 과학적인 용어를 포함하여, 본 명세서에서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의된 용어들은, 관련 기술의 문맥상 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 발명의 명세서에서 명백하게 달리 정의하지 않는 한 과도하게 제한 또는 확장하여 해석되지 않는다는 점을 알아야 한다.In addition, all terms used herein, including technical or scientific terms, unless otherwise defined, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Commonly used predefined terms are to be interpreted as having a meaning consistent with the contextual meaning of the related art and are not to be construed as being excessively limited or extended unless explicitly defined otherwise in the specification of the present invention You should know.
이하, 첨부된 도면을 참조하여, 본 발명의 실시예에 대해 구체적으로 설명하기로 한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 1은, 본 발명의 일 실시예에 따른, 전장용 소프트웨어의 신뢰도 및 안전성 자동 분석을 위한 분석 머신의 생성 및 활용 과정을 개략적으로 보여주는 흐름 블록도이다.BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a flow block diagram schematically illustrating the process of creating and utilizing an analysis machine for automatic reliability and safety analysis of software for electrical field, according to an embodiment of the present invention;
도시된 바에 의하면, 블록(102)에서는, 전장용 소프트웨어 분석 머신의 생성을 위한 기초 과정으로서, 차량 기능 안전에 관련된 요소들, 예컨대 ISO 26262에서 정의된 기능 안전성 요소나 AUTOSAR에서 정의된 기능 안전성 요소들을 포함한 각종 차량 기능 안전성에 관한 요소들이 수집되고, 그에 따라 추후 분석 머신의 생성 및 훈련에서 입력으로서 이용될 기능 안전성 요소의 위험 데이터 메트릭들이 선택될 수 있다. 이러한 기능 안전성에 관한 위험 데이터 메트릭들의 선택은 다양한 방식으로 이루어질 수 있으며, 예컨대 도메인 전문가의 활용이나 인터뷰 등의 방식에 의해 이루어질 수도 있다. As shown, at
본 발명의 일실시예에 따른, 분석 머신의 생성 및 훈련에서 입력 값으로서 이용될 위험 데이터 메트릭들의 예시적 집합이 도 2에 도시되어 있다. 도 2에 도시된 바에 의하면, 분석 머신의 생성 및 훈련을 위한 입력 값은 코드 모듈에 관한 22개의 위험 데이터 메트릭들을 포함한 것일 수 있다.An exemplary set of risk data metrics to be used as input in the generation and training of an analysis machine, according to one embodiment of the present invention, is shown in FIG. 2, the input values for generation and training of the analysis machine may include 22 hazard data metrics related to the code module.
구체적으로, 도시된 바에 의하면, 분석 머신의 생성 및 훈련에 이용될 위험 데이터 메트릭들로는, 예컨대 총 코드 라인 수(loc), McCabe 순환 복잡도(v(g)), McCabe 필수 복잡도(ev(g)), McCabe 설계 복잡도(iv(g)), Halstead 연산자 및 피연산자 전체 수(n), Halstead 프로그램 볼륨(v), Halstead 프로그램 길이(l), Halstead 프로그램 난이도(d), Halstead Intelligent content(i), Halstead 프로그래밍 노력(e), Halstead 에러 추정(b), Halstead 구현시간 추정(t), Halstead 라인 카운트(lOCode), Halstead 주석 줄 수(lOComment), Halstead 빈 줄 수(lOblank), 코드와 주석을 모두 갖는 라인 수(IOCodeANDComment), 고유한 연산자 수(uniq_Op), 고유한 피연산자 수(uniq_Opnd), 전체 연산자(total_Cp), 전체 피연산자(tatal_Opand), 그래프 흐름 수(branchCount), 및 코드 모듈 위험 레벨(Risk Level)의 위험 데이터 메트릭이 포함될 수 있다. 본 발명의 실시예에 따르면, 위험 레벨이란, 주어진 각 코드 모듈의 명세에 따라 정의되는 위험 레벨로서, 예컨대 각 코드 모듈의 오류가 얼마나 심각한 피해를 발생시키는지를 나타내는 심각도 레벨, 그러한 코드 모듈의 오류에 의한 피해가 발생할 확률이 얼마나 되는지를 나타내는 발생 확률, 해당 코드 모듈을 구현하는데 있어서의 난이도 레벨 등에 의해 미리 정의되어 있는 값일 수 있다. 코드 모듈의 특성상 해당 코드 모듈의 오류가 발생할 경우 발생할 수 있는 피해가 심각한 생명의 위험을 일으키는 경우라면, 오류가 발생하더라도 사소한 피해나 경상을 일으키는데 그치는 코드 모듈에 비해서는 심각도 레벨이 높은 값일 수 있다. 또, 심각도 레벨이 높은 값을 갖는 코드 모듈이라도 그러한 코드 모듈의 발생 확률이 매우 낮은 경우라면 전체 위험 레벨은 낮은 값일 수 있다. 아래 표는 위험 레벨을 구분하는 방법을 예시적으로 보여주기 위한 것일 뿐, 본 발명이 이로써 제한되는 것은 아니다. 당업자라면, 각 코드 모듈의 특성을 고려하여 다양한 형태로 위험 레벨을 분류하는 방법을 생각해낼 수 있을 것이다.Specifically, as shown, the risk data metrics to be used in the generation and training of the analysis machine include, for example, the total number of lines of code loc, McCabe cyclic complexity v (g), McCabe essential complexity ev (g) , Halstead program volume (v), Halstead program length (l), Halstead program complexity (d), Halstead Intelligent content (i), Halstead Programming effort (e), Halstead error estimation (b), Halstead implementation time estimation (t), Halstead line count (lOCode), Halstead comment line count (lOComment), Halstead blank line count (lOblank) The number of lines (IOCodeANDComment), the number of unique operators (uniq_Op), the number of unique operands (uniq_Opnd), the total operator (total_Cp), the total operand (tatal_Opand), the number of graph flows (branchCount) Of risk data metrics. According to an embodiment of the present invention, the risk level is a risk level defined according to the specification of each given code module, for example, a severity level indicating how serious an error of each code module causes damage, An occurrence probability indicating how much the probability of occurrence of damage caused by the damage occurs, a difficulty level in implementing the code module, and the like. If the damage of the code module causes the risk of serious life, the severity level may be higher than that of the code module which causes minor damage or recurrence even if an error occurs due to the characteristics of the code module. Also, even in a code module having a high level of severity, if the probability of occurrence of such a code module is very low, the overall risk level may be a low value. The table below is intended only to illustrate how to distinguish between levels of risk, but the invention is not so limited. Those skilled in the art will be able to think of ways to classify risk levels in various forms taking into account the characteristics of each code module.
S1
S2
S3
S1=경상; S2=중상; S3=심각한 생명의 위험
<발생 확률>
E1=매우 낮은 확률; E2=낮은 확률; E3=중간 확률; E4=높은 확률
<구현 난이도>
D1=쉬움; D2=중간; D3=어려움 <Severity level>
S1 = normal; S2 = severe injury; S3 = Severe life risk
<Probability of occurrence>
E1 = very low probability; E2 = low probability; E3 = medium probability; E4 = high probability
<Implementation difficulty>
D1 = easy; D2 = medium; D3 = difficulty
당업자라면, 전술한 위험 레벨 이외에, 도 2에 도시된 그 외 다른 위험 데이터 메트릭 각각의 의미에 대해 잘 알 것이며, 여기서는 구체적인 설명을 생략하기로 한다. 또한, 당업자라면, 도 2에 도시된 데이터 메트릭은 본 발명의 일 실시예일뿐이며, 본 발명이 이로써 제한되는 것은 아님을 알 것이다. 본 발명의 다른 실시예에 의하면, 분석 머신의 설계 기준에 따라 더 많거나 적은 다양한 위험 데이터 메트릭들이 분석 머신의 생성 및 훈련에 이용될 수 있음을 알아야 한다.Those skilled in the art will be familiar with the meaning of each of the other risk data metrics shown in FIG. 2, in addition to the above-described risk level, and a detailed description thereof will be omitted here. It will also be appreciated by those skilled in the art that the data metric shown in FIG. 2 is only one embodiment of the present invention, and that the present invention is not so limited. According to another embodiment of the present invention, it is to be appreciated that more or less various risk data metrics may be used in the generation and training of analytical machines, depending on the design criteria of the analytical machine.
다시 도 1로 돌아가서, 블록(104)에서는, 블록(102)에서 정의된 각 위험 데이터 메트릭의 정의에 기초하여, 분석 머신의 생성에 이용될 구체적인 학습 및 훈련 데이터가 준비될 수 있다. 본 발명의 일 실시예에 의하면, 예컨대 NASA 제공의 시험 데이터 집합이 이용될 수 있으나, 본 발명이 이로써 제한되는 것은 아니다.Referring again to FIG. 1, at
블록(106)에서는, 전장용 소프트웨어의 신뢰도 및 안전성 자동 분석을 위한 분석 머신(딥러닝 머신)이 초기 설계되고, 블록(104)에서 준비된 학습 데이터를 이용하여 분석 머신이 초기 학습될 수 있다. 본 발명의 일 실시예에 의하면, 인공 신경망(ANN)이나 서포트 벡터 머신(SVM) 기법에 따라 분석 머신이 설계될 수 있으나, 본 발명이 이로써 제한되는 것은 아니다. 당업자라면, 그 외 다양한 딥러닝 방식에 의하여 분석 머신이 구현될 수 있음을 알 것이다. At
블록(108)에서는, 초기 학습 완료된 분석 머신이, 블록(104)에서 준비된 테스트 데이터를 이용하여 테스트되고 테스트 결과에 따른 분석 머신의 오차율 분석이 행하여지며, 오차율 분석 결과는 다시 블록(106)으로 피드백 입력될 수 있다. 이와 같이, 블록(108)에서의 분석 머신의 테스트 결과는 블록(106)의 머신 설계 및 학습 단계로 반복하여 피드백 입력될 수 있고 그에 따라 분석 머신이 수정될 수 있다. 이러한 블록(106) 및 블록(108)에 따른 반복적 머신 수정의 과정이 행하여짐에 따라 코드 안전성 분석 머신의 작성이 완료될 수 있다.In
블록(110)에서는, 분석 머신을 이용한 전장용 소프트웨어의 안전성 분석이 수행된다. 구체적으로 도시되지는 않았으나, 본 발명의 일 실시예에 의하면, 블록(108)에서의 소프트웨어의 안전성 분석 결과는 블록(106)으로 피드백 입력되어 분석 머신을 업데이트할 수 있다. 구체적인 전장용 소프트웨어의 안전성 분석 과정에 대해서는, 이하 도 3을 참조하여 좀 더 자세히 설명하기로 한다.At
도 3은, 본 발명의 일 실시예에 따른, 소프트웨어 신뢰도 및 안전성 분석 머신(300)의 기능 블록도이다. 도시된 바에 의하면, 분석 머신(300)은 분석 코드 정보 입력부(302), 위험 데이터 메트릭 측정부(304), 위험 분석부(306), 코드 모듈 안전성 특징 획득부(308) 및 보고서 작성부(310)를 포함한다. 3 is a functional block diagram of a software reliability and
본 발명의 일 실시예에 의하면, 분석 코드 정보 입력부(302)에서는, 작성된 전장용 소프트웨어의 코드와 해당 코드 개발의 기초가 된 플랫폼 정보(예컨대, AUTOSAR BSW 기반의 개발 소프트웨어의 경우 각 소프트웨어 코드 모듈의 각 대응 AUTOSAR BSW 모듈 ID 등)가 수신될 수 있다. 이때 입력되는 소프트웨어는 작성 완료된 것이거나 개발 중에 있는 전장용 소프트웨어일 수 있다. 소프트웨어는 하나 또는 둘 이상의 코드 모듈을 포함하는 것일 수 있다. 분석 코드 정보 입력부(402)에서는 또한 입력된 소프트웨어가 하나 또는 둘 이상의 코드 모듈, 예컨대 하나 또는 둘 이상의 함수 등으로 분할될 수 있다. According to an embodiment of the present invention, the analysis code
본 발명의 일 실시예에 의하면, 위험 데이터 메트릭 측정부(304)에서는, 분석 코드 정보 입력부(302)에서 입력되고 분할된 소프트웨어의 각 코드 모듈(예컨대, 각 함수 단위)에 대하여, 도 1의 블록(102)에서 선택되어 분석 머신 작성에 이용된 기능 안전 요소의 위험 데이터 메트릭들 각각의 값(또는 분석에 사용될 위험 데이터 메트릭들이 소정의 데이터들로 제한 선택된 경우에는 그러한 제한 선택된 메트릭 데이터들의 값)이 측정될 수 있다. 예컨대, 위험 데이터 메트릭 측정부(304)에서는, 입력된 소프트웨어의 각 코드 모듈에 대한, 총 코드 라인 수(loc), McCabe 순환 복잡도(v(g)), McCabe 필수 복잡도(ev(g)), McCabe 설계 복잡도(iv(g)), Halstead 연산자 및 피연산자 전체 수(n), Halstead 프로그램 볼륨(v), Halstead 프로그램 길이(l), Halstead 프로그램 난이도(d), Halstead Intelligent content(i), Halstead 프로그래밍 노력(e), Halstead 에러 추정(b), Halstead 구현시간 추정(t), Halstead 라인 카운트(lOCode), Halstead 주석 줄 수(lOComment), Halstead 빈 줄 수(lOblank), 코드와 주석을 모두 갖는 라인 수(IOCodeANDComment), 고유한 연산자 수(uniq_Op), 고유한 피연산자 수(uniq_Opnd), 전체 연산자(total_Cp), 전체 피연산자(total_Opand), 그래프 흐름 수(branchCount), 및 위험 레벨(Risk Level) 등의 위험 데이터 메트릭 값들 중 하나 이상의 값이 자동으로 측정될 수 있다. According to an embodiment of the present invention, in the risk data
본 발명의 일 실시예에 의하면, 위험 분석부(306)에서는, 각 코드 모듈에 대해 측정된 위험 레벨 값을 비롯한, 위험 데이터 메트릭 측정부(304)에서 측정된 각 코드 모듈의 위험 데이터 메트릭들을 이용하여 각 코드 모듈 별로 위험 여부가 분석된다. 분석된 결과는, 각 코드 모듈 별로 해당 모듈이 위험 여부를 나타내는 True 또는 False의 값으로 출력될 수 있다.According to one embodiment of the present invention, the
한편, 본 발명의 일 실시예에 의하면, 코드 모듈 안전성 특징 획득부(308)에서는, 분석 코드 정보 입력부(302)에서 수신한 해당 코드 모듈 개발의 기초가 된 플랫폼 정보(예컨대, AUTOSAR BSW 기반의 개발 소프트웨어 코드 모듈의 경우 해당 소프트웨어 코드 모듈의 대응 AUTOSAR BSW 모듈 ID 등)를 수신하고, 이를 이용하여 해당 코드 모듈의 안전성 특징 정보를 획득할 수 있다. 구체적으로 도시되지는 않았으나, 본 발명의 일 실시예에 의하면, 각 코드 모듈 개발의 기초가 되는 플랫폼 정보는 그에 관련된 코드 모듈 안전성 특징들과 함께 미리 정의되고 저장되어 있을 수 있고, 분석 코드 정보 입력부(302)는 그러한 미리 정의되고 저장된 정보를, 주어진 플랫폼 정보에 기초하여 검색하고, 해당 코드 모듈의 안전성 특징 정보를 획득할 수 있다. 구체적으로 도시되지는 않았으나, 본 발명의 일 실시예에 의하면, 전술한 정보는, 소프트웨어 신뢰도 및 안전성 분석 머신 내부의 저장소 또는 외부 별도의 저장 장치에 기록되어 있을 수 있다.Meanwhile, according to one embodiment of the present invention, the code module safety
이와 관련하여, 유럽에서 배포한 ISO 26262 가이드라인 SAFE(Safe Automotive software architecture)의 SAFE_D3.6.b.pdf의 Deliverable D3.6.b: Safety Code Generator Specification에서는, 차량용 소프트웨어에 필요한 안전 메커니즘을 Fault Avoidance, Error Detection 및 Error Handling의 세 가지 카테고리로 구분하고, 이들 각각의 세부 요구 항목들을 열거하여 총 36가지로 정의한 바 있다. 아래 표는, SAFE ISO 26262 Safety Mechanism의 분류표이며, 단순히 본 발명의 이해를 돕기 위하여 예시적으로 제공되는 것일 뿐 본 발명을 제한하기 위한 것은 아님을 알아야 한다. 또한, 본 발명의 다른 실시예에 의하면, 안전 메커니즘을 기계 안전 분야의 표준, 예컨대 ISO 13849에서 정한 B, 1, 2, 3, 및 4 카테고리로 분류하여 정의할 수 있다. In this regard, the Deliverable D3.6.b: Safety Code Generator Specification of the SAFE_D3.6.b.pdf of the SAFE (Safe Automotive software architecture) of the ISO 26262 guideline distributed in Europe specifies the safety mechanisms required for vehicle software as Fault Avoidance , Error Detection, and Error Handling, and each of these subcategories has been defined as a total of 36 categories. It should be noted that the table below is a classification table of the SAFE ISO 26262 Safety Mechanism and is provided for illustrative purposes only to facilitate understanding of the present invention, and not for limiting the present invention. Further, according to another embodiment of the present invention, the safety mechanism can be defined by classifying into B, 1, 2, 3, and 4 categories defined in the standards of the machine safety field, for example, ISO 13849.
본 발명의 일 실시예에 의하면, 예컨대 분석 대상이 되는 소프트웨어 코드 모듈 각각의 AUTOSAR BSW에 기초하여 개발된 것을 전제로, 각 AUTOSAR BSW 모듈 ID와 전술한 36가지 SAFE 안전 메커니즘을 서로 맵핑한 2차원 테이블이 미리 정의 및 저장되어 있을 수 있다. 예컨대, 분석 코드 모듈이 AUTOSAR BSW No. 123 ADC Driver를 이용하였다면 이는 SAFE 안전 메커니즘 중 Device Reset의 항목의 적용을 받는다고 미리 정의 및 저장되어 있을 수 있다. 이와 함께, 본 발명의 일 실시예에 의하면, 전술한 36가지 SAFE 안전 메커니즘 각각에 관한 안전성 특징, 예컨대 결함보수 우선순위, 구현 난이도, 구현 난이도에 따른 투입 노력 시간 등이 또한 별도의 표로써 미리 정의되고 저장되어 있을 수 있다. 본 발명의 일 실시예에 의하면, 예컨대 각 안전 메커니즘의 결함보수 우선순위는, 예를 들어 "매우 높음", "높음", "중간", "낮음", "매우 낮음"의 5가지로 분류될 수 있다. 본 발명의 일 실시예에 의하면, 예컨대 각 안전 메커니즘의 구현 난이도는, 예를 들어 "매우 어려움", "어려움", "중간", "쉬움", "매우 쉬움"의 5가지로 분류될 수 있다. 본 발명의 일 실시예에 의하면, 구현 난이도는, 그 구현 난이도에 따른 투입 노력 시간과 서로 관련된 정보로서, 예컨대 구현 난이도 "매우 어려움"은 투입 노력 시간 24시간, 구현 난이도 "어려움"은 투입 노력 시간 8시간, 구현 난이도 "중간"은 투입 노력 시간 2시간, 구현 난이도 "쉬움"은 투입 노력 시간 1시간, 구현 난이도 "매우 쉬움"은 투입 노력 시간 30분 등과 같이 정의될 수 있으며, 본 발명이 이로써 제한되는 것은 아니다. 예컨대, SAFE 안전 메커니즘 중 parity checker 항목은, 개발보수의 우선순위가 총 5개 분류 중 "중간" 레벨이고, 구현 난이도가 총 5개 분류 중 "쉬움" 레벨이라고 정의될 수 있다. 여기서, 코드 모듈 개발의 기초가 되는 플랫폼 정보와, 그에 관련된 코드 모듈 안전성 특징 정보의 종류 및 정의 방법 등에 관하여 전술한 사항은 어디까지나 본 발명의 이해를 돕기 위한 것일 뿐, 본 발명이 이로써 제한되는 것은 아님을 알아야 한다. 당업자라면, 예컨대 각 코드 모듈 개발의 기초가 되는 플랫폼 정보와, 어떠한 안전성 특징 정보를 어떻게 관련시킬 것인가에 대한 다양한 변형을 구현할 수 있을 것이다. 또, 각 코드 모듈 개발의 기초가 되는 플랫폼 정보와 관련된 안전성 특징 정보가 한 번 정의되었다고 하더라도, 이후 필요에 따라 이를 적절히 변경할 수 있음은 당연하다. 또한, 본 실시예에 관하여, 분석 대상이 되는 코드 모듈은 AUTOSAR BSW를 기반으로 개발된 것으로 설명하였으나, 본 발명이 이로써 제한되는 것은 아니다. 본 발명의 다른 실시예에 의하면, 분석 대상이 되는 코드 모듈은, 다른 표준 개발 플랫폼에 기초하여 작성된 것일 수도 있다. According to an embodiment of the present invention, for example, a two-dimensional table in which each AUTOSAR BSW module ID and the above-described 36 SAFE safety mechanisms are mapped to each other, assuming that the module is developed based on AUTOSAR BSW of each software code module to be analyzed May be predefined and stored. For example, if the analysis code module is AUTOSAR BSW No. 123 ADC driver, it can be predefined and stored as being subject to the item of Device Reset in the SAFE safety mechanism. In addition, according to an embodiment of the present invention, the safety features related to each of the above-mentioned 36 SAFE safety mechanisms, such as defect repair priority, implementation difficulty, and injection effort time according to implementation difficulty, And stored. According to an embodiment of the present invention, for example, defect repair priorities of each safety mechanism are classified into five categories, for example, "very high", "high", "medium", "low" . According to one embodiment of the present invention, for example, the implementation complexity of each safety mechanism can be classified into five categories, for example, "very difficult", "difficult", "medium", "easy" . According to one embodiment of the present invention, the implementation difficulty is information related to the input effort time according to the implementation difficulty. For example, the implementation difficulty is "difficult", the input effort time is 24 hours, the implementation difficulty is " 8 hours, Implementation difficulty "Medium" can be defined as 2 hours of input effort, "Implementation difficulty" can be defined as 1 hour of effort effort, "Implementation difficulty" of "Easyness" is 30 minutes of effort effort, etc. But is not limited to. For example, the parity checker item of the SAFE safety mechanism can be defined as the "intermediate" level in the total of five categories of development and maintenance, and the "difficulty" level of implementation difficulty in all five categories. Here, the above-described matters relating to the platform information as a basis for the development of the code module, the kind and definition method of the code module safety feature information related thereto and the like are only for the understanding of the present invention, and the present invention is limited thereto You should know. Those skilled in the art will be able to implement various modifications, for example, to platform information that is the basis of each code module development and how to relate any safety feature information. Even if the safety feature information related to the platform information, which is the basis of the development of each code module, is defined once, it is natural that it can be appropriately changed as necessary afterwards. Also, in the present embodiment, the code module to be analyzed is described as being developed based on AUTOSAR BSW, but the present invention is not limited thereto. According to another embodiment of the present invention, the code module to be analyzed may be created based on another standard development platform.
본 발명의 일 실시예에 의하면, 보고서 작성부(310)에서는, 입력된 각 소프트웨어 코드 모듈의 위험 여부에 관한 보고서가 자동으로 작성될 수 있다. 본 발명의 일 실시예에 의하면, 보고서 작성부(310)에서는, 위험 여부 분석부(306)에서 얻어진 각 코드 모듈의 위험 여부 분석 결과(즉, 각 코드 모듈에 관한 True 또는 False 값)와 함께, 코드 모듈 안전성 특징 획득부(308)에서 획득한 해당 해당 코드 모듈에 관한 안전성 특징 정보를 포함하는 보고서를 작성할 수 있다. According to an embodiment of the present invention, the
본 발명의 일 실시예에 의하면, 보고서 작성부(310)에 의해 작성되는 보고서에 포함되는 코드 모듈의 안전성 정보는, 예를 들어 해당 안전 메커니즘 명칭(예컨대, SAFE ISO 26262 안전 메커니즘의 parity checker), 관련 설명(예컨대, SAFE ISO 26262 안전 메커니즘의 parity checker에 관한 설명), 안전성 카테고리(예컨대, Error Detection 카테고리), 우선순위(예를 들어, "중간"). 구현 난이도(예를 들어, "쉬움), 투입 노력 시간(예를 들어, 1시간), 해당 코드 모듈의 코드 부분, 참조 사항(예를 들어, SAFE ISO 26262 안전 메커니즘을 이용하는 경우, http://www.safe-project.eu/SAFE-Publications/SAFE_D3.6.b.pdf 중 해당 안전 메커니즘에 관한 설명 부분으로의 링크 및 샘플 코드, 즉 SAFE ISO 26262 안전 메커니즘이 제시하는 관련 샘플 코드 또는 기타 해당 안전 메커니즘과 관련하여 미리 정해진 소정의 샘플 코드 등) 등을 포함할 수 있다. 이러한 안전성 정보가 보고서에 포함되는 경우, 이를 확인한 소프트웨어 코드의 개발/보수자는, 예컨대 해당 코드 모듈이 위험한 것으로 분석되었고, 이는 SAFE ISO 26262 안전 메커니즘 중 Error Detection 카테고리의 parity checker 항목에 관련되며, 결함보수의 우선순위는 중간이고 구현 난이도는 쉬움이며 투입 노력 시간은 1시간이라는 점을 알 수 있다. 또, 이러한 정보를, 위험하다고 분석된 소프트웨어 코드 모듈에 관한 대응 정보와 비교하여, 어느 소프트웨어 코드 모듈을 먼저 보수할 것인지에 관한 의사결정을 내리는데 참고할 수 있다(예컨대, 결함보수는, 우선순위가 높고 구현 난이도가 낮은 것부터, 우선순위가 낮고 구현 난이도가 높은 것의 순서로 진행될 수 있음). 이러한 안전성 정보는 본 발명의 이해를 돕기 위한 예시일 뿐이며, 본 발명이 이로써 제한되는 것은 아니다. 당업자라면, 코드 분석의 결과 보고서에 포함되어 소프트웨어 코드의 개발/보수자에게 제공될만한 더 많은 다른 안전 메커니즘 안전성 정보를 생각해낼 수 있을 것이다. 본 발명의 다른 실시예에 의하면, 코드 분석의 결과 보고서에는, 위 열거된 정보 중 일부 또는 그 외 다른 안전성 정보가 포함될 수 있다. 본 발명의 일 실시예에 의하면, 보고서 작성부(310)에 의해 작성되는 보고서에 포함되는 코드 모듈의 안전성 정보는, 예컨대 다음 표와 같은 테이블 형태의 정보를 포함할 수 있다. 아래 표는 본 발명의 이해를 돕기 위한 것일 뿐, 본 발명이 이로써 제한되는 것을 아님을 알아야 한다.According to an embodiment of the present invention, the safety information of the code module included in the report generated by the
(매우 높음, 높음, 중간, 낮음, 매우 낮음)Five priority applications
(Very high, high, medium, low, very low)
(매우 어려움, 어려움, 중간, 쉬움, 매우 쉬움)5 different implementation difficulties
(Very difficult, difficult, medium, easy, very easy)
예) ParityCheck Safety Mechanism: 데이터의 통신 중 또는 저장 중에 데이터가 오염되었는지 감지함The code safety part that can be secured when applying this Safety Mechanism
Example) ParityCheck Safety Mechanism: Detects whether data is corrupted while communicating or storing data
-----------------------
parity(X, Y) true : falseX checksum for Y bit parity
-----------------------
parity (X, Y) true: false
본 발명의 일 실시예에 의하면, 보고서 작성부(310)에서는, 전술한 바와 같이 소프트웨어 코드 분석 결과 보고서를 작성할 수 있고, 이를 사용자에게 유용하고 직관적인 방식으로 리포팅될 수 있다. 예컨대, 분석 결과 보고서에는, 다양한 표, 도면, 그래프, 관련 링크 등을 포함할 수 있다.According to an embodiment of the present invention, the
당업자라면 알 수 있듯이 본 발명은 본 명세서에서 기술된 예시에 한정되는 것이 아니라 본 발명의 범주를 벗어나지 않는 범위 내에서 다양하게 변형, 재구성 및 대체될 수 있다. 예를 들어, 본원에 기술된 다양한 기술들은 하드웨어 또는 소프트웨어, 또는 하드웨어와 소프트웨어의 조합에 의해 구현될 수 있다. 따라서, 본원에 따른 소프트웨어 안전성 분석을 위한 분석 머신의 특정한 양태나 부분은 범용 또는 전용 마이크로프로세서, 마이크로-컨트롤러 등에 의해 실행 가능한 하나 이상의 컴퓨터 프로그램으로 구현될 수 있다. 본 발명의 일 실시예에 따른 컴퓨터 프로그램은, 컴퓨터 프로세서 등에 의해 판독 가능한 저장 매체, 예컨대 EPROM, EEPROM, 플래시 메모리장치와 같은 비휘발성 메모리, 내장형 하드 디스크와 착탈식 디스크 같은 자기 디스크, 광자기 디스크, 및 CDROM 디스크 등을 포함한 다양한 유형의 저장 매체에 저장된 형태로 구현될 수 있다. 또한, 프로그램 코드(들)는 어셈블리어나 기계어로 구현될 수 있고, 전기 배선이나 케이블링, 광섬유, 또는 기타 임의의 다른 형태의 전송 매체를 통해 전송되는 형태로 구현될 수도 있다. As will be appreciated by those skilled in the art, the present invention is not limited to the examples described herein, but may be variously modified, rearranged and replaced without departing from the scope of the present invention. For example, the various techniques described herein may be implemented in hardware or software, or a combination of hardware and software. Thus, certain aspects or portions of an analysis machine for software safety analysis in accordance with the present disclosure may be implemented with one or more computer programs executable by a general purpose or special purpose microprocessor, micro-controller, or the like. A computer program according to an embodiment of the present invention may be stored in a storage medium readable by a computer processor or the like such as a nonvolatile memory such as EPROM, EEPROM, flash memory device, a magnetic disk such as an internal hard disk and a removable disk, CDROM disks, and the like. Also, the program code (s) may be implemented in assembly language or machine language, and may be implemented in a form that is transmitted over electrical wiring or cabling, optical fiber, or any other form of transmission medium.
본 명세서에서는, 소프트웨어 위험성 분석의 예시적인 실시예에 대해 다양한 도면을 참조하여 주로 기술했지만, 다른 유사한 실시예들이 이용될 수 있다. 본 발명의 진정한 사상 및 범주에 속하는 모든 변형 및 변경을 이하의 특허청구범위에 의해 모두 포괄하고자 한다.Although exemplary embodiments of the software risk analysis are mainly described herein with reference to various drawings, other similar embodiments may be used. And all changes and modifications that fall within the true spirit and scope of the present invention are intended to be embraced by the following claims.
302: 분석 코드 정보 입력부
304: 위험 데이터 메트릭 측정부
306: 위험 분석부
308: 코드 모듈 안전성 특징 획득부
310: 보고서 작성부302: Analysis code information input unit
304: Hazard data metric measurement unit
306: Risk Analysis Department
308: Code module safety feature acquisition unit
310:
Claims (10)
상기 소프트웨어 코드 모듈과, 상기 소프트웨어 코드 모듈의 작성에 관련된 표준 플랫폼 식별 정보를 입력받는 단계;
분석 머신 - 상기 분석 머신은, 차량 기능 안전에 관련된, 복수 개의 위험 메트릭 데이터 세트에 의해 미리 학습되고 훈련된 학습 머신임 - 을 이용해서, 상기 소프트웨어 코드 모듈의 위험 여부를 결정하는 단계;
상기 소프트웨어 코드 모듈이 위험하다고 결정된 경우, 데이터베이스로부터 상기 소프트웨어 코드 모듈의 안전성 정보를 획득하는 단계 - 상기 안전성 정보는, 상기 표준 플랫폼 식별 정보에 기초하여 획득됨 -; 및
상기 소프트웨어 코드 모듈의 위험 여부와 상기 획득된 안전성 정보를 이용하여, 상기 전장용 소프트웨어의 안전성에 관한 보고서를 작성하는 단계
를 포함하고
상기 데이터베이스는, 상기 표준 플랫폼 식별 정보를 SAFE(Safe Automotive soFtware archiTecture) ISO 26262에서 정의된 복수의 안전 메커니즘 중 하나의 안전 메커니즘에 맵핑하는 정보를 저장하고,
상기 데이터베이스는, 상기 맵핑된 하나의 안전 메커니즘에 대응하여 미리 정의된 하나 이상의 안전성 정보를 더 저장하는, 전장용 소프트웨어 안전성 분석 방법.CLAIMS 1. A method for analyzing the safety of a software code module for use in a global field created by a computer based on a standard platform,
Receiving the software code module and standard platform identification information related to creation of the software code module;
An analysis machine, comprising: determining the risk of the software code module, using the analysis machine, which is a learning machine previously trained and trained by a plurality of risk metric data sets related to vehicle function safety;
Obtaining safety information of the software code module from a database if the software code module is determined to be dangerous, the safety information being obtained based on the standard platform identification information; And
A step of generating a report on the safety of the software for the electric vehicle using the risk of the software code module and the acquired safety information
Including the
Wherein the database stores information mapping the standard platform identification information to one of a plurality of security mechanisms defined in SAFE (Safe Automotive sofware archiTecture) ISO 26262,
Wherein the database further stores one or more predefined security information corresponding to the one mapped security mechanism.
상기 표준 플랫폼은 AUTOSAR BSW이며, 상기 표준 플랫폼 식별 정보는 상기 AUTOSAR BSW의 모듈 ID인, 전장용 소프트웨어 안전성 분석 방법.The method according to claim 1,
Wherein the standard platform is an AUTOSAR BSW and the standard platform identification information is a module ID of the AUTOSAR BSW.
상기 맵핑된 하나의 안전 메커니즘에 대응하여 미리 정의된 하나 이상의 안전성 정보는 갱신 가능한, 전장용 소프트웨어 안전성 분석 방법.The method according to claim 1,
Wherein the at least one safety information predefined corresponding to the one mapped security mechanism is updatable.
상기 맵핑된 하나의 안전 메커니즘에 대응하여 미리 정의된 하나 이상의 안전성 정보는, 결함보수의 우선순위, 구현 난이도, 및 투입 노력 시간 중 적어도 하나를 포함하는, 전장용 소프트웨어 안전성 분석 방법.The method according to claim 1,
Wherein the at least one safety information predefined in correspondence with the one mapped security mechanism includes at least one of a priority of defect repair, an implementation difficulty, and a commitment effort time.
상기 결함보수의 우선순위 및 구현 난이도는 각각 소정의 복수의 레벨 중 각 하나의 레벨에 대응하는, 전장용 소프트웨어 안전성 분석 방법.6. The method of claim 5,
Wherein the priority of the defect repair and the implementation difficulty each correspond to a level of each of a plurality of predetermined levels.
상기 SAFE ISO 26262에서 정의된 복수의 안전 메커니즘은 소정 수의 카테고리로 분류되고, 상기 맵핑된 하나의 안전 메커니즘은 상기 소정 수의 카테고리 중 하나의 카테고리에 속하는, 전장용 소프트웨어 안전성 분석 방법.The method according to claim 1,
Wherein the plurality of safety mechanisms defined in SAFE ISO 26262 are categorized into a predetermined number of categories and the one mapped security mechanism belongs to one of the predetermined number of categories.
상기 보고서는, 상기 맵핑된 하나의 안전 메커니즘의 명칭, 상기 맵핑된 하나의 안전 메커니즘에 관한 설명, 상기 맵핑된 하나의 안전 메커니즘의 상기 카테고리, 상기 맵핑된 하나의 안전 메커니즘의 결함보수의 우선순위, 상기 맵핑된 하나의 안전 메커니즘의 구현 난이도, 상기 맵핑된 하나의 안전 메커니즘의 투입 노력 시간 중 적어도 하나를 포함하는, 전장용 소프트웨어 안전성 분석 방법.8. The method of claim 7,
Wherein the report includes at least one of a name of the one mapped security mechanism, a description of the one mapped security mechanism, a category of the mapped one security mechanism, a priority of a defect repair of the mapped one security mechanism, An implementation effort of the one mapped security mechanism, and a mock effort effort of the one mapped security mechanism.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160098501A KR101834247B1 (en) | 2016-08-02 | 2016-08-02 | Method and apparatus for analyzing safety of automotive software |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160098501A KR101834247B1 (en) | 2016-08-02 | 2016-08-02 | Method and apparatus for analyzing safety of automotive software |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180014978A KR20180014978A (en) | 2018-02-12 |
KR101834247B1 true KR101834247B1 (en) | 2018-03-06 |
Family
ID=61225176
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160098501A KR101834247B1 (en) | 2016-08-02 | 2016-08-02 | Method and apparatus for analyzing safety of automotive software |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101834247B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190110871A (en) | 2018-03-21 | 2019-10-01 | (주)씽크포비엘 | Method and apparatus for simulating safety of automotive software to obtain a goal reliability index |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210065301A (en) * | 2019-11-27 | 2021-06-04 | 주식회사 알티스트 | Method for designing software of based autosar and apparatus for executing the method |
KR102630360B1 (en) * | 2021-12-27 | 2024-01-29 | 주식회사 알티스트 | Static setting system and method of automotive open system architecture sensor interface |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013206310A (en) * | 2012-03-29 | 2013-10-07 | Nec Corp | Model inspection device, model inspection method, and program |
KR101432712B1 (en) * | 2013-03-05 | 2014-08-25 | 충북대학교 산학협력단 | Methods of code refactoring for software safety |
-
2016
- 2016-08-02 KR KR1020160098501A patent/KR101834247B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013206310A (en) * | 2012-03-29 | 2013-10-07 | Nec Corp | Model inspection device, model inspection method, and program |
KR101432712B1 (en) * | 2013-03-05 | 2014-08-25 | 충북대학교 산학협력단 | Methods of code refactoring for software safety |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190110871A (en) | 2018-03-21 | 2019-10-01 | (주)씽크포비엘 | Method and apparatus for simulating safety of automotive software to obtain a goal reliability index |
Also Published As
Publication number | Publication date |
---|---|
KR20180014978A (en) | 2018-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2586767C2 (en) | System and method of providing diagnostic information on failure | |
US20210064518A1 (en) | Methods Circuits Devices Systems and Functionally Associated Machine Executable Code For Automatic Failure Cause Identification in Software Code Testing | |
US20130024842A1 (en) | Software test automation systems and methods | |
KR101834247B1 (en) | Method and apparatus for analyzing safety of automotive software | |
RU2601141C2 (en) | System and method for providing diagnostic information on faults | |
CN108829088B (en) | Automobile diagnosis method and device and storage medium | |
US10094740B2 (en) | Non-regression method of a tool for designing a monitoring system of an aircraft engine | |
KR102066868B1 (en) | Method and apparatus for simulating safety of automotive software to obtain a goal reliability index | |
CN105183658A (en) | Software code testing method and device | |
CN114490161A (en) | Fault diagnosis method and device, vehicle and storage medium | |
EP4167040A1 (en) | Fault model editor and diagnostic tool | |
KR102268053B1 (en) | Intelligent safety fault diagnostic system of robotic process automation | |
KR102461180B1 (en) | Method and apparatus for analyzing safety of software | |
KR102418796B1 (en) | FMEA failure mode recommend system | |
US20120310849A1 (en) | System and method for validating design of an electronic product | |
KR102399597B1 (en) | Intelligent safety analysis technology using AI | |
KR101675986B1 (en) | Method and apparatus for analyzing safety of automotive software | |
KR102426581B1 (en) | Method and apparatus for analyzing safety of automotive software | |
CN107102938B (en) | Test script updating method and device | |
CN105814546B (en) | Method and system for assisting the inspection to algorithm chain and verification | |
KR101734872B1 (en) | Method and apparatus for analyzing safety of software | |
US9372746B2 (en) | Methods for identifying silent failures in an application and devices thereof | |
CN108762227B (en) | Automatic driving test system and method | |
CN112925806A (en) | Association rule-based performance degradation characteristic parameter extraction method, system, medium, and device | |
JP2005202494A (en) | System and apparatus for analyzing static analysis result |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |