KR20190083512A - Apparatus and method for software validation - Google Patents
Apparatus and method for software validation Download PDFInfo
- Publication number
- KR20190083512A KR20190083512A KR1020180001251A KR20180001251A KR20190083512A KR 20190083512 A KR20190083512 A KR 20190083512A KR 1020180001251 A KR1020180001251 A KR 1020180001251A KR 20180001251 A KR20180001251 A KR 20180001251A KR 20190083512 A KR20190083512 A KR 20190083512A
- Authority
- KR
- South Korea
- Prior art keywords
- software
- target
- target software
- output
- verification
- 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/3604—Software analysis for verifying properties of programs
Abstract
Description
본 발명은 소프트웨어에 대한 효과적인 검증을 수행하기 위한 방법과, 상기 방법을 수행하는 장치에 관한 것이다.The present invention relates to a method for performing an effective verification of software and an apparatus for performing the method.
오늘날 내장형 시스템은 자동차, 휴대폰 등에 널리 적용되어 제품의 성능을 향상시키는 한편 새로운 기능의 창출 역시 수행하고 있다. 이와 같은 내장형 시스템의 원활한 동작 및 신뢰성 향상을 위해서, 내장형 시스템에 적용될 소프트웨어에 대한 검증 절차는 필수적이라고 할 수 있다.Today, embedded systems are widely applied to automobiles, mobile phones, etc. to improve performance and create new functions. In order to improve the smooth operation and reliability of the embedded system, it is essential to verify the software to be applied to the embedded system.
하지만 현재의 소프트웨어 검증 방법에는 여러 가지 문제점이 내포되어 있다. 구체적으로, 기존의 검증 방법에 의하면, 소프트웨어 검증 시 검증 대상이 되는 소프트웨어 코드에 대한 수정이 필요할 수 있다. 즉, 개발자가 설계한 검증 대상 소프트웨어 코드 외에도 테스트에 필요한 부가적인 테스트 코드들이 상기 소프트웨어 코드 내에 삽입되어야 하므로, 이에 따른 시간과 노력이 소요될 수 있다.However, current software verification methods have several problems. Specifically, according to the existing verification method, it may be necessary to modify the software code to be verified during software verification. That is, in addition to the verification target software code designed by the developer, additional test codes necessary for the test are inserted into the software code, so that it may take time and effort accordingly.
또한, 검증 대상 소프트웨어가 적용될 시스템의 구조 및 인터페이스가 복잡해질수록, 시스템의 각 구성 요소에 적용될 소프트웨어 코드 간의 연결 문제가 중요해진다. 따라서, 하나의 검증 대상 소프트웨어 코드를 검증하기 위해서는 다른 대상 코드와의 상호 작용을 고려하여 검증 시스템을 개발하여야 한다. 이에 따르면, 시스템의 복잡도가 증가할수록 검증이 어려워지는 문제점이 발생하게 된다.Further, as the structure and interface of the system to which the verification target software is to be applied become complicated, the problem of connection between the software codes to be applied to each component of the system becomes important. Therefore, in order to verify one verification target software code, a verification system should be developed considering interaction with other target codes. According to this, as the complexity of the system increases, verification becomes difficult.
본 발명이 해결하고자 하는 과제는, 전술한 종래의 소프트웨어 검증 방법의 문제점을 극복하고, 보다 효과적인 소프트웨어 검증을 수행하기 위한 방법과, 상기 방법을 수행하기 위한 장치를 제공하는 것이다.SUMMARY OF THE INVENTION It is an object of the present invention to provide a method for overcoming the problems of the conventional software verification method described above and performing more effective software verification and an apparatus for performing the method.
다만, 본 발명이 해결하고자 하는 과제는 이상에서 언급한 것으로 제한되지 않으며, 언급되지 않은 또 다른 해결하고자 하는 과제는 아래의 기재로부터 본 발명이 속하는 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.It is to be understood, however, that the present invention is not limited to the above-mentioned embodiments, but other and further objects which need not be mentioned can be clearly understood by those skilled in the art from the following description will be.
본 발명의 일 실시예에 따른 소프트웨어 검증 방법은, 검증의 대상이 되는 대상 소프트웨어가 적용될 실제 시스템의 구성 요소와, 상기 구성 요소 간의 연결 인터페이스에 대해 분석하는 단계, 상기 분석 결과에 기초하여, 상기 실제 시스템의 각 구성 요소와 일대일 대응되는 각 가상 구성 요소와, 상기 실제 시스템의 각 인터페이스와 일대일 대응되는 각 가상 인터페이스를 포함하는 검증 시스템을 구축하는 단계 및 상기 각 가상 구성 요소 중, 상기 대상 소프트웨어가 동작시킬 구성 요소로 설정된 대상 구성 요소에, 상기 대상 소프트웨어를 결합하는 단계를 포함할 수 있다.A software verification method according to an embodiment of the present invention includes analyzing a component of an actual system to which a target software to be verified is applied and a connection interface between the components, Comprising the steps of: constructing a verification system including each virtual component corresponding one-to-one with each component of the system and each virtual interface corresponding one-to-one with each interface of the real system; And combining the target software with a target component configured as a target component.
또한, 상기 구축하는 단계는, 상기 각 가상 구성 요소가 상기 가상 인터페이스를 통해 입력받는 입력 데이터와, 상기 가상 인터페이스를 통해 출력하는 출력 데이터의 종류를 정의하는 단계를 포함할 수 있다.The building step may include defining input data received by the virtual component through the virtual interface and output data output through the virtual interface.
또한, 상기 결합하는 단계는, 상기 대상 구성 요소의 입력 변수에 상기 대상 소프트웨어의 코드의 입력 변수를 연결하고, 상기 대상 구성 요소의 출력 변수에 상기 대상 소프트웨어의 코드의 출력 변수를 연결하는 단계를 포함할 수 있다.The combining step may include connecting an input variable of the target software code to the input variable of the target component and connecting an output variable of the target software code to the output variable of the target component can do.
또한, 상기 결합하는 단계는, 상기 대상 소프트웨어의 호출 주기를 설정하는 단계를 포함하며, 상기 방법은, 상기 호출 주기마다 상기 대상 소프트웨어가, 상기 대상 소프트웨어의 입력 변수를 통해 입력된 입력값을 이용하여, 상기 대상 소프트웨어의 동작 결과에 따른 출력값을 상기 대상 소프트웨어의 출력 변수를 통해 출력하도록 하는 단계를 더 포함할 수 있다.In addition, the combining step may include setting a paging cycle of the target software, wherein the target software uses an input value input through an input variable of the target software at each paging cycle And outputting an output value according to an operation result of the target software through an output variable of the target software.
또한, 상기 방법은, 기 정해진 이벤트가 상기 대상 구성 요소의 입력 변수를 통해 입력되면, 상기 대상 소프트웨어가, 상기 대상 소프트웨어의 입력 변수를 통해 입력된 입력값을 이용하여, 상기 대상 소프트웨어의 동작 결과에 따른 출력값을 상기 대상 소프트웨어의 출력 변수를 통해 출력하도록 하는 단계를 더 포함할 수 있다.When the predetermined event is input through the input parameter of the target component, the target software performs a predetermined process on the operation result of the target software using the input value input through the input variable of the target software And outputting the output value according to the output variable of the target software.
또한, 상기 결합하는 단계는, 상기 검증 시스템에 포함된, 상기 대상 구성 요소 외의 다른 가상 구성 요소 각각에 대해, 대응되는 소프트웨어를 결합시키는 단계를 포함할 수 있다.In addition, the combining may comprise combining corresponding software, for each of the virtual components other than the target component, included in the verification system.
또한, 상기 방법은, 상기 대상 소프트웨어의 작동 시에 상기 대상 소프트웨어의 출력 변수가 출력하는 출력값에 기초하여 상기 대상 소프트웨어에 대한 검증 결과를 생성하는 단계를 더 포함할 수 있다.The method may further include generating a verification result for the target software based on an output value output by an output variable of the target software when the target software is operated.
본 발명의 일 실시예에 따른 소프트웨어 검증 장치는, 검증의 대상이 되는 대상 소프트웨어가 적용될 실제 시스템의 구성 요소와, 상기 구성 요소 간의 연결 인터페이스에 대해 분석하는 시스템 분석부, 상기 분석 결과에 기초하여, 상기 실제 시스템의 각 구성 요소와 일대일 대응되는 각 가상 구성 요소와, 상기 실제 시스템의 각 인터페이스와 일대일 대응되는 각 가상 인터페이스를 포함하는 검증 시스템을 구축하는 검증 시스템 생성부 및 상기 각 가상 구성 요소 중, 상기 대상 소프트웨어가 동작시킬 구성 요소로 설정된 대상 구성 요소에, 상기 대상 소프트웨어를 결합하는 소프트웨어 결합부를 포함할 수 있다.A software verification apparatus according to an embodiment of the present invention includes a system analysis unit for analyzing a component of an actual system to which target software to be verified is applied and a connection interface between the components, A verification system generation unit for constructing a verification system including each virtual component corresponding one-to-one with each component of the real system and each virtual interface corresponding one-to-one with each interface of the real system, And a software coupling unit for coupling the target software to a target component that is set as a component to be operated by the target software.
또한, 상기 검증 시스템 생성부는, 상기 각 가상 구성 요소가 상기 가상 인터페이스를 통해 입력받는 입력 데이터와, 상기 가상 인터페이스를 통해 출력하는 출력 데이터의 종류를 정의할 수 있다.The verification system generation unit may define input data received by the virtual component through the virtual interface and output data output through the virtual interface.
또한, 상기 소프트웨어 결합부는, 상기 대상 구성 요소의 입력 변수에 상기 대상 소프트웨어의 코드의 입력 변수를 연결하고, 상기 대상 구성 요소의 출력 변수에 상기 대상 소프트웨어의 코드의 출력 변수를 연결할 수 있다.The software combination unit may connect an input variable of the target software code to an input variable of the target component and an output variable of the target software code to an output variable of the target component.
또한, 상기 소프트웨어 결합부는, 상기 대상 소프트웨어의 호출 주기를 설정하는 단계를 포함하며, 상기 장치는, 상기 호출 주기마다 상기 대상 소프트웨어가, 상기 대상 소프트웨어의 입력 변수를 통해 입력된 입력값을 이용하여, 상기 대상 소프트웨어의 동작 결과에 따른 출력값을 상기 대상 소프트웨어의 출력 변수를 통해 출력하도록 하는 제어부를 더 포함할 수 있다.In addition, the software combining unit may include setting a paging cycle of the target software, and the apparatus may further include, at each paging cycle, the target software, using input values input through input parameters of the target software, And outputting an output value according to an operation result of the target software through an output variable of the target software.
또한, 상기 장치는, 상기 정해진 이벤트가 상기 대상 구성 요소의 입력 변수를 통해 입력되면, 상기 대상 소프트웨어가, 상기 대상 소프트웨어의 입력 변수를 통해 입력된 입력값을 이용하여, 상기 대상 소프트웨어의 동작 결과에 따른 출력값을 상기 대상 소프트웨어의 출력 변수를 통해 출력하도록 하는 제어부를 더 포함할 수 있다.In addition, when the predetermined event is input through the input parameter of the target component, the target software may use the input value input through the input parameter of the target software, And outputting the output value according to the output variable of the target software.
또한, 상기 소프트웨어 결합부는, 상기 검증 시스템에 포함된, 상기 대상 구성 요소 외의 다른 가상 구성 요소 각각에 대해, 대응되는 소프트웨어를 결합시킬 수 있다.The software combining unit may combine software corresponding to each of the virtual components other than the target component included in the verification system.
또한, 상기 장치는, 상기 대상 소프트웨어의 작동 시에 상기 대상 소프트웨어의 출력 변수가 출력하는 출력값에 기초하여 상기 대상 소프트웨어에 대한 검증 결과를 생성하는 제어부를 더 포함할 수 있다.The apparatus may further include a control unit for generating a verification result for the target software based on an output value output by the output variable of the target software when the target software is operated.
본 발명의 일 실시예에 따르면, 검증 대상이 되는 소프트웨어 코드와, 상기 소프트웨어 코드를 검증하기 위한 가상 시스템을 나타내는 테스트 코드를 완전히 분리함으로써, 종래 기술의 문제점을 해결할 수 있다. 구체적으로, 본 발명의 일 실시예에 의하면, 검증 대상 소프트웨어가 적용될 실제 시스템의 구성 요소 및 인터페이스와 각각 일대일 매칭되는 가상 구성 요소 및 가상 인터페이스를 갖는 검증 시스템을 구축하고, 상기 검증 시스템에 검증 대상 소프트웨어를 결합하여 구동시킬 수 있다. According to an embodiment of the present invention, the problem of the prior art can be solved by completely separating the software code to be verified and the test code representing the virtual system for verifying the software code. Specifically, according to an embodiment of the present invention, a verification system having a virtual component and a virtual interface that are each one-to-one matched with components and interfaces of an actual system to be verified software is constructed, Can be combined and driven.
이에 따라, 검증 대상인 소프트웨어 코드 내부를 수정하는 복잡한 절차가 방지될 수 있으며, 복잡한 구조를 갖는 실제 시스템에 적용될 소프트웨어도 효과적으로 검증할 수 있게 되는 효과를 가질 수 있다.Thus, complicated procedures for modifying the software code to be verified can be prevented, and software to be applied to an actual system having a complicated structure can be effectively verified.
도 1은 본 발명의 일 실시예에 따른 소프트웨어 검증 장치의 구성에 대해 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 소프트웨어 검증 방법의 각 단계를 도시한 도면이다.
도 3a 및 3b는 본 발명의 일 실시예에 따른 소프트웨어 검증 방법의 적용 예시에 대해 설명하기 위한 도면이다.1 is a diagram for explaining a configuration of a software verifying apparatus according to an embodiment of the present invention.
FIG. 2 is a diagram illustrating steps of a software verification method according to an exemplary embodiment of the present invention. Referring to FIG.
3A and 3B are diagrams for explaining application examples of a software verification method according to an embodiment of the present invention.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.BRIEF DESCRIPTION OF THE DRAWINGS The advantages and features of the present invention and the manner of achieving them will become apparent with reference to the embodiments described in detail below with reference to the accompanying drawings. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. To fully disclose the scope of the invention to those skilled in the art, and the invention is only defined by the scope of the claims.
본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.In the following description of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear. The following terms are defined in consideration of the functions in the embodiments of the present invention, which may vary depending on the intention of the user, the intention or the custom of the operator. Therefore, the definition should be based on the contents throughout this specification.
한편, 본 발명의 일 실시예에서 제시하는 방법은 적어도 일부의 소프트웨어와 하드웨어의 하이브리드 구현 방식으로, 프로세서 및 프로세서에 의해 실행되는 명령어들을 저장하는 메모리를 포함하는 전자 디바이스 또는 컴퓨터 프로그램에 의해 선택적으로 활성화 또는 재구성되는 프로그래밍 가능한 머신(machine)상에서 구현될 수 있다. On the other hand, a method proposed in an embodiment of the present invention is a hybrid implementation of at least some software and hardware, selectively activated by an electronic device or a computer program comprising a processor and a memory storing instructions executed by the processor Or reconfigured on a programmable machine.
또한, 본 발명의 일 실시예에서 제시하는 특징들 및/또는 기능성들 중 적어도 일부는 최종 사용자 컴퓨터 시스템, 컴퓨터, 네트워크 서버 또는 서버 시스템, 모바일 컴퓨팅 디바이스(예를 들어, PDA(personal digitalassistant), 모바일 전화기, 스마트폰, 랩탑, 태블릿 컴퓨터 또는 그와 유사한 것), 소비자 전자 디바이스, 또는 임의의 다른 적합한 전자 디바이스 또는 그들의 임의의 조합과 같은 하나 이상의 범용 네트워크 호스트 머신에서 등에서 구현될 수 있다.Also, at least some of the features and / or functionality presented in an embodiment of the present invention may be implemented in an end user computer system, a computer, a network server or server system, a mobile computing device (e.g., a personal digital assistant (PDA) At one or more general purpose network host machines, such as a cellular telephone, a smart phone, a laptop, a tablet computer, or the like), a consumer electronic device, or any other suitable electronic device or any combination thereof.
또한, 적어도 일부 실시예들에서, 여기에 개시된 개념 계층 구조를 생성하는 방법의 실시예의 특징들 및/또는 기능성들의 적어도 일부는 하나 이상의 가상화된 컴퓨팅 환경(예를 들어 네트워크 컴퓨팅 클라우드 또는 그와 유사한 것)에서 구현될 수 있다.Also, in at least some embodiments, at least some of the features and / or functionality of an embodiment of a method for generating a concept hierarchy disclosed herein may be implemented in one or more virtualized computing environments (e.g., a network computing cloud or the like ). ≪ / RTI >
도 1은 본 발명의 일 실시예에 따른 소프트웨어 검증 장치의 구성에 대해 설명하기 위한 도면이다. 도 1의 소프트웨어 검증 장치(100)는 시스템 분석부(110), 검증 시스템 생성부(120), 소프트웨어 결합부(130) 및 제어부(140)를 포함할 수 있다. 다만 도 1의 소프트웨어 검증 장치(100)의 구성 요소는 본 발명의 일 실시예에 불과하므로, 도 1에 의해 본 발명의 기술적 사상이 한정 해석되는 것은 아니다. 1 is a diagram for explaining a configuration of a software verifying apparatus according to an embodiment of the present invention. The
이하에서 설명할 소프트웨어 검증 장치(100)의 각 구성 요소들은 마이크로프로세서(microprocessor)와 같은 연산 장치를 포함하여 구현될 수 있으며, 경우에 따라서는 데이터의 송신 및 수신을 위한 유/무선 통신 모듈 혹은 입/출력 버스 등을 더 포함할 수 있다. 또한, 아래에서는 소프트웨어 검증 장치(100)의 각 구성 요소의 동작을 개략적으로 설명할 것이며, 동작의 구체적인 사항에 대해서는 이후에 보다 자세히 설명하도록 한다.Each component of the
시스템 분석부(110)는 검증의 대상이 되는 대상 소프트웨어가 적용될 실제 시스템에 대한 분석을 수행할 수 있다. 이와 같은 실제 시스템은, 이하에서 설명될 자동차 자율주행 시스템이나, 다양한 모바일 시스템, 로봇 시스템 등이 될 수 있다. 구체적으로, 시스템 분석부(110)는 상기 실제 시스템의 구성 요소와, 상기 구성 요소 간의 연결 인터페이스에 대해 분석할 수 있다.The
검증 시스템 생성부(120)는 검증 시스템에 대한 시스템 분석부(110)의 상기 분석 결과에 기초하여, 검증 대상 소프트웨어를 테스트하기 위한 검증 시스템의 구축을 수행할 수 있다. 구체적으로, 검증 시스템 생성부(120)는 실제 시스템의 각 구성 요소와 일대일 대응되는 각 가상 구성 요소와, 실제 시스템의 각 인터페이스와 일대일 대응되는 각 가상 인터페이스를 포함하도록 검증 시스템을 구축할 수 있다. 즉, 이와 같은 검증 시스템은 상기 실제 시스템의 구조를 모사한 가상 시스템이라고 할 수 있다.The verification
소프트웨어 결합부(130)는 검증 대상 소프트웨어를, 검증 시스템의 대상 구성 요소에 결합시킬 수 있다. 이와 같이 대상 소프트웨어가 결합될 대상 구성 요소는, 실제 시스템의 구성 요소 중 상기 대상 소프트웨어가 동작시킬 구성 요소로 설정된 구성 요소에 대응되는 검증 시스템의 가상 구성 요소일 수 있다. 이와 함께, 소프트웨어 결합부(130)는 경우에 따라서는 검증 대상 소프트웨어가 동작시킬 구성 요소 외의 다른 구성 요소에 대응되는 가상 구성 요소에 대해서도 필요한 소프트웨어를 결합시킬 수 있다.The
제어부(140)는 검증 대상 소프트웨어를 동작시킴으로써, 검증 대상 소프트웨어에 대한 검증 결과를 도출할 수 있다. 이와 같은 검증 대상 소프트웨어의 동작 시에는, 상기 대상 소프트웨어만을 동작시키는 것도 가능하겠지만, 대상 소프트웨어 외에도 상기 검증 시스템의 각 가상 구성 요소에 결합된 다른 소프트웨어를 함께 동작시킴으로써, 전체 검증 시스템에 대한 동작을 수행하는 것 역시 가능할 것이다.The
도 2는 본 발명의 일 실시예에 따른 소프트웨어 검증 방법의 각 단계를 도시한 도면이다. 도 2의 방법은 도 1을 참조하여 설명한 소프트웨어 검증 장치(100)에 의해 수행될 수 있으며, 도 1과 겹치는 부분에 대해서는 설명이 생략될 수 있다. 단, 도 2에 도시된 방법은 본 발명의 일 실시예에 불과하므로 도 2에 의해 본 발명의 사상이 한정 해석되는 것은 아니며, 도 2에 도시된 방법의 각 단계는 경우에 따라 도면에 제시된 바와 그 순서를 달리하여 수행될 수도 있음은 물론이다.FIG. 2 is a diagram illustrating steps of a software verification method according to an exemplary embodiment of the present invention. Referring to FIG. The method of FIG. 2 can be performed by the
우선, 시스템 분석부(110)가 검증의 대상이 되는 대상 소프트웨어가 적용될 실제 시스템의 구성 요소와, 상기 구성 요소 간의 연결 인터페이스에 대해 분석을 수행할 수 있다(S110). 다음으로, 시스템 분석부(110)에 의해 수행된 전술한 분석 결과에 기초하여, 검증 시스템 생성부(120)가 가상 구성 요소 및 가상 인터페이스를 포함하는 검증 시스템을 구축할 수 있다(S120). First, the
상기 단계 S110 및 S120의 수행에 의해, 검증 시스템은 실제 시스템의 실제 구성 요소와 일대일로 대응되는 가상 구성 요소를 갖게 된다. 상기 가상 요소를 상호 연결하는 가상 인터페이스 역시 상기 실제 시스템의 실제 인터페이스와 일대일로 대응되어, 실제 시스템과 동일한 연결 관계를 가상의 검증 시스템에게 제공할 수 있다. 이에 따라, 검증 시스템은 실제 시스템과 동일한 계층적 구조 및 구조 간의 연결 관계를 가질 수 있다.By performing the above steps S110 and S120, the verification system has virtual components corresponding one-to-one with actual components of the actual system. The virtual interface interconnecting the virtual elements is also associated with the actual interface of the real system on a one-to-one basis, so that the same connection relationship as the actual system can be provided to the virtual verification system. Accordingly, the verification system can have the same hierarchical structure and connection relationship as the actual system.
소프트웨어 결합부(130)는 검증 시스템의 가상 구성 요소 중, 대상 소프트웨어가 동작시킬 구성 요소로 설정된 대상 구성 요소에, 대상 소프트웨어를 결합시킬 수 있다(S130). 이에 의하면, 상기 대상 구성 요소는 대상 소프트웨어의 코드를 직접적으로 감싸는 구조를 취할 수 있다. The
본 발명의 일 실시예에 따르면, 대상 구성 요소가 대상 소프트웨어의 코드를 감싸는 구조를 갖게 되므로, 소프트웨어 결합부(130)는 대상 구성 요소의 입력 변수에 대상 소프트웨어의 코드의 입력 변수를, 대상 구성 요소의 출력 변수에 대상 소프트웨어의 코드의 출력 변수를 각각 연결하는 동작을 수행할 수 있다. According to the embodiment of the present invention, since the target component has a structure for wrapping the code of the target software, the
이에 따르면, 대상 소프트웨어 코드 내부에 대한 수정을 수행해야 할 필요가 없어지며, 단지 변수를 연결하기만 해도 대상 소프트웨어 코드의 테스트를 위한 환경을 마련할 수 있다. 다만, 경우에 따라서는 대상 소프트웨어 코드의 입력 변수 혹은 출력 변수를 추가해야 할 필요가 있을 수는 있다. 하지만 이와 같은 변수의 추가 역시 단지 대상 구성 요소의 변수와의 연결을 위한 것으로서, 대상 소프트웨어 코드의 내부 구조에 대한 수정이나 변경을 가할 필요가 없다는 점에 있어서는 변함이 없다.According to this, there is no need to perform modifications to the target software code, and an environment for testing the target software code can be provided by simply connecting the variables. However, in some cases it may be necessary to add input or output variables to the target software code. However, the addition of these variables is only for linking with the variables of the target component, and there is no need to modify or modify the internal structure of the target software code.
소프트웨어 결합부(130)는 전술한 바와 같은 결합 동작을 수행하고 나면, 먼저 대상 소프트웨어의 초기화를 수행할 수 있다. 다음으로, 대상 소프트웨어의 실행 주기를 설정할 수 있다. 이는 대상 소프트웨어가 어떠한 시간 간격으로 실행되는가를 설정하기 위한 것이다. 이에 따르면, 대상 소프트웨어는 입력 변수의 값을 입력받고, 상기 입력받은 입력 변수의 값에 기초하여 대상 소프트웨어의 코드를 동작시킬 수 있으며, 상기 동작의 결과에 따른 결과, 즉 출력 변수의 값을 출력하는 일련의 동작을, 상기 실행 주기가 경과할 때마다 수행할 수 있다.After the
이와 같은 실행 주기는, 실제 시스템의 요구에 따라 대상 소프트웨어가 실행하는 기능에 적합하도록 설정될 수 있다. 예컨대, 대상 소프트웨어가 결합될 대상 구성 요소에 대응되는 실제 시스템의 구성 요소가, 실제 시스템 내에서 센서의 계측값을 읽어들여, 상기 계측값을 정해진 형식에 따라 출력하는 동작을 0.1초에 한 번 수행하도록 설정되어 있다면, 대상 소프트웨어의 실행 주기 역시 0.1초로 결정될 수 있다.Such an execution cycle may be set to suit the function executed by the target software in accordance with the requirements of the actual system. For example, a component of an actual system corresponding to a target component to which the target software is coupled reads an instrument measurement value in an actual system, and outputs the measurement value according to a predetermined format once every 0.1 second The execution cycle of the target software can also be determined to be 0.1 second.
전술한 바와 같은 주기적 동작을 비롯한 다양한 동작의 설정을 위해, 소프트웨어 결합부(130)와 후술할 제어부(140)는 다양한 API(application programming interface)를 이용할 수 있다. 예컨대, 소프트웨어 결합부(130)는 SetTimer 라는 함수를 이용할 수 있는데, 소프트웨어 결합부(130)의 대상 소프트웨어의 호출 주기(동작 주기)의 설정은 바로 SetTimer를 이용하여 수행될 수 있다. 그 외에도, 후술할 OnTimer 함수가 이용될 수 있으며, 대상 소프트웨어 코드의 초기화 및 입력 변수, 출력 변수의 설정 등도 API를 이용하여 수행될 수 있다.The
전술한 바와 같은 소프트웨어 결합부(130)의 동작이 완료되면, 제어부(140)는 검증 대상 소프트웨어를 동작시킴으로써, 검증 대상 소프트웨어에 대한 검증 결과를 도출할 수 있다(S140). 보다 구체적으로, 제어부(140)는 검증 대상 소프트웨어를 동기적으로, 혹은 비동기적으로 호출함으로써 검증 대상 소프트웨어를 동작시키고, 상기 동작에 따른 검증 결과를 생성할 수 있다.When the operation of the
제어부(140)는 검증 대상 소프트웨어의 호출을 위해, 앞서 설명한 OnTimer 함수를 이용할 수 있다. 제어부(140)는 위에서 설명한 바와 같이 설정된 호출 주기와 같은 값으로, SetTimer 함수를 이용하여 타이머(Timer)를 구동할 수 있다. 타이머의 값이 만료될 때마다, 제어부(140)는 OnTimer 함수를 호출하여, 검증 대상 소프트웨어를 구동시킬 수 있다. 제어부(140)는 OnTimer 함수를 다시 호출하여 소프트웨어를 구동시키기 위해 SetTimer 함수를 다시 호출하여 타이머를 재가동시킬 수 있으며, 타이머의 계속적 재가동에 의해 상기 호출 주기마다 대상 소프트웨어가 구동될 수 있다. 제어부(140)는 이와 같이 호출 주기마다 대상 소프트웨어를 호출하여 동작시키는, 대상 소프트웨어의 동기적 호출을 수행할 수 있다.The
이와 달리, 제어부(140)는 대상 소프트웨어 외부로부터의, 혹은 대상 구성 요소 외부로부터의 트리거(trigger) 조건 만족에 의해, 대상 소프트웨어를 비동기적으로 호출할 수도 있다. 즉, 이러한 비동기적 호출은 상기 호출 주기와는 무관한 것으로서, 제어부(140)는 기 정해진 특정 이벤트가 발생했을 때 대상 소프트웨어를 호출하여 동작시킬 수 있다. 예컨대, 대상 구성 요소의 입력 변수 중 특정 입력 변수의 값에 변동이 발생할 경우, 제어부(140)는 대상 소프트웨어를 호출하여 동작시킬 수 있다.Alternatively, the
대상 소프트웨어를 동작시키는 데 있어서, 제어부(140)는 기 정해진 API를 이용하여, 대상 구성 요소의 입력 변수를 통해 입력된 입력값을, 대상 소프트웨어의 입력 변수가 처리할 수 있는 형태로 변환하여 대상 소프트웨어로 입력할 수 있다. 대상 소프트웨어의 동작에 의해 대상 소프트웨어의 출력 변수가 값을 출력하면, 제어부(140)는 또 다른 API를 이용하여, 상기 출력된 값 역시 대상 구성 요소의 출력 변수가 처리할 수 있는 형태로 변환하여 대상 구성 요소의 출력값을 통해 출력되도록 할 수 있다.In operation of the target software, the
제어부(140)는 대상 소프트웨어의 동작이 이루어질 때마다, 상기 대상 소프트웨어의 출력 변수의 값(혹은 대상 구성 요소의 출력 변수의 값)을 관찰함으로써, 대상 소프트웨어가 정상적으로 동작하고 있는지를 알 수 있다. 즉, 제어부(140)는 이와 같은 동작을 통해 대상 소프트웨어의 검증을 수행하고, 혹시 대상 소프트웨어가 정상적으로 동작하지 않는다면, 출력 변수의 값을 관찰함으로써 대상 소프트웨어에 어떠한 오류가 있는지를 규명할 수 있다.The
지금까지 설명한 바와 같은 원리를 이용하여, 소프트웨어 검증 장치(100)는 검증 시스템에 포함된 각 가상 구성 요소에 포함된 소프트웨어를 동작시키는 방식으로 검증 시스템 전체에 대한 동작을 수행할 수 있다. 즉, 소프트웨어 검증 장치(100)는 실제 시스템을 모사한 가상의 검증 시스템을 동작시켜, 상기 검증 시스템에 포함된 각 가상 구성 요소에 포함된 소프트웨어들에 대한 테스트를 개별적으로, 혹은 통합적으로 테스트하는 것이 가능하다.Using the principles described so far, the
도 3a 및 3b는 본 발명의 일 실시예에 따른 소프트웨어 검증 방법의 적용 예시에 대해 설명하기 위한 도면이다. 도 3a 및 3b의 예시는 최근 관심의 대상이 되고 있는 자율주행 시스템에 대하여 본 발명의 일 실시예를 적용한 것이다.3A and 3B are diagrams for explaining application examples of a software verification method according to an embodiment of the present invention. The examples of FIGS. 3A and 3B apply an embodiment of the present invention to an autonomous travel system, which has recently become an object of interest.
도 3a은 실제 시스템으로서 자율주행 시스템(200)을 도시하고 있다. 자율주행 시스템(200)은 센서(210)와, 상기 센서에 의해 운행되는 자동차 부분인 플랫폼(220)을 포함할 수 있으며, 센서(210)에 의해 획득된 센싱 정보(211)를 처리하여 플랫폼(220)의 구동을 위한 신호를 출력하는 센서 제어부(미도시)를 더 포함할 수 있다. 이와 같은 자율주행 시스템(200)에 대한 구체적인 사항은 본 발명에서 직접적으로 다루고 있는 부분은 아니므로, 여기에서는 더 이상의 자세한 설명은 생략한다.FIG. 3A shows an
도 3b은 상기 자율주행 시스템(200)을 모사한 가상 시스템으로서, 자율주행 시스템(200)에 적용될 수 있는 소프트웨어를 검증하기 위한 자율주행 소프트웨어 검증 시스템(300)을 도시하고 있다. 자율주행 소프트웨어 검증 시스템(300)은, 자율주행 시스템(200)의 센서(210)와 플랫폼(220)에 각각 대응되는 가상 구성 요소인 센서부(310)와 플랫폼부(320)를 포함할 수 있다. 이에 더하여, 자율주행 소프트웨어 검증 시스템(300)은 자율주행 시스템(200)의 센서 제어부에 대응되는 가상 구성 요소로서 센서 통제 기능부(330), 센서 구동 통제부(340) 및 센서 표적 처리부(350)를 더 포함할 수 있다. 도 3b에서는 자율주행 소프트웨어 검증 시스템(300) 중에서도, 센서부(310)에 의해 획득된 센싱 값을 처리하여 플랫폼부(320)의 구동을 위한 신호를 출력하는 부분에 대해 자세히 설명하도록 한다.3B shows an autonomous driving
센서 통제 기능부(330)는 플랫폼부(320)로부터 플랫폼 기동 정보와 센서 구동 명령을, 센서부(310)로부터 탐지 신호를 각각 수신할 수 있다. 센서 통제 기능부(330)는 플랫폼 기동 정보와 센서 구동 명령을 센서 구동 통제부(340)로, 탐지 신호를 센서 표적 처리부(350)로 각각 전달할 수 있다.The sensor
센서 구동 통제부(340)는 플랫폼 기동 정보와 센서 구동 명령을 입력 변수로 가질 수 있으며, 상태 정보를 출력 변수로 가질 수 있다. 센서 표적 처리부(350)는 탐지 신호를 입력 변수로 가질 수 있으며, 표적 정보를 출력 변수로 가질 수 있다. 상태 정보는 센서가 지향하는 방향 등 센서의 상태에 관한 정보이며, 표적 정보는 센서가 탐지한 표적의 방향 및 거리에 관한 정보이다. The sensor
이와 같은 가상 구성 요소의 기능 수행을 위해, 센서 구동 통제부(340)와 센서 표적 처리부(350)의 내부에는 대상 소프트웨어(341, 351)가 각각 결합될 수 있다. 대상 소프트웨어의 입력 변수는 가상 구성 요소의 입력 변수와, 대상 소프트웨어의 출력 변수는 가상 구성 요소의 출력 변수와 각각 연결될 수 있다. 내부의 대상 소프트웨어를 구동시킴으로써, 센서 구동 통제부(340)와는 상태 정보를, 센서 표적 처리부(350)는 표적 정보를 각각 출력하여 센서 통제 기능부(330)로 전달할 수 있다. 센서 통제 기능부(330)는 전달받은 상태 정보와 표적 정보를 센서 통제 기능부(330)로 출력할 수 있다. 물론 센서 구동 통제부(340)와 센서 표적 처리부(350)에 비해 상위의 가상 구성 요소인 센서 통제 기능부(330) 역시 소프트웨어(331)가 내부에 결합될 수 있다.In order to perform the function of the virtual component, the
센서 구동 통제부(340)와 센서 표적 처리부(350)의 내부에 결합된 대상 소프트웨어(341, 351)는 일정 호출 주기에 따라, 혹은 특정 이벤트의 발생에 따라 호출되어 작동될 수 있다. 상기 대상 소프트웨어(341, 351)에 의해 각각 출력되는 상태 정보와 표적 정보의 값을 관찰하면 대상 소프트웨어(341, 351)의 정상 작동 여부를 검증할 수 있을 것이며, 더 나아가 자율주행 소프트웨어 검증 시스템(300) 전체에 대한 테스트를 통해 자율주행 시스템(200) 자체를 검증할 수 있을 것이다.The
이처럼 지금까지 설명한 본 발명의 일 실시예에 따르면, 검증 대상인 소프트웨어 코드 내부를 수정하는 복잡한 절차가 방지될 수 있으며, 복잡한 구조를 갖는 실제 시스템에 적용될 소프트웨어도 효과적으로 검증할 수 있게 된다.As described above, according to the embodiment of the present invention described above, complicated procedures for modifying the software code to be verified can be prevented, and software to be applied to an actual system having a complicated structure can be effectively verified.
본 발명에 첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.Combinations of each step of the flowchart and each block of the block diagrams appended to the present invention may be performed by computer program instructions. These computer program instructions may be loaded into a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus so that the instructions, which may be executed by a processor of a computer or other programmable data processing apparatus, And means for performing the functions described in each step are created. These computer program instructions may also be stored in a computer usable or computer readable memory capable of directing a computer or other programmable data processing apparatus to implement the functionality in a particular manner so that the computer usable or computer readable memory It is also possible for the instructions stored in the block diagram to produce a manufacturing item containing instruction means for performing the functions described in each block or flowchart of the block diagram. Computer program instructions may also be stored on a computer or other programmable data processing equipment so that a series of operating steps may be performed on a computer or other programmable data processing equipment to create a computer- It is also possible that the instructions that perform the processing equipment provide the steps for executing the functions described in each block of the block diagram and at each step of the flowchart.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.Also, each block or each step may represent a module, segment, or portion of code that includes one or more executable instructions for executing the specified logical function (s). It should also be noted that in some alternative embodiments, the functions mentioned in the blocks or steps may occur out of order. For example, two blocks or steps shown in succession may in fact be performed substantially concurrently, or the blocks or steps may sometimes be performed in reverse order according to the corresponding function.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The foregoing description is merely illustrative of the technical idea of the present invention, and various changes and modifications may be made by those skilled in the art without departing from the essential characteristics of the present invention. Therefore, the embodiments disclosed in the present invention are intended to illustrate rather than limit the scope of the present invention, and the scope of the technical idea of the present invention is not limited by these embodiments. The scope of protection of the present invention should be construed according to the following claims, and all technical ideas within the scope of equivalents should be construed as falling within the scope of the present invention.
100: 소프트웨어 검증 장치
110: 시스템 분석부
120: 검증 시스템 생성부
130: 소프트웨어 결합부
140: 제어부
200: 자율주행 시스템
300: 자율수행 소프트웨어 검증 시스템100: Software verification device
110: System Analysis Department
120: verification system generation unit
130: software combining section
140:
200: Autonomous driving system
300: autonomous software verification system
Claims (16)
상기 분석 결과에 기초하여, 상기 실제 시스템의 각 구성 요소와 일대일 대응되는 각 가상 구성 요소와, 상기 실제 시스템의 각 인터페이스와 일대일 대응되는 각 가상 인터페이스를 포함하는 검증 시스템을 구축하는 단계; 및
상기 각 가상 구성 요소 중, 상기 대상 소프트웨어가 동작시킬 구성 요소로 설정된 대상 구성 요소에, 상기 대상 소프트웨어를 결합하는 단계를 포함하는
소프트웨어 검증 방법.Analyzing a component of an actual system to which a target software to be verified is applied and a connection interface between the components;
Constructing a verification system based on the analysis result, the verification system including virtual components each having a one-to-one correspondence with each component of the real system and each virtual interface corresponding one-to-one with each interface of the real system; And
And combining the target software with a target component configured as a component to be operated by the target software among the virtual components,
Software verification method.
상기 구축하는 단계는, 상기 각 가상 구성 요소가 상기 가상 인터페이스를 통해 입력받는 입력 데이터와, 상기 가상 인터페이스를 통해 출력하는 출력 데이터의 종류를 정의하는 단계를 포함하는
소프트웨어 검증 방법.The method according to claim 1,
Wherein the constructing step includes the steps of defining input data received by the virtual component through the virtual interface and output data output through the virtual interface
Software verification method.
상기 결합하는 단계는, 상기 대상 구성 요소의 입력 변수에 상기 대상 소프트웨어의 코드의 입력 변수를 연결하고, 상기 대상 구성 요소의 출력 변수에 상기 대상 소프트웨어의 코드의 출력 변수를 연결하는 단계를 포함하는
소프트웨어 검증 방법.The method according to claim 1,
Wherein the combining comprises concatenating an input variable of a code of the target software to an input variable of the target component and concatenating an output variable of the code of the target software to an output variable of the target component
Software verification method.
상기 결합하는 단계는, 상기 대상 소프트웨어의 호출 주기를 설정하는 단계를 포함하며,
상기 방법은, 상기 호출 주기마다 상기 대상 소프트웨어가, 상기 대상 소프트웨어의 입력 변수를 통해 입력된 입력값을 이용하여, 상기 대상 소프트웨어의 동작 결과에 따른 출력값을 상기 대상 소프트웨어의 출력 변수를 통해 출력하도록 하는 단계를 더 포함하는
소프트웨어 검증 방법.The method according to claim 1,
Wherein the combining step comprises setting a paging cycle of the target software,
The method includes causing the target software to output an output value according to an operation result of the target software through an output variable of the target software using an input value input through an input variable of the target software Further comprising
Software verification method.
기 정해진 이벤트가 상기 대상 구성 요소의 입력 변수를 통해 입력되면, 상기 대상 소프트웨어가, 상기 대상 소프트웨어의 입력 변수를 통해 입력된 입력값을 이용하여, 상기 대상 소프트웨어의 동작 결과에 따른 출력값을 상기 대상 소프트웨어의 출력 변수를 통해 출력하도록 하는 단계를 더 포함하는
소프트웨어 검증 방법.The method according to claim 1,
When the predetermined event is input through the input variable of the target component, the target software uses an input value inputted through the input variable of the target software to output an output value according to the operation result of the target software to the target software To output through an output variable of < RTI ID = 0.0 >
Software verification method.
상기 결합하는 단계는, 상기 검증 시스템에 포함된, 상기 대상 구성 요소 외의 다른 가상 구성 요소 각각에 대해, 대응되는 소프트웨어를 결합시키는 단계를 포함하는
소프트웨어 검증 방법.The method according to claim 1,
Wherein the combining comprises combining corresponding software for each of the virtual components other than the target component included in the verification system
Software verification method.
상기 대상 소프트웨어의 작동 시에 상기 대상 소프트웨어의 출력 변수가 출력하는 출력값에 기초하여 상기 대상 소프트웨어에 대한 검증 결과를 생성하는 단계를 더 포함하는
소프트웨어 검증 방법.The method according to claim 1,
And generating a verification result for the target software based on an output value output by the output variable of the target software in operation of the target software
Software verification method.
상기 분석 결과에 기초하여, 상기 실제 시스템의 각 구성 요소와 일대일 대응되는 각 가상 구성 요소와, 상기 실제 시스템의 각 인터페이스와 일대일 대응되는 각 가상 인터페이스를 포함하는 검증 시스템을 구축하는 검증 시스템 생성부; 및
상기 각 가상 구성 요소 중, 상기 대상 소프트웨어가 동작시킬 구성 요소로 설정된 대상 구성 요소에, 상기 대상 소프트웨어를 결합하는 소프트웨어 결합부를 포함하는
소프트웨어 검증 장치.A system analyzer for analyzing a component of an actual system to which a target software to be verified is applied and a connection interface between the components;
A verification system generation unit for constructing a verification system based on the analysis result, the verification system including virtual components corresponding one-to-one to each component of the real system and virtual interfaces corresponding one-to-one with the respective interfaces of the real system; And
And a software coupling unit for coupling the target software to a target component that is set as a component to be operated by the target software among the virtual components
Software verification device.
상기 검증 시스템 생성부는, 상기 각 가상 구성 요소가 상기 가상 인터페이스를 통해 입력받는 입력 데이터와, 상기 가상 인터페이스를 통해 출력하는 출력 데이터의 종류를 정의하는
소프트웨어 검증 장치.9. The method of claim 8,
Wherein the verification system generation unit defines a type of output data that each virtual component inputs through the virtual interface and output data through the virtual interface
Software verification device.
상기 소프트웨어 결합부는, 상기 대상 구성 요소의 입력 변수에 상기 대상 소프트웨어의 코드의 입력 변수를 연결하고, 상기 대상 구성 요소의 출력 변수에 상기 대상 소프트웨어의 코드의 출력 변수를 연결하는
소프트웨어 검증 장치.9. The method of claim 8,
Wherein the software combining unit connects the input variable of the code of the target software to the input variable of the target component and connects the output variable of the code of the target software to the output variable of the target component
Software verification device.
상기 소프트웨어 결합부는, 상기 대상 소프트웨어의 호출 주기를 설정하는 단계를 포함하며,
상기 장치는, 상기 호출 주기마다 상기 대상 소프트웨어가, 상기 대상 소프트웨어의 입력 변수를 통해 입력된 입력값을 이용하여, 상기 대상 소프트웨어의 동작 결과에 따른 출력값을 상기 대상 소프트웨어의 출력 변수를 통해 출력하도록 하는 제어부를 더 포함하는
소프트웨어 검증 장치.9. The method of claim 8,
Wherein the software combining unit includes setting a paging cycle of the target software,
The apparatus may cause the target software to output the output value according to the operation result of the target software through the output variable of the target software using the input value input through the input variable of the target software at each paging cycle Further,
Software verification device.
상기 정해진 이벤트가 상기 대상 구성 요소의 입력 변수를 통해 입력되면, 상기 대상 소프트웨어가, 상기 대상 소프트웨어의 입력 변수를 통해 입력된 입력값을 이용하여, 상기 대상 소프트웨어의 동작 결과에 따른 출력값을 상기 대상 소프트웨어의 출력 변수를 통해 출력하도록 하는 제어부를 더 포함하는
소프트웨어 검증 장치.9. The method of claim 8,
Wherein when the predetermined event is input through an input variable of the target component, the target software uses an input value input through an input variable of the target software to output an output value according to an operation result of the target software, And outputting the result through an output variable of < RTI ID = 0.0 >
Software verification device.
상기 소프트웨어 결합부는, 상기 검증 시스템에 포함된, 상기 대상 구성 요소 외의 다른 가상 구성 요소 각각에 대해, 대응되는 소프트웨어를 결합시키는
소프트웨어 검증 장치.9. The method of claim 8,
Wherein the software combining unit combines, for each of the virtual components other than the target component included in the verification system, corresponding software
Software verification device.
상기 대상 소프트웨어의 작동 시에 상기 대상 소프트웨어의 출력 변수가 출력하는 출력값에 기초하여 상기 대상 소프트웨어에 대한 검증 결과를 생성하는 제어부를 더 포함하는
소프트웨어 검증 장치.9. The method of claim 8,
And a control unit for generating a verification result for the target software on the basis of an output value output by the output variable of the target software in operation of the target software
Software verification device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180001251A KR102128004B1 (en) | 2018-01-04 | 2018-01-04 | Apparatus and method for software validation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180001251A KR102128004B1 (en) | 2018-01-04 | 2018-01-04 | Apparatus and method for software validation |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190083512A true KR20190083512A (en) | 2019-07-12 |
KR102128004B1 KR102128004B1 (en) | 2020-06-29 |
Family
ID=67254152
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180001251A KR102128004B1 (en) | 2018-01-04 | 2018-01-04 | Apparatus and method for software validation |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102128004B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112486879A (en) * | 2020-12-07 | 2021-03-12 | 博流智能科技(南京)有限公司 | UVM virtual interface transmission method and system |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090065144A (en) | 2007-12-17 | 2009-06-22 | 한국전자통신연구원 | System and method for testing graphic user interface of mobile application software |
KR20090088605A (en) * | 2008-02-15 | 2009-08-20 | 삼성전자주식회사 | Method and apparatus for generating virtual software platform based on component model and validating software platform architecture using thereof |
KR20100026604A (en) * | 2008-09-01 | 2010-03-10 | 주식회사 케이티 | Platform developing appratus for mobile communication device |
US20100146487A1 (en) * | 2008-12-05 | 2010-06-10 | Electronics And Telecommunications Research Institute | Apparatus and method for application testing of embedded system |
KR101039874B1 (en) * | 2011-04-04 | 2011-06-09 | (주)한국전산감리원 | System for integration platform of information communication |
-
2018
- 2018-01-04 KR KR1020180001251A patent/KR102128004B1/en active IP Right Grant
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090065144A (en) | 2007-12-17 | 2009-06-22 | 한국전자통신연구원 | System and method for testing graphic user interface of mobile application software |
KR20090088605A (en) * | 2008-02-15 | 2009-08-20 | 삼성전자주식회사 | Method and apparatus for generating virtual software platform based on component model and validating software platform architecture using thereof |
KR20100026604A (en) * | 2008-09-01 | 2010-03-10 | 주식회사 케이티 | Platform developing appratus for mobile communication device |
US20100146487A1 (en) * | 2008-12-05 | 2010-06-10 | Electronics And Telecommunications Research Institute | Apparatus and method for application testing of embedded system |
KR101039874B1 (en) * | 2011-04-04 | 2011-06-09 | (주)한국전산감리원 | System for integration platform of information communication |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112486879A (en) * | 2020-12-07 | 2021-03-12 | 博流智能科技(南京)有限公司 | UVM virtual interface transmission method and system |
CN112486879B (en) * | 2020-12-07 | 2024-04-12 | 博流智能科技(南京)有限公司 | UVM virtual interface transmission method and system |
Also Published As
Publication number | Publication date |
---|---|
KR102128004B1 (en) | 2020-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9946628B2 (en) | Embedding and executing trace functions in code to gather trace data | |
CN109739770B (en) | Debugging method and device for small program | |
KR102537875B1 (en) | Method and apparatus for dinamically injecting fault for vehicle ecu software test | |
CN109739656A (en) | Interface data analogy method, device, storage medium and electronic equipment | |
CN106872879B (en) | Hardware wireless debugging method and device, communication chip and electronic equipment | |
CN111338943A (en) | Test method, test device, electronic equipment and readable storage medium | |
CN111178512A (en) | Device operation neural network test method and device | |
CN108021791B (en) | Data protection method and device | |
CN111158465A (en) | Force touch vibration feedback method and system | |
CN109558313B (en) | Method and device for constructing abnormal test scene | |
CN111400716A (en) | Security mechanism verification method based on operating system | |
KR20140078344A (en) | Method for determining efficiency software of osek os | |
KR20230036179A (en) | Construction management method for railway infrastructure using bim and ar | |
KR20190083512A (en) | Apparatus and method for software validation | |
KR20070058957A (en) | Apparatus and method for debugging sensor network using simulation | |
CN112559335A (en) | Test method, device, equipment and storage medium | |
CN106484604B (en) | Application test control method and device | |
CN105138373A (en) | Vehicle diagnosis device firmware upgrading method and device | |
CN112527571B (en) | CPU instruction set coverage rate calculation method and device | |
CN111897726A (en) | Abnormity positioning method, abnormity positioning device, storage medium and mobile terminal | |
CN112269740A (en) | Automatic testing method and device for automatic driving software | |
KR101913558B1 (en) | Sequence diagram based integrated development apparatus | |
CN116610557B (en) | Action binding information debugging method and device, storage medium and electronic equipment | |
KR101127469B1 (en) | System and method for development of software for network-based robot | |
JP4194959B2 (en) | Simulation analysis system, accelerator device and emulator device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |