Transcript дослідження характеристик навчальної вибірки для штучної
ДОСЛІДЖЕННЯ ХАРАКТЕРИСТИК НАВЧАЛЬНОЇ ВИБІРКИ ДЛЯ ШТУЧНОЇ НЕЙРОННОЇ МЕРЕЖІ ОЦІНЮВАННЯ ЯКОСТІ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ
О.В.Поморова, Т.О. Говорущенко
Хмельницький національний університет
НЕЙРОМЕРЕЖНИЙ МЕТОД ОЦІНЮВАННЯ ЯКОСТІ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ Етапи:
• підготовка метрик етапу проектування; • перевірка граничних значень метрик; • опрацювання значень метрик нейронною мережею (ШНМ); штучною • аналіз результатів функціонування ШНМ; • формування висновку про складність та якість проекту та розроблюваного за проектом ПЗ на основі результатів ШНМ.
1 2 3 4 5 6 7 8 9
№ п/п Метрики етапу проектування Метрики етапу проектування з точними значеннями Метрики складності Метрики якості
Метрика Чепіна Метрика зв'язності Метрика Джилба (абсолютна модульна складність програми) Метрика Мак-Клура (загальна складність програмної системи) Метрика Кафура (інформаційна складність модуля) Метрика зчеплення Метрика звертання до глобальних змінних (наближена імовірність посилання довільного модуля на довільну глобальну змінну) Час модифікації моделей (в робочих днях) Загальна кількість знайдених помилок при інспектуванні моделей та прототипів модулів
Метрики етапу проектування з прогнозованими значеннями Метрики складності Метрики якості
Очікувана LOC-оцінка Прогнозований загальний час розроблення ПЗ (в робочих днях) Метрика Холстеда (складність програми ) Метрика Маккейба (цикломатична складність ПЗ в цілому) Час виконання робіт процесу проектування ПЗ (в робочих днях) Очікувана вартість розроблення ПЗ (в гривнях) Метрика Джилба (відносна логічна складність програми) Прогнозована кількість операторів програми Прогнозована оцінка складності інтерфейсів ПЗ Прогнозована вартість перевірки якості ПЗ Прогнозована продуктивність розроблення ПЗ (в хвилинах на один рядок коду) Прогнозовані витрати на реалізацію програмного коду (в гривнях) Прогнозований функційний розмір Прогнозована оцінка трудовитрат за моделлю Боема (в людиномісяцях) Прогнозована оцінка тривалості проекту за моделлю Боема (в місяцях)
Діапазони значень метрик етапу проектування №
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Метрики етапу проектування з точними значеннями
Метрика Чепіна: -1, 0..32500
Метрика Джилба (абсолютна модульна складність): -1, 0..2450
Метрика Мак-Клура: -1, 0..120050
Метрика Кафура: -1, 0..497500
Метрика зв'язності: -1, 0..10
Метрика зчеплення: -1, 0..9
Метрика звертання до глобальних змінних: -1, 0..1
Час модифікації моделей: -1, 0..46
(в робочих днях) Кількість знайдених помилок моделей та прототипів: -1, 0..5000
Метрики етапу проектування з прогнозованими значеннями
Очікувана LOC-оцінка: -1, 0..50000
Метрика Холстеда: -1, 0..1562500
Метрика Маккейба: -1, 0..2402
Метрика Джилба (відносна логічна складність): -1, 0..1
Прогнозована кількість операторів ПЗ: -1, 0..50000
Прогнозована оцінка складності інтерфейсів ПЗ: -1, 0..1
Прогнозований загальний час розроблення ПЗ: -1, 0..520 (в робочих днях) Час виконання робіт процесу проектування: -1, 0..182
(в робочих днях) Очікувана вартість розроблення ПЗ: -1, 0..200000 (грн) Прогнозована вартість перевірки якості ПЗ: - 1, 0..20000 (грн) Прогнозована продуктивність розроблення ПЗ: -1, 0..5
(в хвилинах на один рядок коду) Прогнозовані витрати на реалізацію програмного коду: -1, 0..70000 (грн) Прогнозований функційний розмір: -1, 0..2945
Прогнозована оцінка трудовитрат за моделлю Боема: 1, 0..394 (людиномісяців) Прогнозована оцінка тривалості проекту за моделлю Боема: -1, 0..520 (в робочих днях)
Існує великий розкид діапазонів значень вхідних даних!!!
Концепція нейромережного методу оцінювання якості програмного забезпечення
Архітектура ШНМ
Input1(
x
1 {
x
1 , 1 ...
x
1 , 4 } ) Input2(
x
2 {
x
2 , 1 ...
x
2 , 5 } )
Y 1
Input3(
x
1 {
x
1 , 1 ...
x
1 , 6 }
Y 2
)
Y 3
y{1}
Y 4
Input4 (
x
2 {
x
2 , 1 ...
x
2 , 9 } )
Структурна схема шарів ШНМ
ДОСЛІДЖЕННЯ ЯКОСТІ НАВЧАННЯ НЕЙРОМЕРЕЖІ Результати роботи нейромережі на різних немасштабованих вхідних вибірках
№ експ (1)
1 Метрика зчеплення 2 Метрика Холстеда
Вхідна вибірка (2)
с1={[2034;200;8000;34900]; [10;
1
;0.05;1;100]; [4150;109001;180;0.08;3200;0.07]; [52;19;20100;2005;0.61;7020;283;44;3]}; с2={[2034;200;8000;34900]; [10;
9
;0.05;1;100]; [4150;109001;180;0.08;3200;0.07]; [52;19;20100;2005;0.61;7020;283;44;3]}; с1={[2034;200;8000;34900]; [10;1;0.05;1;100]; [4150;
109001
;180;0.08;3200;0.07]; [52;19;20100;2005;0.61;7020;283;44;3]}; c3={[2034;200;8000;34900]; [10;1;0.05;1;100]; [4150;
1562500
;180;0.08;3200;0.07]; [52;19;20100;2005;0.61;7020;283;44;3]};
Результат ШНМ (3)
m1={[0.93;0.998;0.922;0.902]} m2={[0.93;0.998;0.922;0.902]} m1={[0.93;0.998;
0.922
;0.902]} m3={[0.93;0.998;
0.472
;0.902]}
(1)
3 Метрика прогнозо ваної про дуктивності розроблення ПЗ 4 Метрика відносної логічної складності ПЗ 5 Метрика Мак-Клура 6 Метрика очікуваної вартості розроблення ПЗ
(2)
с1={[2034;200;8000;34900]; [10;1;0.05;1;100]; [4150;109001;180;0.08;3200;0.07]; [52;19;20100;2005;
0.61
;7020;283;44;3]}; с4={[2034;200;8000;34900]; [10;1;0.05;1;100]; [4150;109001;180;0.08;3200;0.07]; [52;19;20100;2005;
5
;7020;283;44;3]}; с1={[2034;200;8000;34900]; [10;1;0.05;1;100]; [4150;109001;180;
0.08
;3200;0.07]; [52;19;20100;2005;0.61;7020;283;44;3]}; c5={[2034;200;8000;34900]; [10;1;0.05;1;100]; [4150;109001;180;
0.98
;3200;0.07]; [52;19;20100;2005;0.61;7020;283;44;3]}; с1={[2034;200;
8000
;34900]; [10;1;0.05;1;100]; [4150;109001;180;0.08;3200;0.07]; [52;19;20100;2005;0.61;7020;283;44;3]}; c6={[2034;200;
120050
;34900]; [10;1;0.05;1;100]; [4150;109001;180;0.08;3200;0.07]; [52;19;20100;2005;0.61;7020;283;44;3]}; с1={[2034;200;8000;34900]; [10;1;0.05;1;100]; [4150;109001;180;0.08;3200;0.07]; [52;19;
20100
;2005;0.61;7020;283;44;3]}; c7={[2034;200;8000;34900]; [10;1;0.05;1;100]; [4150;109001;180;0.08;3200;0.07]; [52;19;
200000
;2005;0.61;7020;283;44;3]};
(3)
m1={[0.93;0.998;0.922;0.902]} m4={[0.93;0.998;0.922;0.902]} m1={[0.93;0.998;0.922;0.902]} m5={[0.93;0.998;0.922;0.902]} m1={[
0.93
;0.998;0.922;0.902]} m6={[
0.46
;0.998;0.922;0.902]} m1={[0.93;0.998;0.922;
0.902
]} m7={[0.93;0.998;0.922;
0.441
]}
ШНМ нечутлива до входів з малими діапазонами значень!!!
Результати роботи нейромережі на різних масштабованих вхідних вибірках
№ експ
(Matlab-функцією
premnmx
)
Вхідна вибірка Результат ШНМ (1)
1
(3)
m1={[0.93;
0.998
;0.922;0.902]} Метрика зчеплення 2 Метрика Холстеда 3 Метрика прогнозованої продуктивності розроблення ПЗ
(2)
с1={[2034;200;8000;34900]; [10;
1
;0.05;1;100]; [4150;109001;180;0.08;3200;0.07]; [52;19;20100;2005;0.61;7020;283;44;3]}; с2={[2034;200;8000;34900]; [10;
9
;0.05;1;100]; [4150;109001;180;0.08;3200;0.07]; [52;19;20100;2005;0.61;7020;283;44;3]}; с1={[2034;200;8000;34900]; [10;1;0.05;1;100]; [4150;
109001
;180;0.08;3200;0.07]; [52;19;20100;2005;0.61;7020;283;44;3]}; c3={[2034;200;8000;34900]; [10;1;0.05;1;100]; [4150;
1562500
;180;0.08;3200;0.07]; [52;19;20100;2005;0.61;7020;283;44;3]}; с1={[2034;200;8000;34900]; [10;1;0.05;1;100]; [4150;109001;180;0.08;3200;0.07]; [52;19;20100;2005;
0.61
;7020;283;44;3]}; с4={[2034;200;8000;34900]; [10;1;0.05;1;100]; [4150;109001;180;0.08;3200;0.07]; [52;19;20100;2005;
5
;7020;283;44;3]}; m2={[0.93;
0.488
;0.922;0.902]} m1={[0.93;0.998;0.922;0.902]} m3={[0.93;0.998;0.922;0.902]} m1={[0.93;0.998;0.922;
0.902
]} m4={[0.93;0.998;0.922;
0.446
]}
(1)
4 Метрика відносної логічної складності ПЗ 5 Метрика Мак-Клура 6 Метрика очікуваної вартості розроблення ПЗ
(2)
с1={[2034;200;8000;34900]; [10;1;0.05;1;100]; [4150;109001;180;
0.08
;3200;0.07]; [52;19;20100;2005;0.61;7020;283;44;3]}; c5={[2034;200;8000;34900]; [10;1;0.05;1;100]; [4150;109001;180;
0.98
;3200;0.07]; [52;19;20100;2005;0.61;7020;283;44;3]}; с1={[2034;200;
8000
;34900]; [10;1;0.05;1;100]; [4150;109001;180;0.08;3200;0.07]; [52;19;20100;2005;0.61;7020;283;44;3]}; c6={[2034;200;
120050
;34900]; [10;1;0.05;1;100]; [4150;109001;180;0.08;3200;0.07]; [52;19;20100;2005;0.61;7020;283;44;3]}; с1={[2034;200;8000;34900]; [10;1;0.05;1;100]; [4150;109001;180;0.08;3200;0.07]; [52;19;
20100
;2005;0.61;7020;283;44;3]}; c7={[2034;200;8000;34900]; [10;1;0.05;1;100]; [4150;109001;180;0.08;3200;0.07]; [52;19;
200000
;2005;0.61;7020;283;44;3]};
(3)
m1={[0.93;0.998;
0.922
;0.902]} m5={[0.93;0.998;
0.451
;0.902]} m1={[0.93;0.998;0.922;0.902]} m6={[0.93;0.998;0.922;0.902]} m1={[0.93;0.998;0.922;0.902]} m7={[0.93;0.998;0.922;0.902]}
ШНМ нечутлива до входів з великими діапазонами значень!!!
ВИСНОВКИ
• при опрацюванні немасштабованої вхідної інформації ШНМ нечутлива до входів з малими діапазонами значень, визначальними є входи з великими діапазонами; • при опрацюванні масштабованої вхідної інформації (функцією premnmx ) ШНМ нечутлива до входів з великими діапазонами значень, визначальними є входи з малими діапазонами; • Matlab-функція нормування prestd може опрацьовувати вхідні значення, які мають нормальний закон розподілу, тому без модифікації не може використовуватись для опрацювання значень метрик ПЗ; • Matlab-функція факторного аналізу prepca також не може без модифікації використовуватись для опрацювання значень метрик ПЗ, оскільки для її застосування вхідні значення не повинні корелювати; • перспективним є розроблення нового або модифікованого врахування метрик як з великими, так і з малими діапазонами значень.
методу опрацювання вхідної інформації нейромережі з метою рівнозначного
ДЯКУЄМО ЗА УВАГУ!
НАШІ КОНТАКТИ
29016, Україна, м.Хмельницький, вул.Інститутська, 11 Хмельницький національний університет Кафедра системного програмування
Поморова Оксана Вікторівна
доктор технічних наук, професор, завідувач кафедри системного програмування
Говорущенко Тетяна Олександрівна
кандидат технічних наук, старший науковий співробітник, доцент, доцент кафедри системного програмування