Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Метрики Чепіна

Метрики цикломатичної складності за Маккейбом

Показник цикломатичної складності – один із найрозповсюдженіших показників оцінки складності програмних проектів. Він був розроблений у 1976р., відноситься до групи оцінки складності потоку керування програмою і обраховується у вигляді орієнтованого графа, в якому обчислювальні оператори або вирази представляються у вигляді вузлів, а передача управління між вузлами – у вигляді дуг. Показник цикломатичної складності дозволяє не лише провести оцінку трудоємкості реалізації окремих елементів програмного проекту і скоректувати загальні показники оцінки діяльності та вартості проекту, але й оцінити пов’язані з ним ризики та прийняти необхідні управлінські рішення. Спрощена формула цикломатичної складності має вигляд:

 

де e – кількість ребер, а n – кількість вузлів на графі управляючої логіки. Як правило, при обчисленні цикломатичної складності логічні оператори не враховуються.

У процесі автоматизованого обчислення показника цикломатичної складності зазвичай застосовують спрощений підхід: граф не будується, а обчислення показника виконується на основі підрахунку кількості операторів управляючої логіки (if, switch і т.д.) та можливої кількості шляхів виконання програми. Цикломатичне число Маккейба показує кількість проходів, потрібних для покриття всіх контурів сильнозв’язного графа або кількості тестових прогонів програми, необхідних для вичерпного тестування по принципу «працює кожна вітка».

Існує велика кількість модифікацій показника цикломатичної складності:

· «модифікована» цикломатична складність – розглядає не кожне розгалуження оператора switch, а весь оператор як єдине ціле;

· «строга» цикломатична складність – включає всі логічні оператори;

· «спрощене» обчислення цикломатичної складності – обчислення на основі управляючих операторів, а не графа.

 

Існує кілька модифікацій даних метрик, розглянемо більш просту з точки зору практичного використання. Суть методу полягає в оцінці інформаційної «міцності» окремо взятого програмного модуля за допомогою аналізу характеру використання змінних із списку вводу-виводу. Всю множину змінних розбивають на 4 функціональні групи:

1) Множина «Р» - змінні, що вводяться для розрахунків і забезпечення виводу. Прикладом може слугувати змінна, що використовується у програмах лексичного аналізатора, яка містить рядок вихідного тексту програми – змінна не модифікується, а лише містить вхідну інформацію.

2) Множина «М» - змінні, що модифікуються або створюються всередині програми.

3) Множина «С» - змінні, що беруть участь в управлінні роботою програмного модуля (управляючі змінні).

4) Множина «Т» - «паразитні» змінні, що не використовуються у програмі.

Оскільки кожна змінна може виконувати одночасно кілька функцій, необхідно враховувати її у кожній відповідній фінальній групі.

Далі вводиться значення метрики Чепіна:

 

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

 

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

Таблиця 2 – Склад метрик, їх вплив і аналіз ефективності використання

Метрика Навіщо потрібна Впливає на… Аналіз на основі статистичних даних (як тренд, так і прогноз)
Зусилля розробника при реалізації Наскільки ефективна праця розробника. Точність прогнозів оцінки трудоємкості при виконанні організацією типових запитів, або запитів, що мало відрізняються Можна аналізувати зусилля розробника у часовому зрізі або у зрізі по релізам або проектам. Виявляти, на яких задачах програміст має повну віддачу, а які йому не по душі. Тренд дозволить менеджеру краще розуміти, хто і на яких задачах максимально ефективний при формуванні команди нового проекту, а також які підсистеми відносно складні, а які – прості.
Довжина й об’єм програми   Оцінку об’єму змін Збільшується або змменшується об’єм програми в часі. Використовується для прогнозу складності на ранніх етапах на основі статистики.
Аналіз цикломатичної складності.   Оцінку складності змін Складність росте чи ні? Використовується для прогнозу складності на ранніх етапах на основі статистики.
Зусилля програміста при розробці. Для визначення складності реалізації того чи іншого блоку коду (класу, функції і т.д.) Розуміння того, наскільки інтелектуально-затратною для розробника була та чи інша функція. Аналізується збільшення або зменшення зусиль розробника в часі. На попередніх етапах метрику можна використовувати для прогнозу.
Кількість рядків на реалізацію вимоги. Вимірюємо загальну температуру. Ця метрика приймається до уваги при анализі реалізації запиту. Розуміння ККД. Відслідковуємо сплески. Сигнал небезпеки при виявленні збільшення кількості рядків підчас виконання типового запиту. Використовується для оцінки складності на ранніх етапах на основі статистики.
Кількість коментарів на одиницю коду. Код повинен бути документованим. Якщо співвідношення коду к коментарів не 1:4, то розробник повинен доопрацювати. Якість коду, його прозорість. Загальна культура розробників росте чи ні? Виділяються складні проекти, проблемні модулі або підсистеми.
Інші кількісні метрики (кількість функцій, класів, файлів). Відношення нових функцій до змінених. Кількість доданих, видалених і змінених рядків по відношенню до попередньої версії. Глибокий аналіз змін по релізам (версіям, збіркам) дає оцінити кількість змін – скільки разів один і той же блок коду коректувався. Можна виявити вузьке місце в програмі: блок коду, що інтенсивно змінюється, може впливати на загальну якість програми. Можлливо, необхідно змінити архітектуру блоку.
Густина дефектів на одиницю коду. Кількість дефектів на один рядок коду Похідна метрика: кількість рядків/кількість дефектів. Дана метрика корисніша для часової оцінки: густина збільшується від версії до версії.

 

<== предыдущая лекция | следующая лекция ==>
Метрики Холстеда | Будова мікробної клітини
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 985; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.