KR101601741B1 - 서로 다른 언어로 작성된 프로그램들의 동일성을 검증하는 검증장치 - Google Patents

서로 다른 언어로 작성된 프로그램들의 동일성을 검증하는 검증장치 Download PDF

Info

Publication number
KR101601741B1
KR101601741B1 KR1020150092498A KR20150092498A KR101601741B1 KR 101601741 B1 KR101601741 B1 KR 101601741B1 KR 1020150092498 A KR1020150092498 A KR 1020150092498A KR 20150092498 A KR20150092498 A KR 20150092498A KR 101601741 B1 KR101601741 B1 KR 101601741B1
Authority
KR
South Korea
Prior art keywords
scenario
programs
unit
program
variable
Prior art date
Application number
KR1020150092498A
Other languages
English (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 KR1020150092498A priority Critical patent/KR101601741B1/ko
Application granted granted Critical
Publication of KR101601741B1 publication Critical patent/KR101601741B1/ko

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/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Automation & Control Theory (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Testing And Monitoring For Control Systems (AREA)

Abstract

본 발명은 제1 프로그램 언어로 작성된 제1 프로그램, 그리고 변환기에 의하여 상기 제1 프로그램으로부터 변환되어 제2 프로그램 언어로 작성된 제2 프로그램의 동일성을 검증하는 검증장치에 관한 것으로, 시나리오에 적용될 변수를 사용자로부터 입력받도록 형성되는 입력부; 상기 입력된 변수를 출력하는 출력부; 상기 입력된 변수를 이용하여 상기 제1 및 제2 프로그램을 검증하기 위한 시나리오를 생성하는 시나리오 생성부; 및 상기 시나리오에 따라 상기 제1 및 제2 프로그램을 구동하여 상기 제1 및 제2 프로그램의 결과 값들을 각각 획득하는 실행부를 포함하는 제1 검증도구, 사용자로부터 입력된 정보를 이용하여 상기 제1 및 제2 프로그램과 관련된 안전속성을 정의하는 안전속성 정의부; 및 상기 정의된 안전속성에 근거하여 상기 제1 및 제2 프로그램에 대한 모델 체킹을 수행하는 모델 체킹부를 포함하는 제2 검증도구, 상기 제1 검증도구에서 획득된 시뮬레이션 결과를 비교 분석하여 상기 제1 및 제2 프로그램의 일치성을 검증하고, 상기 제2 검증도구에서 획득된 모델케팅 결과를 비교 분석하여 상기 제1 및 제2 프로그램의 안정성을 검증하는 분석도구 및 상기 분석도구에 제어에 의하여 상기 제1 및 제2 프로그램의 동일성을 안내하는 안내정보를 출력하는 디스플레이부를 포함하는 것을 특징으로 한다.

Description

서로 다른 언어로 작성된 프로그램들의 동일성을 검증하는 검증장치{VERIFICATION APPARATUS FOR VERIFYING THE IDENTITY OF PROGRAMS WRITTEN IN DIFFERENT LANGUAGES}
본 발명은 원자력 발전소의 디지털 계측제어 시스템에 사용되는 프로그램의 검증장치 및 그것의 제어방법에 관한 것이다.
현재 원자력 발전소의 디지털 계측제어 시스템은 제어기기 플랫폼으로써 중앙처리장치(CPU)를 기반으로 하는 PLC(Programmable Logic Contgroller) 하드웨어를 사용하고 있다.
원자력 발전소와 같이 안전이 핵심인 분야에서 제어장치는 임베디드 소프트웨어(embedded software)를 설계하기 위하여 펑션 블록 다이어그램을 사용한다. 특히, PLC(programmable logic controller)용 프로그램을 제작할 시 IEC61131-3 표준 언어 중 펑션 블록 다이어그램을 사용하여 설계를 한다.
하지만 플랫폼의 다양화를 통해 다양성 보호 속성을 만족하고자 또 다른 플랫폼인 FPGA(Field Programmble Gate Array) 논리 소자 기반의 제어기기를 개발하고 있다.
PLC 제어기기는 IEC 표준에서 제안하고 있는 5가지의 모델링 방법의 하나를 사용하여 개발하고 있다, 이 중 기능블럭 다이어그램(Function Block Diagram, FBD)를 이용하여 대부분의 소프트웨어를 모델링하고 있고 이를 씨(C) 언어로 변환한 후 컴파일 과정을 거쳐 바이너리 코드를 생성하여 사용한다.
FPGA 논리 소자 기반의 제어기기는 하드웨어 명세 언어 (HDL, Hardware Description Language) 를 사용한다. FPGA는 타이머 클럭 주기에 따라 동시다발적으로 수행하기 때문에 소프트웨어 모델링이 아닌 하드웨어적인 로직을 설계해야만 하고 이러한 설계를 위해 특화된 하드웨어 명세 언어를 사용하게 된다. 베릴로그 언어는 정형검증도 가능한 언어이므로 다양한 분야에서 활용가능하고 그 사용빈도가 점점 확대되고 있는 명세 언어이다.
그러나 원전 디지털 시스템의 안전 소프트웨어는 대부분의 개발자들이 기능 블록 다이어그램을 이용하여 개발하였고, 하드웨어 명세 언어를 이용하여 코드를 작성한 사례는 흔지 않으며, 개발자들이 하드웨어 명세 언어를 새롭게 익혀서 안전 소프트웨어를 코딩하는 것은 비용과 시간이 많이 드는 단점이 존재한다.
이를 해결하기 위해서 기능블록 다이어그램으로 작성된 소프트웨어 모델을 하드웨어 기술 언어인 Verilog 코드로 변환해 주는 도구가 개발되고 있다. 변환기를 이용할 경우 기능블록 다이어그램에 익숙한 개발자들은 하드웨어 명세 언어를 추가로 습득하지 않아도 되므로 시간과 비용이 절약되는 장점이 존재한다.
그러나 기능블록 다이어그램을 하드웨어 명세언어로 변환할 때 사용하는 변환기가 정확하게 변환을 했는지에 대한 입증이 필요하다. 특히 기능블록 다이어그램으로 명세한 동작과 베릴로그 프로그램으로 변환된 코드의 동작이 안전 속성을 만족하는 지에 대한 수학적인 검증도 요구되고 있다.
또한, 현재 원자력발전소와 같이 안전 필수 시스템의 소프트웨어인 경우, IEC 국제 표준 인증받기 위해서는 개발된 소프트웨어 제품 자체 검증뿐만 아니라 소프트웨어를 개발하기 위해 사용된 개발프로세스 수준의 검증을 통해 인증을 허가해 주고 있다. 따라서, 인증기관은 소프트웨어 개발프로세스 내 사용된 변환기에 대해서도 신뢰할만한 지표를 요구하고 있는 상황이다.
본 발명은 전술한 문제 및 다른 문제를 해결하는 것을 목적으로 한다.
또 다른 목적은, 원전 계측제어 계통의 안전 프로그램을 개발하기 위한 도식화된 소프트웨어 모델이 변환된 코드로 완벽하게 변환되었는 지를 확인할 수 있는 검증장치 및 그것의 제어방법을 제공하는 것이다.
또 다른 목적은, 기존 소프트웨어 모델에 익숙한 개발자들에게 추가적인 역무를 주지 않고, 변환 전후의 동작이 동일한 지를 파악하며, 원전에 특화된 안전 속성을 수학적으로 검증해서 안전 프로그램의 안전성을 입증할 수 있는 검증장치 및 그것의 제어방법을 제공하는 것이다.
또 다른 목적은, 다양성 보호 요건을 만족시킬 수 있는 FPGA 제어기기의 개발이 활발한 가운데 FPGA 제어기기에서 사용가능한 베릴로그 언어에 대한 정확성을 확인할 수 있는 검증장치 및 그것의 제어방법을 제공하는 것이다.
또 다른 목적은, 변환기가 정상동작 하였다는 지표를 제공하여 개발프로세스 기반 인증을 요구하는 국제 표준 인증에 기여할 수 있는 검증장치 및 그것의 제어방법을 제공하는 것이다.
본 발명은 기능블럭 다이어그램이 베릴로그 언어로 정확하게 변환되었는 지 검증하기 위한 두 단계의 검증 프레임워크와 한 개의 분석도구로 구성된다.
1단계는 상호 시뮬레이션을 이용한 프레임워크로 두 프로그램의 동작이 일치하는지 일치성을 검증한다. 동일한 시나리오를 입력하여 결과가 동일한지 확인하여 내부적으로 동작이 동일함을 검증한다.
2단계는 모델 체킹을 이용한 프레임워크로 두 프로그램이 서로 동일한 안전속성을 만족하는지 안전성을 검증한다. 모델 체킹을 통해 두 프로그램이 동일한 안전속성을 만족 한다는 것을 가능한 모든 입력 조합과 내부 상태를 수학적 알고리즘을 바탕으로 전수 검사하여 검증한다.
두 프레임워크는 상호 보완성을 가지고 있다. 상호 시뮬레이션으로 확인할 수 없는 안전속성에 대한 전수 검사를 모델 체킹을 통해 증명하고, 모델 체킹을 통해 검증할 수 없는 내부 동작의 일치성을 상호 시뮬레이션을 통해 검증한다.
기존 기법들이 두 프레임워크 중 하나에 치우쳐 검증을 진행하는 반면 제시하는 발명은 두 단계의 프레임워크를 제시함으로써 보다 높은 신뢰성을 제공한다.
두 단계의의 프레임워크를 통해 나온 결과를 바탕으로 기능블록 다이어그램이 베릴로그 프로그램으로 정확하게 변환되었는지를, 원자력발전소와 같은 안전필수 시스템에 사용하기에 안전한지를 검증한다.
상기와 같은 과제를 실현하기 위한 본 발명의 일 실시 예에 따른 검증장치는, 제1 프로그램 언어로 작성된 제1 프로그램, 그리고 변환기에 의하여 상기 제1 프로그램으로부터 변환되어 제2 프로그램 언어로 작성된 제2 프로그램의 동일성을 검증한다. 상기 검증장치는, 시나리오에 적용될 변수를 사용자로부터 입력받도록 형성되는 입력부; 상기 입력된 변수를 출력하는 출력부; 상기 입력된 변수를 이용하여 상기 제1 및 제2 프로그램을 검증하기 위한 시나리오를 생성하는 시나리오 생성부; 및 상기 시나리오에 따라 상기 제1 및 제2 프로그램을 구동하여 상기 제1 및 제2 프로그램의 결과 값들을 각각 획득하는 실행부를 포함하는 제1 검증도구, 사용자로부터 입력된 정보를 이용하여 상기 제1 및 제2 프로그램과 관련된 안전속성을 정의하는 안전속성 정의부; 및 상기 정의된 안전속성에 근거하여 상기 제1 및 제2 프로그램에 대한 모델 체킹을 수행하는 모델 체킹부를 포함하는 제2 검증도구, 상기 제1 검증도구에서 획득된 시뮬레이션 결과를 비교 분석하여 상기 제1 및 제2 프로그램의 일치성을 검증하고, 상기 제2 검증도구에서 획득된 모델케팅 결과를 비교 분석하여 상기 제1 및 제2 프로그램의 안정성을 검증하는 분석도구 및 상기 분석도구에 제어에 의하여 상기 제1 및 제2 프로그램의 동일성을 안내하는 안내정보를 출력하는 디스플레이부를 포함한다.
일 실시 예에 있어서, 상기 분석도구는, 상기 제1 및 제2 프로그램 간에 상기 일치성과 상기 안정성이 동일한 경우, 상기 제1 및 제2 프로그램이 동일하다는 안내정보를 상기 디스플레이부에 출력하고, 상기 일치성 및 상기 안정성 중 적어도 하나가 동일하지 않은 경우, 상기 디스플레이부의 제1영역에 상기 제1 프로그램에 포함된 변수들의 출력 값 변화를 제1 그래프를 이용해 출력하고, 상기 디스플레이부의 제2영역에 상기 제2 프로그램에 포함된 변수들의 출력 값 변화를 제2 그래프를 이용해 출력할 수 있다.
일 실시 예에 있어서, 상기 시나리오 생성부는, 랜덤 값을 생성하며, 상기 생성된 랜덤 값이 상기 입력부를 통해 입력된 초기 값을 기준으로 최대 변화율 이내에 포함된 경우, 상기 생성된 랜덤 값을 이용하여 첫 번째 시나리오를 생성하고, 상기 생성된 랜덤 값이 상기 초기 값을 기준으로 상기 최대 변화율보다 큰 경우, 랜덤 값을 새로이 생성할 수 있다.
일 실시 예에 있어서, 상기 시나리오 생성부는, n-1번째 변수를 이용하여 n-1번째 시나리오를 생성하고, n번째 시나리오는 생성하는 경우, n번째 변수를 무작위로 생성하고, 상기 n-1번째 변수와 상기 생성된 n번째 변수가 상기 최대 변화율 이내인지 여부에 따라, 상기 생성된 n번째 변수를 이용하여 상기 n번째 시나리오를 생성하거나 상기 n번째 변수를 새로이 생성하며, m개의 시나리오들이 생성되도록 상기 n은 2부터 상기 m까지일 수 있다.
일 실시 예에 있어서, 상기 입력부는, 상기 초기 값, 상기 최대 변화율, 상기 m 중 적어도 하나를 입력받도록 이루어질 수 있다.
일 실시 예에 있어서, 상기 분석도구는, 상기 m개의 시나리오들 중에서 결과 값이 일치하지 않는 적어도 하나의 시나리오가 있는 경우, 상기 적어도 하나의 시나리오의 총 개수, 그리고 상기 적어도 하나의 시나리오와 관련된 정보가 출력되도록 상기 디스플레이부를 제어할 수 있다.
일 실시 예에 있어서, 상기 제1 프로그램은 PLC(programmable logic controller) 기반의 제어기기에서 동작하고, 상기 제2 프로그램은 FPGA(Field Programmble Gate Array) 기반의 제어기기에서 동작할 수 있다.
일 실시 예에 있어서, 상기 제1 프로그램 언어는 기능 블록 다이어그램(function block diagram)이고, 상기 제2 프로그램 언어는 베릴로그(verilog)일 수 있다.
또한, 상기 검증장치의 제어방법은, 시나리오에 적용될 변수를 사용자로부터 입력받는 단계, 상기 입력된 변수를 이용하여 상기 제1 및 제2 프로그램을 검증하기 위한 복수의 시나리오들을 생성하는 단계, 상기 생성된 시나리오들에 따라 상기 제1 및 제2 프로그램을 구동하여 상기 제1 및 제2 프로그램의 결과 값들을 비교 분석하여 상기 제1 및 제2 프로그램의 일치성을 검증하는 단계, 사용자로부터 입력된 정보를 이용하여 상기 제1 및 제2 프로그램과 관련된 안전속성을 정의하는 단계, 상기 정의된 안전속성에 근거하여 상기 제1 및 제2 프로그램에 대한 모델 체킹을 수행하여 상기 제1 및 제2 프로그램의 안정성을 검증하는 단계 및 상기 검증된 일치성 및 상기 검증된 안정성에 근거하여 상기 제1 및 제2 프로그램의 동일성을 안내하는 안내정보를 디스플레이부에 출력하는 단계를 포함한다.
일 실시 예에 있어서, 상기 복수의 시나리오들을 생성하는 단계는, 랜덤 값을 생성하는 단계 및 상기 생성된 랜덤 값이 상기 입력된 변수에 포함된 초기 값을 기준으로 최대 변화율 이내에 포함된 경우, 상기 생성된 랜덤 값을 이용하여 첫 번째 시나리오를 생성하고, 상기 생성된 랜덤 값이 상기 초기 값을 기준으로 상기 최대 변화율보다 큰 경우, 랜덤 값을 새로이 생성하는 단계를 포함할 수 있다.
일 실시 예에 있어서, 상기 복수의 시나리오들을 생성하는 단계는, n-1번째 변수를 이용하여 n-1번째 시나리오를 생성하는 단계 및 n번째 시나리오는 생성하는 경우, n번째 변수를 무작위로 생성하고, 상기 n-1번째 변수와 상기 생성된 n번째 변수가 상기 최대 변화율 이내인지 여부에 따라, 상기 생성된 n번째 변수를 이용하여 상기 n번째 시나리오를 생성하거나 상기 n번째 변수를 새로이 생성하는 단계를 포함하고, m개의 시나리오들이 생성되도록 상기 n은 2부터 상기 m까지일 수 있다.
일 실시 예에 있어서, 상기 시나리오에 적용될 변수를 사용자로부터 입력받는 단계는, 상기 초기 값, 상기 최대 변화율, 상기 m 중 적어도 하나를 입력받도록 이루어질 수 있다.
일 실시 예에 있어서, 상기 m개의 시나리오들 중에서 결과 값이 일치하지 않는 적어도 하나의 시나리오가 있는 경우, 상기 적어도 하나의 시나리오의 총 개수, 그리고 상기 적어도 하나의 시나리오와 관련된 정보가 출력되도록 상기 디스플레이부를 제어하는 단계를 더 포함할 수 있다.
일 실시 예에 있어서, 상기 제1 프로그램은 PLC(programmable logic controller) 기반의 제어기기에서 동작하고, 상기 제2 프로그램은 FPGA(Field Programmble Gate Array) 기반의 제어기기에서 동작할 수 있다.
일 실시 예에 있어서, 상기 제1 프로그램 언어는 기능 블록 다이어그램(function block diagram)이고, 상기 제2 프로그램 언어는 베릴로그(verilog)일 수 있다.
본 발명에 따른 검증장치 및 그것의 제어방법의 효과에 대해 설명하면 다음과 같다.
본 발명의 검증 프레임워크를 이용하면 기능블록 다이어그램의 동작과 베릴로그 코드가 동일한 동작을 하는지 확인할 수 있다.
FPGA 기반의 제어기기에서 동작하는 소프트웨어를 개발할 때 기능블록 다이어그램을 이용하여 개발할 수 있다.
FPGA 기반의 제어기기에서 동작하는 소프트웨어를 개발할 때 하드웨어 기술 언어를 습득하지 않아도 프로그램을 개발할 수 있다.
지금까지 원전 계측제어기기가 확보하여야 하는 안전속성은 기능블록 다이어그램에서 확인할 수 없었으나 모델 체킹 프레임워크를 통해 기능블록 다이어그램에서도 안전속성을 확인할 수 있다.
또한, 지금까지 기능블록 다이어그램을 시뮬레이션하고 시나리오를 생성해주는 방법이 없었으나 상호 시뮬레이션 프레임워크를 통해 기능블록 다이어그램에서도 시뮬레이션을 수행할 수 있다. 이를 통해 기능블록 다이어그램을 베릴로그 프로그램으로 변환한 후 변환전후의 동작이 같은 결과를 출력하는 것을 확인하여 변환기 자체에 대한 신뢰성을 확보할 수 있다.
또한 두 단계의 검증 프레임워크를 이용하여 검증을 수행하기 때문에 검증의 신뢰성을 향상시킬 수 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명에 따른 검증장치를 설명하기 위한 블록도
도 2는 도 1에서 설명한 검증장치의 제1 검증도구를 설명하기 위한 블록도
도 3은 도 2에서 설명한 시나리오 생성부의 동작을 설명하기 위한 블록도
도 4는 도 3에서 설명한 시나리오 생성부가 복수의 시나리오들을 생성하는 방법을 설명하기 위한 흐름도
도 5는 본 발명의 일 실시 예에 따른 제1 시뮬레이터의 구동 화면을 나타내는 예시도
도 6은 제1 시뮬레이터의 동작을 설명하기 위한 흐름도
도 7은 본 발명의 일 실시 예에 따른 제2 시뮬레이터의 구동 화면을 나타내는 예시도
도 8은 도 1에서 설명한 검증장치의 제2 검증도구를 설명하기 위한 블록도
도 9는 도 1에서 설명한 검증장치의 분석도구를 설명하기 위한 블록도
도 10은 분석도구의 동작을 설명하기 위한 흐름도
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시 예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 출원에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 발명은 소프트웨어 모델링과 모델링 언어를 구현코드로 변환했을 때 변환 코드가 모델링의 동작을 정확하게 반영하고 있는 지 또한 모델링 수준에서 만족했던 안전속성이 변환된 코드에서도 지속적으로 만족되고 있는지 검증하기 위한 프레임워크에 대한 것이다.
특히, 본 발명은 소프트웨어 모델링을 위한 기능블록 다이어그램(Function Block Diagram) 과 FPGA(Field Programmable Gate Array) 논리 소자에서 동작하는 베릴로그(Verilog) 코드 간의 동작이 동일한 지 안전속성은 동일하게 만족하고 있는지 검증하기 위한 방법에 한정한다.
도 1은 본 발명에 따른 검증장치를 설명하기 위한 블록도이다.
본 발명에 따른 검증장치는 제1 검증도구(100), 제2 검증도구(200), 분석도구(300), 디스플레이부(미도시) 그리고 메모리(미도시)를 포함한다.
상기 검증장치는 제1 프로그램 언어로 작성된 제1 프로그램, 그리고 변환기에 의하여 상기 제1 프로그램으로부터 변환되어 제2 프로그램 언어로 작성된 제2 프로그램의 동일성을 검증하도록 이루어진다.
상기 제1 프로그램 언어로 작성된 상기 제1 프로그램은 변환기에 입력되어 상기 제2 프로그램 언어로 작성된 상기 제2 프로그램으로 변환된다.
상기 제1 프로그램 언어는 기능 블록 다이어그램(function block diagram)이고, 상기 제2 프로그램 언어는 베릴로그(verilog)일 수 있다. 상기 제1 프로그램은 PLC(programmable logic controller) 기반의 제어기기에서 동작하고, 상기 제2 프로그램은 FPGA(Field Programmble Gate Array) 기반의 제어기기에서 동작하도록 이루어진다.
상기 검증장치는 상기 변환기의 성능을 검증하기 위한 것으로, 상기 제1 및 제2 프로그램의 일치성과 상기 제1 및 제2 프로그램의 안정성을 판단하고, 판단 결과에 따라 상기 제1 및 제2 프로그램의 동일성을 판단한다.
모든 가능한 인풋(input)에 대하여 제1 프로그램과 제2 프로그램이 동일한 아웃풋(output)을 출력하는 경우, 상기 제1 및 제2 프로그램이 일치한다고 판단될 수 있다.
기정의된 안전속성이 제1 프로그램과 제2 프로그램에 대하여 동시에 만족되는 경우, 상기 제1 및 제2 프로그램이 안전하다고 판단될 수 있다. 안전속성은 원자력 발전소에서 이용되는 프로그램의 종류에 따라 그 정의가 달라지며, 모델 체킹에 요구되는 형식에 맞도록 정의되며, 프로그램 목적에 대응되는 중요 안전 특징들을 반영한다.
제1 검증도구(100)는 시나리오에 적용될 변수를 사용자로부터 입력받도록 형성되는 입력부, 상기 입력된 변수를 출력하는 출력부, 상기 입력된 변수를 이용하여 상기 제1 및 제2 프로그램을 검증하기 위한 시나리오를 생성하는 시나리오 생성부, 그리고 상기 시나리오에 따라 상기 제1 및 제2 프로그램을 구동하여 상기 제1 및 제2 프로그램의 결과 값들을 각각 획득하는 실행부를 포함한다.
제2 검증도구(200)는 사용자로부터 입력된 정보를 이용하여 상기 제1 및 제2 프로그램과 관련된 안전속성을 정의하는 안전속성 정의부, 그리고 상기 정의된 안전속성에 근거하여 상기 제1 및 제2 프로그램에 대한 모델 체킹을 수행하는 모델 체킹부를 포함한다.
분석도구(300)는 상기 제1 검증도구(100)에서 획득된 시뮬레이션 결과를 비교 분석하여 상기 제1 및 제2 프로그램의 일치성을 검증하고, 상기 제2 검증도구(200)에서 획득된 모델케팅 결과를 비교 분석하여 상기 제1 및 제2 프로그램의 안정성을 검증한다.
디스플레이부는 상기 분석도구(300)에 제어에 의하여 상기 제1 및 제2 프로그램의 동일성을 안내하는 안내정보를 출력한다. 즉, 디스플레이부는 검증장치에서 처리되는 정보를 표시(출력)한다. 예를 들어, 디스플레이부는 검증장치에서 구동되는 응용 프로그램의 실행화면 정보, 또는 이러한 실행화면 정보에 따른 UI(User Interface), GUI(Graphic User Interface) 정보를 표시할 수 있다.
메모리는 검증장치에서 구동되는 다수의 응용 프로그램(application program 또는 애플리케이션(application)), 검증장치의 동작을 위한 데이터들, 명령어들을 저장할 수 있다. 한편, 응용 프로그램은, 메모리에 저장되고, 검증장치 상에 설치되어, 분석도구(300)에 의하여 상기 검증장치의 동작(또는 기능)을 수행하도록 구동될 수 있다.
분석도구(300)는 상기 응용 프로그램과 관련된 동작 외에도, 통상적으로 검증장치의 전반적인 동작을 제어한다. 분석도구(300)는 위에서 살펴본 구성요소들을 통해 입력 또는 출력되는 신호, 데이터, 정보 등을 처리하거나 메모리에 저장된 응용 프로그램을 구동함으로써, 사용자에게 적절한 정보 또는 기능을 제공 또는 처리할 수 있다.
상기 분석도구(300)는, 상기 제1 및 제2 프로그램 간에 상기 일치성과 상기 안정성이 동일한 경우, 상기 제1 및 제2 프로그램이 동일하다는 안내정보를 상기 디스플레이부에 출력한다.
이와 달리, 상기 일치성 및 상기 안정성 중 적어도 하나가 동일하지 않은 경우, 상기 디스플레이부의 제1영역에 상기 제1 프로그램에 포함된 변수들의 출력 값 변화를 제1 그래프를 이용해 출력하고, 상기 디스플레이부의 제2영역에 상기 제2 프로그램에 포함된 변수들의 출력 값 변화를 제2 그래프를 이용해 출력한다.
이를 통해, 사용자는 제1 및 제2 프로그램의 동일성을 확인할 수 있으며, 동일하지 않은 경우, 동일하지 않은 실시 예들을 시각적으로 확인할 수 있게 된다.
한편, 상기 각 구성요소들 중 적어도 일부는, 이하에서 설명되는 다양한 실시 예들에 따른 검증장치의 동작, 제어, 또는 제어방법을 구현하기 위하여 서로 협력하여 동작할 수 있다. 또한, 상기 검증장치의 동작, 제어, 또는 제어방법은 상기 메모리에 저장된 적어도 하나의 응용 프로그램의 구동에 의하여 검증장치 상에서 구현될 수 있다.
도 2는 도 1에서 설명한 검증장치의 제1 검증도구를 설명하기 위한 블록도이다.
도 2를 참조하면, 제1 검증도구(100)는 시나리오에 적용될 변수를 사용자로부터 입력받도록 형성되는 입력부, 상기 입력된 변수를 출력하는 출력부, 상기 입력된 변수를 이용하여 상기 제1 및 제2 프로그램을 검증하기 위한 시나리오를 생성하는 시나리오 생성부, 그리고 상기 시나리오에 따라 상기 제1 및 제2 프로그램을 구동하여 상기 제1 및 제2 프로그램의 결과 값들을 각각 획득하는 실행부를 포함한다.
상기 입력부는 상기 제1 프로그램 언어로 작성된 상기 제1 프로그램을 입력받도록 형성되는 제1 입력부, 그리고 상기 제2 프로그램 언어로 작성된 상기 제2 프로그램을 입력받도록 형성되는 제2 입력부를 포함한다.
상기 제1 프로그램 언어는 기능블록 다이어그램이고 도식적인 표현이므로, 검증장치에 저장되기 위해서는 XML 형태로 변환되어야 한다. 따라서, 상기 제1 입력부는 상기 제1 프로그램 언어가 입력되는 경우 XML 형태로 변환하도록 이루어질 수 있다.
상기 제2 프로그램 언어는 베릴로그 코드이고 변환기에 의하여 변환된 프로그램 언어이므로 텍스트 형태로 변환되어야 한다. 따라서, 상기 제2 입력부는 상기 제2 프로그램 언어가 입력되는 경우 텍스트 형태로 변환하도록 이루어질 수 있다.
시나리오 생성부는 상기 입력부를 통해 입력된 변수를 이용하여 적어도 하나의 시나리오를 생성한다. 시나리오 생성부는 상기 제1 및 제2 프로그램을 입력하고 4가지 변수 중 적어도 하나를 입력할 수 있는 입력부와 사용자에게 입력변수 리스트를 보여주기 위한 출력부, 사용자의 입력을 대기하고 있는 대기부, 시나리오 생성 알고리즘을 수행하는 실행부, 그리고 각각 생성된 시나리오를 저장할 수 있는 2개의 저장부로 구성된다.
한편, 제1 검증도구에는 제1 프로그램의 시뮬레이션 결과와 제2 프로그램의 시뮬레이션 결과를 자동 비교할 수 있는 비교기가 있다. 비교기를 통해서 비교한 결과를 분석도구의 입력값으로 입력된다.
도 3은 도 2에서 설명한 시나리오 생성부의 동작을 설명하기 위한 블록도이고, 도 4는 도 3에서 설명한 시나리오 생성부가 복수의 시나리오들을 생성하는 방법을 설명하기 위한 흐름도이다.
상기 입력부는 초기 값, 최대 변화율, 생성할 시나리오의 총 수, 시나리오의 사이즈 중 적어도 하나를 입력받도록 이루어진다.
상기 시나리오 생성부는 시나리오 생성을 위한 랜덤 값을 생성한다. 상기 생성된 랜덤 값이 상기 입력부를 통해 입력된 초기 값을 기준으로 최대 변화율 이내에 포함된 경우, 상기 생성된 랜덤 값을 이용하여 첫 번째 시나리오를 생성하고, 상기 생성된 랜덤 값이 상기 초기 값을 기준으로 상기 최대 변화율보다 큰 경우, 랜덤 값을 새로이 생성한다.
즉, 입력받은 초기값을 바탕으로 초기값을 설정한 다음 랜덤 하게 다음 사이클의 값을 생성한다. 이전 값과 랜덤 값의 차이가 입렵 받은 변화율보다 클 경우 새로운 랜덤 값을 반복적으로 생성한다. 차이가 변화율보다 작을 경우 사이클을 증가하고 사이클이 입력받은 생성 사이클에 도달하였는지 확인한다. 작을 경우 해당 랜덤 값을 시나리오에 추가하고 반복적으로 랜덤 값을 생성한다.
상기 시나리오 생성부는 n-1번째 변수를 이용하여 n-1번째 시나리오를 생성한다. 그리고, n번째 시나리오는 생성하는 경우, n번째 변수를 무작위로 생성하고, 상기 n-1번째 변수와 상기 생성된 n번째 변수가 상기 최대 변화율 이내인지 여부에 따라, 상기 생성된 n번째 변수를 이용하여 상기 n번째 시나리오를 생성하거나 상기 n번째 변수를 새로이 생성한다. m개의 시나리오들이 생성되도록 상기 n은 2부터 상기 m까지 순차적으로 증가하도록 이루어진다.
이로써, 시나리오 생성부는 사용자로부터 입력된 m개의 시나리오들을 생성하게 된다.
본 발명에 따른 검증장치는 n-1번째 변수와 n번째 변수가 최대 변화율 이내에서 변하도록 통제하기 때문에, 실제 원자력 발전소에서 일어날 수 없는 시나리오는 생성하지 않게 된다.
한편, 시나리오의 사이즈는 시나리오가 돌아가는 시간을 의미한다. 예를 들어, 시나리오의 사이즈가 100초로 설정되면, 인풋이 입력된 시점으로부터 아웃풋이 출력되는 시간까지 최소 100초가 걸리는 시나리오가 생성되게 된다. 이로써, 사용자는 IEC 표준에서 요구하는 조건을 만족하는 시나리오들을 생성할 수 있다.
도 5는 본 발명의 일 실시 예에 따른 제1 시뮬레이터의 구동 화면을 나타내는 예시도이고, 도 6은 제1 시뮬레이터의 동작을 설명하기 위한 흐름도이다.
제1 검증도구에는 상기 시나리오 생성부에서 생성된 시나리오들을 시뮬레이션 할 수 있는 두 개의 시뮬레이터(제1 및 제2 시뮬레이터)가 포함된다. 상기 제1 시뮬레이터는 제1 프로그램에 대하여 상기 생성된 시나리오들을 시뮬레이션하고, 상기 제2 시뮬레이터는 제2 프로그램에 대하여 상기 생성된 시나리오들을 시뮬레이션 한다.
제1 시뮬레이터는 제1 프로그램의 기능을 확인하기 위한 역할을 수행하며, 도 5에 도시된 그래프를 생성하여 사용자에게 시나리오에 따른 시뮬레이션의 결과를 보여주게 된다.
제1 시뮬레이터는 제1 프로그램을 입력받도록 형성되는 입력부, 변수 각각에 대응하는 연산을 수행하도록 이루어지는 연산부, 그리고 연산 결과를 출력하는 출력부를 포함한다. 상기 제1 시뮬레이터의 구동 화면에는 상기 입력부, 상기 연산부 그리고 상기 출력부에 대응하는 정보가 출력되게 된다.
도 7은 본 발명의 일 실시 예에 따른 제2 시뮬레이터의 구동 화면을 나타내는 예시도이다.
제2 시뮬레이터의 동작은 제1 시뮬레이터와 동일하다. 상기 시나리오 생성부로부터 생성된 복수의 시나리오들을 입력받아 순차적으로 시나리오에 대한 시뮬레이션을 진행하고, 그에 대한 연산 결과를 출력하게 된다.
도 8은 도 1에서 설명한 검증장치의 제2 검증도구를 설명하기 위한 블록도이다.
제2 검증도구는 사용자로부터 입력된 정보를 이용하여 상기 제1 및 제2 프로그램과 관련된 안전속성을 정의하는 안전속성 정의부; 및 상기 정의된 안전속성에 근거하여 상기 제1 및 제2 프로그램에 대한 모델 체킹을 수행하는 모델 체킹부를 포함한다.
다시 말해, 상기 제2 검증도구는 기능블록 다이어그램을 입력받는 입력부1, 베릴로그 코드를 입력받는 입력부2, 안전속성을 정의하여 입력으로 받는 안전속성 정의부, 모델체커를 구동시킬 수 있는 모델 체킹부(또는, 구동부), 그리고 모델체커 결과를 저장할 수 있는 저장부와 저장된 결과를 서로 비교할 수 있는 비교부로 구성된다.
안전속성의 경우 원자력 계측제어 계통의 안전성 분석을 통해 정의되어야 하며, 모델체킹에 사용되기 적합한 시제논리 형태로 작성되어야 한다. 상기 안전속성은 검증하고자 하는 프로그램에 따라 가변되며, 상기 안전속성 정의부에 의하여 정의된다.
한편, 기능블록 다이어그램을 입력으로 받는 모델 체커가 존재하지 않기 때문에 기능블록 다이어그램을 모델 체커의 입력 형태로 변환해주는 변환부가 존재한다.
도 9는 도 1에서 설명한 검증장치의 분석도구를 설명하기 위한 블록도이고, 도 10은 분석도구의 동작을 설명하기 위한 흐름도이다.
본 발명에 따른 검증장치의 제어방법은, 시나리오에 적용될 변수를 사용자로부터 입력받는 단계, 상기 입력된 변수를 이용하여 상기 제1 및 제2 프로그램을 검증하기 위한 복수의 시나리오들을 생성하는 단계, 상기 생성된 시나리오들에 따라 상기 제1 및 제2 프로그램을 구동하여 상기 제1 및 제2 프로그램의 결과 값들을 비교 분석하여 상기 제1 및 제2 프로그램의 일치성을 검증하는 단계, 사용자로부터 입력된 정보를 이용하여 상기 제1 및 제2 프로그램과 관련된 안전속성을 정의하는 단계, 상기 정의된 안전속성에 근거하여 상기 제1 및 제2 프로그램에 대한 모델 체킹을 수행하여 상기 제1 및 제2 프로그램의 안정성을 검증하는 단계 및 상기 검증된 일치성 및 상기 검증된 안정성에 근거하여 상기 제1 및 제2 프로그램의 동일성을 안내하는 안내정보를 디스플레이부에 출력하는 단계로 이루어진다.
나아가, 상기 생성된 시나리오들 중에서 결과 값이 일치하지 않는 적어도 하나의 시나리오가 있는 경우, 상기 적어도 하나의 시나리오의 총 개수, 그리고 상기 적어도 하나의 시나리오와 관련된 정보가 출력되도록 상기 디스플레이부를 제어하는 단계가 더 수행될 수 있다.
상술한 각 단계는 상기 분석도구(300)의 제어하에 수행될 수 있다.
본 발명은 본 발명의 정신 및 필수적 특징을 벗어나지 않는 범위에서 다른 특정한 형태로 구체화될 수 있음은 당업자에게 자명하다.
전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한, 상기 컴퓨터는 검증장치의 분석도구를 포함할 수도 있다.
따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
100: 제1 검증도구
200: 제2 검증도구
300: 분석도구

Claims (16)

  1. 제1 프로그램 언어로 작성된 제1 프로그램, 그리고 변환기에 의하여 상기 제1 프로그램으로부터 변환되어 제2 프로그램 언어로 작성된 제2 프로그램의 동일성을 검증하는 검증장치에 있어서,
    시나리오에 적용될 변수를 사용자로부터 입력받도록 형성되는 입력부; 상기 입력된 변수를 출력하는 출력부; 상기 입력된 변수를 이용하여 상기 제1 및 제2 프로그램을 검증하기 위한 시나리오를 생성하는 시나리오 생성부; 및 상기 시나리오에 따라 상기 제1 및 제2 프로그램을 구동하여 상기 제1 및 제2 프로그램의 결과 값들을 각각 획득하는 실행부를 포함하는 제1 검증도구;
    사용자로부터 입력된 정보를 이용하여 상기 제1 및 제2 프로그램과 관련된 안전속성을 정의하는 안전속성 정의부; 및 상기 정의된 안전속성에 근거하여 상기 제1 및 제2 프로그램에 대한 모델 체킹을 수행하는 모델 체킹부를 포함하는 제2 검증도구;
    상기 제1 검증도구에서 획득된 시뮬레이션 결과를 비교 분석하여 상기 제1 및 제2 프로그램의 일치성을 검증하고, 상기 제2 검증도구에서 획득된 모델케팅 결과를 비교 분석하여 상기 제1 및 제2 프로그램의 안정성을 검증하는 분석도구; 및
    상기 분석도구에 제어에 의하여 상기 제1 및 제2 프로그램의 동일성을 안내하는 안내정보를 출력하는 디스플레이부를 포함하고,
    상기 시나리오 생성부는, 랜덤 값을 생성하며,
    상기 생성된 랜덤 값이 상기 입력부를 통해 입력된 초기 값을 기준으로 최대 변화율 이내에 포함된 경우, 상기 생성된 랜덤 값을 이용하여 첫 번째 시나리오를 생성하고, 상기 생성된 랜덤 값이 상기 초기 값을 기준으로 상기 최대 변화율보다 큰 경우, 랜덤 값을 새로이 생성하는 것을 특징으로 하는 검증장치.
  2. 제1항에 있어서,
    상기 분석도구는,
    상기 제1 및 제2 프로그램 간에 상기 일치성과 상기 안정성이 동일한 경우, 상기 제1 및 제2 프로그램이 동일하다는 안내정보를 상기 디스플레이부에 출력하고,
    상기 일치성 및 상기 안정성 중 적어도 하나가 동일하지 않은 경우, 상기 디스플레이부의 제1영역에 상기 제1 프로그램에 포함된 변수들의 출력 값 변화를 제1 그래프를 이용해 출력하고, 상기 디스플레이부의 제2영역에 상기 제2 프로그램에 포함된 변수들의 출력 값 변화를 제2 그래프를 이용해 출력하는 것을 특징으로 하는 검증장치.
  3. 삭제
  4. 제1항에 있어서,
    상기 시나리오 생성부는,
    n-1번째 변수를 이용하여 n-1번째 시나리오를 생성하고, n번째 시나리오는 생성하는 경우, n번째 변수를 무작위로 생성하고, 상기 n-1번째 변수와 상기 생성된 n번째 변수가 상기 최대 변화율 이내인지 여부에 따라, 상기 생성된 n번째 변수를 이용하여 상기 n번째 시나리오를 생성하거나 상기 n번째 변수를 새로이 생성하며,
    m개의 시나리오들이 생성되도록 상기 n은 2부터 상기 m까지인 것을 특징으로 하는 검증장치.
  5. 제4항에 있어서,
    상기 입력부는,
    상기 초기 값, 상기 최대 변화율, 상기 m 중 적어도 하나를 입력받도록 이루어지는 것을 특징으로 하는 검증장치.
  6. 제4항에 있어서,
    상기 분석도구는,
    상기 m개의 시나리오들 중에서 결과 값이 일치하지 않는 적어도 하나의 시나리오가 있는 경우, 상기 적어도 하나의 시나리오의 총 개수, 그리고 상기 적어도 하나의 시나리오와 관련된 정보가 출력되도록 상기 디스플레이부를 제어하는 것을 특징으로 하는 검증장치.
  7. 제1항에 있어서,
    상기 제1 프로그램은 PLC(programmable logic controller) 기반의 제어기기에서 동작하고, 상기 제2 프로그램은 FPGA(Field Programmble Gate Array) 기반의 제어기기에서 동작하는 것을 특징으로 하는 검증장치.
  8. 제7항에 있어서,
    상기 제1 프로그램 언어는 기능 블록 다이어그램(function block diagram)이고, 상기 제2 프로그램 언어는 베릴로그(verilog)인 것을 특징으로 하는 검증장치.
  9. 제1 프로그램 언어로 작성된 제1 프로그램, 그리고 변환기에 의하여 상기 제1 프로그램으로부터 변환되어 제2 프로그램 언어로 작성된 제2 프로그램의 동일성을 검증하는 검증장치의 제어방법에 있어서,
    시나리오에 적용될 변수를 사용자로부터 입력받는 단계;
    상기 입력된 변수를 이용하여 상기 제1 및 제2 프로그램을 검증하기 위한 복수의 시나리오들을 생성하는 단계;
    상기 생성된 시나리오들에 따라 상기 제1 및 제2 프로그램을 구동하여 상기 제1 및 제2 프로그램의 결과 값들을 비교 분석하여 상기 제1 및 제2 프로그램의 일치성을 검증하는 단계;
    사용자로부터 입력된 정보를 이용하여 상기 제1 및 제2 프로그램과 관련된 안전속성을 정의하는 단계;
    상기 정의된 안전속성에 근거하여 상기 제1 및 제2 프로그램에 대한 모델 체킹을 수행하여 상기 제1 및 제2 프로그램의 안정성을 검증하는 단계; 및
    상기 검증된 일치성 및 상기 검증된 안정성에 근거하여 상기 제1 및 제2 프로그램의 동일성을 안내하는 안내정보를 디스플레이부에 출력하는 단계를 포함하고,
    상기 복수의 시나리오들을 생성하는 단계는,
    랜덤 값을 생성하는 단계; 및
    상기 생성된 랜덤 값이 상기 입력된 변수에 포함된 초기 값을 기준으로 최대 변화율 이내에 포함된 경우, 상기 생성된 랜덤 값을 이용하여 첫 번째 시나리오를 생성하고, 상기 생성된 랜덤 값이 상기 초기 값을 기준으로 상기 최대 변화율보다 큰 경우, 랜덤 값을 새로이 생성하는 단계를 포함하는 것을 특징으로 하는 검증장치의 제어방법.
  10. 삭제
  11. 제9항에 있어서,
    상기 복수의 시나리오들을 생성하는 단계는,
    n-1번째 변수를 이용하여 n-1번째 시나리오를 생성하는 단계; 및
    n번째 시나리오는 생성하는 경우, n번째 변수를 무작위로 생성하고, 상기 n-1번째 변수와 상기 생성된 n번째 변수가 상기 최대 변화율 이내인지 여부에 따라, 상기 생성된 n번째 변수를 이용하여 상기 n번째 시나리오를 생성하거나 상기 n번째 변수를 새로이 생성하는 단계를 포함하고,
    m개의 시나리오들이 생성되도록 상기 n은 2부터 상기 m까지인 것을 특징으로 하는 검증장치의 제어방법.
  12. 제11항에 있어서,
    상기 시나리오에 적용될 변수를 사용자로부터 입력받는 단계는,
    상기 초기 값, 상기 최대 변화율, 상기 m 중 적어도 하나를 입력받도록 이루어지는 것을 특징으로 하는 검증장치의 제어방법.
  13. 제11항에 있어서,
    상기 m개의 시나리오들 중에서 결과 값이 일치하지 않는 적어도 하나의 시나리오가 있는 경우, 상기 적어도 하나의 시나리오의 총 개수, 그리고 상기 적어도 하나의 시나리오와 관련된 정보가 출력되도록 상기 디스플레이부를 제어하는 단계를 더 포함하는 것을 특징으로 하는 검증장치의 제어방법.
  14. 제9항에 있어서,
    상기 제1 프로그램은 PLC(programmable logic controller) 기반의 제어기기에서 동작하고, 상기 제2 프로그램은 FPGA(Field Programmble Gate Array) 기반의 제어기기에서 동작하는 것을 특징으로 하는 검증장치의 제어방법.
  15. 제14항에 있어서,
    상기 제1 프로그램 언어는 기능 블록 다이어그램(function block diagram)이고, 상기 제2 프로그램 언어는 베릴로그(verilog)인 것을 특징으로 하는 검증장치의 제어방법.
  16. 제9항에 있어서,
    안내정보를 디스플레이부에 출력하는 단계는
    상기 제1 및 제2 프로그램 간에 상기 일치성과 상기 안정성이 동일한 경우, 상기 제1 및 제2 프로그램이 동일하다는 안내정보를 상기 디스플레이부에 출력하는 단계; 및
    상기 일치성 및 상기 안정성 중 적어도 하나가 동일하지 않은 경우, 상기 디스플레이부의 제1영역에 상기 제1 프로그램에 포함된 변수들의 출력 값 변화를 제1 그래프를 이용해 출력하고, 상기 디스플레이부의 제2영역에 상기 제2 프로그램에 포함된 변수들의 출력 값 변화를 제2 그래프를 이용해 출력하는 단계를 포함하는 것을 특징으로 하는 검증장치의 제어방법.
KR1020150092498A 2015-06-29 2015-06-29 서로 다른 언어로 작성된 프로그램들의 동일성을 검증하는 검증장치 KR101601741B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150092498A KR101601741B1 (ko) 2015-06-29 2015-06-29 서로 다른 언어로 작성된 프로그램들의 동일성을 검증하는 검증장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150092498A KR101601741B1 (ko) 2015-06-29 2015-06-29 서로 다른 언어로 작성된 프로그램들의 동일성을 검증하는 검증장치

Publications (1)

Publication Number Publication Date
KR101601741B1 true KR101601741B1 (ko) 2016-03-09

Family

ID=55537174

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150092498A KR101601741B1 (ko) 2015-06-29 2015-06-29 서로 다른 언어로 작성된 프로그램들의 동일성을 검증하는 검증장치

Country Status (1)

Country Link
KR (1) KR101601741B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170132024A (ko) * 2016-05-23 2017-12-01 엘지전자 주식회사 공기조화기 및 이의 제어방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0774237B2 (ja) * 1987-07-29 1995-08-09 キユーピー株式会社 耐熱性卵白蛋白質及びその製法
JP4774237B2 (ja) * 2005-05-02 2011-09-14 株式会社リコー プログラム開発支援装置、プログラム動作比較方法および半導体集積回路製造方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0774237B2 (ja) * 1987-07-29 1995-08-09 キユーピー株式会社 耐熱性卵白蛋白質及びその製法
JP4774237B2 (ja) * 2005-05-02 2011-09-14 株式会社リコー プログラム開発支援装置、プログラム動作比較方法および半導体集積回路製造方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
‘번역기, 코드 생성기 및 컴파일러를 위한 검증기법 조사’, 2013 한국 소프트웨어공학 학술대회 논문집 제15권제1호(2013)* *
‘함수 블록 다이어그램으로 구현된 PLC 프로그램에 대한 정형 검증 기법’, 정보과학회논문지 컴퓨팅의 실제 및 레터 제15권 제3호(2009)* *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170132024A (ko) * 2016-05-23 2017-12-01 엘지전자 주식회사 공기조화기 및 이의 제어방법
KR102439232B1 (ko) 2016-05-23 2022-09-01 엘지전자 주식회사 공기조화기 및 이의 제어방법

Similar Documents

Publication Publication Date Title
JP6621204B2 (ja) 安全重視ソフトウェア開発のためのモデルベース技術および過程のためのシステムおよび方法
Darvas et al. PLCverif: A tool to verify PLC programs based on model checking techniques
CN113632018B (zh) 分析可编程逻辑控制器程序的方法、计算机程序和装置
US20140214396A1 (en) Specification properties creation for a visual model of a system
Cook et al. Utilizing MBSE patterns to accelerate system verification
EP3667582A1 (en) Systems and methods for evaluating assessments
Jung et al. Development of field programmable gate array-based reactor trip functions using systems engineering approach
Kim et al. An integrated software testing framework for FPGA-based controllers in nuclear power plants
CN102520949B (zh) 形式化计算机联锁实现方法
JP2023506097A (ja) プログラマブルロジックコントローラプログラムの解析方法
KR101601741B1 (ko) 서로 다른 언어로 작성된 프로그램들의 동일성을 검증하는 검증장치
Ahmed et al. Design verification enhancement of field programmable gate array-based safety-critical I&C system of nuclear power plant
Pakonen Model-checking I&C logics—insights from over a decade of projects in Finland
Yoo et al. An integrated software development framework for PLC & FPGA based digital I&Cs
Yoo et al. NuDE 2.0: a model-based software development environment for the PLC & FPGA based digital systems in nuclear power plants
Bouali et al. Formal verification for model-based development
Burnard et al. Verifying and validating automatically generated code
Garro et al. RAMSAS4Modelica: a Simulation-driven Method for System Dependability Analysis centered on the Modelica language and related tools
Lee et al. Quantitative measures of thoroughness of FBD simulations for PLC-based digital I&C system
KR20200079763A (ko) 시뮬레이션 모델 테스트 방법 및 장치
Lönnroth Improving quality control in automation projects using simulation systems
Yacoub et al. Complementarity between simulation and formal verification transformation of PROMELA models into FDDEVS models: Application to a case study
Butenko et al. Markov’s model and tool-based assessment of safety-critical i&c systems: Gaps of the iec 61508
Budnik et al. Testbed for Model-based Verification of Cyber-physical Production Systems.
Hwang et al. Safety-Critical Software Quality Improvement Using Requirement Analysis

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
FPAY Annual fee payment

Payment date: 20200102

Year of fee payment: 5