
- •Практическая работа №4 «Количественные метрики программного продукта.» Вариант 17
- •Ход лабораторной работы
- •Исходные предоставленные данные
- •Листинг программы
- •Описание программы
- •Расчёт метрик Холстеда
- •Результаты sloc-анализа
- •Результаты метрики стилистики и понятности программы
- •Рaсчёт abc-метрики
Результаты sloc-анализа
SLOC-анализ программы изображен в таблице 2.
Таблица 2 – SLOC-анализ
Показатели |
Количество |
Число пустых строк |
46 |
Число строк, содержащих комментарии |
50 |
Число строк, содержащих исходный код и комментарии |
28 |
Число строк, содержащих декларативный исходный код |
91 |
Число строк, содержащих императивный исходный код |
54 |
Процент комментариев |
30% |
Среднее число строк для функций(методов) |
12 |
Среднее число строк, содержащих исходный код для функций (методов) |
15 |
Среднее число строк для модулей |
44 |
Среднее число строк для классов |
33 |
Результаты метрики стилистики и понятности программы
Иногда важно не просто посчитать количество строк комментариев в коде и просто соотнести с логическими строчками кода, а узнать плотность комментариев. То есть код сначала был документирован хорошо, затем - плохо. Или такой вариант: шапка функции или класса документирована и комментирована, а код нет.
Fi = SIGN (Nкомм. i / Ni - 0,1)
Суть метрики проста: код разбивается на n-равные куски и для каждого из них определяется Fi.
Программа разделена на 4 части по 44 строк кода :
=
;
=
;
=
;
=
;
Рaсчёт abc-метрики
ABC-метрика (Fitzpatrick) основана на подсчете присваиваний значений переменным (Assignment), явных передач управления за пределы области видимости, т.е. вызовов функций (Branch), и логических проверок (Condition). Мера записывается тройкой значений, например, ABC = <7, 4, 2>, но для оценки сложности программы вычисляется одно число, как квадратный корень из суммы квадратов A, B, C. Эта метрика легко вычисляется, может быть вычислена для разных фрагментов кода и наглядна при визуализации (вектор в трехмерном пространстве).
Три компонента оценки ABC определены следующим образом:
Назначение: хранение или передача данных в переменную.
Ветви: явная форвардная программа ответвление за пределы области.
Условные выражения: логическое или логический тест.
Поскольку базовые языки, такие как C, C ++, Python и т. д., имеют такие операции, как присваивание переменных, вызовы функций и тестирование только при условиях, оценка ABC имеет эти три компонента.
Если вектор ABC обозначен как <5,11,9> для подпрограммы, это означает, что подпрограмма имеет 5 назначений, 11 ветвей и 9 условные. В целях стандартизации счетчики должны быть заключены в угловые скобки и записаны в том же порядке в соответствии с обозначением.
ABC=<8, 11, 4>
Сложность
программы =
=
14,177