Здавалка
Главная | Обратная связь

Lines of Code (кількість стрічок коду)

Лабораторна робота №1

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

 

Теоретичні відомості:

Після того як написаний програмний код, розробники потребують оцінки його якості. Team Edition для розробників програмного забезпечення, який являється частиною Visual Studio Team System має інструмент, який називається Code Metrics. Він використовується для визначення того як написаний код, ґрунтується на певних критеріях і показує результати в окремому вікні. Підрахунки ґрунтуються на таких критеріях: цикломатична складність, кількість стрічок коду, глибина наслідування і т.д. все це впливає на maintainability index (індекс зручності підтримки) коду.

Code Metrics забезпечує зворотній зв’язок з розробниками за наступними факторами:

Lines of Code (кількість стрічок коду)

Вимірювати прогрес в програмуванні кількістю стрічок коду – це те ж саме що міряти прогрес в будівництві літака вагою. (Білл Гейтс)

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

 

2. Maintainability Index (індекс зручності підтримки):цей індекс вираховуються використовуючи формулу, так як показано в Visual Studio Code Analysis Team Blog: Maintainability Index = 171 - 5.2 * log2 (Halstead Volume) - 0.23 * (Cyclomatic Complexity) - 16.2 * log2 (Lines of Code). Ця формула ґрунтується на базі робіт проведених в Carnegie Melon University.

 

Значення індексу зручності підтримки варіюється від 0 до 100, де 0 – це код який підтримувати найскладніше, а 100 – код, який ідеально підтримувати. Звичайно, коли цей індекс наближається до 100 – це добре. Для того щоб забезпечити простоту, інструмент code metrics в своїх результатах забезпечує іконками для частини коду (класу, або методу) разом зі значенням індексу для того щоб показати зручність його підтримки. Червона іконка представляє індекс підтримки, який менший за 10, що значить що ця частина коду потребує термінової уваги розробників. Значення між 10 і 20 супроводжуються жовтою іконкою для позначення частин коду які непросто підтримувати. Всі значення більше 20 прикрашені зеленою іконкою показують що код нормально підтримується.

 

3. Цикломатична складність:це значення це підрахунок кількості розгалужень для кожної частини коду. Розгалуження можуть це оператори if, switch, for, while, і т.д. Менші значення кращі, тому що вони забезпечують більш зручний для читання і підтримки код.

4. Зв’язність класів: це підрахунок всіх класів, від яких даний клас залежить. Якщо клас зв’язаний з багатьма іншими класами, тоді велика ймовірність що код цього класу перестане працювати через зміни в інших класах. Тому цей показник має бути наскільки можливо нижчим. Вирішення полягає в використанні слабких зв’язків, або Service Oriented Architecture якщо можливо. Являється правилом хорошого тону визначити спільні компоненти і абстрагувати їх як сервіси.

 

5. Глибина наслідування: це число відображає кількість типів, які знаходяться які знаходяться вище типу, який відображається в дереві наслідування. Це значення міряється від класу Object, який знаходиться на нульовому рівні.

 

Вікно результатів Code Metrics

Результати підрахунків метрик кодів доступні в окремому вікні яке може бути відкрите чи з меню Viev, або Analyze. Відкривши вікно ми можемо порахувати метрику коду нажимаючи кнопку Analyze, так як відображено червоним кружечком на малюнку 1. Результати відображаються в сітці, яка має ряд для кожного модуля (наприклад клас, метод) для якого метрика коду може бути підрахована. Для кожного критерію вимірювання, про які зазначалося раніше є окрема колонка.

Малюнок 1

 

Є можливість фільтрувати результати метрики коду ґрунтуючись на значеннях будь якої колонки в вікні результатів. Для вибору фільтру можемо використовувати панель меню метрики коду у вікні результатів. В меню можна вибрати колонку яка буде критерієм, а тоді задати мінімальні і максимальні значення за якими ми хочемо використовувати фільтрування. Складні фільтри використовувати не можна.

Також можливо видаляти певні колонки, або додавати їх назад у вікно результатів. Також можливо змінювати послідовність в якій вони з’являються зліва направо.

Результати можна експортувати або в буфер, або в MS Excel в формі таблиці. Результати можуть бути використані для дальшого офлайн аналізу. Одна з найкращих властивостей для менеджменту – це можливість створювати робочі документи прямо з вікна результатів код метрики. Контекстне меню може бути використане для створення різних робочих елементів і приначати їх розробникам для ре факторингу коду, в якого низький індекс зручності підтримки.

 

Обмеження

Деякі речі, які метрика коду з Team Edition for Software Developers не може робити це:

 

1. Підрахунок метрики коду для частини коду в модулі.

2. Забезпечувати вибіркові колонки в вікні результатів.

3. Показувати стрічки коду, через які зручність підтримки коду зменшена.

4. Виключати певного типу коду, наприклад згенерований код з підрахунку метрики і результатів.

 

 

Цілі лабораторної роботи:

 

Навчитися використовувати засоби метрики коду VSTS для його аналізу.

 

Завдання:

 

1) Розробити програму, яка буде вимірювати 5 основних метрик коду (описані вище)

2) Виміряти метрики будь-якого проекту з відкритим кодом розробленою програмою.

3) Виміряти метрики того ж самого проекту з відкритим кодом за допомогою Visual Studio.

4) Проаналізувати результати (чи буде різниця у вимірюваннях і чому)

5) Представити у вигляді звіту порівняння отриманих результатів.

6) Вивчити теорію метрик коду для захисту лабораторної роботи.

 

 

Контрольні питання:

1. Поясніть поняття метрика ПЗ та вимірювання ПЗ.

2. Метрики складності.

3. Поясніть відмінності прямих та непрямих вимірювань якості.

4. Як використовується вимірювання та метрики в забезпеченні якості?

5. LOC-оцінки.

6. Метрики Холстеда.

7. Метрики цикломатичної складності.

 





©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.