Справочник от Автор24
Найди эксперта для помощи в учебе
Найти эксперта
+2

Оценка характеристик программ системой метрик Холстеда

Замечание 1

Оценка характеристик программ системой метрик Холстеда — это оценка корректности программ, основой которой выступает уровень качества программирования.

Введение

В общем случае использование метрик может позволить руководящим работникам различных организаций оценить сложность уже созданного или даже формируемого проекта, увидеть объем работ, стилистику проектируемой программы и усилия, затрачиваемые каждым из разработчиков для осуществления каких-либо решений. Тем не менее метрики обладают только рекомендательными характеристиками, они не могут служить полноценным руководством, поскольку при формировании программного обеспечения программисты стремятся свести к минимуму или максимуму ту, или иную меру для своей программы. И поэтому они способны прибегнуть к хитростям вплоть до понижения эффективности работы программы.

Помимо этого, если, например, программист сформировал незначительное количество строк кода или внес малое число структурных изменений, это совсем не означает, что он ничего не сделал, а может являться признаком того, что дефект программы было достаточно сложно выявить. Последнюю проблему, тем не менее, отчасти можно решить, если применять метрики сложности, так как, в более сложных программах и ошибку выявить сложнее.

Оценка характеристик программ системой метрик Холстеда

В первую очередь, необходимо рассмотреть количественные характеристики исходного кода программ, так как это сделать проще всего. Наиболее простой метрикой может считаться количество строк кода (SLOC). Эта метрика была изначально предназначена для того чтобы можно было выполнить оценку трудовых затрат по проекту. Но из-за того, что одна и та же функциональность может быть достигнута при помощи нескольких программных строк или сформирована в одной строчке, метрика оказалась фактически неприменимой с возникновением языков программирования, в которых в одну строку можно записать больше одной команды.

«Оценка характеристик программ системой метрик Холстеда» 👇
Помощь эксперта по теме работы
Найти эксперта
Решение задач от ИИ за 2 минуты
Решить задачу
Найди решение своей задачи среди 1 000 000 ответов
Найти

По этой причине стали различать логические и физические строки кода. Логические строки кода являются количеством команд программы. Этот вариант описания так же обладает своими недостатками, поскольку имеет сильную зависимость от применяемого языка программирования и стиля программирования.

Помимо метрики SLOC к количественным характеристикам следует отнести также:

  1. Число пустых строк.
  2. Число комментариев.
  3. Процентное соотношение комментариев, то есть, отношение количества строк, которые содержат комментарии к общему числу строк, представленное в процентах.
  4. Среднее количество строк для функций (классов, файлов).
  5. Среднее количество строк, которые содержат исходный код для функций (классов, файлов).
  6. Среднее количество строк для модулей.

Иногда дополнительно может различаться оценка стилистики программы (F). Она состоит в подразделении программы на «n» равных участков и определении оценки для всех участков по следующей формуле:

Fi = SIGN (Nкомм.i / Ni — 0,1)

Здесь:

  • Nкомм.i является количеством комментариев в i-ом участке,
  • Ni является общим количеством строк кода в i-м участке.

Тогда общая оценка для всего программного кода может быть определена по следующей формуле:

F = СУММА Fi.

К группе метрик, которые основаны на вычислении некоторых единиц в программном коде, следует отнести и метрики Холстеда. Эти метрики базируются на следующих параметрах:

  1. Параметр n1, который является количеством уникальных операторов программы, в том числе и символов-разделителей, имен процедур и знаков операций, то есть, это словарь операторов.
  2. Параметр n2, который является количеством уникальных операндов программы, то есть, это словарь операндов.
  3. Параметр N1, который является общим количеством операторов в программе.
  4. Параметр N2, который является общим количеством операндов в программе.
  5. Параметр n1', который является теоретическим количеством уникальных операторов.
  6. Параметр n2', который является теоретическим количеством уникальных операндов.

При условии учета введенных обозначений, можно сделать следующие определения:

  1. n=n1+n2 является словарем программы.
  2. N=N1+N2 является длиной программы.
  3. n'=n1'+n2' является теоретическим словарем программы.
  4. N'= n1log2(n1) + n2log2(n2) является теоретической длиной программы (для стилистически корректных программ отклонение N от N' не должно превышать десять процентов).
  5. V=N*log2n является объемом программы.
  6. V'=N'log2n' является теоретическим объемом программы, где n является теоретическим словарем программы.
  7. L=V'/V является уровнем качества программирования, для идеальной программы L=1.
  8. L'= (2 n2)/ (n1*N2) является уровнем качества программирования, основанным только на параметрах реальной программы без учета теоретических параметров.
  9. EC=V/(L')2 является сложностью понимания программы.
  10. D=1/ L' является трудоемкостью кодирования программы.
  11. y' = V/ D2 является уровнем языка выражения.
  12. I=V/D является информационным содержанием программы. Эта характеристика предоставляет возможность определения умственных затрат на формирование программы.
  13. E=N' * log2(n/L) является оценкой требуемых интеллектуальных усилий при формировании программы, которая характеризует количество необходимых элементарных решений при формировании программы.

При использовании метрик Холстеда могут быть частично компенсированы недостатки, которые связаны с возможностью записи одной и той же функциональности разным числом строк и операторов.

Еще одним типом метрик программного обеспечения, которые относятся к количественным, могут считаться метрики Джилба. Они способны показывать сложность программного обеспечения на базе насыщенности программы условными операторами или операторами цикла. Эта метрика, невзирая на ее простоту, способна достаточно хорошо отразить сложность написания и понимания программы, а если добавить такой показатель, как наибольший уровень вложенности условных и циклических операторов, то степень эффективности данной метрики может существенно возрасти.

Дата написания статьи: 08.07.2022
Найди решение своей задачи среди 1 000 000 ответов
Крупнейшая русскоязычная библиотека студенческих решенных задач
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot