Лабораторна робота №2
Аналіз програмного забезпечення за допомогою планування експерименту
2.1. Мета роботи – освоїти методику аналізу програмного забезпечення з використанням лінійної регресійної моделі.
2.2. Теоретичні відомості.
Продуктивність програмного забезпечення є важливим аспектом у розробці будь-якого програмного продукту.
Особливу увагу продуктивності приділяється:
• в інженерних і наукових розробках, де часто проводяться складні тривалі обчислення, а процесорний час на кластерних системах дорого і обмежене;
• в web-додатках, в яких час генерації сторінки критичний для користувача і безпосередньо залежить від обсягів серверних потужностей;
• у вбудовуваних програмних продуктах.
Ретельний аналіз продуктивності програмного продукту може суттєво скоротити вартість самого обладнання і витрати на підтримку працездатності, збільшити лояльність користувачів ПЗ.
При аналізі ПЗ очевидним завданням, що стоїть перед дослідником, це збільшення продуктивності. Формально ми маємо задачу оптимізації, а критерієм оптимізації є деяка функція
,
де – час обробки інформації,
– фактори впливу,які прямо чи опосередковано можуть впливати на продуктивність системи,
– область визначення i-го фактора.
Для прикладу розглянемо програму, що працює з базою даних, і здійснює статистичну обробку збереженої в ній інформації.
Прикладами факторів впливу на продуктивність можуть бути:
• обсяг оперативної пам'яті комп'ютера;
• швидкість доступу до жорсткого диска;
• максимальна частота роботи і середнє завантаження процесора;
• налаштування СУБД, і т.д.
Можливість залежностей між цими факторами очевидна. Наприклад, збільшення обсягу оперативної пам'яті може знизити необхідність частого доступу до жорсткого диска, а, отже, зменшити вплив відповідного фактора.
Для пошуку оптимальних значень факторів впливу, тобто для вирішення задачі оптимізації можна запропонувати наступні варіанти:
• повний перебір всіх можливих комбінацій значень факторів впливу;
• випадковий вибір деякого числа комбінацій і подальший вибір найкращого варіанта;
• аналітичне дослідження системи;
• застосування спеціалізованих програмних засобів;
• використання математичних моделей.
Використовуючи повний перебір можна стверджувати, що параметри будуть знайдені, однак, при великому числі факторів і варіантів їх значень число всіх можливих комбінацій може бути занадто велике, а проведення експериментів займе дуже багато часу. При випадковому виборі оптимальної комбінації велика ймовірність того, що отримане рішення буде дуже далеко від глобального оптимуму.
Аналітичне дослідження системи є часто або складною або неможливою задачею.
Спеціальні програмні засоби, такі, як профілювальники, дозволяють отримати лише деяку статистичну інформацію про виконання програмного коду: кількість викликів методів, середній час виконання методів і т.д. Оптимізація в даному випадку зводиться до виявлення так званих «вузьких місць» та оптимізації використовуваних алгоритмів.
Для подолання перелічених вище складнощів часто використовують методи математичної теорії планування експерименту.
Одна з основних ідей планування експерименту полягає у використанні для досліджуваного об'єкта кібернетичної абстракції чорного ящика.
Розглянемо докладно етапи побудови та дослідження математичної моделі за допомогою планування експерименту.
Етап 1. Аналіз апріорної інформації.
Нехай під час аналізу апріорної інформації про програмне забезпечення стало відомо наступне:
1) ПЗ є веб-додатком, написаним на мові PHP;
2) ПЗ виконується на веб-сервері Apache, інтерпретатор PHP підключений в якості модуля;
3) ПЗ використовує СУБД MySQL для зберігання даних;
4) Існує можливість включення кешування даних засобами самого додатку.
Будемо використовувати математичну модель експеримента у вигляді лінійної моделі без залежностей між факторами.
Таке припущення і сукупність факторів не є ідеальними, проте суттєво спрощує роботу. Задача зводиться до знаходження значень коефіцієнтів ki рівняння регресії
Фактори з найбільшими значеннями будуть найбільше впливати на вихідну характеристику.
Етап 2. Вибір факторів впливу.
Фактори впливу вибираються в результаті аналізу апріорної інформації про програмне забезпечення.
Таблиця 1
Фактор впливу |
Опис |
|
MySQL key_buffer_size |
|
MySQL table_cache
|
|
MySQL query_cache_limit
|
|
Кешування даних додатком.
|
|
|
Досліджуваний додаток здатний запускатись двомя способами: - web-сервер Apache + модуль PHP - web-сервер Nginx + php-fpm |
Етап 3. Вибір верхнього та нижнього рівня для факторів.
Вибираємо верхній і нижній рівень для кожного фактора:
+1 відповідає верхньому рівню фактора;
-1 відповідає нижньому рівню фактора.
Таблиця 2
Фактор впливу |
Верхнє значення |
Нижнє значення |
|
265 Mb |
16 Mb. |
|
|
300 |
64 |
|
64 Mb |
1 Mb |
|
Кеш On |
Кеш Off |
|
Nginx + php-fpm |
Apache + mod_php |
Этап 4. Складання матриці планування та проведення експериментів
Результати експериментів заносяться до таблиці 3.
Таблиця 3.
|
№ |
|
|
|
|
|
y |
№ |
|
|
|
|
|
y |
|
1 |
-1 |
-1 |
-1 |
-1 |
-1 |
6,909456902 |
17 |
+1 |
-1 |
-1 |
-1 |
-1 |
6,956250343 |
|
2 |
-1 |
-1 |
-1 |
-1 |
+1 |
6,265920885 |
18 |
+1 |
-1 |
-1 |
-1 |
+1 |
6,27117213 |
|
3 |
-1 |
-1 |
-1 |
+1 |
-1 |
1,046864681 |
19 |
+1 |
-1 |
-1 |
+1 |
-1 |
1,049605346 |
|
4 |
-1 |
-1 |
-1 |
+1 |
+1 |
0,959287777 |
20 |
+1 |
-1 |
-1 |
+1 |
+1 |
0,960128005 |
|
5 |
-1 |
-1 |
+1 |
-1 |
-1 |
6,922491238 |
21 |
+1 |
-1 |
+1 |
-1 |
-1 |
6,94905457 |
|
6 |
-1 |
-1 |
+1 |
-1 |
+1 |
6,292138541 |
22 |
+1 |
-1 |
+1 |
-1 |
+1 |
6,288483698 |
|
7 |
-1 |
-1 |
+1 |
+1 |
-1 |
1,047327693 |
23 |
+1 |
-1 |
+1 |
+1 |
-1 |
1,048429732 |
|
8 |
-1 |
-1 |
+1 |
+1 |
+1 |
0,959178464 |
24 |
+1 |
-1 |
+1 |
+1 |
+1 |
0,959984639 |
|
9 |
-1 |
+1 |
-1 |
-1 |
-1 |
6,947828159 |
25 |
+1 |
+1 |
-1 |
-1 |
-1 |
6,944574752 |
|
10 |
-1 |
+1 |
-1 |
-1 |
+1 |
6,269961421 |
26 |
+1 |
+1 |
-1 |
-1 |
+1 |
6,281574535 |
|
11 |
-1 |
+1 |
-1 |
+1 |
-1 |
1,047032595 |
27 |
+1 |
+1 |
-1 |
+1 |
-1 |
1,047937875 |
|
12 |
-1 |
+1 |
-1 |
+1 |
+1 |
0,960076244 |
28 |
+1 |
+1 |
-1 |
+1 |
+1 |
0,960813348 |
|
13 |
-1 |
+1 |
+1 |
-1 |
-1 |
6,954160943 |
29 |
+1 |
+1 |
+1 |
-1 |
-1 |
6,952602925 |
|
14 |
-1 |
+1 |
+1 |
-1 |
+1 |
6,278223336 |
30 |
+1 |
+1 |
+1 |
-1 |
+1 |
6,284795263 |
|
15 |
-1 |
+1 |
+1 |
+1 |
-1 |
1,048019483 |
31 |
+1 |
+1 |
+1 |
+1 |
-1 |
1,047952991 |
|
16 |
-1 |
+1 |
+1 |
+1 |
+1 |
0,960559206 |
32 |
+1 |
+1 |
+1 |
+1 |
+1 |
0,960591927 |
Етап 5. Аналіз результатів.
Коефіцієнти рівняння регресії можна знайти як
Результати обчислення розміщуються в табл. 4
Таблиця 4
|
|
|
|
|
|
|
|
3,97361211 |
0,0519711 |
0,0245041 |
0,0034686 |
-2,9182692 |
-0,2483070 |
Рис. 2. Коефіцієнти рівняння регресії.
Етап 6. Висновки.
З діаграми на рис.2 випливає, що основний вклад в час генерації веб-сторінки вносить фактор x4, що характеризує кешування даних в додатку.
Від’ємне значення коефіцієнта регресії b4 означає, що вказаний параметр зменшує функцію відгуку чорного ящика. В нашому прикладі це значить зменшення часу генерації сторінки.
2.3.Завдання для виконання на лабораторній роботі.
Під час виконання лабораторної роботи №2 необхідно отримати регресійну модель програмного забезпечення та побудувати прогноз щодо майбутнього фінального релізу програмного забезпечення, а саме:
1) визначити контрольований параметр виходу Y та кількість факторів впливу a0… ak для програмного забезпечення, яке розробляється в результаті виконання магістерського дослідження;
2) підготувати вихідні дані у табличному процесорі Excel, користуючись знаннями та практичними навичками, отриманими під час виконання лабораторної роботи №1;
3) виконати усі етапи побудови лінійної регресійної моделі;
4) проаналізувати отриману модель та виконати прогноз параметрів фінального релізу програмного забезпечення;
5) побудувати діаграму для візуального порівняння отриманого прогнозу з фактичним рівнянням регресії;
6) оформити звіт по роботі та захистити лабораторну роботу.
Оформлений звіт у форматі .doc та файл .xls необхідно помістити в архів
за наступним шаблоном:
Прізвище_lab2.zip
Наприклад: Petrenko_lab2.zip
та надіслати за адресою gtgm@ukr.net
