Анализ динамики изменения показателей внутреннего качества open-source проекта “7-Zip”
Цель дипломной работы
Основные понятия
Актуальность проблемы
Компоненты качества ПО
Схема эксперимента
Метрики ПО
Фрагмент модели фактор-критерий-метрика
Инструментарий исследования
Алгоритм определения цикломатической сложности
Алгоритм определения глубины типа в дереве наследования
Гистограммы
Корреляция
Динамика метрик
Динамика изменения показателя фактора качества: Эффективность
Выводы об эволюции проекта
Экономическое обоснование
Выводы
Благодарю за внимание!

Анализ динамики изменения показателей внутреннего качества open-source проекта “7-Zip”

1. Анализ динамики изменения показателей внутреннего качества open-source проекта “7-Zip”

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ
Национальный аэрокосмический университет им. Н.Е. Жуковского
«Харьковский Авиационный Институт»
Кафедра «Инженерии программного обеспечения»
Анализ динамики изменения показателей
внутреннего качества
open-source проекта “7-Zip”
Выполнил:
студент гр.667п1
Пилипенко Денис Павлович
Научный руководитель:
кандидат технических наук, доцент
Голубь Надежда Григорьевна

2. Цель дипломной работы

• Цель – совершенствование процессов разработки,
сопровождения и реинжиниринга ПО на основе мониторинга
метрик качества ПО с открытым кодом.
• Задачи
– анализ проблемных вопросов обеспечения качества ПО;
– выполнить планирование эксперимента по расчету характеристик
качества ПО;
– разработать алгоритмы методов обработки данных;
– провести эксперимент;
– выполнить анализ полученных данных;
– сформулировать выводы об эволюции проекта с точки зрения
качества ПО.
2

3. Основные понятия

• Объект исследования – анализ внутреннего качества
программного обеспечения.
• Предмет исследования – методы получения формальных
параметров качества программного обеспечения, алгоритмы
расчета метрик сложности ПО.
• Качество
1)
2)
мера, в которой система, компонент или процесс удовлетворяет
предъявленным к ней требованиям
мера, в которой система, компонент или процесс удовлетворяет
потребности и ожидания заказчика (пользователя)
• Метрика ПО – мера, позволяющая получить численное значение
некоторого свойства программного обеспечения или его
спецификаций, а также метод её подсчета
• Открытое ПО – ПО с открытым исходным кодом. Исходный код
таких программ доступен для просмотра и изменения
3

4. Актуальность проблемы

Статистика успешности программных проектов
согласно отчётам Standish Group Chaos
16%
24%
32%
31%
Успешные
Спорные
Провальные
53%
44%
1994
2010
4

5. Компоненты качества ПО

качество исходного кода
и архитектуры системы
Качество ПП на
стадии
разработки
Качество
процесса
разработки
ПП
эффективность организации
взаимодействия команды
разработки
Качество ПП
на стадии
исполнения
качество продукта в
процессе его работы
5

6. Схема эксперимента

Факторы
Отклики
Обработка
результатов
Исходные коды
• Анализируемое ПО: 7-Zip
• Рассматривается 5 версий
Метрики объема, документации,
сложности и иерархии ПО
Статистическая
• Min, Max, Мат. ожидание
• Гистограммы
• Корреляция
Факторкритерийметрика
6

7. Метрики ПО

• Количество строк кода
• Количество строк
комментариев
• Процент комментариев
• Цикломатическая
сложность по МакКейбу
• Входящая связность
• Исходящая связность
• Количество методов в
классе
• Количество статических
методов в классе
• Количество полей в
классе
• Количество наследников
класса
• Глубина класса в дереве
наследования
• Недостаточная
сопряженность методов
• Ассоциация между
классами
7

8. Фрагмент модели фактор-критерий-метрика

Эффективность
Цикломатическая сложность
Временная
эффективность
Внешняя связность

Цикломатическая сложность
Потребление
ресурсов
Число наследников класса
Ассоциация между классами


8

9. Инструментарий исследования

CppDepend
• анализ исходного кода ПО
• расчёт показателей метрик
Microsoft Office Excel
• выполнение статистического анализа данных
• расчет модели фактор-критерий-метрика
ПО, разработанное исследователем
• расчёт коэффициента корреляции Спирмена
9

10. Алгоритм определения цикломатической сложности

10

11. Алгоритм определения глубины типа в дереве наследования

11

12. Гистограммы

Входящая связность
Недостаточная
сопряжённость методов
70
120
Количество классов
Количество классов
140
100
80
60
40
20
0
60
50
40
30
20
10
0
3
9
15 21 27 33 39 45
Входящая связность класса
0
0,5
1
Сопряженность методов класса
12

13. Корреляция

LOC
LOC
1,00
LOComment
% Comment
MCC
Ca
Ce
NoM
NOC
DIT
LCOM
ABS
LOComm %Comm MCC Ca
Ce
NoM
NOC
DIT
LCOM ABS
0,67
0,46 0,97
0,30
0,72
0,82
0,33
0,18
0,62
0,78
1,00
0,95 0,68
0,41
0,63
0,65
0,45
0,22
0,58
0,61
1,00 0,49
0,28
0,46
0,51
0,42
0,18
0,42
0,40
1,00
0,28
0,68
0,84
0,36
0,17
0,64
0,74
1,00
0,30
0,37
0,62
0,29
0,21
0,34
1,00
0,60
0,27
0,32
0,54
0,92
1,00
0,43
0,36
0,66
0,60
1,00
0,48
0,35
0,27
1,00
0,21
0,32
1,00
0,49
1,00
13

14. Динамика метрик

Исходящая связность
классов в проекте
Средний уровень
документации классов, %
20
35
30
15
25
20
10
15
10
5
5
0
0
4.20
4.40 4.60 9.04
Номер версии
9.20
4.20
4.40 4.60 9.02
Номер версии
9.20
14

15. Динамика изменения показателя фактора качества: Эффективность

Показатель качества
1
0,95
0,9
Временная
эффективность
0,85
Потребление
ресурсов
0,8
Эффективность
0,75
0,7
4.20
4.40
4.60
9.02
Версия ПО
9.20
15

16. Выводы об эволюции проекта

Версия Наблюдаемые признаки
Выводы
4.20
Основание для сравнения
4.40
Рост метрик размера и
сложности проекта.
Повышение уровня
документации кода
4.60
Повышение фактора качества
Проведен рефакторинг и
эффективность.
пересмотрена иерархия классов
Снижение глубины дерева
системы
наследования.
Снижение среднего количества
наследников.
9.02
9.20
Значительных изменений нет
Добавлена новая
функциональность или
существенно обновлена
существующая.
Проект вступил в стабильную
фазу. Вносятся лишь небольшие
исправления.
16

17. Экономическое обоснование

160000
140000
120000
100000
Переменные затраты
80000
Постоянные затраты
60000
Суммарные затраты
40000
Доход от реализации
20000
0
0
1222
2040
Цена одной копии продукта с НДС составляет 88 грн при себестоимости
61,18 грн. При реализации 2040 единиц продукции в год выручка
составит 19 975 грн. Безубыточность наступает при реализации 1222
копий программного продукта.
17

18. Выводы

Все поставленные задачи выполнены, цели достигнуты.
Научная новизна. Получили дальнейшее развитие методы оценки
качества ПО, которые, в отличие от известных подходов,
рассматривают несколько последовательных версий ПО, что
позволяет исследовать динамические процессы развития ПО в
результате проводимого рефакторинга и реинжиниринга.
Практическая ценность. На практике подтверждена гипотеза о
целесообразности и эффективности применения метрического
подхода к измерению качеству ПО. Применяемая методика
позволяет в деталях проследить историю разработки
программного продукта, получить объективную картину его
качества на любом этапе и использовать эту информацию для
оценки текущего состояния проекта, что дает возможность
принятия обоснованных решений по управлению качеством.
18

19. Благодарю за внимание!

19
English     Русский Правила