Обзор: оценка качества кода с помощью машинного обучения

02 сентября 2018

В работе1 с помощью статического анализа кода и технологий машинного обучения проводилась оценка качества фрагментов программного кода (методов классов). Код оценивается как "хорошо написанный" и "плохо написанный".

В работе применены модели машинного обучения: наивный байесовский классификатор, метод k Ближайших Соседей и классификатор дерева решений. Использовалась база работ студентов с комментариями учителя.

Вычислялись следующие метрики:

  • Цикломатическая сложность Томаса Маккейба
  • Метрики Хальстеда: число операторов и операндов, число операторов, число операндов, число уникальных операторов и операндов, объем, длина программы, сложность, усилие, оценка число ошибок ...
Точность распознавания получилась порядка 70%

В Qualiter 3 применяется другой набор метрик и другая модель, точность распознавания получается порядка 90%. Однако валидация систем проводилась по разным базам, т.е. сравнение эффективности требует дополнительных исследований.

Литература

  1. https://ojs.bibsys.no/index.php/NIK/article/view/26

Новости

  • Релиз Qualiter 4.5.0. Произведена интеграция с платформой SonarQube
    30 января 2019
  • Релиз Qualiter 3.1.0. Добавили Rest API.
    04 сентября 2018
  • Релиз Qualiter 3.0.3. Утилита для оценки необходимости рефакторинга компиляционной единицы Java кода. Доступно онлайн Demo.
    16 июля 2018
Все новости