$\require{mediawiki-texvc}$

연합인증

연합인증 가입 기관의 연구자들은 소속기관의 인증정보(ID와 암호)를 이용해 다른 대학, 연구기관, 서비스 공급자의 다양한 온라인 자원과 연구 데이터를 이용할 수 있습니다.

이는 여행자가 자국에서 발행 받은 여권으로 세계 각국을 자유롭게 여행할 수 있는 것과 같습니다.

연합인증으로 이용이 가능한 서비스는 NTIS, DataON, Edison, Kafe, Webinar 등이 있습니다.

한번의 인증절차만으로 연합인증 가입 서비스에 추가 로그인 없이 이용이 가능합니다.

다만, 연합인증을 위해서는 최초 1회만 인증 절차가 필요합니다. (회원이 아닐 경우 회원 가입이 필요합니다.)

연합인증 절차는 다음과 같습니다.

최초이용시에는
ScienceON에 로그인 → 연합인증 서비스 접속 → 로그인 (본인 확인 또는 회원가입) → 서비스 이용

그 이후에는
ScienceON 로그인 → 연합인증 서비스 접속 → 서비스 이용

연합인증을 활용하시면 KISTI가 제공하는 다양한 서비스를 편리하게 이용하실 수 있습니다.

[국내논문] Spin 모델 검증기를 활용한 내장형 소프트웨어 시뮬레이션
Simulation For Embedded Software Using Spin Model Checker 원문보기

한국정보처리학회 2016년도 춘계학술발표대회, 2016 Apr. 29, 2016년, pp.493 - 496  

박성준 (경북대학교 컴퓨터학부) ,  김동우 (경북대학교 컴퓨터학부) ,  최윤자 (경북대학교 컴퓨터학부)

초록

차량 전장용 소프트웨어의 안정성을 플랫폼 단계에서 테스트 및 검증을 수행하면 많은 비용이 소요된다. 본 연구에서는 플랫폼 단계에서 차량용 내장형 소프트웨어를 테스트하기 이전에 Spin 모델 검증기를 활용하여 전장용 소프트웨어의 기본단위인 타스크들의 행위를 모의 실험함으로써 시스템의 설계오류를 검증할 수 있는 도구를 개발하였다. 본 연구에서는 운영체제와 환경설정 및 제어 프로그램이 수행할 타스크들을 모델로 구축하고, 모델 검증 도구 Spin을 이용하여 타스크의 상태변화를 확인할 수 있었으며, NuSMV를 이용한 방식과 비교하여 다양한 장점들을 확인하였다.

AI 본문요약
AI-Helper 아이콘 AI-Helper

* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.

제안 방법

  • 본 연구에서는 차량 전장용 운영체제의 표준을 따라 정의한 모델과 그 표준에 맞는 환경 설정을 활용하여, 모델 검증할 대상이 되는 차량 전장용 제어 프로그램에서 정의한 Task 시나리오를 모의실험 한 후, 각 Task의 상태의 변화를 확인하여 그에 대한 오류를 사전에 확인 할 수 있는 모의실험 및 결과 가시화 도구를 Spin 모델 검증기를 기반으로 개발하였다. 이전에 개발된 NuSMV 모델 검증기를 기반으로 개발한 도구와 비교하여 실험을 하였을 때 두 도구 간 성능으로써의 차이점을 볼 수 있었으며, 또한 비교 과정에서 동일한 제어 소프트웨어를 공통적인 절차의 흐름에 따라 또 다른 특정 모델 기반의 모의실험 및 가시화 도구를 개발할 수 있는 가능성을 확인하였다.
  • 모델 검증이란 대상 시스템 내에서 일어날 수 있는 모든 행위를 탐색하는 검증 기술을 말한다. 모든 가능한 시스템 시나리오들을 모델 검증 도구를 통해 모의실험을 하며, 특정 속성에 대한 만족 여부를 알 수 있다.
  • 본 도구는 OSEK/VDX 표준에 대한 환경 설정을 위해 OSEK/VDX 구현 언어(OIL)로 작성된 코드를 사용하여 ProMeLa로 미리 작성된 차량 전장용 운영체제 모델 코드에 적용을 한다. 이 OIL로 작성된 코드는 Task, Resource, 그리고 Event에 대한 속성들과 OSEK/VDX 운영체제의 실행 환경에 대한 속성들이 기술되어 있으며, 이는 ProMeLa로 최종적으로 작성되는 모델을 가상 수행 시 Task 스케줄링에 대한 요소 사용된다.
  • 이를 수행하기 위해서 Melon은 어플리케이션을 CFG의 형태로 생성하고, 깊이 우선탐색을 하여 모든 실행경로를 파악하며, 각 실행경로에서 API 호출을 추출하여 API 호출 시퀀스를 만든 후 각 API 호출 시퀀스를 검증한다.
  • 본 도구에서는 Melon의 API 호출 시퀀스 추출 모듈을 활용하여 각 Task의 API 호출 시퀀스를 파악하였으며, 이와 운영체제 모델을 함께 연동하여 모의실험 모델을 생성한다.
  • 우선 OSEK/VDX 표준에 맞춘 ProMeLa로 작성된 운영체제 모델을 생성하기 위해 선행 연구에서 개발된 도구[3]를 통해 검증 대상 프로그램 코드에서 각 task 별 API 호출 순서를 추출한 후 이를 가공하여 운영체제 모델 코드를 완성한다. 이 때 Task, Resource, Event 등의 환경 정보 역시 적용된다.
  • Spin 검증 결과출력물을 한 줄씩 분석하는데 이 때 각 줄을 특정한 정규표현식으로 검사한다. 예를 들어 “Send 1,ActivateTask,2,0 -> queue 1 (api_ch)”라는 문장의 경우 TrailElement의 callerNumber는 1이되며, OsekApiKind는 ActivateTask이, 그리고 parameter1의 값은 2로 하여 TrailElement 객체를 완성한 후, 이 객체들을 List로 TrailWrapper가 가지고 있는다.
  • 이 TrailElement 객체들 각각은 Task 모의실험 상에서 각각의 Simulation 수행 중의 시점 별 정보를 제공하며, 정보 중 Task들의 상태 및 호출된 API 정보를 시각화하는데 이용한다. TrailElement 리스트에서 인접한 객체 간 Task 상태 변화 및 그 원인이 되는 API 호출자와 그 매개변수를 막대그래프 형식으로 나타내도록 하였다.
  • 모델 검증 성능을 비교하기 위해 NuSMV Task Simulation과 Spin Task Simulation 도구로 모델 검증하는데 소요되는 시간을 측정하였다. 표 1은 두 도구로 각 대상 프로그램들을 시뮬레이션하였을 때 걸린 시간을 비교한 것이다.

대상 데이터

  • 실험에서는 임의로 생성된 검증대상들을 본 도구에 입력하여 모의실험을 통한 결과를 NuSMV Task Simulation 도구와 비교 및 분석하였다. 실험 대상들은 C 언어로 작성된 프로그램 코드이며 약 100 LOC 정도이다.

데이터처리

  • 이 때, 운영체제 모델은 미리 정의되어 있어 모델에 대한 작업은 따로 필요가 없으며, 환경 설정에 따라 이 모델에 차량 전장용 응용 프로그램 소스코드로부터 추출된 Task의 속성들을 적용하여 최종적으로 Task를 모의 실험할 ProMeLa 기반 운영체제 모델을 생성한다. 이를 Spin을 통해 Task를 모의로 실험한 결과에 대한 상태 변이에 대한 정보를 분석하여 그 결과를 GUI를 통해 시각적으로 보여준다. 각 부분에 대한 상세설명은 다음 장에서 한다.
  • 2. 실험

    실험에서는 임의로 생성된 검증대상들을 본 도구에 입력하여 모의실험을 통한 결과를 NuSMV Task Simulation 도구와 비교 및 분석하였다. 실험 대상들은 C 언어로 작성된 프로그램 코드이며 약 100 LOC 정도이다.

이론/모형

  • 최종 ProMeLa 모델을 생성하기 위해, 선행 연구에서 개발한 도구인 Melon[3]을 이용하여 검증 대상 프로그램의 소스코드로부터 Task 별 API 호출 순서를 추출하였다.
  • 최종적으로 생성된 ProMeLa 기반 운영체제 모델은 그림 5와 같은 구조로 되어 있으며, 이 모델을 대상으로 Spin 모델 검증 도구를 이용하여 본 모의 실험을 수행한다.
  • 본 도구는 Java 언어를 기반으로 하였으며 통합 개발 IDE인 Eclipse를 사용하였다.
  • 이렇게 완성된 ProMeLa 모델을 Spin Model Checker를 이용해 검증을 시도한다. 이 때, 각 Task간에는 메시지 채널링이 일어나면서 API 호출을 모방한다.
본문요약 정보가 도움이 되었나요?

질의응답

핵심어 질문 논문에서 추출한 답변
차량 전장용 제어 소프트웨어 테스트의 비용 문제를 절감할 수 있는 방법은 무엇인가? 실제 차량 전장용 제어 소프트웨어를 테스트하기 위해서 해당 운영체제에 환경 설정을 한 후 하드웨어 플랫폼 위에 탑재하여 수행시킴으로서 행위를 파악 및 검증하기에는 상당한 비용이 들며, 응용 프로그램만을 보고서 행위를 파악하는데 쉽지가 않다. 그러나 시스템 테스트 단계 전에 하드웨어 플랫폼과 독립적인 소프트웨어 행위 영역을 사전 검증한다면 플랫폼에 탑재 후의 테스트 비용을 절감할 수 있다.
차량 전장용 제어 소프트웨어 테스트의 문제점은 무엇인가? 실제 차량 전장용 제어 소프트웨어를 테스트하기 위해서 해당 운영체제에 환경 설정을 한 후 하드웨어 플랫폼 위에 탑재하여 수행시킴으로서 행위를 파악 및 검증하기에는 상당한 비용이 들며, 응용 프로그램만을 보고서 행위를 파악하는데 쉽지가 않다. 그러나 시스템 테스트 단계 전에 하드웨어 플랫폼과 독립적인 소프트웨어 행위 영역을 사전 검증한다면 플랫폼에 탑재 후의 테스트 비용을 절감할 수 있다.
제어 소프트웨어의 안정성을 검증하는 것이 매우 중요한 이유는 무엇인가? 최근 차량 기술의 발전에 따라 내부 전자 장비의 기술이 시장을 좌우할 만큼 그 제어 소프트웨어의 비중이 커지고 있다. 차량에서 이러한 제어 소프트웨어는 생명과 직결되어 있기 때문에 그 안전성을 검증하는 것은 매우 중요한 일이다.
질의응답 정보가 도움이 되었나요?

관련 콘텐츠

저작권 관리 안내
섹션별 컨텐츠 바로가기

AI-Helper ※ AI-Helper는 오픈소스 모델을 사용합니다.

AI-Helper 아이콘
AI-Helper
안녕하세요, AI-Helper입니다. 좌측 "선택된 텍스트"에서 텍스트를 선택하여 요약, 번역, 용어설명을 실행하세요.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.

선택된 텍스트

맨위로