Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| mdd:svm_fault_proneness [2016/12/19 16:59] – Completed article akhtyamovpavel | mdd:svm_fault_proneness [2026/08/29 07:59] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ===== Software Fault Proneness Prediction Using Support Vector Machines ===== | ||
| + | Изложение статьи | ||
| + | |||
| + | Yogesh Singh, Arvinder Kaur, Ruchika Malhotra. Software Fault Proneness Prediction Using Support Vector Machines. July 2009. World Congress on Engineering 2009 Vol I. | ||
| + | |||
| + | ===== Основная часть ===== | ||
| + | |||
| + | В статье рассматривается задача выявления дефектов (определение вероятности того, что в классе содержится дефект архитектурного решения). Для решения данной задачи используются метрики Чидамбера и Кемерера, | ||
| + | |||
| + | * Возможно ли выделение дефектов при помощи SVM? | ||
| + | * Насколько точна будет построенная модель для выявления дефектов? | ||
| + | |||
| + | ==== Используемые метрики и датасеты ==== | ||
| + | |||
| + | В статье рассматриваются следующие метрики: | ||
| + | |||
| + | * Coupling between Objects (CBO) - количество классов, | ||
| + | * Lack of Cohesion (LCOM) - усредненная по атрибутам доля методов, | ||
| + | * Number of Children (NOC) - число непосредственных детей в дереве насследования у данного класса | ||
| + | * Depth of Inheritance (DIT) - расстояние от класса до корня в дереве насследования | ||
| + | * Weighted Methods per Class (WMC) - количество методов, | ||
| + | * Response for a Class (RFC) - WMC плюс количество наследованных методов | ||
| + | * Source Lines Of Code (SLOC) - количество строк кода в классе | ||
| + | |||
| + | При помощи данных метрик предсказывается вероятность наличия дефекта в классе. | ||
| + | |||
| + | В качестве выборки используется датасет KC1 (NASA), в котором даны измерения по 21 метрике для классов и методов. Для анализа используются только 7 вышеперечисленных метрик. | ||
| + | |||
| + | ==== Метод опорных векторов ==== | ||
| + | |||
| + | Метод опорных векторов применяется в различных задачах, | ||
| + | |||
| + | Для построения нелинейной разделяемой поверхности используется kernel trick: замена функции оптимизации с учётом сохранения свойств для решения задачи SVM (подробнее можно прочесть [[http:// | ||
| + | |||
| + | Для оценивания наличия дефектов, | ||
| + | Оценка построенной модели производится при помощи измерения площади под ROC-кривой ([[http:// | ||
| + | |||
| + | ==== Вычислительный эксперимент ==== | ||
| + | |||
| + | В рамках вычислительного эксперимента для каждой из метрик оцениваются такие параметры, | ||
| + | |||
| + | В ходе исследований, | ||
| + | |||
| + | Для общей модели результаты получились следующими: | ||
| + | |||
| + | * Sensitivity - 76% (45 классов из 59) | ||
| + | * Specificity - 81% (более 70 классов из 86) | ||
| + | * Precision - 79% | ||
| + | * Completeness - 86% | ||
| + | * AUC-ROC - 0.89 | ||
| + | |||
| + | После кросс-валидации по 10 блокам результаты остались в районе 70-80% по всем критериям качества. | ||
| + | |||
| + | В итоге, была обеспечена большая точность нахождения дефектов, | ||
| + | |||
| + | ===== Заключение ===== | ||
| + | |||
| + | Проанализировано применение метода опорных векторов в задаче выявления дефектов. По результатам исследования, | ||
| + | |||
| + | * Метрики CBO, RFC и SLOC сильно связаны с вероятностью дефекта, | ||
| + | * SVM дал хороший AUC-ROC, поэтому метод может быть применим на практике. Более того, результаты адаптируемы к объектно-ориентированным системам. | ||
| + | |||
| + | Более детальное продолжение данного исследования можно найти [[http:// | ||