Кількісні метрики коду

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Кількісні метрики коду є найпоширенішими метриками завдяки простоті їх підрахунку. Найелементарнішою кількісною метрикою є кількість рядків коду(SLOC). До кількісних метрик відносять також:

  • кількість пустих рядків програми
  • кількість коментарів
  • відсоток коментарів (відношення числа рядків з коментарями до загальної кількості рядків, виражене у відсотках)
  • середнє число рядків для функцій (класів або файлів)
  • середнє число рядків, що містять вихідний код для функцій(класів або файлів)
  • середнє число рядків для модулів

Розрізняють також кількісну метрику для оцінки стилістики програми(F). Для обрахунку цієї метрики програма розбивається на n рівних фрагментів і обчислення кожного фрагменту по формулі Fi = SIGN(Nкомм.i/Ni – 0,1), де Nкомм.i - кількість коментарів в і-му фрагменті, Ni - загальна кількість рядків коду в і-му фрагменті. Загальна характеристика для всієї програми визначатиметься сумою Fi для всіх фрагментів програми.

Кількісні метрики Холстеда.[ред. | ред. код]

До кількісних метрик відносять також кількісні метрики Холстеда. Їх підрахунок оснований на таких показниках:

  • n1 - число унікальних операторів програми, включаючи символи-розділювачі, імена процедур і знаки операцій.
  • n2 - число унікальних операндів програми
  • N1 - загальна кількість операторів в програмі
  • N2 - загальна кількість операндів в програмі
  • n1' - теоретична кількість унікальних операторів
  • n2' - теоретична кількість унікальних операндів

Використовуючи ці показники можна порахувати:

  • Словник програми n=n1+n2
  • Довжина програми N=N1+N2
  • Теоретичний словник програми n'=n1'+n2'
  • Теоретична довжина програми N'= n1*log2(n1) + n2*log2(n2)
  • Об'єм програми V=N*log2n
  • Теоретичний об'єм програми V'=N'*log2n'
  • Рівень якості програмування L'= (2 n2)/ (n1*N2)
  • Складність розуміння програми Eс=V/(L')2
  • Трудомісткість кодування програми D=1/ L'
  • Інформаційна місткість програми I=V/D
  • Оцінка необхідних інтелектуальних зусиль при розробці програми E=N' * log2(n/L)

Посилання[ред. | ред. код]