KR101918364B1 - 컴포넌트 기반 시스템에 대한 실시간 적합성 검사 방법 및 장치 및 컴퓨터 판독 가능한 저장 매체 - Google Patents

컴포넌트 기반 시스템에 대한 실시간 적합성 검사 방법 및 장치 및 컴퓨터 판독 가능한 저장 매체 Download PDF

Info

Publication number
KR101918364B1
KR101918364B1 KR1020160165912A KR20160165912A KR101918364B1 KR 101918364 B1 KR101918364 B1 KR 101918364B1 KR 1020160165912 A KR1020160165912 A KR 1020160165912A KR 20160165912 A KR20160165912 A KR 20160165912A KR 101918364 B1 KR101918364 B1 KR 101918364B1
Authority
KR
South Korea
Prior art keywords
time
real
component
input
components
Prior art date
Application number
KR1020160165912A
Other languages
English (en)
Other versions
KR20180065289A (ko
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 KR1020160165912A priority Critical patent/KR101918364B1/ko
Publication of KR20180065289A publication Critical patent/KR20180065289A/ko
Application granted granted Critical
Publication of KR101918364B1 publication Critical patent/KR101918364B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2289Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by configuration test
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

컴포넌트 기반 시스템에 대한 실시간 적합성 검사 방법 및 장치 및 컴퓨터 판독 가능한 저장 매체가 개시된다. 컴포넌트 기반 시스템에 대한 실시간 적합성 검사 방법은, 상기 시스템을 구성하는 컴포넌트들을 테스트하기 위한 테스트 케이스들을 생성하는 단계; 상기 생성된 테스트 케이스들에 기초하여 상기 컴포넌트들을 테스트하는 것에 의해 각 테스트 케이스에 대한 컴포넌트의 수행 사이클 수를 계산하는 단계; 상기 계산된 컴포넌트의 수행 사이클 수에 기초하여 컴포넌트들의 최악 수행 시간(Worst-Case Execution Time, WCET)을 계산하는 단계; 및 상기 계산된 컴포넌트들의 최악 수행 시간과 상기 컴포넌트들의 입출력 연관관계 정보에 기초하여 상기 시스템의 실시간 적합성 여부를 판단하는 단계를 포함할 수 있다.

Description

컴포넌트 기반 시스템에 대한 실시간 적합성 검사 방법 및 장치 및 컴퓨터 판독 가능한 저장 매체{REAL-TIME CONFORMANCE TESTING METHOD AND APPARATUS FOR SYSTEM BASED ON COMPONENT, AND COMPUTER-READABLE RECORDING MEDIUM FOR THE SAME}
아래의 설명은 컴포넌트 기반 시스템에 대한 실시간 적합성 검사 방법 및 장치 및 컴퓨터 판독 가능한 저장 매체에 관한 것이다.
통계적 분석 기법과 측정 기반의 분석 기법은 프로그램을 시뮬레이터 혹은 하드웨어 상에서 동작시키기 때문에 수행 시간 분석에 소요되는 시간이 크다는 문제점이 있다.
또한, 측정 기반 분석 기법은 프로그램 수행에 사용되는 테스트 케이스에 의존할 수밖에 없다. 이때, 사용되는 테스트 케이스는 시스템의 최대 수행 경로를 실행시켜야 하는데 그에 대한 분석은 컴포넌트 기반 시스템에서 정확한 분석이 어렵다.
일 실시예에 따른 컴포넌트 기반 시스템에 대한 실시간 적합성 검사 방법은, 상기 시스템을 구성하는 컴포넌트들을 테스트하기 위한 테스트 케이스들을 생성하는 단계; 상기 생성된 테스트 케이스들에 기초하여 상기 컴포넌트들을 테스트하는 것에 의해 각 테스트 케이스에 대한 컴포넌트의 수행 사이클 수를 계산하는 단계; 상기 계산된 컴포넌트의 수행 사이클 수에 기초하여 컴포넌트들의 최악 수행 시간(Worst-Case Execution Time, WCET)을 계산하는 단계; 및 상기 계산된 컴포넌트들의 최악 수행 시간과 상기 컴포넌트들의 입출력 연관관계 정보에 기초하여 상기 시스템의 실시간 적합성 여부를 판단하는 단계를 포함할 수 있다.
일 실시예에 따른 상기 실시간 적합성 여부를 판단하는 단계는, 상기 계산된 컴포넌트들의 최악 수행 시간과 상기 컴포넌트들의 입출력 연관관계 정보에 기초하여 상기 시스템의 입력에서 출력까지 연결된 컴포넌트들의 전체 최악 수행 시간을 결정하는 단계; 및 상기 전체 최악 수행 시간에 기초하여 상기 시스템의 실시간 적합성 여부를 판단하는 단계를 포함할 수 있다.
일 실시예에 따른 상기 실시간 적합성 여부를 판단하는 단계는, 각 컴포넌트의 출력에 대한 출력 계산 시간이 미리 정해진 제약 시간보다 작은지 여부에 기초하여 상기 시스템의 실시간 적합성 여부를 판단할 수 있다.
일 실시예에 따른 상기 출력 계산 시간은, 출력 계산 시간 누적 함수 또는 입력 도달 시간 누적 함수를 이용하여 생성되는 것을 특징으로 할 수 있다.
일 실시예에 따른 상기 출력 계산 시간 누적 함수는, 상기 각 컴포넌트의 출력에 관한 입력들의 입력 도달 시간의 최댓값을 누적시키는 것을 특징으로 할 수 있다.
일 실시예에 따른 상기 입력 도달 시간 누적 함수는, 상기 각 컴포넌트의 출력에 관한 입력의 최종 도달 시간을 누적시키는 것을 특징으로 할 수 있다.
일 실시예에 따른 상기 최악 수행 시간을 계산하는 단계는, 각 컴포넌트의 입력 데이터의 입력 도달 시간 및 각 컴포넌트의 출력 데이터에 대한 출력 계산 시간에 기초하여 상기 최악 수행 시간을 계산하는 것을 특징으로 할 수 있다.
일 실시예에 따른 컴포넌트 기반 시스템에 대한 실시간 적합성 검사 방법은, 상기 판단 결과, 컴포넌트의 실시간 적합성이 부적합하다고 판단된 경우, 상기 컴포넌트의 입력 도달 시간 또는 출력 계산 시간을 수정하는 단계를 더 포함할 수 있다.
일 실시예에 따른 상기 최악 수행 시간을 계산하는 단계는, 컴포넌트의 최대 수행 사이클 수와 중앙 프로세서 유닛(central processing unit; CPU)의 클록 속도에 기초하여 결정되는 것을 특징으로 할 수 있다.
일 실시예에 따른 상기 테스트 케이스들을 생성하는 단계는, 컴포넌트들의 입출력 연관관계 정보와 상기 컴포넌트들의 입출력 타이밍 정보에 기초하여 테스트 케이스들을 생성하는 것을 특징으로 할 수 있다.
일 실시예에 따른 컴퓨터 판독 가능한 저장 매체는, 상기 일 실시예에 따른 방법 중 어느 하나의 일 실시예의 방법을 실행하기 위한 인스트럭션들을 저장할 수 있다.
일 실시예에 따른 컴포넌트 기반 시스템에 대한 실시간 적합성 검사 장치는, 상기 시스템을 구성하는 컴포넌트들을 테스트하기 위한 테스트 케이스들을 생성하는 테스트 케이스 생성기; 상기 생성된 테스트 케이스들에 기초하여 상기 컴포넌트들을 테스트하는 것에 의해 각 테스트 케이스에 대한 컴포넌트의 수행 사이클 수를 계산하는 테스트 실행기; 및 상기 계산된 컴포넌트의 수행 사이클 수에 기초하여 컴포넌트들의 최악 수행 시간(Worst-Case Execution Time, WCET)을 계산하고, 상기 계산된 컴포넌트들의 최악 수행 시간과 상기 컴포넌트들의 입출력 연관관계 정보에 기초하여 상기 시스템의 실시간 적합성 여부를 판단하는 테스트 결과 분석기를 포함할 수 있다.
일 실시예에 따른 컴포넌트 기반 시스템에 대한 실시간 적합성 검사 장치는, 상기 판단 결과, 컴포넌트의 실시간 적합성이 부적합하다고 판단된 경우, 상기 컴포넌트의 입력 도달 시간 또는 출력 계산 시간을 수정하는 타이밍 정보 분석부를 더 포함할 수 있다.
도 1은 일 실시예에 따른 컴포넌트 기반 시스템에 대한 실시간 적합성 검사 방법의 전체적인 구성을 도시한 도면이다.
도 2는 일 실시예에 따른 컴포넌트 기반 시스템에 대한 실시간 적합성 검사 방법을 도시한 흐름도이다.
도 3a는 일 실시예에 따른 컴포넌트 기반 시스템에 대한 실시간 적합성 검사 방법의 세부 구성을 도시한 도면이다.
도 3b는 일 실시예에 따른 컴포넌트 기반 시스템에 대한 실시간 적합성 검사 방법의 흐름을 도시한 도면이다.
도 4는 일 실시예에 따른 실시간 적합성 검사 방법의 WCET 분석 동작 예시의 시스템 모델을 도시한 도면이다.
도 5는 일 실시예에 따른 실시간 적합성 검사 방법의 컴포넌트 기반 네비게이션 시스템을 도시한 도면이다.
도 6은 일 실시예에 따른 실시간 적합성 검사 방법의 WCET 분석 기법 알고리즘 구현 코드 동작 결과를 도시한 도면이다.
도 7은 일 실시예에 따른 실시간 적합성 검사 방법의 수정 방안 자동 분석 알고리즘 수행 결과를 도시한 도면이다.
도 8은 일 실시예에 따른 실시간 적합성 검사 방법의 실시간 테스트 실험 모델로서 CNN 기반 댄싱 로봇 시스템을 도시한 도면이다.
도 9는 일 실시예에 따른 실시간 적합성 검사 방법의 최악 상황 수행 시간 분석 결과를 도시한 도면이다.
도 10은 일 실시예에 따른 실시간 적합성 검사 방법의 수행 시간 분포를 도시한 도면이다.
도 11은 일 실시예에 따른 실시간 적합성 검사 방법의 수정 방안 자동 분석 기법 구현 코드 수행 결과를 도시한 도면이다.
도 12는 일 실시예에 따른 컴포넌트 기반 시스템에 대한 실시간 적합성 검사 장치를 도시한 블록도이다.
실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 실시될 수 있다. 따라서, 실시예들은 특정한 개시형태로 한정되는 것이 아니며, 본 명세서의 범위는 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 실시예들을 첨부된 도면들을 참조하여 상세하게 설명한다. 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고, 이에 대한 중복되는 설명은 생략하기로 한다.
도 1은 일 실시예에 따른 컴포넌트 기반 시스템에 대한 실시간 적합성 검사 방법의 전체적인 구성을 도시한 도면이다.
실시간 시스템은 수행 시간을 미리 분석하여, 예측하는 것이 중요하다. 최악 상황에서 실시간 시스템이 수행될 때, 결과가 산출되기까지의 시간을 최악 상황 수행 시간(Worst-Case Execution Time, WCET)이라고 한다.
최악 상황 수행 시간을 분석하는 기법은 소스 코드 사용 유무에 따라 정적 분석(Static analysis, SA), 측정 기반 분석(Measurement based analysis, MBA), 정적 분석 방법과 측정 기반 방식을 모두 사용하는 하이브리드 측정 기반 분석(Hybrid Measurement based analysis, HMBA)의 방식을 이용할 수도 있다.
컴포넌트 기반 시스템을 구성하는 각각의 컴포넌트들은 서로 다른 컴포넌트 개발자들에 의해 개발되고, 구성된 이후 필요에 의해 다른 컴포넌트로 교체되거나 재구성될 수 있다. 개발된 컴포넌트가 클라이언트로 배포될 때, 컴포넌트 개발자의 지적 재산권을 보호하기 위해 소스 코드는 함께 배포하지 않는다.
따라서, 단위 컴포넌트에 대한 수행 시간 분석에서 소스 코드를 분석에 사용하는 정적 분석 기법이나 하이브리드 측정 기반 분석 기법을 적용하기 힘들 수도 있다.
정적 분석 기법과 하이브리드 측정 기반 분석 기법의 문제점을 개선한 컴포넌트 기반 시스템의 단위 컴포넌트 실시간 신뢰성을 보장할 수 있으며, 컴포넌트 기반 시스템 전체의 실시간성 보장을 할 수 있는, 컴포넌트 기반 시스템 전체의 통합 수행 시간으로서 종단 간 수행 시간을 분석하여 실시간 신뢰성을 보장하기 위한 방식이 필요하다.
컴포넌트 기반 시스템의 종단 간 수행 시간 분석으로서, 시스템 전체의 실시간 신뢰성 보장을 위한 수행 시간 분석 기법들을 이용할 수 있다. 통계적 분석 기법을 통해 시스템의 수행 시간 확률 분포를 생성하고, 분포를 토대로 신뢰성을 측정하고, 측정 기반의 수행 시간 분석 기법으로 컴포넌트 기반 시스템의 수행 시간 분석에 적용할 수 있다. 또한, 시스템 모델을 분석하여, 종단 간 수행 시간을 분석할 수 있다.
통계적 분석 기법과 측정 기반의 분석 기법은 프로그램을 시뮬레이터 혹은 하드웨어 상에서 동작시키기 때문에 수행 시간 분석에 소요되는 시간이 크며, 측정 기반 분석 기법은 프로그램 수행에 사용되는 테스트 케이스에 의존할 수밖에 없다. 이때, 사용되는 테스트 케이스는 시스템의 최대 수행 경로를 실행시켜야 하는데 그에 대한 분석은 컴포넌트 기반 시스템에서 정확한 분석이 어렵다.
표 1을 참조하면, 보완된 제안하는 기법의 특징을 알 수 있다.
Figure 112016120076669-pat00001
제안하는 기법은, 데이터 전달에 소요되는 시간을 고려하여, 보다 복잡하게 구성된 컴포넌트 기반 시스템에 적용 가능한 WCET 분석 기법을 이용할 수 있다. WCET 분석을 통한 실시간 검증 기법에서는 시간 제약 조건을 만족하는지 여부를 판단할 수 있으며, 실시간 적합성 유무에 따라 사용자가 시스템을 수정하고자 할 때, 어떤 컴포넌트를 수정해야 하는지 컴포넌트의 어떤 처리 과정의 계산 시간 효율을 높여야 하는지 여부도 판단할 수 있다. 실시간 검증 시 실시간 적합성 만족을 위한 분석 기법을 이용하여, 소프트웨어 시스템의 유지보수 비용을 절감할 수 있는 장점을 제공할 수 있다.
도 1을 참조하면, 컴포넌트 기반 시스템에 대한 실시간 적합성 검사 방법의 동작 구성을 알 수 있다. 테스트 수행자는 컴포넌트 기반 시스템의 기능 및 실시간성 검증을 위한 컴포넌트 입출력 연관관계와 각 개별 컴포넌트의 입출력 타이밍 정보, 각 테스트 케이스에 대한 예상 결과 값을 입력으로 제공할 수 있다.
최종적으로 기능의 정확성과 실시간 적합성을 검증하여 그 결과를 받을 수 있다. 이때, 기능의 정확성 및 모듈의 수행 시간은 제안하는 조합 테스트 기법을 통해 생성한 테스트 케이스에 대해 동적 테스트를 수행하여 그 결과를 얻으며, 실시간 적합성은 정적 분석으로 수행될 수 있다.
실시간 적합성 검사 방법은 컴포넌트 기반 실시간 시스템의 최악 상황 수행 시간 분석에 정적 분석 기법과 하이브리드 분석 기법을 적용하기 힘들다는 점을 개선하고, 모델 기반 분석 기법을 이용할 수 있다.
실시간 적합성 검사 방법은 컴포넌트 기반 시스템의 최악 상황 수행 시간 분석 기법에서 모델 기반 분석 기법이 복잡한 시스템 모델에 적용하기 힘들다는 점을 개선하고, 컴포넌트의 재사용성을 활용한 효율적인 실시간 검증을 할 수 있다. 또한, 실시간 적합성 검사 방법은 기존의 연구에서는 행하여지지 않았던 제약 조건을 만족하기 위한 소프트웨어 시스템의 수정 방안을 자동으로 분석할 수도 있다.
실시간 적합성 검사 방법의 실시간 테스트 기법은 컴포넌트 기반 시스템의 최악 상황 수행 시간 분석 기법에서 모델 기반 분석 기법이 복잡한 시스템 모델에 적용하기 힘들다는 점을 개선하고, 컴포넌트의 재사용성을 활용한 효율적인 실시간 검증을 할 수 있다. 또한, 실시간 적합성 검사 방법은 병렬 수행, 컴포넌트 인터페이스 간의 복잡한 연결 등을 포함하는 시스템 모델에 적용할 수도 있다는 장점이 있다.
실시간 적합성 검사 방법은 WCET 분석 과정에서 제약 조건과 WCET의 관계를 표현하는 제약 조건 부등식을 생성하며, 실시간 적합성을 만족하지 않을 때, 제약 조건 부등식을 이용하여 시스템의 실시간 적합성을 만족하기 위한 수정 방안을 자동으로 분석할 수 있다. 또한, 실시간 적합성 검사 방법의 시스템 수정 방안 자동 분석 기법은 기존의 기법에서는 소개된 바가 없으며, 본 기법을 통해 실시간 적합성 검사에서 그치지 않고, 시스템 유지보수의 시간을 감축할 수 있다는 장점이 있다.
도 2는 일 실시예에 따른 컴포넌트 기반 시스템에 대한 실시간 적합성 검사 방법을 도시한 흐름도이다.
도 2를 참조하면, 실시간 적합성 검사 장치가 수행하는, 컴포넌트 기반 시스템에 대한 실시간 적합성 검사 방법은 하기와 같은 단계를 포함할 수 있다.
단계(210)에서, 실시간 적합성 검사 장치는 시스템을 구성하는 컴포넌트들을 테스트하기 위한 테스트 케이스들을 생성할 수 있다. 실시간 적합성 검사 장치는 컴포넌트들의 입출력 연관관계 정보와 컴포넌트들의 입출력 타이밍 정보에 기초하여 테스트 케이스들을 생성할 수 있다. 생성된 테스트 케이스들은 각 단위 컴포넌트에 대한 입출력 연관관계 기반의 적응형 테스트 케이스들일 수도 있다. 또한, 컴포넌트들은 입력 또는 출력 목록을 포함하고, 외부 입력 또는 내부에서 파생되었는지를 구분하는 속성을 포함할 수 있다.
경우에 따라서, 실시간 적합성 검사 장치는 입력의 도달시 소요 시간, 또는 내부 입력일 경우, 입력을 파생시킨 출력의 속성을 이용할 수 있다. 실시간 적합성 검사 장치는 출력의 계산에 소요되는 시간의 속성과 출력의 계산에 영향을 주는 연관관계를 갖는 입력 집합을 이용할 수도 있다.
단계(220)에서, 실시간 적합성 검사 장치는 생성된 테스트 케이스들에 기초하여 컴포넌트들을 테스트하는 것에 의해 각 테스트 케이스에 대한 컴포넌트의 수행 사이클 수를 계산할 수 있다.
단계(230)에서, 실시간 적합성 검사 장치는 계산된 컴포넌트의 수행 사이클 수에 기초하여 컴포넌트들의 최악 수행 시간(Worst-Case Execution Time, WCET)을 계산할 수 있다. 실시간 적합성 검사 장치는 최악 상황 수행 시간 분석 알고리즘(WCET Analysis Algorithm)을 이용하여, 컴포넌트들의 최악 수행 시간을 계산할 수도 있다. 최악 상황 수행 시간 분석 알고리즘의 입력은 컴포넌트들이고, 출력은 (출력, 출력의 최대 계산 시간)을 엔트리로 하는 맵 타입 변수일 수 있다.
실시간 적합성 검사 장치는 각 컴포넌트의 입력 데이터의 입력 도달 시간 및 각 컴포넌트의 출력 데이터에 대한 출력 계산 시간에 기초하여 최악 수행 시간을 계산할 수 있다. 실시간 적합성 검사 장치는 컴포넌트의 최대 수행 사이클 수와 중앙 프로세서 유닛(central processing unit; CPU)의 클록 속도에 기초하여 결정되도록, 최악 수행 시간을 계산할 수도 있다.
단계(240)에서, 실시간 적합성 검사 장치는 계산된 컴포넌트들의 최악 수행 시간과 컴포넌트들의 입출력 연관관계 정보에 기초하여 컴포넌트 기반 시스템의 실시간 적합성 여부를 판단할 수 있다. 일 예에서, 실시간 적합성 검사 장치는 컴포넌트들의 최악 수행 시간과 컴포넌트의 연관 관계 정보에 기초하여 컴포넌트 기반 시스템의 입력에서 출력까지 연결된 컴포넌트들의 전체 최악 수행 시간을 결정하고, 전체 최악 수행 시간과 기준 값을 비교하여 컴포넌트 기반 시스템의 실시간 적합성 여부를 판단할 수 있다. 실시간 적합성 검사 장치는 컴포넌트 기반 시스템의 입력에서 출력까지 연결된 컴포넌트들의 최악 수행 시간을 더함으로써 전체 최악 수행 시간을 계산할 수 있다.
실시간 적합성 검사 장치는 각 컴포넌트의 출력에 대한 출력 계산 시간이 미리 정해진 제약 시간보다 작은지 여부에 기초하여 컴포넌트 기반 시스템의 실시간 적합성 여부를 판단할 수도 있다.
출력 계산 시간은, 출력 계산 시간 누적 함수(AnalyzeComputingTime) 또는 입력 도달 시간 누적 함수(AnalyzeArrivalTime)를 이용하여 생성될 수 있다. 출력 계산 시간 누적 함수는, 각 컴포넌트의 출력에 관한 입력들의 입력 도달 시간의 최댓값을 누적시킬 수 있다. 한편, 입력 도달 시간 누적 함수는, 각 컴포넌트의 출력에 관한 입력의 최종 도달 시간을 누적시킬 수 있다.
경우에 따라서, 실시간 적합성 검사 장치는 판단 결과, 컴포넌트의 실시간 적합성이 부적합하다고 판단된 경우, 컴포넌트의 입력 도달 시간 또는 출력 계산 시간을 수정할 수도 있다.
도 3a는 일 실시예에 따른 컴포넌트 기반 시스템에 대한 실시간 적합성 검사 방법의 세부 구성을 도시한 도면이다.
도 3a를 참조하면, 소프트웨어 모듈로 구성된 실시간 적합성 검사 장치의 실시간 적합성 판단 시스템의 구성을 알 수 있다.
테스트 수행자(Tester)는 소프트웨어(SW) 모듈 기반 시스템의 기능 및 실시간성 검증을 위한 소프트웨어 모듈 입출력 연관관계와 각 개별 소프트웨어 모듈의 입출력 타이밍 정보, 각 테스트 케이스에 대한 예상 결과 값을 실시간 적합성 검사 장치에 테스트 수행자의 단말을 통하거나 실시간 적합성 검사 장치의 입력 장치에 입력할 수 있다.
실시간 적합성 검사 장치는 최종적으로, 기능의 정확성, 실시간 적합성을 만족하지 않을 때의 조치 방안에 대하여 검증할 수 있다. 즉, 실시간 적합성 검사 장치는 테스트케이스 생성기를 포함하고, 소프트웨어 모듈 입출력 연관관계(I/O relationship)와 각 개별 소프트웨어 모듈들을 테스트할 수 있다.
실시간 적합성 검사 장치는 각 테스트 케이스에 대한 소프트웨어 모듈의 수행 사이클 수를 구할 수 있다. 또한, 실시간 적합성 검사 장치는 수행 사이클로부터 WCET에 해당되는 최대 수행 사이클 수를 얻을 수도 있다. 실시간 적합성 검사 장치는 WCET를 "최대 수행 사이클 수/CPU 클록 속도"로 계산함으로써 도출할 수도 있다.
실시간 적합성 검사 장치는 각 소프트웨어 모듈의 WCET와 입출력(I/O) 연관관계를 통하여 실시간 시스템의 소프트웨어 모듈들의 실시간 적합성 여부를 판단할 수 있다. 또한, 실시간 적합성 검사 장치는 필요시 시스템 수정 방안도 제공할 수도 있다.
도 3b는 일 실시예에 따른 컴포넌트 기반 시스템에 대한 실시간 적합성 검사 방법의 흐름을 도시한 도면이다.
실시간 적합성 검사 장치가 수행하는, 컴포넌트 기반 시스템에 대한 실시간 적합성 검사 방법은 하기와 같은 단계를 포함할 수도 있다.
단계(310)에서, 실시간 적합성 검사 장치는 각 단위 컴포넌트에 대한 입출력 연관관계 기반의 적응형 테스트 케이스를 생성할 수 있다. 단계(320)에서, 실시간 적합성 검사 장치는 각 단위 컴포넌트에 대한 테스트 수행을 하고, WCET를 측정할 수 있다.
단계(330)에서, 실시간 적합성 검사 장치는 컴포넌트 기반 실시간 시스템의 전체에 대하여 테스트 케이스를 생성할 수 있다. 단계(340)에서, 실시간 적합성 검사 장치는 테스트 수행을 하고, 예상 결과 만족 여부를 판단할 수 있다.
단계(350)에서, 실시간 적합성 검사 장치는 테스트 수행 결과와 예상 결과를 비교하여, 기능 검증에 대한 리포트를 생성할 수 있다.
단계(360)에서, 실시간 적합성 검사 장치는 단위 컴포넌트 입출력 WCET를 이용하여, 시스템 종단 간 WCET를 측정할 수 있다. 단계(370)에서, 실시간 적합성 검사 장치는 실시간 수행 적합성을 검증할 수 있다.
단계(380)에서, 실시간 적합성 검사 장치는 실시간 수행 적합성 검증 결과가 만족인지, 아니면 불만족인지 여부를 판단할 수 있다.
단계(390)에서, 실시간 적합성 검사 장치는 실시간 수행 적합성 검증 결과가 불만족일 경우, 실시간 수행 적합성 만족을 위한 시스템 수정 방안을 도출할 수 있다. 수정 방안은 수정된 단위 컴포넌트 입출력 WCET 최댓값을 포함하거나 이용할 수 있다.
단계(391)에서, 실시간 적합성 검사 장치는 실시간 수행 적합성 검증 결과가 만족일 경우, 실시간 수행 적합성 만족 리포트를 생성할 수 있다. 단계(392)에서, 실시간 적합성 검사 장치는 기능 검증과 실시간 검증 시스템 개발자에게 리포트를 인계할 수도 있다.
컴포넌트 기반 시스템에 대한 실시간 적합성 검사 방법은 기존의 문제점들을 개선한 실시간 시스템의 실시간 적합성 판단 기법으로서, 소프트웨어 모듈 혹은 컴포넌트의 WCET를 테스트케이스별 측정하여 클록수를 이용하여 계산할 수 있다.
실시간 적합성 검사 방법은 소프트웨어 모듈 혹은 컴포넌트의 WCET를 활용하여 전체 소프트웨어 모듈 간의 구성 혹은 연결을 기반으로 데이터 흐름에 의한 시간 소요 정도를 계산하여 실시간 적합성 판단을 할 수 있다. 즉, 실시간 적합성 검사 방법은 컴포넌트 기반 시스템의 최악 수행 시간, 하나의 입력에서 관련 출력이 될 때까지 최대 수행시간을 분석하여 실시간 적합성을 판단하고 필요시 신뢰성을 보장할 수 있다는 장점이 있다.
실시간 적합성 검사 방법은 다양한 제어 시스템 및 로봇 시스템과 같은 실시간 시스템에서 사용되는 소프트웨어 모듈 혹은 컴포넌트들의 조합에 의한 실시간 적합성을 쉽게 판단함으로써, 소프트웨어 모듈 혹은 컴포넌트들의 수행을 실시간에 맞도록 다중 코어 혹은 다중 보드에 분산 배치하도록 할 수 있다는 장점이 있다. 또한, 실시간 적합성 검사 방법은 실제로 기존 방식의 비용과 시간을 많이 절약할 수 있을 뿐만 아니라, CPU의 동작 클록이 달라지더라도 실시간 적합성을 판단할 수 있기 때문에, 실시간 시스템에 매우 유용하다는 장점이 있다.
컴포넌트 기반 시스템 실시간 테스트 기법
실시간 적합성 검사 방법은 컴포넌트 기반 시스템의 실시간 테스트 기법을 이용하여 시스템의 WCET를 분석하고, 제약 조건과 WCET 분석 결과를 비교하여 실시간 적합성을 판단할 수 있다. 실시간 적합성 검사 방법은 실시간 적합성 판단 결과가 부적합하다고 판단될 때, 프로그램의 특정 입력 도달 시간 또는 출력 계산 시간을 수정하여 실시간 적합성을 만족시킬 수 있도록 하는 타이밍 정보를 자동으로 분석할 수 있다.
실시간 적합성 검사 방법은 "시스템 모델 구성 및 알고리즘의 표기를 위한 정의", "컴포넌트 기반 실시간 시스템의 종단 간 WCET 분석 기법을 제안하고, 동작 예시", "제약 조건과 분석한 WCET를 비교하여 실시간 적합성을 판단하는 방식과 시스템의 수정 방안을 자동으로 분석하는 기법"을 포함할 수 있다.
1. 모델 기반 최악 상황 수행 시간 분석
실시간 적합성 검사 방법은 모델 기반 최악 상황 수행 시간 분석 알고리즘을 이용하여 각 컴포넌트에 대한 입출력의 최악 상황 수행 시간 분석을 통해 얻은 각각의 컴포넌트 타이밍 명세를 기반으로 각 컴포넌트 입력 도달 시간 및 출력 계산 시간이 최대 일 때, 수행 경로를 추적하여, 누적하는 과정으로 수행될 수 있다.
실시간 적합성 검사 방법의 시스템 모델 및 알고리즘에서 사용되는 컴포넌트 기반 실시간 시스템의 입출력 타이밍 명세에 대한 표기를 하기 표 2와 같이 정의할 수 있다. 표 2를 참조하면, 실시간 적합성 검사 방법의 실시간 테스트를 위한 컴포넌트 기반 실시간 시스템 모델의 속성 표기에 대한 정의를 알 수 있다.
Figure 112016120076669-pat00002
실시간 적합성 검사 방법은 컴포넌트 기반 실시간 시스템을 구성하는 각각의 컴포넌트는
Figure 112016120076669-pat00003
로 표현하고, 컴포넌트
Figure 112016120076669-pat00004
는 입출력 목록 {
Figure 112016120076669-pat00005
}을 포함할 수 있다. 컴포넌트의 모든 입출력은 외부 입력 또는 내부에서 파생된 데이터인지를 구분하는
Figure 112016120076669-pat00006
속성을 포함할 수 있다.
Figure 112016120076669-pat00007
번째 컴포넌트
Figure 112016120076669-pat00008
에 포함된
Figure 112016120076669-pat00009
번째 입력은
Figure 112016120076669-pat00010
로 표기될 수 있다. 입력
Figure 112016120076669-pat00011
은 입력이 도달하는데 소요되는 시간
Figure 112016120076669-pat00012
을 갖고,
Figure 112016120076669-pat00013
가 내부 입력(
Figure 112016120076669-pat00014
)일 경우, 해당 입력을 파생시킨 출력을
Figure 112016120076669-pat00015
속성을 통해 표현하게 될 수 있다.
컴포넌트
Figure 112016120076669-pat00016
에 포함된
Figure 112016120076669-pat00017
번째 출력
Figure 112016120076669-pat00018
는 해당 출력의 계산에 소요되는 시간
Figure 112016120076669-pat00019
을 속성으로 포함하고, 해당 출력의 계산에 영향을 주는 즉, 연관관계를 갖는 입력 집합
Figure 112016120076669-pat00020
를 포함할 수 있다.
2. 컴포넌트 기반 실시간 시스템의 종단 간 WCET 분석 기법
하기 표 3은 실시간 적합성 검사 방법의 제안하는 최악 상황 수행 시간 분석 알고리즘을 표현할 수 있다. 표 3을 참조하면, WCET 분석 알고리즘(WCET Analysis Algorithm)을 알 수 있다.
Figure 112016120076669-pat00021
알고리즘의 입력은
Figure 112016120076669-pat00022
개의 컴포넌트 {
Figure 112016120076669-pat00023
}이며, 분석의 결과로
Figure 112016120076669-pat00024
이 반환될 수 있다.
Figure 112016120076669-pat00025
은 맵 타입 변수로서, 각각의 엔트리(entry)는 출력
Figure 112016120076669-pat00026
와 해당 출력의 최대 계산 시간
Figure 112016120076669-pat00027
로 구성될 수 있다.
줄 번호 3~10에 의한 반복 수행 구문은 모든 컴포넌트의 외부 출력에 대해서만 줄 번호 6의 코드가 수행될 수 있다. 줄 번호 6의 코드는 해당 외부 출력의 최종 계산 시간을 분석하기 위해 AnalyzeComputingTime 함수를 수행하고, 최종 외부 입력에 대한 분석이 수행될 때까지 AnalyzeArrivalTime 함수가 번갈아 가며 수행될 수 있다. 위 과정에서 분석된 최대 수행 시간 결과는 7번 줄에서
Figure 112016120076669-pat00028
에 추가될 수 있다.
표 4를 참조하면, 실시간 적합성 검사 방법의 WCET 분석을 위한 출력 계산 시간 누적 함수인 AnalyzeComputingTime의 알고리즘을 알 수 있다.
Figure 112016120076669-pat00029
함수 AnalyzeComputingTime은 출력
Figure 112016120076669-pat00030
Figure 112016120076669-pat00031
에 대해 현재까지 계산된 수행 시간
Figure 112016120076669-pat00032
입력 받고,
Figure 112016120076669-pat00033
와 연관된 입력들의 입력 도달 시간의 최댓값을 누적시킬 수 있다. 줄 번호 2~4의 코드에서
Figure 112016120076669-pat00034
에 포함된 입력들에 대해 AnalyzeComputingTime 함수의 수행을 통해 분석된 각 입력 도달 시간을
Figure 112016120076669-pat00035
에 추가할 수 있다. 줄 번호 5의 코드는
Figure 112016120076669-pat00036
에 포함된 입력 도달 시간의 최댓값과
Figure 112016120076669-pat00037
의 출력 계산 시간을
Figure 112016120076669-pat00038
에 누적시키고, 줄 번호 6에 의해
Figure 112016120076669-pat00039
가 반환될 수 있다.
표 5를 참조하면, 실시간 적합성 검사 방법의 WCET 분석을 위한 입력 도달 시간 누적 함수인 AnalyzeArrivalTime의 알고리즘을 알 수 있다.
Figure 112016120076669-pat00040
함수 AnalyzeArrivalTime은 입력의 최종 도달 시간을
Figure 112016120076669-pat00041
에 누적하여 반환할 수 있다. 입력
Figure 112016120076669-pat00042
가 외부 입력일 경우, 더 이상 추적할 데이터가 없으므로, 입력
Figure 112016120076669-pat00043
의 도달 시간
Figure 112016120076669-pat00044
을 누적하여 반환할 수 있다. 줄 번호 2의 코드는 입력
Figure 112016120076669-pat00045
가 내부 입력일 경우,
Figure 112016120076669-pat00046
를 파생시킨 출력의 계산 시간 분석을 위해
Figure 112016120076669-pat00047
함수를 수행하여
Figure 112016120076669-pat00048
에 누적하고, 줄 번호 4에 의한 입력
Figure 112016120076669-pat00049
의 도달 시간을 누적 계산하여, 줄 번호 5에 의해 분석 결과를 반환할 수 있다.
도 4는 일 실시예에 따른 실시간 적합성 검사 방법의 WCET 분석 동작 예시의 시스템 모델을 도시한 도면이다.
도 4를 참조하면, 앞서 제안한 실시간 적합성 검사 방법의 컴포넌트 기반 실시간 시스템의 WCET 분석 알고리즘을 시스템 모델에 적용한 동작 예시를 알 수 있다. 시스템 모델은 총 4개의 컴포넌트
Figure 112016120076669-pat00050
로 구성되며, 2개의 외부 입력
Figure 112016120076669-pat00051
를 갖는다.
표 6을 참조하면, 실시간 적합성 검사 방법의 입출력 타이밍 정보 표기에 대한 정의를 알 수 있다. 동작 예시 및 적용하는 시스템 모델에 대해 표 6과 같은 표기를 사용할 수 있다.
Figure 112016120076669-pat00052
먼저, 시스템 모델의 외부 출력은 컴포넌트
Figure 112016120076669-pat00053
의 출력
Figure 112016120076669-pat00054
Figure 112016120076669-pat00055
이기 때문에 WCET 분석 알고리즘의 줄 번호 6, 7의 코드는
Figure 112016120076669-pat00056
Figure 112016120076669-pat00057
에 대해 총 2회 수행될 수 있다. 줄 번호 4의 코드에서 선택된
Figure 112016120076669-pat00058
Figure 112016120076669-pat00059
일 경우, 줄 번호 6에서 AnalyzeComputingTime(
Figure 112016120076669-pat00060
, 0)을 수행할 수 있다.
AnalyzeComputingTime 함수의 줄 번호 2~4의 코드에서
Figure 112016120076669-pat00061
과 연관된 입력
Figure 112016120076669-pat00062
에 대해 AnalyzeArrivalTime 함수를 수행할 수 있다. 줄 번호 5의 코드에서 위 과정을 통해 분석된
Figure 112016120076669-pat00063
,
Figure 112016120076669-pat00064
의 최댓값과
Figure 112016120076669-pat00065
의 더하여, 하기 수학식 1과 같이
Figure 112016120076669-pat00066
이 결정될 수 있다.
Figure 112016120076669-pat00067
Figure 112016120076669-pat00068
의 계산 과정은 AnalyzeArrivalTime 함수에서
Figure 112016120076669-pat00069
는 외부 입력이 아니기 때문에 줄 번호 1~3가 수행되고,
Figure 112016120076669-pat00070
Figure 112016120076669-pat00071
에 대해 AnalyzeComputingTime 함수를 수행하게 될 수 있다. 줄 번호 4에 의해 결정되는
Figure 112016120076669-pat00072
의 결과는 하기 수학식 2와 같다.
Figure 112016120076669-pat00073
Figure 112016120076669-pat00074
에 대한 AnalyzeComputingTime 함수 수행 과정에서는
Figure 112016120076669-pat00075
의 계산 시간
Figure 112016120076669-pat00076
을 더하고, 연관된 입력
Figure 112016120076669-pat00077
의 도달 시각을 분석하고, 두 입력의 도달 시각 최댓값을 누적 계산할 수 있다. 하여, 하기 수학식 3과 같이
Figure 112016120076669-pat00078
을 치환될 수 있다.
Figure 112016120076669-pat00079
상기 수학식 3의
Figure 112016120076669-pat00080
은 먼저 함수 AnalyzeArrivalTime의 수행에 의해
Figure 112016120076669-pat00081
로 치환되고,
Figure 112016120076669-pat00082
에 대한 출력 계산 시간 및
Figure 112016120076669-pat00083
의 연관 입력
Figure 112016120076669-pat00084
의 입력 도달 시간 최댓값을 누적 계산하여 하기 수학식 4와 같이 최종적으로
Figure 112016120076669-pat00085
가 분석될 수 있다.
Figure 112016120076669-pat00086
위와 동일한 과정으로 외부 입력
Figure 112016120076669-pat00087
에 대해서도 AnalyzeComputingTime 함수를 수행하면, 하기 수학식 5와 같은 결과를 얻을 수 있다.
Figure 112016120076669-pat00088
상기 수학식 4의 분석 과정을 통해 얻은 결과 (
Figure 112016120076669-pat00089
,
Figure 112016120076669-pat00090
), (
Figure 112016120076669-pat00091
)는 각각
Figure 112016120076669-pat00092
에 추가되어 반환될 수 있다.
표 7을 참조하면, 실시간 적합성 검사 방법의 알고리즘 수행에 따른
Figure 112016120076669-pat00093
의 반환 결과를 알 수 있다.
Figure 112016120076669-pat00094
3. 실시간 적합성 판단 및 프로그램 수정 방안 자동 분석
실시간 적합성 검사 방법은 실시간 소프트웨어의 실시간 수행 적합성을 실시간 제약 조건을 만족하는지 여부에 따라 판단할 수 있다. 실시간 제약 조건은 시스템 출력이 정해진 시간 내에 계산을 완료하는지를 의미하며, 출력
Figure 112016120076669-pat00095
에 대한 출력 계산 시간
Figure 112016120076669-pat00096
가 제약 시간
Figure 112016120076669-pat00097
보다 작아야함을 나타낼 수도 있다(
Figure 112016120076669-pat00098
).
출력
Figure 112016120076669-pat00099
가 실시간 적합성을 만족하기 위해서는 제약 조건
Figure 112016120076669-pat00100
을 만족해야 하며, 실시간 적합성 검사 방법은 하기 수학식 6과 같은 조건을 이용할 수 있다.
Figure 112016120076669-pat00101
상기 수학식 6의 제약 조건 부등식이 만족하지 않을 때, 출력
Figure 112016120076669-pat00102
은 실시간 수행 적합성을 만족하지 않으며, 하나의 입력 도달 시간 또는 출력 계산 시간을 단축하여, 적합성을 만족할 수 있다면, 실시간 적합성 검사 방법은 그에 대한 계산을 다음과 같이 수행할 수 있다.
실시간 적합성 검사 방법은
Figure 112016120076669-pat00103
의 입력 도달 시간 단축이 출력
Figure 112016120076669-pat00104
의 최종적인 계산 시간에 어떠한 영향을 미치는지 확인하기 위해,
Figure 112016120076669-pat00105
만 변수로 간주하고, 나머지 시간 값은 상수로 판단할 수 있다. 실시간 적합성 검사 방법은 상기 수학식 6을 간소화하기 위한 과정으로 먼저 하기 수학식 7과 같이 좌변에서
Figure 112016120076669-pat00106
을 소거할 수 있다.
Figure 112016120076669-pat00107
실시간 적합성 검사 방법은 상기 수학식 7에서 상수간의 연산
Figure 112016120076669-pat00108
Figure 112016120076669-pat00109
을 각각
Figure 112016120076669-pat00110
로 치환하고, 좌변의
Figure 112016120076669-pat00111
을 소거하여, 하기 수학식 8과 같이 나타낼 수 있다.
Figure 112016120076669-pat00112
상기 수학식 8에서 만약
Figure 112016120076669-pat00113
이면, 아무리
Figure 112016120076669-pat00114
을 감소시킨다 하더라도 제약 조건을 만족시킬 수 없으므로, 실시간 적합성 검사 방법은 위 조건이 만족하지 않을 때, 하기 수학식 9와 같이 최종적으로 간소화시킨 제약 조건식을 이용할 수도 있다.
Figure 112016120076669-pat00115
실시간 적합성 검사 방법은 치환했던
Figure 112016120076669-pat00116
을 되돌려서, 최종적으로 하기 수학식 10과 같은 수식을 이용할 수 있다. 따라서, 실시간 적합성 만족을 위한 입력
Figure 112016120076669-pat00117
은 최소한
Figure 112016120076669-pat00118
보다 작아야함이 도출될 수 있다.
Figure 112016120076669-pat00119
위 과정에서 보였듯 일부 입출력에서 소요되는 시간을 감축하더라도 제약 조건을 만족시킬 수 없는 경우가 발생할 수 있다.
표 8을 참조하면, 실시간 적합성 검사 방법의 적합성 만족 불가능한 조건을 알 수 있다. 각 입출력에 대해 적합성을 만족시킬 수 없는 조건은 표 8과 같다.
Figure 112016120076669-pat00120
표 9를 참조하면, 실시간 적합성 검사 방법의 실시간 적합성 만족하는 입출력 수행 시간 최댓값을 알 수 있다. 실시간 적합성 검사 방법은 모든 입출력에 대해 위 과정을 수행함으로써, 표 9와 같이 실시간 적합성 만족을 위한 입력의 도달 시간 또는 출력 계산 시간의 최댓값을 구할 수 있다. 실시간 적합성 검사 방법은 수행 시간 최댓값이 0보다 작은 경우는, 실시간 수행 적합성을 만족할 수 없다고 판단할 수 있다.
Figure 112016120076669-pat00121
도 5는 일 실시예에 따른 실시간 적합성 검사 방법의 컴포넌트 기반 네비게이션 시스템을 도시한 도면이다.
실험 및 평가
1. 실험 1 : 컴포넌트 기반 시스템의 통합 검증
실험 1에서는 네비게이션을 수행하는 컴포넌트 기반 시스템에 제안하는 조합 테스트 기법과 실시간 테스트 기법을 적용하여 테스트 케이스를 생성하고, 실시간 테스트를 수행한다. 본 실험에서 제안하는 기법으로 생성한 테스트 케이스는 IOReACT와 비교하여, 테스트 케이스 수와 조합 커버리지를 평가한다. 그리고, 실시간 테스트에서는 제안하는 기법을 통해 WCET를 분석 후, 기존의 다른 기법들이 시스템 모델에 적용가능한지 여부를 평가한다.
1) 실험 환경
도 5를 참조하면, 테스트 대상 CBS는 장애물을 피해 로봇을 이동시키면서 안내 메시지를 출력하는 시스템으로서 4개의 단위 컴포넌트로 구성된다. 컴포넌트는 각각 거리 센서 컴포넌트(Distance sensor component, Cdsc), 모바일 컴포넌트(Mobile component, Cmc), 문장 생성 컴포넌트(Statement generation component, Csgc), 제어 컴포넌트(Control component, Ccc)이며, 각 단위 컴포넌트의 입출력 명세 및 테스트 데이터가 존재할 수 있다.
시스템의 동작 구조는 거리 센서 컴포넌트가 좌측(dsc_in1), 전방(dsc_in2), 우(dsc_in3) 센서 값을 읽고, 장애물의 방향(dsc_out1), 진행 가능한 방향(dsc_out2), 장애물과의 거리(dsc_out3)을 출력한다. 제어 컴포넌트는 이동 로봇의 속도(cc_in4)와 거리 센서 컴포넌트의 출력(cc_in1~cc_in3)을 받아 각각 문장 생성 컴포넌트와 모바일 컴포넌트로 보낸다.
문장 생성 컴포넌트는 제어 컴포넌트로부터 장애물의 방향(sgc_in1), 거리(sgc_in2), 생성할 문장의 언어(sgc_in3)을 입력으로 장애물에 대한 알림(sgc_out1)을 생성하여 출력한다. 모바일 컴포넌트는 제어 컴포넌트로부터 진행 가능한 방향(mc_in1), 이동 로봇의 속도(mc_in2)을 입력 받고, 출력으로 이동 로봇의 회전각(mc_out2), 속도(mc_out1)을 내보낸다.
다음 과정에서 시스템이 고려되어야 할 실시간 적합성에 대해 설명한다. 위 시스템은 거리 센서 컴포넌트로 장애물이 위치한 방향과 장애물과의 거리를 계산하고, 제어 컴포넌트에 의해 진행 가능한 방향을 판단한다.
진행 가능한 방향을 입력으로 모바일 컴포넌트는 이동 로봇의 회전각을 제어하여, 장애물과의 충돌을 회피한다. 이동 로봇이 방향 전환을 수행하는 장애물과의 거리 임계값이 0.1m이고, 이동 로봇의 속도(cc_in4)가 10m/s라고 할 때, 해당 로봇의 진행 방향 전환이 이루어지지 않으면, 10ms이내에 장애물과 충돌한다. 이때, 장애물과 충돌하지 않기 위해 5ms이내에 방향 전환이 완료되어야 한다고 가정한다.
시스템 모델에 대한 기능 검증을 위한 테스트 케이스 생성은 단위 테스트를 통해 얻은 입출력 명세에 따라 제안하는 테스트 케이스 생성 알고리즘을 통해 얻는다. 이때, 각 컴포넌트에 대한 단위 테스트 결과는 표 10 내지 13과 같다.
하기 표 10을 참조하면, 컴포넌트
Figure 112016120076669-pat00122
의 테스트 케이스 및 결과 값을 알 수 있다.
Figure 112016120076669-pat00123
하기 표 11을 참조하면, 컴포넌트
Figure 112016120076669-pat00124
의 테스트 케이스 및 결과 값을 알 수 있다.
Figure 112016120076669-pat00125
하기 표 12를 참조하면, 컴포넌트
Figure 112016120076669-pat00126
의 테스트 케이스 및 결과 값을 알 수 있다.
Figure 112016120076669-pat00127
하기 표 13을 참조하면, 컴포넌트
Figure 112016120076669-pat00128
의 테스트 케이스 및 결과 값을 알 수 있다.
Figure 112016120076669-pat00129
위 시스템 모델의 테스트 케이스가 만족해야 하는 조합들에 대해 설명한다. 컴포넌트 기반 시스템의 기능 검증에서 100%의 조합 커버리지를 만족하기 위해 시스템 상에 존재하는 연관관계에 대해 모든 조합이 생성되어야 한다.
시스템 모델의 연관관계는 표 14와 같다. 하기 표 14를 참조하면, 시스템 모델의 연관관계 및 조합 수를 알 수 있다. 표 14에서는 각 출력에 대해 출력의 계산에 영향을 주는 입력 집합, 즉 연관관계를 나타내고 있다. 조합 테스트 시 각 연관관계에 대한 모든 조합의 수는 포함된 입력의 테스트 데이터 수를 모두 곱한 값과 같다.
Figure 112016120076669-pat00130
다음으로 제안하는 기법을 통해 실시간 검증에 필요한 각 컴포넌트의 입출력 타이밍 명세에 대해 설명한다. 이때, 미들웨어에서 소요되는 입력의 도달 시간은 무시하도록 한다. 하기 표 15를 참조하면, 시스템 모델에 대한 입출력 타이밍 명세를 알 수 있다. 표 15는 각 컴포넌트의 출력에 대한 최대 클럭 사이클 수와 WCET로 구성된다. WCET는 최대 클럭 사이클 수를 실험 환경의 CPU 클럭 속도로 나눈 값이며, 단위는 마이크로 초(us)이다.
Figure 112016120076669-pat00131
하기 표 16을 참조하면, 시스템 모델에 대한 실시간 제약 조건을 알 수 있다. 표 16의 시스템 모델의 실시간 제약 조건에 따라 mc_out2의 출력 계산시간
Figure 112016120076669-pat00132
가 5ms보다 작아야 한다.
Figure 112016120076669-pat00133
2) 실험 결과 및 평가
시스템 모델에 대한 테스트 케이스 생성 과정을 제안하는 조합 기법과 IOReACT의 조합 기법을 적용하여, 테스트 케이스 수, 테스트 케이스 축소율 그리고 조합 커버리지를 비교한다.
테스트 케이스 축소율은 시스템의 외부 입력에 대한 모든 조합(All combination)의 수에 대한 축소된 테스트 케이스의 수로 계산된다.(축소율=The number of reduced test cases / The number of all combination * 100). 시스템 모델의 모든 조합(All combination)의 개수는 외부 입력 dsc_in1, dsc_in2, dsc_in3, sgc_in1, cc_in4의 각 테스트 데이터 수의 곱인
Figure 112016120076669-pat00134
이다.
IOReACT의 테스트 케이스 생성 과정에서 분석한 외부 입력의 연관관계 집합은
Figure 112016120076669-pat00135
={
Figure 112016120076669-pat00136
}이고, 각각
Figure 112016120076669-pat00137
={dsc_in1, dsc_in2, dsc_in3, sgc_in3},
Figure 112016120076669-pat00138
={cc_in4},
Figure 112016120076669-pat00139
={dsc_in1, dsc_in2, dsc_in3, sgc_in3}이다. IOReACT는 각 연관관계에 대해 모든 조합을 생성하며,
Figure 112016120076669-pat00140
에 대한 모든 조합(All combination)
Figure 112016120076669-pat00141
Figure 112016120076669-pat00142
,
Figure 112016120076669-pat00143
를 모두 포함하기 때문에 생성되는 테스트 케이스의 수는
Figure 112016120076669-pat00144
개이다.
생성된 테스트 케이스는
Figure 112016120076669-pat00145
의 조합에 의해 조합 요구사항
Figure 112016120076669-pat00146
을 만족시키고,
Figure 112016120076669-pat00147
에 의한 조합이 조합 요구사항
Figure 112016120076669-pat00148
,
Figure 112016120076669-pat00149
을 만족시키기 때문에 100% 조합 커버리지를 만족시키게 된다.
반면 제안하는 기법의 알고리즘을 통한 테스트 케이스의 생성 과정은 각 출력 sgc_out1, cc_out1, cc_out2, dsc_out1, dsc_out3, mc_out1, cc_out4, mc_out2, cc_out3, dsc_out2 순서로 조합을 수행될 때, 먼저 dsc_out1에 대한 조합이 표 17과 같이 생성된다. 하기 표 17을 참조하면, 제안하는 기법을 통해 생성한 테스트 케이스를 알 수 있다.
Figure 112016120076669-pat00150
에 대한 모든 조합을 생성한다1).
Figure 112016120076669-pat00151
Figure 112016120076669-pat00152
의 연관관계 입력 집합이 동일하기 때문에
Figure 112016120076669-pat00153
에 대해서는 자동적으로 만족된다.
dsc_in1, dsc_in2, dsc_in3의 조합이 생성됨에 따라 파생된 출력 cc_out1(dsc_in1), cc_out2(dsc_in3), cc_out3(dsc_in2)가 결정되고, 그에 따라 sgc_in1, sgc_in2, mc_in1이 결정된다2).
표 17에서는 mc_in1을 제외하고 조합 요구사항을 갖는 sgc_in1, sgc_in2에 대해서만 언급한다.
다음으로
Figure 112016120076669-pat00154
에 대한 조합을 수행한다.
Figure 112016120076669-pat00155
의 연관 입력 집합 sgc_in1, sgc_in2, sgc_in3의 모든 조합을 테스트 케이스 목록에 추가한다3).
테스트 케이스 28~51은 기존의 테스트 케이스에 sgc_in3을 추가하는 것만으로
Figure 112016120076669-pat00156
을 모두 만족할 수 없기 때문에 새롭게 생성한 테스트 케이스이다.
마지막으로
Figure 112016120076669-pat00157
에 대한 모든 조합을 테스트 케이스 1~4에 추가함으로써 테스트 케이스를 모두 생성하게 된다4).
앞서 생성한 테스트 케이스는 출력에 대한 입력의 모든 조합을 구하였기 때문에 시스템 내부에 존재하는 컴포넌트의 모든 입출력 연관관계 조합을 구하였다. 따라서 모든 조합 요구사항을 만족하며, 조합 커버리지는 100%이다.
Figure 112016120076669-pat00158
Figure 112016120076669-pat00159
앞서 IOReACT와 제안하는 기법을 통해 테스트 케이스를 생성하였다. 본 실험에서의 비교 항목은 테스트 케이스의 수와 조합 커버리지, 그리고 축소율이다. 축소율은 축소된 테스트 케이스의 수와 모든 조합(All combination)간의 관계에 따라 나타낼 수 있다(축소율=축소된 테스트 케이스 수/모든 조합).
하기 표 18을 참조하면, 테스트 생성 기법을 비교한 것을 알 수 있다.
비교 결과는 생성한 테스트 케이스의 수에서 IOReACT는 108개, 제안하는 기법은 51개를 생성하여, 약 두 배 가량의 차이를 보인다. 축소율에서 IOReACT는 (532-108)/532의 계산에 의해 79.69..%, 제안하는 기법은 (532-51)/532의 계산에 의해 90.41%를 보여 약 10%의 차이를 보였다. 실험에서 생성한 테스트 케이스의 수는 제안하는 기법이 적지만 조합 커버리지는 동일하다.
따라서 소프트웨어의 동적 테스트는 테스트 케이스의 수에 정비례하므로 제안하는 기법을 통해 테스트 케이스를 생성할 때, IOReACT를 사용하는 것보다 절반의 시간을 소요하여, 동일한 조합 커버리지를 만족시킬 수 있다.
Figure 112016120076669-pat00160
다음으로 제안하는 기법을 통해 실시간 검증을 수행한다. 먼저 제안한 WCET 분석 기법 알고리즘의 구현 코드를 통해 동작 결과를 먼저 보이고, 구체적인 계산 과정에 대해 설명한다.
도 6은 일 실시예에 따른 실시간 적합성 검사 방법의 WCET 분석 기법 알고리즘 구현 코드 동작 결과를 도시한 도면이다.
도 6을 참조하면, 구현 코드의 동작 결과를 알 수 있다. 동작 결과에서 분석한 외부 출력의 WCET 계산식과 결과는 표 19와 같다. WCET의 단위는 마이크로 초(us)이다. 하기 표 19를 참조하면, WCET 계산식 및 결과를 알 수 있다.
Figure 112016120076669-pat00161
위 시스템의 외부 출력 mc_out2는 WCET가 6074us로 측정되었으며, 제약 조건인 5ms 이내에 계산되지 않으므로, 제약 조건을 만족하지 않으며 실시간 적합성을 만족하지 않는다.
따라서 제안하는 실시간 검증 기법을 통해 위 시스템의 실시간 적합성을 만족하기 위한 수정 방안을 자동으로 분석하도록 한다.
도 7은 일 실시예에 따른 실시간 적합성 검사 방법의 수정 방안 자동 분석 알고리즘 수행 결과를 도시한 도면이다.
도 7을 참조하면, 프로그램 수정 알고리즘의 구현 코드의 수행 결과를 알 수 있다. 수정 알고리즘의 수행 결과에서는 mc_out2의 계산 시간에 영향을 주는
Figure 112016120076669-pat00162
중 하나의 변수를 고정하고, 나머지 출력 계산 시간과 입력 도달 시간을 입출력 타이밍 명세에 명시된 값으로 치환하여, 해당 값을 변경함에 따라 제약 조건을 만족시킬 수 있는지 여부를 판단하였다.
그 결과 mc_out2, dsc_out2, dsc_in3에 대한 수정 방안을 자동으로 분석하였으며, 나머지 입출력에 대한 소요 시간은 mc_out2의 실시간 수행 적합성과 무관하거나, 해당 입출력 소요 시간을 수정하여 감소시키더라도 mc_out2의 실시간 수행 적합성을 만족시키지 못한다.
수정 방안 분석 결과에 대한 자세한 내용은 표 20과 같다. 하기 표 20을 참조하면, 실시간 수행 적합성 만족을 위한 수정 방안 분석 결과를 알 수 있다.
Figure 112016120076669-pat00163
본 실험에서 보인 컴포넌트 기반 실시간 시스템의 통합 검증 기법은 기능 정확성 검증에 필요한 테스트 케이스 생성 과정에서 제안하는 기법과 IOReACT를 각각 적용하였으며, 제안하는 기법에 의해 생성한 테스트 케이스의 수가 IOReACT 절반 가량 적고, 동일한 조합 커버리지 수치를 보였다.
또한 실시간 검증 과정에서 WCET 분석 및 실시간 적합성 만족을 위한 수정 방안 자동 분석 기법 또한 적용 가능함을 보였다. 본 실험을 통해 제안하는 기능/실시간 통합 검증 기법을 실제 시스템에 적용 가능함을 증명하였다.
도 8은 일 실시예에 따른 실시간 적합성 검사 방법의 실시간 테스트 실험 모델로서 CNN 기반 댄싱 로봇 시스템을 도시한 도면이다.
2. 실험 2 : 컴포넌트 기반 시스템의 실시간 테스트 실험
실험 2에서는 CNN 기반 댄싱 로봇 시스템에 대해 제안하는 실시간 테스트 기법을 적용하여, 컴포넌트 기반 시스템의 종단 간 최악 상황 수행 시간을 분석하고, 실시간 수행 적합성을 판단한다. 실시간 적합성을 만족하지 않을 경우의 시스템 수정 방안을 분석할 수 있음을 보인다.
1) 실험 환경
시스템은 도 12과 같이 마이크 컴포넌트(Mic Component, MC), 비트 감지 컴포넌트(Beat Detect Component, BDC), 실시간 분석 컴포넌트(Real Time Analysis Component, RTAC), 장르 분류 컴포넌트(Genre Classifier Component, GCC), 호비스 제어 컴포넌트(Hovis Controller Component, HCC), 매니퓰레이션 컴포넌트(Manipulator Component, MPC)로 구성된다.
마이크 컴포넌트로부터 입력 받은 오디오 데이터가 비트 감지 컴포넌트에 의해 비트 시작 시간과 비트 간격 시간을 분석하고, 장르 분류 컴포넌트에 의해 음악의 장르를 판단한다. 위 과정을 실시간 분석 컴포넌트가 중재하고, 호비스 제어 컴포넌트가 모션을 생성하여, 매니퓰레이터 컴포넌트를 통해 호비스를 제어는 시퀀스로 동작한다.
도 8을 참조하면, 전체 시스템 동작 시퀀스의 시작은 마이크로부터 입력된 신호에 의해 오디오 데이터를 저장하는 버퍼가 채워지면 마이크 컴포넌트의 이벤트 콜백 함수가 호출되어, 장르 판단 컴포넌트와 비트 감지 컴포넌트에 의해 각각 오디오 데이터가 처리된다. 따라서 버퍼의 크기는 이벤트 콜백 함수의 수행 주기, 즉 전체 시스템 동작의 수행 주기에 영향을 준다.
이때, 마이크 컴포넌트의 수행 주기가 짧을수록 호비스 모션의 업데이트 주기가 빨라지기 때문에 가능한 수행 주기를 짧게 하는 것이 동시성 면에서 좋지만, 마이크 입력 데이터의 처리 시간 보다는 작아야 한다. 그렇지 않을 경우, 입력된 마이크 이벤트가 처리되지 못하여 이벤트 큐에 계속 누적되고, 시스템은 오동작하게 된다.
따라서 최악 상황 수행 시간 분석은 최소 주기를 구하기 위해 반드시 필요한 과정이며, 최소 주기 이하의 주기로 동작하도록 성능을 높이기 위해서 어떠한 조치가 필요한지를 제안하는 실시간 검증 기법을 통해 분석할 수 있다.
실험 2의 실험을 수행하는 환경은 표 21과 같다. 하기 표 21을 참조하면, 실행 환경 사양을 알 수 있다.
Figure 112016120076669-pat00164
도 9는 일 실시예에 따른 실시간 적합성 검사 방법의 최악 상황 수행 시간 분석 결과를 도시한 도면이다.
2) 실험 결과 및 평가
시스템 모델의 종단 간 최악 상황 수행 시간 분석을 위해 시스템 내부에 존재하는 출력의 계산 시간과 컴포넌트 간의 데이터 전달에서 소요되는 시간은 측정 기반 분석을 통해 얻는다.
개별 컴포넌트의 수행 시간을 측정하는 가장 일반적인 방법은 수행 시작 시간과 수행 종료 시간을 측정하여, 두 시간의 차로 수행 시간을 분석하는 방법이 사용된다.
하지만, 위 방법은 실행 환경의 기타 작업 상황에 영향을 받기 때문에 오랜 시간 동안 여러 번 측정하는 경우 정확한 측정이 어렵다. 따라서 본 실험에서 개별 컴포넌트의 수행 클럭 사이클(Clock cycle)을 측정하고, 실행 환경 사양을 고려하여, 수행 시간을 분석하도록 한다.
CPU의 클럭 주파수(Clock rate)
Figure 112016120076669-pat00165
는 CPU가 초당 수행 할 수 있는 클럭 사이클 수(Clock cycles per sec)와 동일하다. 측정된 클럭 사이클 수행 수
Figure 112016120076669-pat00166
에 대한 수행 시간
Figure 112016120076669-pat00167
는 하기 수학식 11과 같이 계산된다.
Figure 112016120076669-pat00168
시스템 모델의 구현 코드는 C++ 기반이며, 개별 컴포넌트의 측정 기반 최대 수행 시간 분석은 수행된 사이클 수를 구할 수 있는 __rdtsc() 함수를 사용한다. rdtsc 함수를 출력 계산 직전과 직후에 각각 호출하여, 수행된 사이클 수를 측정하고, 두 값의 차이를 통해 수행 사이클 수를 계산할 수 있다. 각 개별 출력의 계산 시간은 컴포넌트의 5000회 수행을 통해 얻는다.
컴포넌트 간의 데이터 전달은 컴포넌트의 실행 제어를 하는 엔진에서 이루어지고, 그 시간이 무시할 수 있는 정도로 작기 때문에 입력 도달 시간은 고려하지 않는다. 개별 컴포넌트 수행 시간 측정 결과는 표 22와 같다. 하기 표 22를 참조하면, 수행 시간 측정 결과를 알 수 있다.
Figure 112016120076669-pat00169
측정된 컴포넌트 개별 출력 최대 수행 시간을 기반으로 제안하는 최악 상황 수행 시간 분석 기법을 적용하여 종단 간 수행 시간을 분석한다. 알고리즘의 구현 코드는 스크립트 형식으로 시스템 입출력 타이밍 명세를 입력 받도록 구현하였다. 하기 표 23을 참조하면, 시스템 입출력 타이밍 명세를 알 수 있다.
Figure 112016120076669-pat00170
위 시스템 입출력 타이밍 명세를 입력으로 구현 코드를 수행한다.
도 9를 참조하면, 수행 결과를 알 수 있다. 외부 출력뿐만 아니라 내부 출력의 계산 종료 시각 및 수행 시간 계산식이 표현되고 있다. 위 수행 결과를 표 24를 통해 정리하였다. 하기 표 24를 참조하면, 최악 상황 수행 시간 분석 결과를 알 수 있다.
Figure 112016120076669-pat00171
위 최악 상황 수행 시간 분석 과정을 통해 호비스의 주기적 제어를 위한 모션 판단의 결과인 출력 hcc_out1의 출력 계산 시간은 73.906(ms)을 얻었다.
도 10은 일 실시예에 따른 실시간 적합성 검사 방법의 수행 시간 분포를 도시한 도면이다.
제안하는 수행 시간 분석의 정확성을 검증하기 위해 종단 간 수행 시간을 측정하였다. 위 실험과 마찬가지로 시스템의 5000회 수행 동안의 종단 간 수행 시간을 측정하였으며, 수행 시간의 분포와 최대 수행 시간을 구하였다.
도 10을 참조하면, 수행 시간 분포는 측정된 시간에 대해 10개의 구간으로 분할하고, 해당 구간에 대한 횟수로 표현한 것을 알 수 있다. 수행 시간 분포에서 막대의 높이는 해당 구간에서의 수행 시간 등장 횟수이며, 각 구간의 범위는 표 25와 같다. 하기 표 25를 참조하면, 측정 기반 분석 결과 구간 범위를 알 수 있다.
Figure 112016120076669-pat00172
측정 기반 방법을 통한 종단 간 최대 수행 클럭 사이클 수는 MC에서 마이크 이벤트 콜백이 호출되는 시점부터 호비스의 동작 모션이 결정되는 HCC에 의해 호비스의 동작 모션이 결정되는 시점까지에 대해 측정한다. 측정 기반 기법과 제안하는 기법의 종단 간 WCET 분석 결과는 표 53와 같다. 하기 표 26을 참조하면, WCET 분석 결과 비교를 알 수 있다.
Figure 112016120076669-pat00173
측정 기반 방법을 통한 종단 간 최대 수행 클럭 사이클 수는 239760313이다. 실행 환경의 CPU 클럭 주파수 3.3GHz를 적용하여, 최악 상황 수행 시간을 72.654ms로 측정되는 것을 알 수 있다. 제안하는 기법을 통한 결과와 비교하여 오차율을 구하면 하기 수학식 12와 같다. (오차율 : |측정 값-분석 값|/측정 값 * 100 (%))
Figure 112016120076669-pat00174
호비스의 주기적 제어를 위한 모션 판단의 결과인 출력 hcc_out1의 출력 계산 시간에 대한 제약 조건과 비교하여, 실시간 적합성을 검증한다. 시스템 모델의 샘플링 율이 22050에 따라 마이크 콜백 호출 주기는 (22050/버퍼 크기)로 결정된다.
따라서, 마이크 콜백 호출 주기는 73.906을 넘을 수 없으며, 버퍼 크기는 1750 이상으로 결정된다. 만약 버퍼 크기를 그 이하로 할 경우, 이벤트 콜백 호출 주기가 이벤트 처리 주기보다 빠르기 때문에 이벤트가 계속 누적되게 된다.
만약 시스템의 개발자가 버퍼 크기를 1575으로 낮추어 71.428ms 주기로 호비스 모션을 업데이트 주기를 높이고자 한다면, 제안하는 시스템 수정 방안 자동 분석 기법을 적용하여 수정 방안을 자동으로 분석할 수 있다.
도 11은 일 실시예에 따른 실시간 적합성 검사 방법의 수정 방안 자동 분석 기법 구현 코드 수행 결과를 도시한 도면이다.
도 11을 참조하면, 제약 조건 부등식의 역 계산에 따라 해당 출력의 수정을 통한 실시간 적합성 만족 유무와 실시간 적합성 만족을 위한 출력 계산 시간의 최댓값을 구하는 기법의 구현 코드를 수행한 결과를 알 수 있다.
도 11에서 보이는 결과는 hcc_out1의 출력 계산 시간 단축을 위해 gc_out1, rtac_out3의 수정을 통해 실시간 적합성을 만족시킬 수 있고, 나머지 출력의 계산 시간을 감소시킨다 하더라도 실시간 적합성을 만족 시킬 수 없음을 의미한다. 수행 결과의 정확성에 대해 검증을 위해 gc_out1에 대한 제약 조건 부등식의 역 계산 과정을 풀어 설명한다.
하기 수학식 13을 참조하면, hcc_out1에 대한 제약 조건 부등식에서
Figure 112016120076669-pat00175
만 변수로 남기고, 나머지 출력에 대한 계산 시간이 입력된 상태이다.
Figure 112016120076669-pat00176
상기 수학식 13의 상수 간 연산을 마치면 하기 수학식 14과 같다.
Figure 112016120076669-pat00177
따라서, hcc_out1 출력 계산의 제약 조건을 만족하기 위한 gc_out1의 출력 계산 시간 최댓값은 66.246임으로 분석됨을 알 수 있다.
도 12는 일 실시예에 따른 컴포넌트 기반 시스템에 대한 실시간 적합성 검사 장치를 도시한 블록도이다.
도 12를 참조하면, 실시간 적합성 검사 장치(1200)는 테스트 케이스 생성기(1210), 테스트 실행기(1220), 테스트 결과 분석기(1230)를 포함할 수 있다.
테스트 케이스 생성기(1210)는 시스템을 구성하는 컴포넌트들을 테스트하기 위한 테스트 케이스들을 생성할 수 있다. 테스트 케이스 생성기(1210)는 컴포넌트들의 입출력 연관관계 정보와 컴포넌트들의 입출력 타이밍 정보에 기초하여 테스트 케이스들을 생성할 수 있다.
테스트 실행기(1220)는 생성된 테스트 케이스들에 기초하여 컴포넌트들을 테스트하는 것에 의해 각 테스트 케이스에 대한 컴포넌트의 수행 사이클 수를 계산할 수 있다.
테스트 결과 분석기(1230)는 계산된 컴포넌트의 수행 사이클 수에 기초하여 컴포넌트들의 최악 수행 시간(Worst-Case Execution Time, WCET)을 계산할 수 있다. 테스트 결과 분석기(1230)는 각 컴포넌트의 입력 데이터의 입력 도달 시간 및 각 컴포넌트의 출력 데이터에 대한 출력 계산 시간에 기초하여 최악 수행 시간을 계산할 수 있다. 테스트 결과 분석기(1230)는 컴포넌트의 최대 수행 사이클 수와 중앙 프로세서 유닛(central processing unit; CPU)의 클록 속도에 기초하여 결정되도록, 최악 수행 시간을 계산할 수도 있다.
테스트 결과 분석기(1230)는 실시간 적합성 검사 장치는 계산된 컴포넌트들의 최악 수행 시간과 컴포넌트들의 입출력 연관관계 정보에 기초하여 컴포넌트 기반 시스템의 실시간 적합성 여부를 판단할 수 있다. 테스트 결과 분석기(1230)는 각 컴포넌트의 출력에 대한 출력 계산 시간이 미리 정해진 제약 시간보다 작은지 여부에 기초하여 컴포넌트 기반 시스템의 실시간 적합성 여부를 판단할 수도 있다.
경우에 따라서, 실시간 적합성 검사 장치(1200)는 타이밍 정보 분석부를 더 포함할 수도 있다. 타이밍 정보 분석부는, 판단 결과, 컴포넌트의 실시간 적합성이 부적합하다고 판단된 경우, 컴포넌트의 입력 도달 시간 또는 출력 계산 시간을 수정할 수도 있다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 컴포넌트로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.

Claims (13)

  1. 컴포넌트 기반 시스템에 대한 실시간 적합성 검사 방법에 있어서,
    상기 시스템을 구성하는 컴포넌트들을 테스트하기 위한 테스트 케이스들을 생성하는 단계;
    상기 생성된 테스트 케이스들에 기초하여 상기 컴포넌트들을 테스트하는 것에 의해 각 테스트 케이스에 대한 컴포넌트의 수행 사이클 수를 계산하는 단계;
    상기 계산된 컴포넌트의 수행 사이클 수에 기초하여 컴포넌트들의 최악 수행 시간(Worst-Case Execution Time, WCET)을 계산하는 단계; 및
    상기 계산된 컴포넌트들의 최악 수행 시간과 상기 컴포넌트들의 입출력 연관관계 정보에 기초하여 상기 시스템의 실시간 적합성 여부를 판단하는 단계
    를 포함하는 실시간 적합성 검사 방법.
  2. 제1항에 있어서,
    상기 실시간 적합성 여부를 판단하는 단계는,
    상기 계산된 컴포넌트들의 최악 수행 시간과 상기 컴포넌트들의 입출력 연관관계 정보에 기초하여 상기 시스템의 입력에서 출력까지 연결된 컴포넌트들의 전체 최악 수행 시간을 결정하는 단계; 및
    상기 전체 최악 수행 시간에 기초하여 상기 시스템의 실시간 적합성 여부를 판단하는 단계
    를 포함하는 실시간 적합성 검사 방법.
  3. 제1항에 있어서,
    상기 실시간 적합성 여부를 판단하는 단계는,
    각 컴포넌트의 출력에 대한 출력 계산 시간이 미리 정해진 제약 시간보다 작은지 여부에 기초하여 상기 시스템의 실시간 적합성 여부를 판단하는 것을 특징으로 하는 실시간 적합성 검사 방법.
  4. 제3항에 있어서,
    상기 출력 계산 시간은,
    출력 계산 시간 누적 함수 또는 입력 도달 시간 누적 함수를 이용하여 생성되는 것을 특징으로 하는 실시간 적합성 검사 방법.
  5. 제4항에 있어서,
    상기 출력 계산 시간 누적 함수는,
    상기 각 컴포넌트의 출력에 관한 입력들의 입력 도달 시간의 최댓값을 누적시키는 것을 특징으로 하는 실시간 적합성 검사 방법.
  6. 제4항에 있어서,
    상기 입력 도달 시간 누적 함수는,
    상기 각 컴포넌트의 출력에 관한 입력의 최종 도달 시간을 누적시키는 것을 특징으로 하는 실시간 적합성 검사 방법.
  7. 제1항에 있어서,
    상기 최악 수행 시간을 계산하는 단계는,
    각 컴포넌트의 입력 데이터의 입력 도달 시간 및 각 컴포넌트의 출력 데이터에 대한 출력 계산 시간에 기초하여 상기 최악 수행 시간을 계산하는 것을 특징으로 하는 실시간 적합성 검사 방법.
  8. 제1항에 있어서,
    상기 판단 결과, 컴포넌트의 실시간 적합성이 부적합하다고 판단된 경우, 상기 컴포넌트의 입력 도달 시간 또는 출력 계산 시간을 수정하는 단계
    를 더 포함하는 실시간 적합성 검사 방법.
  9. 제1항에 있어서,
    상기 최악 수행 시간을 계산하는 단계는,
    컴포넌트의 최대 수행 사이클 수와 중앙 프로세서 유닛(central processing unit; CPU)의 클록 속도에 기초하여 결정되는 것을 특징으로 하는 실시간 적합성 검사 방법.
  10. 제1항에 있어서,
    상기 테스트 케이스들을 생성하는 단계는,
    컴포넌트들의 입출력 연관관계 정보와 상기 컴포넌트들의 입출력 타이밍 정보에 기초하여 테스트 케이스들을 생성하는 것을 특징으로 하는 실시간 적합성 검사 방법.
  11. 제1항 내지 제10항 중 어느 하나의 항의 방법을 실행하기 위한 인스트럭션들을 저장하는 컴퓨터 판독 가능한 저장 매체.
  12. 컴포넌트 기반 시스템에 대한 실시간 적합성 검사 장치에 있어서,
    상기 시스템을 구성하는 컴포넌트들을 테스트하기 위한 테스트 케이스들을 생성하는 테스트 케이스 생성기;
    상기 생성된 테스트 케이스들에 기초하여 상기 컴포넌트들을 테스트하는 것에 의해 각 테스트 케이스에 대한 컴포넌트의 수행 사이클 수를 계산하는 테스트 실행기; 및
    상기 계산된 컴포넌트의 수행 사이클 수에 기초하여 컴포넌트들의 최악 수행 시간(Worst-Case Execution Time, WCET)을 계산하고, 상기 계산된 컴포넌트들의 최악 수행 시간과 상기 컴포넌트들의 입출력 연관관계 정보에 기초하여 상기 시스템의 실시간 적합성 여부를 판단하는 테스트 결과 분석기
    를 포함하는 실시간 적합성 검사 장치.
  13. 제12항에 있어서,
    상기 판단 결과, 컴포넌트의 실시간 적합성이 부적합하다고 판단된 경우, 상기 컴포넌트의 입력 도달 시간 또는 출력 계산 시간을 수정하는 타이밍 정보 분석부
    를 더 포함하는 실시간 적합성 검사 장치.
KR1020160165912A 2016-12-07 2016-12-07 컴포넌트 기반 시스템에 대한 실시간 적합성 검사 방법 및 장치 및 컴퓨터 판독 가능한 저장 매체 KR101918364B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160165912A KR101918364B1 (ko) 2016-12-07 2016-12-07 컴포넌트 기반 시스템에 대한 실시간 적합성 검사 방법 및 장치 및 컴퓨터 판독 가능한 저장 매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160165912A KR101918364B1 (ko) 2016-12-07 2016-12-07 컴포넌트 기반 시스템에 대한 실시간 적합성 검사 방법 및 장치 및 컴퓨터 판독 가능한 저장 매체

Publications (2)

Publication Number Publication Date
KR20180065289A KR20180065289A (ko) 2018-06-18
KR101918364B1 true KR101918364B1 (ko) 2018-11-13

Family

ID=62767830

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160165912A KR101918364B1 (ko) 2016-12-07 2016-12-07 컴포넌트 기반 시스템에 대한 실시간 적합성 검사 방법 및 장치 및 컴퓨터 판독 가능한 저장 매체

Country Status (1)

Country Link
KR (1) KR101918364B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004094351A (ja) 2002-08-29 2004-03-25 Denso Corp QoS制御装置、プログラム
JP2005182223A (ja) 2003-12-17 2005-07-07 Hitachi Ltd 情報処理装置及びオペレーティングシステム
KR101019167B1 (ko) 2009-11-30 2011-03-04 재단법인대구경북과학기술원 임베디드 소프트웨어의 최악 응답 시간 테스트 방법 및 그 장치

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101423634B1 (ko) * 2011-11-18 2014-07-25 고려대학교 산학협력단 실시간 내장형 시스템을 위한 tta 적용 방법
KR101788279B1 (ko) * 2015-08-12 2017-10-19 충남대학교산학협력단 테스트 기법을 이용한 최악 실행 시간 측정 시스템 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004094351A (ja) 2002-08-29 2004-03-25 Denso Corp QoS制御装置、プログラム
JP2005182223A (ja) 2003-12-17 2005-07-07 Hitachi Ltd 情報処理装置及びオペレーティングシステム
KR101019167B1 (ko) 2009-11-30 2011-03-04 재단법인대구경북과학기술원 임베디드 소프트웨어의 최악 응답 시간 테스트 방법 및 그 장치

Also Published As

Publication number Publication date
KR20180065289A (ko) 2018-06-18

Similar Documents

Publication Publication Date Title
US9569179B1 (en) Modifying models based on profiling information
US10310822B1 (en) Method and system for simulating a control program
US8433554B2 (en) Predicting system performance and capacity using software module performance statistics
CN102262586B (zh) 用于软件的自动化误差检测和验证的方法
US10606970B2 (en) Selection of corners and/or margins using statistical static timing analysis of an integrated circuit
US9542295B2 (en) Method to apply perturbation for resource bottleneck detection and capacity planning
US7684971B1 (en) Method and system for improving simulation performance
US20150339209A1 (en) Determining overall performance characteristics of a concurrent software application
EP3486811A1 (en) Simulation device, simulation system, simulation method and simulation program
US7451417B1 (en) Timing annotation accuracy through the use of static timing analysis tools
US20180157571A1 (en) Method for the realistic estimation of function run times in pil simulation
Huybrechts et al. COBRA-HPA: a block generating tool to perform hybrid program analysis
KR101918364B1 (ko) 컴포넌트 기반 시스템에 대한 실시간 적합성 검사 방법 및 장치 및 컴퓨터 판독 가능한 저장 매체
Natarajan et al. From code to weakly hard constraints: A pragmatic end-to-end toolchain for timed c
WO2018032897A1 (zh) 报文转发性能评估方法、装置和计算机存储介质
Lorenz et al. Data-and state-dependent power characterisation and simulation of black-box RTL IP components at system level
CN117273171A (zh) 深度学习框架适配方法、装置、计算机设备和存储介质
CN112825058A (zh) 处理器性能评估方法及装置
Zhao et al. Suraksha: A quantitative AV safety evaluation framework to analyze safety implications of perception design choices
EP4258121A1 (en) Program detection method and device
JP5454349B2 (ja) 性能推定装置
US10223077B2 (en) Determination of signals for readback from FPGA
US7421675B1 (en) Annotating timing information for a circuit design for increased timing accuracy
Zhezlov et al. Analysis of performance bottlenecks in SoC interconnect subsystems
Jerabek et al. Static worst-case execution time analysis tool development for embedded systems software

Legal Events

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