소스 미터

SourceMeter
소스 미터
SourceMeter logo.svg
개발자FrontEndART Ltd.
안정된 릴리스
8.2 / 2016년 12월 16일, 5년 전(2016-12-16)
기입처C, C++
운영 체제크로스 플랫폼
면허증.EULA
웹 사이트www.sourcemeter.com

Source Meter는 C, C++, Java, Python, C#, RPG(AS/400)[1]에 있는 복잡한 프로그램의 소스 코드를 심층 정적 프로그램 분석할 수 있는 소스 코드 분석 도구입니다.프런트 엔드ART는 Szeged [3][4]대학 소프트웨어공학과에서 연구·개발한 콜럼버스 기술을[2] 기반으로 Source Meter를 개발했다.

배경

정적 분석 중에 소스 코드의 언어 요소로부터 추상 의미 그래프(ASG)가 구축된다.이 ASG는 패키지 내의 다양한 툴에 의해 처리되어 LLOC,[6] NLE, NOA 등의 제품[5] 메트릭을 계산하고 중복 코드(복사 붙여넣기 코드, 클론), 코드화 규칙 위반 등을 식별합니다.

Source Meter는 Java 8 이전 버전, C/C++, RPG III 및 RPG IV 버전, C# 6.0 이전 버전 및 Python 2.7.8 이전 버전에 적합한 소스 코드를 분석할 수 있습니다.C/C++의 경우, SourceMeter는 ISO/IEC 14882:2014 및 ANSI/ISO 9899:1990, ISO/IEC 9899:1999 및 ISO/IEC 9899:2011 표준에 의해 정의된 C 언어의 몇 가지 신기능으로 확장된 ISO/IEC 14882:2011 국제 표준을[7] 지원합니다.표준 기능 이외에, 몇개의 GCC 및 Microsoft 고유의 확장 기능도 서포트되고 있습니다.

특징들

  • 정확하고 상세한 정적 분석, 완전한 의미 그래프 구축, 의미적 에지(콜, 참조), 주석 등을 포함합니다.
  • 60개 이상의 소스 코드 메트릭(복잡도, 커플링, 응집력, 상속 등), 다양한 수준(예: 이름 공간, 클래스, 메서드 등)
  • 구문 경계에 관한 유형 2 복제
  • 코드 복제 메트릭(안정성, 임베디드성, 분산성 등)
  • 일관되지 않은 중복 변경 감지
  • 코딩 규칙 확인(PMD 규칙 위반과 FaultHunter 규칙 위반 간의 차이)
  • 데이터 흐름(SQL 주입, XSS 등)에 기반한 보안 취약성 검출
  • 메트릭 기반 규칙 위반 검사
  • Android 관련 규칙 위반 검사
  • 심볼 코드 실행을 통한 런타임 예외 탐지(Java에만 해당)

SonarQube 플러그인

SonarQube 플랫폼용 SourceMeter 플러그인은 코드 품질을 관리하기 위한 오픈 소스 SonarQube 플랫폼의 확장입니다.플러그인은 SonarQube 플랫폼에서 SourceMeter를 실행하고 SourceMeter의 소스 코드 분석 결과를 SonarQube 데이터베이스에 업로드합니다.플러그인은 오픈 소스이며 SourceMeter 도구에서 제공하는 많은 추가 메트릭과 문제 디텍터를 통해 확장되는 일반적인 SonarQube 코드 분석 결과를 제공합니다.플러그인은 C/C++, Java, C#, Python 및 RPG [8]언어를 지원합니다.

레퍼런스

  1. ^ Szőke, Gábor; Nagy, Csaba; Ferenc, Rudolf; Gyimóthy, Tibor (2014). "A Case Study of Refactoring Large-Scale Industrial Systems to Efficiently Improve Source Code Quality" (PDF). Computational Science and its Applications – ICCSA 2014. Lecture Notes in Computer Science. Vol. 8583. pp. 524–540. doi:10.1007/978-3-319-09156-3_37. ISBN 978-3-319-09155-6.
  2. ^ 아르파드 베제데스, 루돌프 페렌츠, 티보르 기모시: "콜럼버스: 리버스 엔지니어링 어프로치"
  3. ^ 소프트웨어 공학부
  4. ^ 체게드 대학교
  5. ^ 소스 코드 메트릭 참조
  6. ^ Istvann Siket, Arpad Beszédes, John Taylor: "자유 도구에서 LOC 메트릭의 정의와 계산의 차이"
  7. ^ ISO C++ 규격의 소스 미터
  8. ^ Ferenc R., Lango L., Siket I., Gymothy T.: "소스 코드 분석 및 조작에 관한 제14회 IEEE 국제 작업 회의(SCAM 2014)" 속에서의 "소스 미터 Sonar Qube 플러그인"빅토리아, 브리티시컬럼비아, 캐나다, 77-82페이지.2014년 9월 28~29일]

외부 링크