Меры сложности Холстеда


Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Меры сложности Холстеда - это метрики программного обеспечения, введенные Морисом Ховардом Холстедом в 1977 году [1] как часть его трактата об установлении эмпирической науки о разработке программного обеспечения. Холстед заметил, что показатели программного обеспечения должны отражать реализацию или выражение алгоритмов на разных языках, но не зависеть от их выполнения на конкретной платформе. Следовательно, эти метрики вычисляются статически из кода.

Целью Холстеда было выявить измеримые свойства программного обеспечения и отношения между ними. Это похоже на определение измеримых свойств вещества (таких как объем, масса и давление газа) и взаимосвязей между ними (аналогично уравнению газа ). Таким образом, его показатели на самом деле не просто показатели сложности.

Расчет

Для данной проблемы пусть:

  • = количество различных операторов
  • = количество различных операндов
  • = общее количество операторов
  • = общее количество операндов

По этим числам можно рассчитать несколько показателей:

  • Словарь программы:
  • Продолжительность программы:
  • Расчетная ориентировочная продолжительность программы:
  • Объем:
  • Сложность:
  • Усилие:

Мера сложности связана со сложностью написания или понимания программы, например, при проверке кода .

Мера трудозатрат переводится в фактическое время кодирования с использованием следующего соотношения:

  • Время, необходимое для программирования: секунды

Доставленные Halstead ошибки (B) - это оценка количества ошибок в реализации.

  • Количество доставленных ошибок: или, совсем недавно, принято [ ссылка ] .

Пример

Рассмотрим следующую программу на C :

main () {  int  a ,  b ,  c ,  avg ;  scanf ( "% d% d% d" ,  & a , & b , & c ); ср = ( a + b + c ) / 3 ; printf ( "avg =% d" , avg ); }       

Уникальные операторы: main, (), {}, int, scanf, &, =, +, /, printf, ,,;

Уникальные операнды: a, b, c, avg, "%d %d %d", 3,"avg = %d"

  • , ,
  • , ,
  • Расчетная предполагаемая продолжительность программы:
  • Объем:
  • Сложность:
  • Усилие:
  • Время, необходимое для программирования: секунды
  • Количество доставленных ошибок:

Смотрите также

использованная литература

  1. ^ Холстед, Морис Х. (1977). Элементы науки о программном обеспечении . Амстердам: ISBN компании Elsevier North-Holland, Inc. 0-444-00205-7.

внешние ссылки