KR102174433B1 - 내장형 무기체계 소프트웨어를 위한 모델링 장치 - Google Patents

내장형 무기체계 소프트웨어를 위한 모델링 장치 Download PDF

Info

Publication number
KR102174433B1
KR102174433B1 KR1020190048672A KR20190048672A KR102174433B1 KR 102174433 B1 KR102174433 B1 KR 102174433B1 KR 1020190048672 A KR1020190048672 A KR 1020190048672A KR 20190048672 A KR20190048672 A KR 20190048672A KR 102174433 B1 KR102174433 B1 KR 102174433B1
Authority
KR
South Korea
Prior art keywords
component
model
event
weapon system
system software
Prior art date
Application number
KR1020190048672A
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 KR1020190048672A priority Critical patent/KR102174433B1/ko
Application granted granted Critical
Publication of KR102174433B1 publication Critical patent/KR102174433B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명의 일실시예는, 내장형 무기체계 소프트웨어를 위한 모델링 장치에 관한 것으로서, 내장형 무기체계 시스템에 구현된, 컴포넌트(351)에 대해, 상기 컴포넌트(351)의 객체 구조를 모델링하는 구조모델과, 상기 컴포넌트(351)의 객체 행위를 모델링하는 행위모델로 구성하는 모델 구성부 및 상기 구조모델 및 행위모델을 정의하는 모델 설정부를 포함하되, 상기 모델 설정부는, 상기 컴포넌트에 대한 입력 메시지 및 출력 메시지를 변수들의 집합인 구조체 타입으로 정의하는 것을 특징으로 하는 모델링 장치를 개시한다.

Description

내장형 무기체계 소프트웨어를 위한 모델링 장치{MODELING DEVICE FOR EMBEDDED WEAPON SYSTEM SOFTWARE}
본 발명은 내장형 무기체계 소프트웨어를 위한 모델링 장치에 관한 것으로서, 보다 상세하게는, 소프트웨어 검증에 소요되는 노력을 줄이고, 설계에 보다 집중함으로써, 소프트웨어의 신뢰도를 향상시킬 수 있는, 내장형 무기체계 소프트웨어를 위한 모델링 장치에 관한 것이다.
무기체계 소프트웨어 개발은, 요구사항분석, 구조설계, 상세설계, 구현, 통합 및 시험의 단계를 거친다. 도 1은, 이러한 무기체계 소프트웨어 개발 프로세스를 예시하는 도면이다.
도 1을 참조하면, 요구사항분석 단계(S110)에서는 처리 가능한 표적의 수, 운용 가능한 무장의 수, 연동해야 하는 상하부 체계, 실시간성 등의 기능, 비기능적인 요구사항들을 도출한다. 이러한 요구사항을 만족하기 위하여, 설계단계(S130)에서는, 소프트웨어의 형상항목(Computer Software Configuration Item: CSCI)과 구성품(Computer Software Component: CSC) 수준을 식별하고(구조설계), 파일 혹은 클래스로 표현 가능한 단위 소프트웨어(Computer Software Unit: CSU) 수준을 식별하여 이들의 입/출력과 세부 로직 등을 설계한다(상세설계).
이 설계를 바탕으로 C, C++, Java 등의 프로그래밍 언어로 프로그램을 구현하고(S150), 구현된 프로그램을 대상으로 검증을 실시한다(S170).
한편, 요구사항분석, 구조설계 및 상세설계의 결과물은 사람이 이해하는 것이 목적이므로 자연어 기반의 문서 형태 또는, 통합 모델링 언어(Unified Modeling Language: UML)로 작성된다.
그러나, 자연어 기반의 기술문서는 모호하고, 예상하지 못한 기능들의 충돌이나 누락된 기능들이 발생할 수 있다. 또한, 종래 통합 모델링 언어를 이용한 문서는, 후술하는 검증단계에서 많은 공수를 요구한다.
예를 들어, KR10-1911297B1은, 기본체계모델을 검증하기 위한 방법 및 장치를 개시하나, 상기 기본체계모델을 검증하기 위한 방법 및 장치는 교전모의분석도구 활용의 추가적인 검증이 더 필요하여, 오히려, 검증단계의 더 많은 공수를 요구한 뿐이다.
또한, 구현단계에서 사용하는 C, C++, Java와 같은 프로그래밍 언어는 자연어와 다른 방식의 언어이기 때문에 많은 실수를 유발할 수 있다.
또한, 방위사업청은, 프로그램 코드를 검증하기 위해 정적 및 동적 테스트를 수행하고 있으나, 종래의 무기체계 소프트웨어는 상기와 같이 자연어로 기술되어 있거나, 통합 모델링 언어(UML) 등의 모델링 언어를 사용하더라도 충분하게 의미있는 테스트 케이스가 생성될 정도로 세부적이지 않다는 문제점이 있다.
KR 10-1911297 B1
본 발명은, 내장형 무기체계 소프트웨어의 구현단계에서 발생되는 부담과, 이를 검증하기 위한 검증단계의 노력을 경감하고, 설계단계에 보다 집중함으로써, 내장형 무기체계 소프트웨어의 신뢰도를 향상시킬 수 있는, 내장형 무기체계 소프트웨어를 위한 모델링 장치를 제공하는 데에 있다.
상기 기술적 과제를 해결하기 위한 본 발명의 일 실시예에 따른, 내장형 무기체계 소프트웨어를 위한 모델링 장치는, 내장형 무기체계 시스템에 구현된, 컴포넌트(351)에 대해, 상기 컴포넌트(351)의 객체 구조를 모델링하는 구조모델과, 상기 컴포넌트(351)의 객체 행위를 모델링하는 행위모델로 구성하는 모델 구성부 및 상기 구조모델 및 행위모델을 정의하는 모델 설정부를 포함하되, 상기 모델 설정부는, 상기 컴포넌트에 대한 입력 메시지 및 출력 메시지를 변수들의 집합인 구조체 타입으로 정의하는 것을 특징으로 한다.
상기 모델 설정부는, 상기 변수를 타입, 메시지명, 기설정된 값, 초기값으로 정의하는 것을 특징으로 한다.
상기 모델 설정부는, 상기 컴포넌트의 확장을 위한 리저브드(reserved) 비트를 상기 구조체 타입에 정의하는 것을 특징으로 한다.
상기 모델 설정부는, 상기 컴포넌트가 복수개인 경우, 각 컴포넌트의 연결관계를 설정하는 것을 특징으로 한다.
상기 모델 설정부는, 상기 컴포넌트에 대한, 복수의 입력 이벤트로 구성된 입력 인터페이스와, 상기 컴포넌트에 대한, 복수의 출력 이벤트로 구성된 출력 인터페이스를 정의하는 것을 특징으로 한다.
상기 모델 설정부는, 상기 입력 이벤트 및 출력 이벤트를, 이벤트명, 매개변수, 액션으로 구성하는 것을 특징으로 한다.
상기 모델 설정부는, 상기 입력 메시지 및 출력 메시지를 이벤트를 상속받는 하위 클래스로 설정하는 것을 특징으로 한다.
상기 행위모델은, 상태 요소, 상기 상태 요소의 하위모델인 상태머신 및 전이요소를 포함하는 것을 특징으로 한다.
상기 행위모델은, 입력 이벤트를 수신한 경우, 이벤트명을 기초로 전이 이벤트 또는 상태 이벤트를 호출하고, 전이 이벤트 또는 상기 상태 이벤트를 수행한 경우, 출력 이벤트를 출력하는 것을 특징으로 한다.
본 발명의 실시예에 따른 내장형 무기체계 소프트웨어를 위한 모델링 장치는, 내장형 무기체계 시스템에 구현된 컴포넌트에 대해, 구조모델 및 행위모델로 구성하되, 컴포넌트에 대한 입력 메시지 및 출력 메시지를 변수들의 집합인 구조체 타입으로 정의함으로써, 구현단계의 상세 내용까지 고려하여, 설계단계에서, 그 설계가 가능하다. 따라서, 본 발명은 내장형 무기체계 소프트웨어 개발에 있어서, 구현단계 및 검증단계를 생략하고, 설계단계를 강화함으로써, 요구사항분석에 더욱 많은 공수 투입이 가능한 바, 내장형 무기체계 소프트웨어의 신뢰성이 향상될 수 있다.
또한, 본 발명의 무기체계 소프트웨어를 위한 모델링 장치는, 컴포넌트에 대한 입력 메시지 및 출력 메시지를 변수들의 집합인 구조체 타입으로 정의함으로써, 컴포넌트의 확장이 용이해진다.
또한, 본 발명의 무기체계 소프트웨어를 위한 모델링 장치는, 구조체 타입의 정의를 통하여, 컴포넌트간의 이더넷(ethernet) 통신, 시리얼(serial) 통신 등을 가능하게 한다.
도 1은, 내장형 무기체계 소프트웨어 개발 프로세스를 예시하는 도면이다.
도 2는, 본 발명의 실시예에 따른 내장형 무기체계 소프트웨어의 제어 블록도를 예시하는 도면이다.
도 3은, 도 2의 구조체 타입을 설명하기 위한 도면이다.
도 4는, 도 2의 구조모델을 설명하기 위한 도면이다.
도 5는, 도 4의 구조모델의 예시이다.
도 6은, 도 2의 행위모델을 설명하기 위한 도면이다.
도 7은, 도 6의 행위모델의 예시이다.
실시예들에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "??부", "??모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
아래에서는 첨부한 도면을 참고하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다.
이하에서는 도면을 참조하여 본 발명의 실시예들을 상세히 설명한다.
도 2는, 본 발명의 실시예에 따른 내장형 무기체계 소프트웨어의 제어 블록도를 예시하는 도면이다.
도면을 참조하여 설명하면, 본 발명에 따른 내장형 무기체계 소프트웨어를 위한 모델링 장치(이하 '모델링 장치'라 함)(200)는 모델 구성부(210) 및 모델 설정부(230)를 포함할 수 있다.
모델 구성부(210)는, 내장형 무기체계 시스템에 구현된, 컴포넌트(도 3의 300)에 대해, 구조모델(211) 및 행위모델(215)로 구성할 수 있다.
모델 구성부(210)는, 구조모델(211) 및 행위모델(215)을 복수 개로 구성할 수 있으며, 이때, 복수 개의 모델들은 각각 계층 구조로 배치될 수 있다.
실시예에 따라, 모델 구성부(210)는, 구조모델(211)에 대한 행위모델(215)을 구성할 수도 있다.
모델 설정부(230)는, 구조모델 정의부(231), 행위모델 정의부(233) 및 구조체 타입 정의부(235)를 포함할 수 있다.
구조모델 정의부(231)는, 구조모델(211)의 구조모델명을 정의할 수 있다. 또한, 구조모델 정의부(231)는, 컴포넌트(351)에 대한 적어도 하나의 입력 인터페이스와 적어도 하나의 출력 인터페이스를 정의할 수 있다.
구조모델 정의부(231)는, 컴포넌트(351)가 복수개인 경우, 각 컴포넌트(351)의 연결관계를 정의할 수 있다.
예를 들어, 구조모델 정의부(231)는, 컴포넌트(351)의 확장을 위해 사용자 데이터그램 프로토콜(User Datagram Protocol: UDP) 컴포넌트(도 4의 490)와의 연결관계를 정의할 수 있다.
행위모델 정의부(233)는, 행위모델(215)의 행위모델명을 정의할 수 있다. 또한, 행위모델 정의부(233)는, 행위모델(215) 내부의 상태 요소, 전이 요소, 전이 조건 등을 정의할 수 있다.
구조체 타입 정의부(235)는, 컴포넌트(351)에 대한 입력 메시지 및 출력 메시지의 데이터 타입을 정의할 수 있다. 보다 상세하게는, 구조체 타입 정의부(235)는, 변수를 타입, 메시지명, 기설정된 값, 초기 값으로 정의하고, 컴포넌트(351)에 대한 입력 메시지 및 출력 메시지를 변수들의 집합인 구조체 타입으로 정의할 수 있다. 실시예에 따라, 타입은, 구조모델 정의부(231)에서 정의되는 것도 가능하다.
구조체 타입 정의부(235)는, 컴포넌트(351)에 대한 입력 메시지 및 출력 메시지를, 이벤트를 상속받는 하위 클래스로 정의할 수 있다.
도 3은, 도 2의 구조체 타입을 설명하기 위한 도면이다.
도면을 참조하여 설명하면, 구조체 타입 정의부(235)는, 컴포넌트(351)에 대한 입력 메시지 및 출력 메시지의 데이터 타입을 정의할 수 있다.
타입(331)은, 인터페이스 통제 문서(Interface Control Document: ICD)에서 장비간 메시지를 기술하는 데 사용될 수 있다.
구조체 타입 정의부(235)는, 타입(331)의 타입명(name) 및 크기(size)를 정의할 수 있다.
구조체 타입 정의부(235)는, 타입(331)을 문자열(315), 숫자(313), 구조체(311) 중 적어도 하나로 정의할 수 있다.
문자열(315)은, 문자들의 집합으로 예를 들어, 크기가 1이면 하나의 문자를 나타낼 수 있다. 숫자(313)는 정수(355) 또는 실수(357)로 부호를 표현할 수 있고, 크기는 8, 16, 32, 64 중 하나로 정의될 수 있다.
구조체 타입 정의부(235)는, 기설정된 값(333)으로 타입(331)이 가지는 특정값에 대한 이름을 미리 정의하여 사용할 수 있으며, 변수(337)의 타입(331)으로 사용할 수 있다.
구조체(311)는, 변수(337)들의 집합이며, 실시예에 따라 컴포넌트(351)와 배열(353)도 구조체일 수 있다.
구조체 타입 정의부(235)는, 컴포넌트(351)에 대한 입력 메시지 및 출력 메시지의 데이터 타입을 변수(337)들의 집합인 구조체 타입으로 정의할 수 있다.
예를 들어, 구조체 타입 정의부(235)는, 컴포넌트(351)에 대한 입력 메시지 및 출력 메시지를 표 1에서와 같은 구조체 타입으로 정의할 수 있다.
Struct Header
Byte Type Name Predefined Value Init Value
1-2 Uint16 MsgID
3-4 Uint16 NumberOfSend 0
5 Unint8 Weapon Type 0: Undefined
1: Balistic Missile
2: Cruise Missile
Cruise Missile
표 1의 Header 구조체는 3개의 내부 변수를 가지고 있으며, MsgID와 NumberOfSend는 16비트(2바이트) 크기의 양의 정수(unsigned)이고, Wepon Type은 8비트 크기의 양의 정수이다. NumberOfSend는 3개의 약속 값을 가지며 초기값은 Cruise Missile을 의미하는 2이다. 다른 예로, 구조체 타입 정의부(235)는, 컴포넌트(351)에 대한 입력 메시지 및 출력 메시지를 표 2에서와 같은 구조체 타입으로 정의할 수 있다.
Struct LinkControl
Byte Type Name Predefined Value Init Value
1-5 header header MsgID = 0X1000
6 Uin8 command 0:Idle
1:Link Open
2:Link Closed
1
7 Float 8 LocalTime
8-32 String24 Reserved
표 2의 구조체 타입은 구조체를 포함하는 것을 특징으로 한다. 구체적으로, 표 2의 LinkControl 구조체는 4개의 변수를 가지며, 총 32바이트로 이루어져 있다. 1-5번 바이트는 상기 표 1에서 정의한 Header이다.
표 1 및 표 2에서, 기설정된 값(333)은 메시지 검증에 사용될 수도 있다. 예를 들어, 표 1 및 표 2의 구조체 타입을 구비하는 컴포넌트에서, 기설정된 값(333)으로 3이 입력되는 경우, 컴포넌트(351)는 약속되지 않은 메시지가 입력된 것으로 연산하여, 이를 무시하고, 새로운 메시지가 입력될 때까지 대기한다.
기설정된 값(333)은 운용모드 및/또는 컴포넌트(351)에 따라 다르게 설정할 수 있으며, 이에 따라, 본 발명은 구조모델 정의부(231)에서 정의된 컴포넌트(351) 간에는 상호 운용성을 보장하되, 구조모델 정의부(231)에서 정의되지 않은 컴포넌트(351) 간에는 상호 운용성을 배제함으로써, 보안을 강화시키는 효과를 기대할 수 있다.
또한, 표 1 및 표 2에서, 초기값은 오류 발생을 방지하기 위해 사용될 수 있다. 예를 들어, 컴포넌트(351)는 기설정된 값(333)을 기초로 메시지 검증을 성공한 경우에도, 컴포넌트(351)의 초기값이 설정되지 않은 경우, 컴포넌트(351)는 복수의 모드 중 어느 하나의 상태로 대기 및/또는 액션을 수행할 수 없어 오류가 발생될 수 있다.
이러한 오류를 방지하기 위하여, 구조모델 정의부(231)는 변수의 초기값을 필수적으로 설정할 수 있다.
한편, 구조체 타입 정의부(235)는, 표 2에서와 같이, 컴포넌트(351)의 확장을 위한 리저브드(reserved) 비트를 구조체 타입에 정의할 수 있다.
도 4는, 도 2의 구조모델을 설명하기 위한 도면이다.
도면을 참조하여 설명하면, 구조모델 정의부(231)는, 구조모델(211)을 정의할 수 있다. 구체적으로 구조모델 정의부(231)는, 컴포넌트(351)에 대해, 객체 및/또는 클래스를 정의할 수 있다.
이때, 컴포넌트(351)는, 무기체계 내장형 소프트웨어 분류체계에서, 컴퓨터 소프트웨어 단위(Computer Software Unit: SCU) 또는, 컴퓨터 소프트웨어 구성요소(Computer Software Component: CSC)일 수 있다.
실시예에 따라, 컴포넌트(351)는, 구조체 타입의 하위 모델일 수 있다. 이 경우, 컴포넌트(351)는, 컴포넌트 타입의 변수를 포함한 다수의 변수를 가질 수 있다.
구조모델(211)은, 이벤트(430)로 구성된 인터페이스(410)를 포함할 수 있다. 실시예에 따라, 구조모델(211)은, 상태머신(611)을 포함할 수도 있다. 이벤트(430)는 복수 개일 수 있다.
인터페이스(410)는, 컴포넌트(351)에 대한, 입력 이벤트의 집합인 입력 인터페이스(411)와, 컴포넌트(351)에 대한 출력 이벤트의 집합인 출력 인터페이스(413)를 포함할 수 있다.
구조모델 정의부(231)는, 컴포넌트(351)에 대한, 복수의 입력 이벤트로 구성된 입력 인터페이스(411)와, 컴포넌트(351)에 대한, 복수의 출력 이벤트로 구성된 출력 인터페이스(413)를 정의할 수 있다.
한편, 구조모델 정의부(231)는, 입력 이벤트 및 출력 이벤트를, 이벤트명(name), 매개변수(param), 액션(action)으로 구성할 수 있다.
구조모델 정의부(231)는, 입력 메시지 및 출력 메시지를, 이벤트를 상속받는 하위 클래스로 설정할 수 있다.
한편, 컴포넌트(351)는, 이벤트(430)가 호출되는 경우, 액션(action)을 수행하고, 다른 컴포넌트(351)와 연결(connection)한 후, 다음 이벤트(430)를 호출할 수 있다.
컴포넌트(351)는 확장해서 사용될 수 있다. 이를 위해, 사용자 데이터그램 프로토콜(User Datagram Protocol: UDP) 컴포넌트(490)가 사용될 수 있다.
UDP 컴포넌트(490)는, UDP 통신을 수행하고, 이벤트(430)를 상속받는 수신 메시지(470)를 처리할 수 있다.
이때, 모델 설정부(230) 내의 구조모델 정의부(231)는, 컴포넌트(351)와 UDP 컴포넌트(490)와의 연결관계를 정의할 수 있다.
컴포넌트(351)는, UDP 컴포넌트(490)와의 구별을 위해 기본 컴포넌트(351)라고 명명할 수도 있다.
UDP 컴포넌트(490)는 구조체 타입의 입력 메시지를 수신하므로, UDP 컴포넌트(490)와 연결된 기본 컴포넌트(351)에 이벤트가 연계적으로 호출될 수 있다.
보다 구체적으로, UDP 컴포넌트(490)는, 이벤트(430)를 상속받은, 구조체 타입의 입력 메시지를 수신 받은 경우, 입력 이벤트의 매개변수를 기초로, 출력 이벤트를 호출할 수 있다.
UDP 컴포넌트(49)의 출력 이벤트가 호출되는 경우, 연결된 기본 컴포넌트(351)의 출력 이벤트가 연계적으로 호출될 수 있다.
도 5는, 도 4의 구조모델의 예시이다.
보다 상세하게는, 도 5a는, 본 발명에 따른, 구조모델(211)에 따라, 무기 제어 콘솔(Weapon Control Console: WCC)을 구현한 예를 나타내는 도면이고, 도 5b는, 도 5a의 UDPIF 컴포넌트의 내부 구현 예를 나타내는 도면이다.
도면을 참조하여 설명하면, 도 5a에서, WCC 컴포넌트(510)는 UDPIF 컴포넌트(530)와 모드 컴포넌트(550)를 포함할 수 있다.
도 5b에서, UDPIF 컴포넌트(530)는 UDP 컴포넌트로 ModeMsg 구조체 타입의 모드변경응답을 UDP 통신으로 입력 받으면, 모드변경응답 메시지의 모드 값을 매개변수로하여 모드변경응답 출력 이벤트를 호출할 수 있다.
또한, UDFIF 컴포넌트(530)의 모드변경응답 이벤트가 호출되는 경우, 연결된 모드 컴포넌트(550)의 모드변경응답 이벤트가 연계적으로 호출될 수 있다.
도 5b에서, ev는 이벤트를 호출하는 액션일 수 있고, send는 UDP 메시지를 송신하는 액션일 수 있다.
도 6은, 도 2의 행위모델을 설명하기 위한 도면이다.
도면을 참조하여 설명하면, 행위모델 정의부(233)는, 행위모델(215)을 정의할 수 있다. 구체적으로 행위모델 정의부(233)는, 컴포넌트(351)에 대해, 객체 또는 클래스의 행위를 정의할 수 있다.
행위모델(215)은, 상태 요소(613), 상태머신(611) 및 전이요소(615)를 포함할 수 있다. 실시예에 따라, 상태머신(611)만을 행위모델(215)이라고 할 수도 있다.
상태 요소(613)는 다수의 상태를 포함할 수 있고 고유의 변수(337)와 진입 액션(623)을 가질 수 있다.
예를 들어, 상태 요소(613)는, 제1 상태에서, 전이요소(615)에 의해서 특정 이벤트가 호출되고, 특정 이벤트가 기설정된 조건(623)에 부합하는 경우, 액션(623)을 수행할 수 있다. 이때, 기설정된 조건(623)은, 각각의 이벤트명일 수 있다. 또한, 상태 요소(613)는 제1 상태를 제1 상태와 상이한 제2 상태로 변경할 수 있다.
실시예에 따라, 행위모델(215)은, 시간 전이요소(617)를 더 포함할 수 있다. 시간 전이요소(617)는, 전이요소(615)의 하위모델로써, 특정 시간에 실행되는 전이일 수 있다.
상태머신(611)은, 상태 요소(613)의 하위모델일 수 있다.
한편, 행위모델(215)은, 입력 이벤트를 수신한 경우, 입력 이벤트의 이벤트명을 기초로, 전이 이벤트를 호출할 수 있다.
행위모델(215)은, 전이 이벤트 또는 상태 이벤트 호출 액션을 수행하는 경우, 입력 이벤트의 이벤트명에 대응하는 출력 이벤트를 출력할 수 있다.
도 7은, 도 6의 행위모델의 예시이다.
보다 상세하게는, 도 7은, 도 5의 운용모드 컴포넌트(550)의 행위모델(215) 구현 예를 나타내는 도면이다.
도면을 참조하여 설명하면, 운용모드 컴포넌트(550)의 초기 상태는 A의 변경완료 상태이다. 다만, 도 7의 변경완료는 하나의 예시일 뿐, 운용모드 컴포넌트(550)는 어느 상태에서든지 모드변경 이벤트를 수신할 수 있다.
운용모드 컴포넌트(550)는, 모드변경 이벤트를 수신하는 경우, 변경요청모드에 수신한 모드 값을 저장하고, 요청횟수를 '0'으로 초기화한 뒤, 상태를 변경 중 상태로 변경할 수 있다.
운용모드 컴포넌트(550)는, 변경 중 상태에 진입하는 경우, 진입 액션(entry_ev)으로 모드변경 이벤트를 호출할 수 있다.
운용모드 컴포넌트(550)는, 변경 중 상태에서, 모드변경응답, 모드변경, 0.1초 경과의 3가지 이벤트를 처리할 수 있다.
운용모드 컴포넌트(550)는, 모드변경응답 이벤트를 수신하는 경우, 현재모드의 값을 변경하여 변경완료 상태가 될 수 있다.
또는, 운용모드 컴포넌트(550)는, 모드변경 이벤트를 재수신하는 경우, 변경 중 상태를 유지할 수 있다.
또는, 운용모드 컴포넌트(550)는, 0.1초가 지나도, 이벤트가 발생하는 않는 경우, 요청횟수를 증가하면서 모드변경 이벤트를 재 호출하고, 6회 이상 응답이 없는 경우, 변경실패 상태가 될 수 있다.
한편, 도 2 내지 도 7에서 설명한 내장형 무기체계 소프트웨어의 실행엔진은, Qt에 의해 구현될 수 있다. Qt는 크로스 플랫폼 프레임워크로, 동적 라이브러리를 적용하기 때문에 한번 구현하면, 윈도우, 리눅스를 비롯하여 리얼타임 OS인 VxWorks, 모바일 플랫폼인 안드로이드 등 다양한 플랫폼에서 실행가능하다는 장점이 있다.
컴포넌트(351)간 이벤트 처리는 Qt의 시그날 슬롯(Signal and Slots)메커니즘이 사용될 수 있다. 이는 종래의 콜백(callback) 방식에 비해 확정성의 장점이 있다.
또한, 프레임워크는 확장되어 전이조건, 액션 실행, 시간전이, 컴포넌트 입출력과의 연동 등을 구현할 수 있다.
액션 및 조건에 사용된 연산들은 Q 스트립트 엔진(QScriptEngine)에 의해 처리 될 수 있다. Q 스트립트 엔진(QScriptEngine)은, C++ 언어와 동일한 Qt 스크립트 언어를 바로 해석하여 결과를 출력하므로, 기본적인 수학 연산을 실시간으로 수행하기에 적합하다.
종래, 무기체계 소프트웨어는, 컴포넌트의 확장 등에 따라, 코드를 새롭게 생성하여야 하기 때문에, 새로 생성된 코드에 대한 신뢰성 시험을 재수행하여야 하는 반면, 본 발명에 따른 내장형 무기체계 소프트웨어를 위한 모델링 장치는, 새로운 코드를 생성하지 않고, 모델이 바뀌어도 실행엔진의 내부 구조에 영향을 주지 않으므로, 한번 신뢰성을 확보한 실행 엔진에 대하여 추가적인 정적/동적 시험을 하지 않아도 되므로, 시간과 노력을 모델의 개발에 더욱 집중할 수 있게 된다.
이상 설명된 본 발명에 따른 실시 예는 컴퓨터상에서 다양한 구성요소를 통하여 실행될 수 있는 컴퓨터 프로그램의 형태로 구현될 수 있으며, 이와 같은 컴퓨터 프로그램은 컴퓨터로 판독 가능한 매체에 기록될 수 있다. 이때, 매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등과 같은, 프로그램 명령어를 저장하고 실행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다.
한편, 상기 컴퓨터 프로그램은 본 발명을 위하여 특별히 설계되고 구성된 것이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수 있다. 컴퓨터 프로그램의 예에는, 컴파일러에 의하여 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함될 수 있다.
본 실시예와 관련된 기술 분야에서 통상의 지식을 가진 자는 상기된 기재의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 방법들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
200: 모델링 장치
210: 모델 구성부
211: 구조모델
215: 행위모델
230: 모델 설정부

Claims (9)

  1. 내장형 무기체계 시스템에 구현된, 컴포넌트에 대해, 상기 컴포넌트의 객체 구조를 모델링하는 구조모델과, 상기 컴포넌트의 객체 행위를 모델링하는 행위모델로 구성하는 모델 구성부; 및
    상기 구조모델 및 행위모델을 정의하는 모델 설정부;를 포함하되,
    상기 모델 설정부는,
    변수를 타입, 메시지명, 기설정된 값 및 초기 값으로 정의하고, 상기 컴포넌트에 대한 입력 메시지 및 출력 메시지를 상기 변수들의 집합인 구조체 타입으로 정의하고,
    상기 타입은 인터페이스 통제 문서(Interface Control Document: ICD)에서 장비간 메시지를 기술하는데 사용되고,
    상기 기설정된 값은 메시지 검증에 사용되고,
    상기 초기 값은 복수의 모드 중 어느 하나의 상태로 대기 또는 액션을 수행할 수 없는 오류를 방지하기 위하여 필수적으로 설정되는 것을 특징으로 하는 내장형 무기체계 소프트웨어를 위한 모델링 장치.
  2. 삭제
  3. 제1항에 있어서,
    상기 모델 설정부는,
    상기 컴포넌트의 확장을 위한 리저브드(reserved) 비트를 상기 구조체 타입에 정의하는 것을 특징으로 하는 내장형 무기체계 소프트웨어를 위한 모델링 장치.
  4. 제1항에 있어서,
    상기 모델 설정부는,
    상기 컴포넌트가 복수개인 경우, 각 컴포넌트의 연결관계를 설정하는 것을 특징으로 하는 내장형 무기체계 소프트웨어를 위한 모델링 장치.
  5. 제1항에 있어서,
    상기 모델 설정부는,
    상기 컴포넌트에 대한, 복수의 입력 이벤트로 구성된 입력 인터페이스와, 상기 컴포넌트에 대한, 복수의 출력 이벤트로 구성된 출력 인터페이스를 정의하는 것을 특징으로 하는 내장형 무기체계 소프트웨어를 위한 모델링 장치.
  6. 제5항에 있어서,
    상기 모델 설정부는,
    상기 입력 이벤트 및 출력 이벤트를, 이벤트명, 매개변수, 액션으로 구성하는 것을 특징으로 하는 내장형 무기체계 소프트웨어를 위한 모델링 장치.
  7. 제1항에 있어서,
    상기 모델 설정부는,
    상기 입력 메시지 및 출력 메시지를, 이벤트를 상속받는 하위 클래스로 설정하는 것을 특징으로 하는 내장형 무기체계 소프트웨어를 위한 모델링 장치.
  8. 제1항에 있어서,
    상기 행위모델은,
    상태 요소, 상기 상태 요소의 하위모델인 상태머신 및 전이요소를 포함하는 것을 특징으로 하는 내장형 무기체계 소프트웨어를 위한 모델링 장치.
  9. 제8항에 있어서,
    상기 행위모델은,
    입력 이벤트를 수신한 경우, 상기 입력 이벤트의 이벤트명을 기초로 전이 이벤트를 호출하고, 상기 전이 이벤트 또는 상태 이벤트를 수행한 경우, 상기 이벤트명에 대응하는 출력 이벤트를 출력하는 것을 특징으로 하는 내장형 무기체계 소프트웨어를 위한 모델링 장치.
KR1020190048672A 2019-04-25 2019-04-25 내장형 무기체계 소프트웨어를 위한 모델링 장치 KR102174433B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190048672A KR102174433B1 (ko) 2019-04-25 2019-04-25 내장형 무기체계 소프트웨어를 위한 모델링 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190048672A KR102174433B1 (ko) 2019-04-25 2019-04-25 내장형 무기체계 소프트웨어를 위한 모델링 장치

Publications (1)

Publication Number Publication Date
KR102174433B1 true KR102174433B1 (ko) 2020-11-04

Family

ID=73571658

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190048672A KR102174433B1 (ko) 2019-04-25 2019-04-25 내장형 무기체계 소프트웨어를 위한 모델링 장치

Country Status (1)

Country Link
KR (1) KR102174433B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101056682B1 (ko) * 2011-04-08 2011-08-12 국방과학연구소 컴포넌트 기반의 무기체계 시뮬레이션 시스템 및 시뮬레이션 방법
KR20150117083A (ko) * 2014-04-09 2015-10-19 한국전자통신연구원 하이브리드 시스템의 모델링 장치
KR101911297B1 (ko) 2018-04-24 2018-10-24 국방과학연구소 기본체계모델을 검증하기 위한 방법 및 장치
KR101916734B1 (ko) * 2018-04-13 2018-11-08 국방과학연구소 교전 시뮬레이션에 이용되는 기본체계모델의 아키텍처 설계방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101056682B1 (ko) * 2011-04-08 2011-08-12 국방과학연구소 컴포넌트 기반의 무기체계 시뮬레이션 시스템 및 시뮬레이션 방법
KR20150117083A (ko) * 2014-04-09 2015-10-19 한국전자통신연구원 하이브리드 시스템의 모델링 장치
KR101916734B1 (ko) * 2018-04-13 2018-11-08 국방과학연구소 교전 시뮬레이션에 이용되는 기본체계모델의 아키텍처 설계방법
KR101911297B1 (ko) 2018-04-24 2018-10-24 국방과학연구소 기본체계모델을 검증하기 위한 방법 및 장치

Similar Documents

Publication Publication Date Title
US11126448B1 (en) Systems and methods for using dynamic templates to create application containers
JP6921206B2 (ja) データベース状態決定方法およびデバイスならびに整合性検証方法およびデバイス
KR20190111037A (ko) 컨소시엄 블록체인에 의한 스마트 계약 업그레이드 방법 및 시스템
US9846570B2 (en) Multi-module compilation system, multi-module compilation method, and non-transitory computer-readable storage medium
CN110633200A (zh) 用于测试智能合约的方法和设备
US20170255458A1 (en) Module system, module based robot system, and update method for module system
CN108733898B (zh) 基于体系架构数据的攻防对抗仿真方法及仿真系统
RU2697948C1 (ru) Система и способ выявления уязвимостей с использованием перехвата вызовов функций
US20100146254A1 (en) Method for binarizing initial script on operating system and operating method of binary script
Apvrille et al. Model-driven engineering for designing safe and secure embedded systems
US10049029B1 (en) Networked multi-interface host debugger
CN113454551A (zh) 用于工业生态系统之间互操作性的自动化代码生成器
CN112631600A (zh) 基于Flutter的软件构建方法和系统
CN111782207A (zh) 任务流代码生成方法、装置、设备及存储介质
CN112882690B (zh) 一种应用开发方法及装置
US10642682B2 (en) Interactive multi-level failsafe enablement
CN112860587B (zh) Ui自动测试方法和装置
KR102174433B1 (ko) 내장형 무기체계 소프트웨어를 위한 모델링 장치
CN111124417B (zh) 工业控制程序的编译方法、装置、计算机设备和存储介质
US9880813B2 (en) RTE code generating method and apparatus performing the same
CN110807195A (zh) 一种智能合约的发布方法、发布平台装置及发布系统
US20230036739A1 (en) Secure container image builds
US9720807B2 (en) Using core files to develop diagnostic programs
CN113434217A (zh) 漏洞扫描方法、装置、计算机设备及介质
CN115858256A (zh) 一种物联网设备的测试方法、装置及电子设备

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant