그것은 모두를 결합하는 의미가 않습니다 : 당신이 명확하게 정적 분석이 실제 문제 (단지 그럴듯한 문제)를 감지하고 그들을보고 싶어요. 정적 분석기가 문제가 없다고 확신하는 곳에 대해서는 아무 것도하지 않거나 말하지 않아도됩니다. 정적 분석기가 알아낼 수없는 곳에서는 동적 분석이 런타임에 잘못된 이벤트를 감시하기를 원합니다.
기본적인 대답은 정적 분석을 수행하는 도구는 일반적으로 응용 프로그램 코드를 계측하기에 적합하지 않으며 계측기는 정적 분석을 지원하지 않는다는 것입니다.
우리의 DMS Software Reengineering Toolkit은 두 가지 기능을 모두 갖추고 있으며 이러한 도구를 만드는 데 사용할 수있는 인프라 세트입니다. DMS의 핵심은 프로그램 분석 및 변환 시스템입니다. 분석 측은 코드를 분석하고 분석기를 기반으로하는 모델 (AST, 기호 테이블, 제어/데이터 흐름 그래프 등)을 작성합니다. 변환 측면에서는 AST (변경 사항을 결정하기 위해 분석기를 사용)를 수정하고 임의의 변경 사항을 사용하여 수정 된 소스 코드를 추출 할 수 있습니다. 이 토론을 위해 계측 코드.
DMS를 계측 코드 (동적 분석)에 사용하는 방법에 대한 명확한 개요가 Branch Coverage for Arbitrary Languages Made Easy입니다.
정적 분석과 동적 분석을 결합하는보다 정교한 예제는 CheckPointer 도구입니다.이 도구는 포인터 오류를 발견합니다 (다운 스트림 손상과 반대). CheckPointer는 (이 초기의 삶에서) 기본적으로 동적 분석을 결합하여이 효과를 얻고 일부 정적 분석 (계획된 추가 분석)과 결합하여 최대한 많은 동적 검사를 제거합니다.