5.3. Емпірична інженерія програмного забезпечення

Емпіричні методи досліджень відіграють «впливову» роль в ін­женерії програмного забезпечення і їх застосування складають од­ну з інженерій - емпіричну інженерію програмного забезпечення.

На відміну від прямої та оберненої інженерії мста емпіричної інженерії - не розробка або переробка програмного забезпечення, а здобуття знань про програмне забезпечення. Тому її основу складають два кола методів та засобів. Перше пов'язане із збиранням інформації щодо властивостей програмного забезпечення. Переваж­но це робиться шляхом застосування вимірювань. Друге складають методи та засоби обробки нагромадженої інформації і здобуття знань стосовно програмного забезпечення, що досліджується.

5.3.1. Методи емпіричної інженерії програмного забезпечення

Головним методом досліджень програмного забезпечення є вимірювання. Для контролю процесів, продуктів та ресурсі в життєвого циклу програмного забезпечення слід використовувати величини характеризуючи їх властивості, що називаються метриками.

Величина - це певна властивість предмета, з якою можна зіста­вити значення. Для синтезу величини варто визначити властивість (семантику величини), систему значень (шкалу) та спосіб зістав­лення значень з величиною.

У теорії вимірювання виділяють три основні шкали вимірювань - номінальну, порядкову і кількісну. Номінальна (класифікаційна) шкала включає значення, що проявляє себе лише у відношенні еквівалентності або може бути зіставлена з властивістю предмета (не упорядкованих один стосовно іншого). Наприклад, можна зістави­ти з вихідним текстом програми величину «мова програмування», значенням якої може бути назва однієї з мов (наприклад, «С», «С++», «Pascal», «Java» тощо). Такий же тип має шкала класифі­кування призначення модулів програмного забезпечення (наприк­лад, «Бази даних», «Математичні пакети», «Операційні системи» тощо). До номінальних величин застосовується тільки операція пе­ревірки на еквівалентність. Порядкова (ординальна) шкала спосте­рігає за упорядкуванням одного значення стосовно іншого, до яких належать операції порівняння. Порядкову пікапу можна задати для більшості експертних оцінок, наприклад, оцінювання читабельнос­ті тексту програм - «незадовільно», «задовільно», «добре», «від­мінно» або для оцінювання рівня інкапсуляції програмних компо­нентів - «лексичний», «операторний», «процедурний», «класний», «модульний». Кількісна шкала включає в себе значення, що про­явили себе стосовно еквівалентності, порядку і адекватності. Такі величини дають змогу виковувати адекватні і мультиплікативні операції над значеннями (віднімання, множення, ділення). До них належать, наприклад, такі кількість рядків коду, складання коментарю, оцінювання трудозатрат на створення коду.

Очевидно, що велику цінність являють собою кількісні (адитив­ні) величини, оскільки вони не тільки відображають властивість програмного забезпечення, які можна використовувати для оброб­ки і аналізу, а й мають більш повиний набір операцій над значення­ми. Однак для використання величини з більш високою інкалою вимірювань слід мати достатні знання про характер відношень між цими значеннями.

Як правило, значущу шкалу вдається досить просто задати для величин, маючи вузький, добре інтерпретований зміст. Очевидно, що перехід від номінальної шкали до порядкової і від порядкової до кількісної потребує підвищення знань про характер відношень між значеннями величин. Ці знання мають імперичну природу і з'являються шляхом досвідченого виявлення залежно від значення.

Отримане значення величини, виявлене стосовно еквівалентно­сті, зводиться до завдання класифікації стану об'єкта вимірювання, що визначається сукупністю ознак, значення яких дають змогу іден­тифікувати кожен стан. Наприклад, під час визначення мови програмування, яку використано для написання програмного модуля («с», «cpp», «h», «pas», «ada», «htm»). Як датчик ознаки має висту­пати прилад, що виділяє розширення з імені файла. Вирішальний пристрій має реалізувати виявлення значень на основі правил виду: «іf», «розширення» = «.pas» or «.dpr», zen значення = «Pascal». Для тримання значення номінальної величини достатньо, щоб вибрані ознаки також мали властивості еквівалентності.

Для величин, які виявили себе стосовно адитивності, значення дорівнює числовій оцінці сумарної виміряної величини Nxe, що ви­никла в результаті складання порівнюваних однорідних величин, і має дорівнювати сумі числових оцінок цих порівнюваних, а сума іменованих чисел xNj відображає порівняння, що повинне дорівню­вати іменному числу xNe відображаючи сумарну величину:

; ,

тоді

і qx =q при будь-якому i,

де qx- значення величини, що має числове значення 1.

Наявність властивості адитивності у величині дає змогу використовувати для визначення значення міру, яка забезпечує відновлюваність величини заданого розміру.

Оскільки тексти програм мають дискретну природу, то для виз­начення значень адитивності величини необхідно мати одиничну міру, що дорівнює кванту величини і пристрій для додавання міри та рахунку квантів. Наприклад, під час вимірювання довжини прог­рами, як кількісна міра може вважатися рядок, а як вимірювальний пристрій - сканер тексту, підраховуючи кількість рядків,

У випадку номінальних і порядкових величин значення виявля­ється певною функцією від показників, які також є величинами:

,

де V- номінальна чи порядкова величина; v1 ....vn - величини по­казників.

Оскільки властивості номінальних і порядкових величин не за­довольняють вимоги вимірювань, то для реалізації процесу вимі­рювання як показники, можна вважати лише адитивні величини.

Основними частинами статистичного аналізу стосовно програм­ного забезпечення можна вважати первинний статистичний аналіз, кореляційний аналіз та регресійний аналіз (рис. 5.8).

Первинний статистичний аналіз - не визначення закону розпо­ділу випадкової величини. На етапі первинного статистичного ана­лізу досліджуються вхідні статистичні дані. У ході дослідження спочатку виявляється графічний вигляд (гістограма) закону розпо­ділу. Для уточнення законів розподілу визначаються статистичні характеристики, такі як: математичне сподівання, середнє квадра­тичне відхилення, коефіцієнти асиметрії та ексцесу. На основі зна­чень математичного сподівання проводиться вилучення аномаль­них явищ (відхилень), при якому за допомогою квантилів розподі­лу Стьюдента визначаються «грубі» значення, тобто такі, що не потрапляють під заданий закон розподілу і значно віддалені від математичного сподівання. Після видалення аномальних явищ об­числюються коефіцієнти асиметрії та ексцесу.

Рис. 5.8. Схема використання статистичного аналізу

Далі всі статистичні характеристики обчислюються у зсуненому та в незсуненому виглядах. Зсунені дані являють собою обчислені результати вимірів, незсунені - теоретичні значення, що повинні приймати характеристики за «нормальності» розподілу. Потім про­водиться інтервальне оцінювання параметрів. Для всіх отриманих значень, що пройшли попередній етап, проводиться порівняння коефіцієнтів асиметрії та ексцесу із заданим теоретично. Після цьо­го на основі гістограм та висновків аналізу числових характеристик робиться висновок про закон розподілу величини.

На цьому етапі дослідник програмного забезпечення може отри­мати декілька результатів для подальшого використання.

Кореляційний аналіз пар метрик проводиться таким чином. Спочатку, за визначеними раніше законами розподілу, всі дослі­джувані значення класифікуються на ті, що мають нормальний розподіл і ті, що його не мають. Для пар метрик, що мають нормаль­ний закон розподілу, проводиться просте визначення коефіцієнта кореляції та його оцінювання. Якщо коефіцієнт кореляції дорівнює нулю, ніякого зв'язку в парі немає. У разі знаходження коефіцієнта кореляції між мінус 1 і плюс 1, наявний лінійний регресійний зв'язок. Якщо ж коефіцієнт кореляції дорівнює 1, то має місце функ­ціональний зв'язок. Далі проводиться визначення значущості кое­фіцієнта кореляції (висувається гіпотеза, що коефіцієнт кореляції дорівнює 0), при якому використовується t - тест на основі статис­тичної характеристики, яка має t розподіл Стьюдента. Якщо це значення значущості менше, ніж задане табличне, ця пара відсію­ється з подальших досліджень. У разі значущості проводиться дос­лідження на довірчі інтервали. Під час потрапляння коефіцієнта в довірчі інтервали можна зробити висновок про те, що досліджувані величини мають між собою лінійну регресійну залежність. В іншо­му випадку вони відсіюються.

Для пар досліджуваних величин, які не мають нормального за­кону розподілу, проводиться парна рангова кореляція. Суть парної рангової кореляції полягає в порівнянні не самих значень величин чи їх статистичних характеристик, а рангів, тобто номерів дослі­джуваних величин у відповідних матрицях (наборах статистичних даних). Визначається парна рангова кореляція методом обчислення коефіцієнта Спірмена чи Кендала. Якщо значення коефіцієнта ви­явилось рівним 0. то робиться висновок про відсутність кореляції і пара досліджуваних величин «відкидається». Якщо коефіцієнт кореляції набуває значення 1, чому відповідає повний збіг коефіцієн­тів, то робиться висновок про прямо пропорційну залежність (тобто лінійну), якщо мінус 1, то робиться висновок про обернено пропорційну залежність (тобто також лінійну). Якщо ж коефіцієнт коре­ляції набуває іншого значення, то далі його перевіряють на значущість, перевіряючи гіпотезу, що коефіцієнт дорівнює 0.

Отже, результатом цього етапу с відсіювання незалежних між собою пар досліджуваних величин та визначення за можливістю виду залежності для інших пар.

Регрессійний аналіз залежних величин - останній етап у дослі­дженні залежностей. Спочатку проводиться ідентифікація регресії. Вона передбачає як графічну побудову, так і аналітичні досліджен­ня. Рис. 5.9. Кореляційні поля: а - вписується в коло; б- вписується в еліпс (спадного вигляду); в - вписується в еліпс (вихідного вигляду); г- складної конфігурації

Графічна побудова розпочинається з визначення кореляційного поля. Приклади кореляційних полів показано на рис. 5.9.

Рис. 5.9. Кореляційні поля: а - вписується в коло; б- вписується в еліпс (спадного вигляду); в - вписується в еліпс (вихідного вигляду); г- складної конфігурації

Якщо кореляційне поле мас форму еліпса, робиться висновок про лінійний регресійний зв'язок. Далі проводиться побудова лі­нійної peгрeciї і її оцінювання. Якщо побудовані точки кореляційного поля потрапляють у коло, то робиться висновок про відсут­ність залежності. Якщо ж кореляційне поле не вписується в коло чи еліпс, а має інший вигляд, то робиться висновок про нелінійну за­лежність у лінії регресії. Потім будуються і аналізуються найімовір­ніші наближені лінії регресії. Серед них вибирається найточніша шляхом обчислення відхилення значень залежної Змінної Висно­вок про найточніше припущення робиться для функції, у якої від­хилення найменше. Для нелінійної залежності проводиться лінеа­ризація коефіцієнтів, тобто зведення функції до лінійного вигляду.

Завершальним етапом є довірче оцінювання ліній регресій [8]. Довірче оцінювання регресії відбувається в декілька етапів. Пер­шим етаном є визначення коефіцієнта детермінації, який показує ступінь залежності між величинами. Далі проводиться оцінювання відхилення окремих значень залежної величини від емпіричної рег­ресії шляхом порівняння практичних та теоретичних значень зале­жної змінної. Останнім кроком є побудова довірчого інтервалу лінії регресії.

Якщо пара пройшла всі етапи і не була відсіяною, робиться вис­новок, що одна метрика залежить певним чином від іншої з силою, що показує коефіцієнт детермінації, а вигляд залежності визначає лінія регресії.

5.3.2. Засоби емпіричної інженерії програмного забезпечений

Для реалізації емпіричних методів в інженерії програмного за­безпечення створюються спеціальні середовища - Computer Aided Empirical Software Engineering (CAESE) (рис. 5.10). Як видно, CAESE забезпечує вивчення проблем, пов'язаних з програмним за­безпеченням на основі емпіричних даних, отриманих шляхом про­ведення експериментів.

Рис. 5.10 Структура САЕSЕ

5.4. Взаємозв'язок інженерій

Взаємозв'язок прямої і оберненої інженерії у вигляді програмного забезпечення показано на рис. 5.11. Видно, що оберненій інженерії відводиться інформаційна роль, наприклад, для формування депози­тарію для інформації про програмне забезпечення.

Рис. 5.11. Обіг програмного забезпечення

На основі взаємодії обох інженерій будується методологія розро­бки і супроводу програмного забезпечення. Суть її полягає в тому, що з наявного програмного забезпечення застосуванням методів оберненої інженерії будується репозитарій проектних вирішень домена, відтак на основі репозитарію методами прямої інженерії ство­рюються нові застосування.

Загрузка...