Написание контрольных, курсовых, дипломных работ, выполнение задач, тестов, бизнес-планов
Главная \ Методичні вказівки \ Методические указания и информация \ Аналіз програмного забезпечення за допомогою планування експерименту

Аналіз програмного забезпечення за допомогою планування експерименту

Лабораторна робота №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