KR20220063528A - Embedded control program verification method and device - Google Patents

Embedded control program verification method and device Download PDF

Info

Publication number
KR20220063528A
KR20220063528A KR1020200149499A KR20200149499A KR20220063528A KR 20220063528 A KR20220063528 A KR 20220063528A KR 1020200149499 A KR1020200149499 A KR 1020200149499A KR 20200149499 A KR20200149499 A KR 20200149499A KR 20220063528 A KR20220063528 A KR 20220063528A
Authority
KR
South Korea
Prior art keywords
verification
model
scenario
control program
unit
Prior art date
Application number
KR1020200149499A
Other languages
Korean (ko)
Other versions
KR102471537B1 (en
Inventor
최윤자
김동우
Original Assignee
경북대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 경북대학교 산학협력단 filed Critical 경북대학교 산학협력단
Priority to KR1020200149499A priority Critical patent/KR102471537B1/en
Publication of KR20220063528A publication Critical patent/KR20220063528A/en
Application granted granted Critical
Publication of KR102471537B1 publication Critical patent/KR102471537B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/368Test management for test version control, e.g. updating test cases to a new software version
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis

Abstract

The present invention proposes a method and an apparatus for verifying an embedded control program in consideration of both an operating system and an application. The verifying method of the present invention is performed by including: integrating a structured operating system model with an abstracted control program; verifying the integrated operating system model; deriving a case including attribute violation as a result of verification; and determining feasibility of a scenario reported on an operating system and a control program using scheduling information of the case reported according to the result of verification. In addition, when there is no possibility to execute the scenario, processes of removing the scenario from the integrated operating system model and verifying the operating model again are repeatedly performed. According to the present invention, the embedded control program can be verified more accurately than the prior art.

Description

내장형 제어 프로그램의 검증 방법 및 그 장치{Embedded control program verification method and device}Embedded control program verification method and device

본 발명은 내장형 제어 프로그램에 관한 것으로, 특히 운영체제와 어플리케이션 모두를 고려하여 내장형 제어프로그램을 검증하되 CEGAR(Counterexample-guided abstraction refinement) 검증 기법을 사용함으로써 검증 복잡도를 낮추면서 검증할 수 있는 방법 및 장치에 관한 것이다. The present invention relates to a built-in control program, and in particular, to a method and apparatus that can verify the built-in control program in consideration of both the operating system and the application, while reducing the verification complexity by using the CEGAR (Counterexample-guided abstraction refinement) verification technique. it's about

내장형 프로그램은 일반적으로 운영체제와 어플리케이션을 포함하는 구성이다. 그리고 이러한 내장형 제어 프로그램은 여러 태스크(task)가 번갈아 수행되며, 여러 태스크의 실행순서를 정확하게 파악하기 위해서는 운영체제의 스케줄링 정보 및 작업 우선순위뿐만 아니라, 운영체제의 구성요소인 리소스, 이벤트, 인터럽트 등의 행위를 모두 반영한 운영체제가 있어야 한다. An embedded program is a component that generally includes an operating system and an application. In addition, in this built-in control program, several tasks are performed alternately, and in order to accurately grasp the execution order of several tasks, not only scheduling information and task priority of the operating system, but also actions such as resources, events, and interrupts, which are components of the operating system, are performed. There must be an operating system that reflects all of them.

이러한 제어 프로그램의 동작을 정확하게 분석하는 작업은 중요하다. 제어 프로그램은 내장된 소프트웨어를 생성하기 위해 운영체제와 함께 컴파일되기 때문에 운영체제와 밀접하게 결합되어 있기 때문이다. 운영체제의 동작을 고려하지 않고서는 이러한 제어 프로그램의 동작을 분석할 수 없다. It is important to accurately analyze the operation of such a control program. This is because the control program is tightly coupled with the operating system because it is compiled with the operating system to create embedded software. It is impossible to analyze the operation of such a control program without considering the operation of the operating system.

종래에 제어 프로그램의 검증방법은 운영체제와 어플리케이션을 따로 검증하는 방법이 있었다. 그러나 운영체제와 어플리케이션을 각각 검증하는 경우 나머지 하나의 행위를 확인할 수 없어 정확한 검증이 어려운 문제가 있다. 그래서 운영체제와 제어 프로그램 모두를 고려한 검증방법이 사용되기도 하였다. 그러나 상기와 같이 운영체제와 제어 프로그램 모두의 행위를 고려한 검증 방법은 매우 복잡도가 커질 뿐만 아니라 막대한 검증 비용이 발생하는 문제가 있다. Conventionally, as a method of verifying a control program, there is a method of separately verifying an operating system and an application. However, when verifying the operating system and the application separately, there is a problem in that it is difficult to accurately verify the behavior of the other one. Therefore, a verification method that considers both the operating system and the control program was used. However, as described above, the verification method in consideration of the actions of both the operating system and the control program has a problem in that the complexity increases and a huge verification cost occurs.

또 운영체제를 고려하지 않고 검증하기도 하는데, 예를 들어 운영체제를 추상화하여 검증할 경우 실제 프로그램 상에서 실행 가능하지 않은 높은 비율의 오경보가 발생하기도 한다. 이러한 검증방법은 작업간의 잘못된 실행순서를 기반으로 주어진 검증 속성을 반박할 가능성이 높아, 예를 들면 낮은 우선 순위 작업이 제어 프로그램에서 높은 우선 순위 작업에 선점될 수 있는 문제를 초래하기도 한다. In addition, verification is performed without considering the operating system. For example, if the operating system is abstracted and verified, a high rate of false alarms that are not executable in the actual program may occur. This verification method is highly likely to refute a given verification attribute based on the wrong execution order between tasks, and for example, a low-priority task may be preempted by a high-priority task in the control program.

본 발명의 목적은, 잘못된 오경보의 비율을 낮추도록 하며 검증 정확도를 향상시키면서 검증 비용을 줄일 수 있도록 하는 내장형 제어 프로그램 검증 방법 및 그 장치를 제공하는 것이다.SUMMARY OF THE INVENTION It is an object of the present invention to provide a built-in control program verification method and apparatus capable of lowering the rate of false false alarms and reducing verification cost while improving verification accuracy.

본 발명은 OiL-CEGAR(OS-in-the-Loop Counterexample-Guided Abstraction Refinment)라는 CEGAR의 변형이 적용된 내장형 제어 프로그램 검증 방법 및 그 장치를 제공하는 것이다.An object of the present invention is to provide a method and apparatus for verifying a built-in control program to which a modification of CEGAR called OS-in-the-Loop Counterexample-Guided Abstraction Refinment (OiL-CEGAR) is applied.

이와 같은 목적을 달성하기 위한 본 발명은, 추상화된 제어 프로그램과 정형 운영체제 모델을 통합하는 통합 단계; 상기 통합된 운영체제 모델을 검증하는 검증 단계; 상기 검증 결과 속성 위반을 포함하는 반례가 도출되는 도출 단계; 검증 결과에 따라 보고된 반례의 스케쥴링 정보를 활용한 운영체제와 제어프로그램 상에서 보고된 시나리오의 실행 가능성을 판단하는 판단 단계; 및 실행 가능성이 불가능한 경우, 상기 시나리오를 통합 모델로부터 제거하는 제거 단계;를 포함하여 수행되는 것을 특징으로 하는 내장형 제어 프로그램의 검증 방법을 제공한다. The present invention for achieving the above object, the integration step of integrating the abstract control program and the formal operating system model; a verification step of verifying the integrated operating system model; a derivation step of deriving a counterexample including a violation of an attribute as a result of the verification; A determination step of determining the feasibility of executing the reported scenario on the operating system and the control program using the scheduling information of the reported counterexample according to the verification result; and a removal step of removing the scenario from the integrated model when feasibility is not possible.

상기 제거 단계 이후에, 상기 시나리오가 제거된 통합 모델을 다시 검증하고, 제어 프로그램의 안전성이 증명되거나 실행 가능한 안전 속성 위반 시나리오가 보고될 때까지 반복 수행하는 단계를 더 포함한다. After the removal step, the method further includes re-verifying the integrated model from which the scenario has been removed, and repeatedly performing until the safety of the control program is verified or an actionable safety property violation scenario is reported.

상기 판단 단계는 상기 검증 단계에서 검증된 결과가 실제로 발생가능한지 판단하는 것이다.The determination step is to determine whether the result verified in the verification step can actually occur.

상기 검증 방법은, OiL-CEGAR(OS-in-the-Loop Counterexample-Guided Abstraction Refinment) 방법이다. The verification method is an OS-in-the-Loop Counterexample-Guided Abstraction Refinment (OiL-CEGAR) method.

본 발명의 다른 특징에 따르면, 어플리케이션을 추상화하는 추상화부; 추상화된 어플리케이션 모델과 운영체제 모델을 통합하는 모델 통합부; 통합된 모델을 검증하는 모델 검증부; 상기 모델 검증부의 검증 결과에 따라 시나리오의 실행 가능성을 판단하는 판단부를 포함하여 구성되는 것을 특징으로 하는 내장형 제어 프로그램의 검증 장치를 제공한다. According to another feature of the present invention, an abstraction unit for abstracting an application; a model integration unit that integrates the abstracted application model and the operating system model; a model verification unit that verifies the integrated model; It provides a verification apparatus for a built-in control program, characterized in that it comprises a determination unit that determines the feasibility of the scenario according to the verification result of the model verification unit.

상기 판단부의 판단 결과, 실행 불가능한 시나리오인 경우 통합 모델에서 제거하는 제거부를 더 포함하고, 실행 불가능한 시나리오가 제거된 통합모델은 다시 상기 모델 검증부로 전달된다. As a result of the determination of the determination unit, the apparatus further includes a removal unit that removes from the integrated model if the scenario is not executable, and the integrated model from which the impossible scenario is removed is transmitted to the model verification unit again.

상기 모델 검증부는, 통합 모델이 안전 속성을 준수하는지 검증한다.The model verification unit verifies whether the integrated model complies with the safety attribute.

상기 판단부는, 실행 가능한 안전 속성 위반 시나리오가 보고될 때까지 상기 모델 검증부가 제공하는 안전 속성 위반 시나리오를 판단한다. The determination unit determines the safety attribute violation scenario provided by the model verification unit until an executable safety attribute violation scenario is reported.

이상과 같은 본 발명의 내장형 제어 프로그램 검증 방법 및 그 장치에 따르면, 운영체제 모델과 어플리케이션을 함께 검증함으로써 종래보다 더 정확하게 내장형 제어 프로그램을 검증할 수 있다.According to the method and apparatus for verifying the embedded control program of the present invention as described above, by verifying the operating system model and the application together, it is possible to verify the embedded control program more accurately than in the prior art.

또 본 발명은 모델 추상화를 이용하기 때문에 검증의 복잡도를 낮출 수 있고 이에 따라 검증 비용도 절감할 수 있는 효과가 있다.In addition, since the present invention uses model abstraction, the complexity of verification can be lowered, and thus the verification cost can be reduced.

도 1은 본 발명의 실시 예에 따른 내장형 제어 프로그램 검증장치를 나타낸 구성도
도 2는 도 1의 내장형 제어 프로그램 검증장치를 이용한 검증방법을 설명하는 흐름도
1 is a block diagram showing a built-in control program verification apparatus according to an embodiment of the present invention;
2 is a flowchart illustrating a verification method using the built-in control program verification device of FIG. 1

본 발명의 목적 및 효과, 그리고 그것들을 달성하기 위한 기술적 구성들은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 본 발명을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.Objects and effects of the present invention, and technical configurations for achieving them will become clear with reference to the embodiments described below in detail in conjunction with the accompanying drawings. In the description of the present invention, if it is determined that a detailed description of a well-known function or configuration may unnecessarily obscure the gist of the present invention, the detailed description thereof will be omitted.

그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다.And the terms to be described later are terms defined in consideration of functions in the present invention, which may vary according to intentions or customs of users and operators.

그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있다. 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.However, the present invention is not limited to the embodiments disclosed below and may be implemented in various different forms. Only the present embodiments are provided so that the disclosure of the present invention is complete, and to completely inform those of ordinary skill in the art to which the present invention belongs, the scope of the invention, the present invention is defined by the scope of the claims will only be Therefore, the definition should be made based on the content throughout this specification.

이하에서는 도면에 도시한 실시 예에 기초하면서 본 발명에 대하여 더욱 상세하게 설명하기로 한다. Hereinafter, the present invention will be described in more detail based on the embodiments shown in the drawings.

도 1은 본 발명의 실시 예에 따라 내장형 제어 프로그램을 검증하는 장치(100)를 나타낸 구성도이다. 도 1에 도시한 바와 같이 어플리케이션을 추상화하는 추상화부(110)가 구비된다. 내장형 제어프로그램의 검증 시점에서 어플리케이션을 추상화하는 이유는 검증 복잡도를 낮추기 위한 것이다. 1 is a block diagram illustrating an apparatus 100 for verifying a built-in control program according to an embodiment of the present invention. As shown in FIG. 1 , an abstraction unit 110 for abstracting an application is provided. The reason for abstracting the application at the time of verification of the embedded control program is to lower the verification complexity.

그리고 추상화된 어플리케이션 모델과 운영체제 모델을 통합하는 모델 통합부(120)와, 모델 통합부(120)에 의해 통합된 모델을 검증하는 모델 검증부(130)가 구비된다. 모델 검증부(130)는 검증시점에서 어플리케이션을 추상화했기 때문에 실제로 발생 가능하지 않은 시나리오가 안전 속성 위반 시나리오로써 발생할 수 있다. 이러한 모델 검증부(130)의 검증 결과는 제어 프로그램이 안전 속성을 준수함을 증명 또는 안전 속성을 위반하는 시나리오로 구분할 수 있다.In addition, the model integrator 120 for integrating the abstracted application model and the operating system model, and the model validation unit 130 for verifying the model integrated by the model integrator 120 are provided. Since the model verification unit 130 abstracts the application at the time of verification, a scenario that is not actually possible may occur as a safety attribute violation scenario. The verification result of the model verification unit 130 may be classified into a scenario in which the control program complies with the safety attribute or a scenario in which the safety attribute is violated.

그리고 상기 모델 검증부(130)의 검증 결과에 따라 시나리오의 실행 가능성을 판단하는 판단부(140)가 구비된다. 앞서 언급한 바와 같이 어플리케이션을 추상화했기 때문에 시나리오가 실제로 발생할 수 있는 행위인지 또는 실제로 발생할 수 없는 행위인지를 알수 없기 때문에 시나리오의 실행 가능성을 판단할 필요가 있기 때문이다. 다시 말해 어플리케이션의 추상화에 따라 아주 다양한 경우의 수가 존재할 가능성이 있으며, 따라서 각각의 시나리오가 실제로 실행될 수 있는가를 판단해야 하는 것이다. 판단부(140)는 실행 가능한 안전 속성 위반 시나리오 또는 실행 불가능한 시나리오를 판단할 수 있다. In addition, a determination unit 140 is provided to determine the feasibility of the scenario according to the verification result of the model verification unit 130 . As mentioned above, since the application is abstracted, it is necessary to determine the feasibility of the scenario because it is not possible to know whether the scenario is an action that can actually occur or an action that cannot actually occur. In other words, there is a possibility that a very diverse number of cases exist depending on the abstraction of the application, and therefore it is necessary to determine whether each scenario can actually be executed. The determination unit 140 may determine an executable safety attribute violation scenario or an impossible scenario.

상기 실행 불가능한 시나리오인 경우 통합 모델에서 이를 제거하는 시나리오 제거부(150)가 더 구비된다. 그리고 시나리오 제거부(150)에 의하여 실행 불가능한 시나리오가 제외된 통합모델은 다시 상기 모델 검증부(130)로 제공되며, 모델 검증부(130)에 의해 프로그램의 안전성이 증명되거나, 그러지 못할 경우 판단부(140)로 제공되어 실행 가능한 안전성 위반 시나리오가 보고될 때까지 상기한 과정을 반복 수행하게 된다.In the case of the impossible scenario, a scenario removing unit 150 for removing it from the integrated model is further provided. And the integrated model from which the scenario that cannot be executed is excluded by the scenario removal unit 150 is again provided to the model verification unit 130, and the safety of the program is verified by the model verification unit 130, or if not, the determination unit Provided as 140, the above process is repeated until a feasible safety violation scenario is reported.

다음에는 이와 같이 구성된 검증장치의 검증방법을 도 2를 참조하여 살펴보기로 한다. Next, a verification method of the verification apparatus configured as described above will be described with reference to FIG. 2 .

제어 프로그램의 안전성 여부를 정확하게 검증하기 위하여 운영체제와 어플리케이션을 구비한 제어 프로그램에서, 추상화부(110)는 그 제어프로그램의 검증 시점에 어플리케이션을 추상화하는 과정을 우선적으로 수행한다(s100). 추상화는 특정 조건에서 실행 가능한 경우가 복수 개 존재한다는 것을 의미한다. 이와 같이 어플리케이션을 추상화하면 특정 조건에서 발생할 수 있는 경우의 수의 전부를 각각 분석하지 않아도 되기 때문에(즉 연산량을 줄일 수 있게 된다), 종래 검증방법과 비교하면 운영체제와 어플리케이션을 같이 검증하면서도 복잡도를 낮추고 검증비용을 줄일 수 있게 된다. In order to accurately verify whether the control program is safe, in a control program including an operating system and an application, the abstraction unit 110 preferentially performs a process of abstracting the application at the verification time of the control program (s100). Abstraction means that there are multiple cases that can be executed under specific conditions. By abstracting the application in this way, it is not necessary to analyze every number of cases that can occur under a specific condition (that is, the amount of computation can be reduced). The verification cost can be reduced.

모델 통합부(120)는 추상화한 어플리케이션 모델과 운영체제 모델을 통합하고(s110), 모델 검증부(130)는 이렇게 통합된 모델에 대한 제어프로그램의 안전성 여부를 검증하게 된다(s120). 모델 검증부(130)가 검증하는 이유는 상기와 같이 어플리케이션을 추상화했기 때문에 실제로 발생하지 않는 시나리오가 나올 수 있기 때문이다. 상기 모델 검증부(130)의 검증결과는 2가지다. 상기 실제로 실행 가능한 시나리오인 경우는 안전 속성을 위반하지 않은 시나리오로서 제어프로그램이 안전하다고 검증된 제1 경우와, 실제로 일어나지 않은 시나리오가 발생한 제2 경우다. 모델 검증부(130)는 상기 제2 경우를 발견하기 위한 것이라 할 수 있다. 실질적으로 모델 검증부(130)는 속성 위반을 포함하는 반례를 도출하는 과정이라 할 수도 있다. The model integration unit 120 integrates the abstracted application model and the operating system model (s110), and the model verification unit 130 verifies whether the control program is safe for the integrated model (s120). The reason why the model verification unit 130 verifies is that because the application is abstracted as described above, a scenario that does not actually occur may appear. The verification results of the model verification unit 130 are two. The actual executable scenarios are the first case in which the control program is verified to be safe as a scenario in which the safety attribute is not violated, and the second case in which a scenario that does not actually occur occurs. The model verification unit 130 may be said to be for discovering the second case. In practice, the model verification unit 130 may be referred to as a process of deriving a counterexample including an attribute violation.

상기 모델 검증부(130)의 검증 결과, 상기한 바와 같이 제1 경우가 발생하면 해당 모델은 제어프로그램의 안전성이 증명됐다고 할 수 있다. 반면 제2 경우가 발생하면 판단부(140)는 상기 시나리오의 실행 가능성을 판단해야 한다. As a result of the verification of the model verification unit 130, if the first case occurs as described above, it can be said that the safety of the control program has been verified for the model. On the other hand, when the second case occurs, the determination unit 140 must determine the feasibility of the scenario.

판단부(140)의 상기 시나리오의 실행 가능성 판단은(s130), 검증 결과에 따라 보고된 반례의 스케줄링 정보를 이용하여 만든 추상화된 운영체제에서 어플리케이션을 실행함으로써 시나리오의 실행 가능성을 판단할 수 있다. 판단 결과는 실제 어플리케이션이 실행되면 실제로도 실행 가능한 오류 시나리오로 해석하여 안전성을 위반한 시나리오(즉 안전 속성 위반 시나리오)로 보고한다(s140의 '예'). 반대로 어플리케이션이 실행할 수 없는 경우이면(s140의 '아니오'), 그 시나리오를 제거한 후 다시 검증과정을 수행해야 한다. 상기와 같이 어플리케이션이 실행할 수 없는 경우는 어플리케이션을 추상화했기 때문에 발생하는 것이다. In determining the feasibility of the scenario by the determination unit 140 (s130), it is possible to determine the feasibility of the scenario by executing the application in the abstracted operating system created using the scheduling information of the counterexample reported according to the verification result. When the actual application is executed, the determination result is interpreted as an error scenario that can be actually executed and reported as a scenario in which safety is violated (that is, a scenario in which safety properties are violated) ('Yes' in s140). Conversely, if the application cannot be executed ('No' in s140), the verification process must be performed again after removing the scenario. If the application cannot be executed as described above, it occurs because the application is abstracted.

이처럼 실행 불가능한 시나리오가 확인되면 시나리오 제거부(150)는 통합 모델에서 상기 실행 불가능하다고 보고된 시나리오를 제거한 후 이를 다시 모델 검증부(130)로 전달한다(s150).When an impossible scenario is identified as described above, the scenario removal unit 150 removes the scenario reported to be impossible from the integrated model and then transmits it to the model verification unit 130 again (s150).

그러면 모델 검증부(130)는 다시 해당 통합 모델의 검증과정을 수행하고, 안전속성이 준수된 경우와 반대의 경우를 검증하며, 안전속성이 위반된 경우 판단부(140)가 실행 가능한 시나리오인지를 판단하는 과정을 계속 수행하게 된다. 즉 상기 판단부(140)는 안전성 위반 시나리오가 보고될 때까지 제어프로그램의 안전성을 검증하는 과정을 계속해서 수행하는 것이다. Then, the model verification unit 130 performs the verification process of the corresponding integrated model again, verifies the case where the safety attribute is observed and vice versa, and when the safety attribute is violated, the determination unit 140 determines whether the scenario is feasible. The decision-making process continues. That is, the determination unit 140 continuously performs the process of verifying the safety of the control program until a safety violation scenario is reported.

이와 같이 본 발명은 운영체제와 어플리케이션 모두를 고려하여 내장형 제어프로그램을 검증하는 것이고, 나아가 제어 프로그램의 검증은 개선된 CEGAR 검증 기법을 적용하여 종래보다 검증 복잡도 및 비용을 낮추면서 수행하게 됨을 알 수 있다.As described above, it can be seen that the present invention verifies the built-in control program in consideration of both the operating system and the application, and furthermore, the verification of the control program is performed while reducing the verification complexity and cost compared to the prior art by applying the improved CEGAR verification technique.

이상과 같이 본 발명의 도시된 실시 예를 참고하여 설명하고 있으나, 이는 예시적인 것들에 불과하며, 본 발명이 속하는 기술 분야의 통상의 지식을 가진 자라면 본 발명의 요지 및 범위에 벗어나지 않으면서도 다양한 변형, 변경 및 균등한 타 실시 예들이 가능하다는 것을 명백하게 알 수 있을 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 청구범위의 기술적인 사상에 의해 정해져야 할 것이다.Although described with reference to the illustrated embodiments of the present invention as described above, these are merely exemplary, and those of ordinary skill in the art to which the present invention pertains can use various functions without departing from the spirit and scope of the present invention. It will be apparent that modifications, variations and equivalent other embodiments are possible. Therefore, the true technical protection scope of the present invention should be determined by the technical spirit of the appended claims.

110: 추상화부
120: 모델 통합부
130: 모델 검증부
140: 판단부
150: 제거부
110: abstract painting
120: model integration part
130: model verification unit
140: judgment unit
150: removal unit

Claims (8)

추상화된 제어 프로그램과 정형 운영체제 모델을 통합하는 통합 단계;
상기 통합된 운영체제 모델을 검증하는 검증 단계;
상기 검증 결과 속성 위반을 포함하는 반례가 도출되는 도출 단계;
검증 결과에 따라 보고된 반례의 스케쥴링 정보를 활용한 운영체제와 제어프로그램 상에서 보고된 시나리오의 실행 가능성을 판단하는 판단 단계; 및
실행 가능성이 불가능한 경우, 상기 시나리오를 통합 모델로부터 제거하는 제거 단계;를 포함하여 수행되는 것을 특징으로 하는 내장형 제어 프로그램의 검증 방법.
an integration step of integrating the abstract control program and the formal operating system model;
a verification step of verifying the integrated operating system model;
a derivation step of deriving a counterexample including a violation of an attribute as a result of the verification;
A determination step of determining the feasibility of executing the reported scenario on the operating system and the control program using the scheduling information of the reported counterexample according to the verification result; and
If feasibility is impossible, a removal step of removing the scenario from the integrated model;
제 1 항에 있어서,
상기 제거 단계 이후에, 상기 시나리오가 제거된 통합 모델을 다시 검증하고, 제어 프로그램의 안전성이 증명되거나 실행 가능한 안전 속성 위반 시나리오가 보고될 때까지 반복 수행하는 단계를 더 포함하는 내장형 제어 프로그램의 검증 방법.
The method of claim 1,
After the removal step, re-verifying the integrated model from which the scenario is removed, and repeating until the safety of the control program is proven or an executable safety property violation scenario is reported. .
제 1 항에 있어서,
상기 판단 단계는 상기 검증 단계에서 검증된 결과가 실제로 발생가능한지 판단하는 내장형 제어 프로그램의 검증 방법.
The method of claim 1,
The determining step is a verification method of a built-in control program for determining whether the result verified in the verification step can actually occur.
제 1 항에 있어서,
상기 검증 방법은, OiL-CEGAR(OS-in-the-Loop Counterexample-Guided Abstraction Refinment) 방법인 내장형 제어 프로그램의 검증 방법.
The method of claim 1,
The verification method is a verification method of a built-in control program, which is an OS-in-the-Loop Counterexample-Guided Abstraction Refinment (OiL-CEGAR) method.
어플리케이션을 추상화하는 추상화부;
추상화된 어플리케이션 모델과 운영체제 모델을 통합하는 모델 통합부;
통합된 모델을 검증하는 모델 검증부; 및
상기 모델 검증부의 검증 결과에 따라 시나리오의 실행 가능성을 판단하는 판단부를 포함하여 구성되는 것을 특징으로 하는 내장형 제어 프로그램의 검증 장치.
an abstraction unit that abstracts the application;
a model integration unit that integrates the abstracted application model and the operating system model;
a model verification unit that verifies the integrated model; and
and a judging unit judging the feasibility of the scenario according to the verification result of the model verification unit.
제 5 항에 있어서,
상기 판단부의 판단 결과, 실행 불가능한 시나리오인 경우 통합 모델에서 제거하는 제거부를 더 포함하고,
실행 불가능한 시나리오가 제거된 통합모델은 다시 상기 모델 검증부로 전달되는 내장형 제어 프로그램의 검증 장치.
6. The method of claim 5,
When the determination result of the determination unit is an impossible scenario, it further comprises a removal unit to remove it from the integrated model,
The integrated model from which the impossible scenario is removed is a verification device of the built-in control program that is transmitted back to the model verification unit.
제 5 항에 있어서,
상기 모델 검증부는,
통합 모델이 안전 속성을 준수하는지 검증하는 내장형 제어 프로그램의 검증 장치.
6. The method of claim 5,
The model verification unit,
Verification device of the built-in control program that verifies that the integrated model complies with the safety properties.
제 5 항에 있어서,
상기 판단부는,
실행 가능한 안전 속성 위반 시나리오가 보고될 때까지 상기 모델 검증부가 제공하는 안전 속성 위반 시나리오를 판단하는 내장형 제어 프로그램의 검증 장치.
6. The method of claim 5,
The judging unit,
A verification device of a built-in control program that determines the safety property violation scenario provided by the model verification unit until an executable safety property violation scenario is reported.
KR1020200149499A 2020-11-10 2020-11-10 Embedded control program verification method and device KR102471537B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200149499A KR102471537B1 (en) 2020-11-10 2020-11-10 Embedded control program verification method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200149499A KR102471537B1 (en) 2020-11-10 2020-11-10 Embedded control program verification method and device

Publications (2)

Publication Number Publication Date
KR20220063528A true KR20220063528A (en) 2022-05-17
KR102471537B1 KR102471537B1 (en) 2022-11-28

Family

ID=81803205

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200149499A KR102471537B1 (en) 2020-11-10 2020-11-10 Embedded control program verification method and device

Country Status (1)

Country Link
KR (1) KR102471537B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110088016A1 (en) * 2009-10-09 2011-04-14 Microsoft Corporation Program analysis through predicate abstraction and refinement
JP2013206310A (en) * 2012-03-29 2013-10-07 Nec Corp Model inspection device, model inspection method, and program
KR101701800B1 (en) * 2015-10-27 2017-02-02 경북대학교 산학협력단 Method for task scheduling visualization for automotive control software, recording medium and device for performing the method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110088016A1 (en) * 2009-10-09 2011-04-14 Microsoft Corporation Program analysis through predicate abstraction and refinement
JP2013206310A (en) * 2012-03-29 2013-10-07 Nec Corp Model inspection device, model inspection method, and program
KR101701800B1 (en) * 2015-10-27 2017-02-02 경북대학교 산학협력단 Method for task scheduling visualization for automotive control software, recording medium and device for performing the method

Also Published As

Publication number Publication date
KR102471537B1 (en) 2022-11-28

Similar Documents

Publication Publication Date Title
CN108509336B (en) Operating system standard formalization verification and test method
US20060168480A1 (en) Method and apparatus for enforcing safety properties of computer programs by generating and solving constraints
Rana et al. Increasing efficiency of iso 26262 verification and validation by combining fault injection and mutation testing with model based development
CN108182359B (en) Method, device and storage medium for testing API security in trusted environment
KR20090040017A (en) System and method for vulnerability assessment of network based on business model
US20160304040A1 (en) Vehicle control device
CN106845170A (en) A kind of anti-debug method and system
Hamad et al. Prediction of abnormal temporal behavior in real-time systems
Ruchkin et al. Eliminating inter-domain vulnerabilities in cyber-physical systems: An analysis contracts approach
KR101428915B1 (en) Feedback based application rewriting framework method and system for android security
CN112818569B (en) Attribute-driven security protocol symbolization model detection method and system
Axer et al. Stochastic response-time guarantee for non-preemptive, fixed-priority scheduling under errors
KR102471537B1 (en) Embedded control program verification method and device
KR101701800B1 (en) Method for task scheduling visualization for automotive control software, recording medium and device for performing the method
Oka Fuzz testing virtual ECUs as part of the continuous security testing process
CN112685745B (en) Firmware detection method, device, equipment and storage medium
CN111090575B (en) Test method
CN111143305B (en) Data storage method, device, equipment and medium based on distributed storage system
Möstl et al. Synthesis of monitors for networked systems with heterogeneous safety requirements
Colombo et al. Towards a Comprehensive Solution for Secure Cryptographic Protocol Execution based on Runtime Verification.
EP3091437A1 (en) Method and apparatus for monitoring a control flow of a computer program
KR102348691B1 (en) Method and apparatus for checking executability of application program, and recording media recorded program realizing the same
Frank et al. Methods, tools and standards for the analysis, evaluation and design of modern automotive architectures
Shaaban et al. An Automated Ontology-Based Security Requirements Identification for the Vehicular Domain.
Tigori et al. Using formal methods for the development of safe application-specific RTOS for automotive systems

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant