SourceMeter - SourceMeter - Wikipedia
Разработчики) | ООО «ФронтЭндАРТ» |
---|---|
Стабильный выпуск | 8.2 / 16 декабря 2016 г. |
Написано в | C, C ++ |
Операционная система | Кроссплатформенность |
Лицензия | EULA |
Интернет сайт | www |
SourceMeter это инструмент анализатора исходного кода, который может выполнять глубокие статический анализ программы из исходный код комплексных программ в C, C ++, Ява, Python, C #, и РПГ (AS / 400).[1] FrontEndART разработал SourceMeter на основе технологии Columbus.[2] исследованы и разработаны на факультете программной инженерии Сегедского университета.[3][4]
Фон
Во время статического анализа абстрактный семантический граф (ASG) состоит из языковых элементов исходного кода. Затем этот ASG обрабатывается различными инструментами в пакете для расчета показателей продукта.[5] как LLOC,[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 г.]
внешняя ссылка
Этот инструмент для программирования -связанная статья является заглушка. Вы можете помочь Википедии расширяя это. |