Источникметр
![]() | |
Разработчик(и) | ООО "ФронЭндАРТ" |
---|---|
Стабильная версия | 8.2
/ 16 декабря 2016 г |
Написано в | С , С++ |
Операционная система | Кросс-платформенный |
Лицензия | Лицензионное соглашение |
Веб-сайт | www |
SourceMeter — это инструмент анализатора исходного кода, который может выполнять глубокий статический анализ исходного кода сложных программ на C , C++ , Java , Python , C# и RPG (AS/400). [ 1 ] FrontEndART разработал SourceMeter на основе технологии Columbus [ 2 ] исследуется и разрабатывается на факультете программной инженерии Университета Сегеда. [ 3 ] [ 4 ]
Фон
[ редактировать ]В ходе статического анализа абстрактный семантический граф из языковых элементов исходного кода строится (АСГ). Затем этот ASG обрабатывается различными инструментами пакета для расчета показателей продукта. [ 5 ] как МЕСТО, [ 6 ] NLE или NOA, выявление дублированного кода (скопированный код; клоны), нарушений правил кодирования и т. д.
SourceMeter может анализировать исходный код, соответствующий Java 8 и более ранним версиям, C/C++, версиям RPG III и RPG IV (включая произвольную форму), C# 6.0 и более ранним версиям, а также Python 2.7.8 и более ранним версиям. В случае C/C++ SourceMeter поддерживает международный стандарт ISO/IEC 14882:2011. [ 7 ] расширен несколькими новыми функциями из ISO/IEC 14882:2014 и языком C, определенным стандартами ANSI/ISO 9899:1990, ISO/IEC 9899:1999 и ISO/IEC 9899:2011. Помимо стандартных функций, также поддерживаются несколько расширений GCC и Microsoft.
Функции
[ редактировать ]- Точный и глубокий статический анализ, построение полных семантических графов, содержащих семантические ребра (вызовы, ссылки), комментарии и т.д.
- Более 60 показателей исходного кода (сложность, связанность, связность, наследование и т. д.) на разных уровнях (пакет, пространство имен, класс, метод и т. д.)
- Дублирование типа 2 относительно границ синтаксиса
- Метрики дублирования кода (стабильность, встроенность, дисперсия и т. д.)
- Обнаружение противоречивых изменений дупликаций
- Проверка правил кодирования ( Различия между нарушениями правил PMD и нарушениями правил FaultHunter )
- Обнаружение уязвимостей безопасности на основе потока данных (SQL-инъекция, XSS и т. д.)
- Проверка нарушений правил на основе показателей
- Проверка нарушений правил Android
- Обнаружение исключений во время выполнения посредством символического выполнения кода, только для Java.
Плагин SonarQube
[ редактировать ]Плагин SourceMeter для платформы SonarQube — это расширение платформы SonarQube с открытым исходным кодом для управления качеством кода. Плагин запускает SourceMeter с платформы SonarQube и загружает результаты анализа исходного кода SourceMeter в базу данных SonarQube. Плагин имеет открытый исходный код и предоставляет все обычные результаты анализа кода SonarQube, дополненные множеством дополнительных показателей и детекторов проблем, предоставляемых инструментом SourceMeter. Плагин поддерживает языки C/C++, Java, C#, Python и RPG. [ 8 ]
Ссылки
[ редактировать ]- ^ Сёке, Габор; Надь, Чаба; Ференц, Рудольф; Дьимоти, Тибор (2014). «Пример рефакторинга крупномасштабных промышленных систем для эффективного улучшения качества исходного кода» (PDF) . Вычислительная наука и ее приложения – ICCSA 2014 . Конспекты лекций по информатике. Том. 8583. стр. 524–540. дои : 10.1007/978-3-319-09156-3_37 . ISBN 978-3-319-09155-6 .
- ^ Арпад Беседес, Ференц Рудольф, Тибор Гимоти: «Колумб: подход обратного проектирования»
- ^ Департамент разработки программного обеспечения
- ^ Университет Сегеда
- ^ Справочник по показателям исходного кода
- ^ Иштван Сикет, Арпад Бесседес, Джон Тейлор: «Различия в определении и расчете метрики LOC в бесплатных инструментах»
- ^ SourceMeter по стандарту ISO C++
- ^ Ференц Р., Ланго Л., Сикет И., Гимоти Т.: «Плагин Source Meter Sonar Qube» в материалах 14-й Международной рабочей конференции IEEE по анализу и манипулированию исходным кодом (SCAM 2014). Виктория, Британская Колумбия, Канада, стр. 77–82. 28–29 сентября 2014 г.]