Verification, Validation 및 Test를 위한 MATLAB 및 Simulink

모델 기반 설계를 이용하여 임베디드 시스템을 검증합니다.

엔지니어링 팀은 MATLAB® 및 Simulink®를 이용한 모델 기반 설계를 통해 복잡한 임베디드 시스템을 설계하고 고품질의 C, C++, HDL 코드를 생성합니다. MathWorks 툴은 엄격하고 자동화 가능한 시뮬레이션 테스팅 및 Formal Method 기반 정적 분석을 이용하여 모델 기반 설계를 보완하여 오류를 조기에 탐지하고 높은 품질을 달성합니다.

MATLAB 및 Simulink로 할 수 있는 작업은 다음과 같습니다.

  • 요구사항을 아키텍처, 설계, 테스트, 코드까지 추적합니다.
  • 설계가 요구사항에 부합되고 치명적인 런타임 오류가 없다는 사실을 증명합니다.
  • 모델과 코드의 표준 적합성을 점검하고 품질을 측정합니다.
  • 자동으로 테스트 케이스를 생성하여 테스트 커버리지를 확대합니다.
  • 보고서와 아티팩트를 생성하고 표준 적합성을 인증합니다(DO-178ISO 26262 등).

"수작업으로 코딩하던 과거의 경험과 비교하면, 저희는 모델 기반 설계를 통해 인건비 30%, 테스팅 코드 20%를 줄이고 생산성을 30% 이상 향상시켰습니다. 저희는 자체 소프트웨어 개발 팀을 구축하는 한편, 일정보다 빨리 ECU 개발을 완료했습니다."

Daming Li, Weichai Power

검증에 MATLAB 및 Simulink 활용하기

요구사항 검증

문서, 스프레드시트 또는 IBM® Rational® DOORS® 같은 요구사항 관리 툴에 저장 된 Informal 텍스트 요구사항으로부터터개발 프로세스를 시작합니다. Simulink Requirements™를 이용하면 사용자의 아키텍처, 설계, 생성된 코드, 테스트 아티팩트와 함께 요구사항을 열람, 작성, 관리할 수 있습니다. 요구사항으로 부터에서 Composer™, Simulink, Stateflow®으로 작성 된 설계 또는 Simulink Test™ 의 MATLAB 테스트까지 디지털 스레드를 구성 할 수 있습니다. 이러한 추적성을 이용하여 구현물 또는 테스트의 미비점을 식별하고, 설계나 테스트의 변경이 미치는 영향을 빠르게 이해할 수 있습니다. Third-Party Tool에서 나온 요구사항을 열람, 동기화, 관리하여, 사용자의 개발 프로세스에 있는 다른 툴들과의 추적성을 구축할 수 있습니다.

Simulink Test에 있는 Temporal Assessment를 활용하면, 평가하고 디버깅 할 수 있는 자연어 형식의 정밀한 시멘틱스를 이용하여 평가를 지정함으로써 텍스트 요구사항을 검증할 수 있습니다.


인증 표준 준수

DO-178, ISO 26262, IEC 61508, IEC 62304 및 MAAB(MathWorks Automotive Advisory Board) 스타일 지침을 비롯한 표준에 대한 모델과 코드의 적합성을 자동으로 검증합니다. Simulink Check™는 개발 시 표준 및 지침 위반을 식별하는, 업계에서 인정받는 검사 및 메트릭을 제공합니다. 사용자의 표준 또는 지침에 맞춰 사용자 지정 검사를 생성할 수도 있습니다. IEC Certification Kit(ISO 26262 및 IEC 61508용) 및 DO Qualification Kit(DO-178용)에서는 Tool Qualifcation Artifact, Certificate 그리고 Test Suite들을 제공하여, 코드 생성 및 검증 제품의 적합성을 검사하고 임베디드 시스템의 인증을 간소화할 수 있습니다.


오류가 없음을 증명하고 요구사항을 공식적으로 검증합니다.

모델의 시뮬레이션 없이도 Formal Verification을 통해 Integer Overflow, Dead Logic, Array Access Violation 및 Division By Zero로 인해 유발되는 숨겨진 설계 오류를 탐지합니다. Simulink Design Verifier™를 이용하면 사용자의 설계 오류 또는 보안 취약점을 Frmal Method로 검증할 수 있습니다. Simulink Design Verifier를 이용하면 설계가 핵심 요구사항을 충족하고 있음을 증명할 수도 있습니다. 툴이 Exception을 탐지하면 디버깅을 위해 반례를 생성 할 수도 있습니다.


자동 테스트 생성

테스트의 미비점, 의도치 않은 기능 또는 요구사항 오류를 식별해야 합니다. Simulink Coverage™는 모델 또는 생성된 코드가 테스트 중에 얼마나 실행되었는지 계산합니다. 조건(condition), 결정(decision), MCDC(수정 조건/결정) 및 사용자 지정 커버리지 Objective 등 산업 표준 메트릭을 적용합니다. Simulink Design Verifier는 자동으로 테스트 케이스를 생성하여 불완전한 커버리지를 보완함으로써 구조적, 기능적 커버리지 목표를 달성합니다.


정적 코드 분석

Handwritten 코드와 생성된 코드를 검증하기 위해 Polyspace® 제품군은 테스트 케이스나 코드 실행 없이도 Formal Method를 이용하여 버그를 찾고, 치명적인 런타임 오류가 없다는 사실을 증명합니다. Polyspace Bug Finder™는 MISRA®, ISO 26262, IEC 61508, DO-178, FDA 규정 등 표준에 대한 적합성을 확인하고 문서로 작성합니다. 소프트웨어의 보안 취약점을 검사하고 CWE, CERT-C, ISO/IEC 17961 등 표준에 대한 적합성을 검사할 수 있습니다. Polyspace Code Prover™는 정적 분석을 수행하여 C 및 C++ 소스 코드에 Overflow, Division by Zero, Out of Bounds Array Access, 기타 런타임 오류가 없다는 사실을 증명합니다.