Accelerating the pace of engineering and science

Polyspace Bug Finder

주요 특징

  • 런타임 오류, 동시성 문제, 보안 취약성 및 여러 종류의 결함을 검출
  • 검출 시 바로 오류가 표시되어 대규모 코드에서 더 빠른 분석
  • MISRA-C:2004, MISRA-C++:2008, MISRA C:2012, JSF++ 및 사용자 정의 명명 규칙 준수 확인
  • 순환 복잡도 및 기타 코드 메트릭
  • Eclipse™와의 통합
  • Simulink® 모델까지 코드 검증 결과 추적 기능
  • 거짓 양성 결과율이 낮은 버그 검출
Static analysis results displayed by Polyspace Bug Finder.

Polyspace Bug Finder에 의한 정적 분석 결과.

정적 분석을 통한 소프트웨어 결함 및 보안 취약성 파악

Polyspace Bug Finder는 코드 구성요소 또는 전체 임베디드 소프트웨어 프로젝트를 분석하기 위해 사용하는 정적 코드 분석 툴입니다. Polyspace Bug Finder는 거짓 양성 비율이 낮은 정형 기법을 포함한 정적 코드 분석 기술을 사용하여 C 또는 C++ 소스 코드에서 런타임 오류, 동시성 문제, 보안 취약성 및 여러 종류의 버그를 정확히 탐지할 수 있습니다.

Polyspace Bug Finder를 사용하면 버그를 신속하게 발견, 분류하고 수정할 수 있습니다. 발견 즉시 오류가 강조 표시되므로 전체 소스 코드 분석이 완료될 때까지 기다릴 필요가 없습니다. 개발 프로세스의 초기 단계에서부터 코드를 작성, 수정 또는 생성 하자마자 바로 버그 및 코드 규칙 위반 사항을 검출하는 작업을 반복적으로 적용할 수 있습니다. Polyspace Bug Finder는 독립적인 사용자 인터페이스뿐만 아니라 Eclipse IDE와 연동 또는 명령줄 호출을 통해 사용할 수 있습니다. 자동화된 사용방법을 위해 빌드 환경과 통합할 수도 있습니다.

Polyspace Bug Finder는 소프트웨어 개발 작업 흐름에서 다음과 같은 중요 활동을 지원합니다.

  • 결함 및 보안 취약성 검출
  • 코딩 표준 적용
  • 코드 복잡도 메트릭 생성
  • 검출된 오류의 분류 및 수정

Polyspace Bug Finder를 통해 다음과 같이 프로젝트를 설정하고 정적 코드 분석을 수행할 수 있습니다.

  • 임베디드 타겟 및 컴파일러를 통한 프로젝트 생성 및 설정
  • 소스 코드에서 결함 검출
  • 코드의 MISRA-C:2004, MISRA AC AGC, MISRA-C++:2008, MISRA C:2012, JSF++ (Joint Strike Fighter Air Vehicle C++) 표준 또는 사용자 정의 명명 규칙 준수 확인
  • 정적 코드 분석 결과나 코드 규칙 준수 결과를 보고서로 작성하거나 시각화
  • 결함 원인을 검토하여 검출된 결함을 분류하고 수정할 방법을 결정
  • Simulink 모델 또는 IBM® Rational® Rhapsody® 모델까지 코드의 결함을 추적
  • 정적 분석 결과를 웹 대시보드에 업로드하여 소프트웨어 품질 트렌드를 모니터링
Identify defects and check compliance to MISRA or JSF++.

Polyspace에서 프로젝트를 구성하여 결함 검출 및 MISRA 또는 JSF++ 준수 확인

Polyspace Bug Finder는 소스 코드에 특정 런타임 오류가 없음을 증명할 수 있는 Polyspace Code Prover™와 함께 사용할 수 있습니다. 이 두 제품으로 개발 초기 단계에서부터 버그 찾기, 코드 규칙 검사 및 증명에 걸치는 엔드투엔드(end-to-end) 정적 분석 기능을 제공합니다. 이러한 기능을 통해 테스트 기간을 단축하고 비용을 최적화함과 동시에 임베디드 소프트웨어의 신뢰성을 보장합니다.

Parallel Computing Toolbox™MATLAB Distributed Computing Server™를 사용하여 정적 분석 작업을 컴퓨터 클러스터로 제출함으로써 정적 코드 분석 속도를 높일 수 있습니다.

초기에 버그를 수정하여 테스팅 사이클 단축

Polyspace Bug Finder는 수치, 정적 메모리, 동적 메모리, 동시성 및 보안 취약성 등 다양한 결함을 검출합니다. 테스트 케이스를 작성하지 않고 결함을 검출할 수 있습니다. 한 번의 분석을 통해 코드에 있는 대부분의 결함을 검출할 수 있습니다. 이는 동시성 문제와 같이 테스트 케이스로는 잡아내기가 매우 어려운 결함들에 있어서 더욱 중요합니다.

결함 원인과 출처를 파악하기 쉽게 할 수 있도록 역추적 정보를 제공하며 소스코드에 결함과 함께 표시됩니다. 이를 통해 테스팅 사이클의 디버깅 및 수정 단계에서 결함을 추적하는 비용이 절감됩니다.

수월한 작업 흐름 덕분에 개발자나 품질 엔지니어들이 결함을 분류하기 쉬워집니다. 검출된 각각의 결함에 대해, Polyspace Bug Finder는 결함의 원인과 관련된 자세한 정보를 제공합니다. 예를 들어, 정수 오버플로우가 발생한 경우 Polyspace Bug Finder는 코드에서 오버플로우 조건을 유발하는 모든 행 번호를 추적합니다. 소프트웨어 개발자는 코드를 수정할 최적의 방법을 결정하기 위해 이 정보를 활용할 수 있습니다. 품질 엔지니어는 결함에 대한 후속 조치를 지정하기 위해 이 정보를 활용할 수도 있습니다. 예를 들어, 품질 엔지니어는 결함에 추가적인 조사가 필요하다고 기록하거나 우선순위가 낮다고 표시할 수 있습니다.

An overflow condition identified in Polyspace Bug Finder.

Polyspace Bug Finder가 검출한 오버플로우

코딩 표준(MISRA, JSF, 명명 규칙) 준수 여부 확인

Polyspace Bug Finder는 MISRA-C:2004, MISRA-C++:2008, MISRA C:2012, MISRA AC AGC, JSF++ 및 사용자가 정의한 명명 코딩 규칙에 대한 위반 사항 탐지할 수 있습니다. Polyspace Bug Finder를 사용하여 코딩 규칙을 적용함으로써 코드의 가독성 및 품질을 향상할 수 있습니다. Polyspace Bug Finder가 표준의 모든 규칙을 확인하도록 하거나 표준에서 필수적으로 요구되는 규칙만 확인하도록 할 수 있고, 적용할 규칙을 개별적으로 선택하여 확인할 수도 있습니다. 그리고 동일한 코딩 규칙이 모든 팀원에게 적용되도록 자체적인 구성을 정의할 수도 있습니다.

규칙 위반 사항을 소스 코드 편집기와 연동하여 바로 수정하거나 문서화 나 코드 주석으로 코딩 규칙 위반 사항들을 정당화할 수 있습니다. Polyspace Bug Finder 인터페이스는 이전 분석과의 차이점을 분석하여 동일한 위반 사항을 두 번 확인하지 않도록 해줍니다. 코딩 규칙 분석 결과를 웹 대시보드로 내보내서 시간에 따라 바뀌는 결과 내용들을 추적해 볼 수 있습니다.

Polyspace 제품을 사용한 MISRA 코드 규칙 준수 확인
코드의 MISRA C® 규칙 준수 여부 확인, 위반 사항 검출 및 수정, 문서화를 위한 보고서 생성 기능을 제공합니다.

Identifying a MISRA violation.

MISRA 위반 사항 검출

코드 메트릭 생성 및 소프트웨어 품질 모니터링

Polyspace Bug Finder는 프로젝트 수준, 파일 수준 및 함수 수준에서의 메트릭를 생성하여 코드의 복잡성을 평가합니다. Polyspace Bug Finder는 HIS(Hersteller Initiative Software) 메트릭 생성을 지원하고 이 정보를 웹 대시보드로 내보낼 수 있습니다. 코드 복잡성 메트릭에는 다음이 포함됩니다.

  • 순환 복잡도
  • 함수 결합도
  • 주석 밀도
  • 호출 수준
  • 경로 수
  • CWE 매핑

결함, 코드 복잡성 및 코딩 규칙 위반 사항들을 추적할 수 있는 중앙화된 품질 모델을 정의할 수 있습니다. 이러한 메트릭을 사용하여, 코드가 진화함에 따라 미리 정의된 소프트웨어 품질 목표에 대한 진행 상태를 추적할 수 있습니다. Polyspace Bug Finder는 코드 품질이 개선된 사항에 대한 비율을 측정하여 개발자, 테스터 및 프로젝트 관리자가 고품질 코드를 목표로 설정하고 제공할 수 있도록 합니다.

Software quality metrics displayed via web browser.

웹 브라우저에 표시된 소프트웨어 품질 메트릭

코드 분석 결과로 Simulink 모델까지 추적

Polyspace Bug Finder는 생성된 코드나 직접 작성한 코드와 생성된 코드를 포함한 혼합 코드까지 함께 분석할 수 있습니다. 자동 생성된 코드에 있는 코드 수준의 결함은 Simulink 모델로 역추적될 수 있습니다. 모델의 어느 부분이 믿을 수 있는 부분인지 파악하고 코드에서 오류를 유발시키는 설계 문제를 수정할 수 있습니다. 또한, 생성된 코드와 직접 작성한 코드를 통합했을 때 발생할 수 있는 잠재적인 문제를 식별할 수도 있습니다. 예를 들어, 직접 작성한 저수준 코드와 생성된 코드를 결합하면 인터페이스 사이에서 잘못된 신호 범위로 인해 런타임 오류가 발생하는 문제가 발생할 수 있습니다. 자세한 데이터 흐름 및 제어 흐름 정보를 통해 직접 작성한 코드 또는 모델에 존재하는 결함을 파악하는 것을 용이하게 해 줍니다.

또한, Polyspace Bug Finder는 dSPACE® TargetLink®블록 및 IBM Rational Rhapsody 모델까지 결과를 추적하는 것도 지원합니다.

Tracing MISRA violations to the Simulink model.

MISRA 위반 사항을 Simulink 모델까지 추적

인증서 아티팩트 생성

Polyspace Bug Finder 및 Polyspace Code ProverIEC Certification Kit(ISO 26262 및 IEC 61508)DO Qualification Kit(DO-178)을 통해 업계 표준에 기반한 프로젝트를 위한 인증 프로세스에서 사용할 수 있습니다.

보고서와 아티팩트는 코드의 최종 품질을 보여 주거나 검토한 부분을 강조 표시하기도 하며, 코드 메트릭 관련 정보, 코딩 규칙 적용 내역 과 런타임 오류 상태를 문서화합니다. 이러한 보고서는 PDF, HTML, RTF 등의 형식으로 생성할 수 있습니다.

DO Qualification Kit contents.

Certification 및 Qualification Kit가 판매 중입니다.

Polyspace를 활용한 C/C++ 코드 검증

웨비나 보기