Similar presentations:
Анализ динамики изменения показателей внутреннего качества 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. Алгоритм определения цикломатической сложности
1011. Алгоритм определения глубины типа в дереве наследования
1112. Гистограммы
Входящая связностьНедостаточная
сопряжённость методов
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. Корреляция
LOCLOC
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. Экономическое обоснование
160000140000
120000
100000
Переменные затраты
80000
Постоянные затраты
60000
Суммарные затраты
40000
Доход от реализации
20000
0
0
1222
2040
Цена одной копии продукта с НДС составляет 88 грн при себестоимости
61,18 грн. При реализации 2040 единиц продукции в год выручка
составит 19 975 грн. Безубыточность наступает при реализации 1222
копий программного продукта.
17
18. Выводы
Все поставленные задачи выполнены, цели достигнуты.Научная новизна. Получили дальнейшее развитие методы оценки
качества ПО, которые, в отличие от известных подходов,
рассматривают несколько последовательных версий ПО, что
позволяет исследовать динамические процессы развития ПО в
результате проводимого рефакторинга и реинжиниринга.
Практическая ценность. На практике подтверждена гипотеза о
целесообразности и эффективности применения метрического
подхода к измерению качеству ПО. Применяемая методика
позволяет в деталях проследить историю разработки
программного продукта, получить объективную картину его
качества на любом этапе и использовать эту информацию для
оценки текущего состояния проекта, что дает возможность
принятия обоснованных решений по управлению качеством.
18