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