mdd:design_metrics_proneness_prediction

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
mdd:design_metrics_proneness_prediction [2016/12/25 16:47] sukhoruchenkovmdd:design_metrics_proneness_prediction [2026/08/29 07:59] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +Изложение статьи
  
 +Yuming Zhou and Hareton Leung,Empirical analysis of object-oriented design metrics for predicting high and low severity faults, IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, VOL. 32, NO. 10, OCTOBER 2006
 +
 +====== Введение ======
 +
 +В статье рассматривается задача выявления дефектов (определение вероятности того, что в классе содержится дефект архитектурного решения). Для решения данной задачи используются метрики Чидамбера и Кемерера(было выбрано 6 метрик), которые оценивают структурные характеристики классов. Для исследования используются четыре различных метода машинного обучения:
 +
 +  * Логистическая регрессия
 +  * Наивный байесовский классификатор
 +  * Случайный лес
 +  * Метод ближайшего соседа
 +
 +В статье рассматриваются следующие вопросы:
 +
 +1. Как метрики, связанны с возникновением ошибок высокой и низкой сложности в классах?
 +
 +2. Какие метрики сильнее связаны с возникновением ошибок высокой и низкой сложности в классах?
 +
 +3. Насколько точно метрики предсказывают ошибки высокой степени тяжести?
 +
 +4. Насколько точно метрики предсказывают ошибки низкой степени тяжести?
 +
 +====== Используемые метрики и датасеты ======
 +
 +В статье рассматриваются следующие метрики:
 +
 +  * Weighted Methods per Class (WMC) - количество методов, имплементируемым классом
 +  * Depth of Inheritance (DIT) - расстояние от класса до корня в дереве насследования
 +  * Response for a Class (RFC) - WMC плюс количество наследованных методов
 +  * Number of Children (NOC) - число непосредственных детей в дереве насследования у данного класса
 +  * Coupling between Objects (CBO) - количество классов, с которым связан данный класс (fan-out)
 +  * Lack of Cohesion (LCOM) - усредненная по атрибутам доля методов, использующая этот атрибут (LCOM3)
 +  * Source Lines Of Code (SLOC) - количество строк кода в классе
 +
 +Для каждой метрики проверяется следующая гипотеза:
 +У класса с высоким значением метрики больше шансов иметь ошибку высокой/
 +низкой сложности, чем у класса с низким значением метрики.
 +
 +В качестве выборки используется датасет KC1 (NASA), в котором даны измерения по 21 метрике для классов и методов. Для анализа используются только 7 вышеперечисленных метрик.
 +Из него были удалены все случаи не связанные с ошибками в исходном коде. Так же все дефекты были разделены на две группы(ошибки высокой и низкой сложности), вместо 5-ти исходных.
 +
 +====== Вычислительный эксперимент ======
 +
 +В рамках вычислительного эксперимента для каждой из моделей оцениваются такие параметры, как полнота (доля отмеченных классов как дефект от общего числа дефективных классов)(Correctness), точность (доля правильно отмеченных дефектов) (Precision), и доля правильно данных предсказаний (Completeness).
 +
 +Методика эксперимента следующая: для каждой модели проводятся измерения на трёх датасетах:
 +
 +  * С любыми дефектами(Ungraded severity faults)
 +  * Только дефекты высокой сложности(High severity faults)
 +  * Только дефекты низкой сложности(Low severity faults)
 +
 +и измеряются необходимые характеристики.
 +
 +Вначале была построена модель логистической регрессии с использованием одной метрики(т.е. изучались связи отдельных метрик с возникновением ошибок). Далее были построены модели для анализа зависимости от комбинации метрик проектирования(все кроме SLOC) и всех метрик с использованием различных методов машинного обучения.
 +
 +==== Результаты измерений ====
 +
 +Логистическая регрессия для отдельных метрик
 +[[mdd:_detail:mdd:логистическая_регрессия.png|]]
 +Логистическая регрессия для комбинаций метрик
 +[[mdd:_detail:mdd:логистическая_регрессия_комбинации_.png|]]
 +Методы ML для отдельных метрик и их комбинаций
 +[[mdd:_detail:mdd:ml1.png|]]
 +[[mdd:_detail:mdd:ml2.png|]]
 +
 +Можно заметить, что для ошибок высокой сложности, как одномерные так и многомерные модели логической регрессии имеют достаточно низкую корректность и полноту, хотя они и имеют высокую точность. В частности, из всех метрик, SLOC является лучшим предсказателем. Многомерная модель построенная только с метриками проектирования не опережает даже простую модель, с зависимостью от размера класса. Точность, корректность и полнота моделей машинного обучения также хуже, чем у регрессионной модели. Эти результаты указывают на то, что возможности этих метрик проектирования для предсказания ошибок высокой сложности ограничены, хотя большинство из них статистически связаны с возникновением дефектов высокой сложности.Точность, корректность и полнота для моделей машинного обучения более или менее равны таковым в модели логистической регрессии. Эти результаты свидетельствуют о том, что метрики проектирования работают намного лучше в прогнозировании неисправностей низкой сложности, чем при прогнозировании
 +неисправностей высокой сложности.
 +
 +В итоге используя результаты измерений, были проверены сформированные в начале эксперимента гипотезы.
 +
 +==== Результаты проверки гипотез ====
 +
 +[[mdd:_detail:mdd:проверка_гипотез.png|]]
 +
 +====== Заключение ======
 +
 +Основные полученные результаты:
 +
 +  * Метрики CBO, WMC, RFC и LCOM статистически связаны со склонностью кода к дефектам любой сложности, в то время как DIT не связан с возникновением дефектов. Величина NOC связана с количеством дефектов низкой степени сложности обратной зависимостью(класс с большим значением NOC имеет меньшую вероятность быть дефектным)
 +  * Возможности прогнозирования склонности к дефектам этих метрик сильно отличаются в зависимости от серьезности дефекта. Применительно к классификации классов на подверженные и не подверженные ошибкам для ошибок низкой сложности, модели логистической регрессии и машинного обучения смогли достичь показателей производительности, сравнимых с предыдущими исследованиями. Однако, возможности предсказаний с помощью этих показателей для ошибок высокой сложности ограничено.