Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






Введение

Качество ПО - это совокупность свойств, определяющих полезность изделия (программы) для пользователей в соответствии с функциональным назначением и предъявлёнными требованиями.

Характеристика качества программы - понятие, отражающее отдельные факторы, влияющие на качество программ и поддающиеся измерению.

Критерий качества - численный показатель, характеризующий степень, в которой программе присуще оцениваемое свойство.

Критерии качества включают следующие характеристики: экономичность, документированность, гибкость, модульность, надёжность, обоснованность, тестируемость, ясность, точность, модифицируемость, эффективность, легкость сопровождения и т.д.

Критерий должен:

* численно характеризовать основную целевую функцию программы;

* обеспечивать возможность определения затрат, необходимых для достижения требуемого уровня качества, а также степени влияния на показатель качества различных внешних факторов;

* быть по возможности простым, хорошо измеримым и иметь малую дисперсию.

Для измерения характеристик и критериев качества используют метрики.

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

Метрики Холстеда включают следующие характеристики.

1) Длина программы:

N'= n1 x log2(n1) + n2 x log2(n2)

Объем программы:

V = N * log2(n) (бит)

2) Потенциальный (минимальный) объем:

V* = (2+ n2*) * log2(2+ n2*)

3) Граничный объем:

V** = (2+ (n2*)* log2(n2*)) * log2(2+ n2*)

5) Cоотношения между операциями и операндами (зависимость числа операндов n2 от числа операций n1):

A = n2* /(n2* +2) * log2(n2*/2)

B = n2* - 2 * A

n2 = A * n1 + B

6) Уровень программы:

L = V*/V

где V* - потенциальный объем, V - объем программы.

Альтернативное определение уровня L:

L' = (n1*) * n2/(n1*N2)

где n1*=2

Альтернативным методом определение уровня программы получили значение на 0.001 превышающее значение полученное в первом методе.

7) Интеллектуальное содержание:

I = L' * V

8) Работа по программированию (общее число элементарных мысленных различий, требуемых для порождения программы):

E = V 2/ V*

9) Приближенное время программирования:

T' = E/S

где S = 18 моментов (различий)/сек - постоянная Страуда.

T' =6882(сек)

Время программирования указанное в техническом задании – 1 час

10) Уровень языка:

A = L * L* V

Уровень языка определяет его производительность.

11) Уравнение ошибок:

Число переданных ошибок в программе: B = V/Е0

где E0 = V* x V* x V*/(A x A) - среднее число элементарных различений между возможными ошибками в программировании.

 

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

* интеллектуальное содержание

* работа по программированию

* приближенное время программирования

* уровень языка

* уравнение ошибок

 

Описание метрик Холстеда

Метрики Холстеда предлагают разумный подход к решению следующих задач:

- предсказание условий, необходимых для программирования по предложенным проектам;

- определение норм первоначальных ошибок;

- количественная оценка языков программирования и эффекта модульности;

- обоснование метода измерения различий между программами, написанными специалистами разного уровня.

 

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

 

В основе вычисляемых свойств алгоритма лежат следующие характеристики:

- n1 - число различных операторов данной реализации;

- n2 - число различных операндов данной реализации;

- N1 - общее число всех операторов;

- N2 - общее число всех операндов;

- n2*- число различных входных и выходных операндов

 

На основании приведенных выше характеристик вычисляются:

словарь n = n1 + n2;

длина реализации N = N1 + N2.

объем программы V=N*log2(n) (бит).

Под битом подразумевается логическая единица информации - символ, оператор, операнд.

Далее М. Холстед вводит n* - теоретический словарь программы, т.е. словарный запас, необходимый для написания программы, с учетом того, что необходимая функция уже реализована в данном языке и, следовательно, программа сводится к вызову этой функции. Например, согласно М. Холстеду, возможное осуществление процедуры выделения простого числа могло бы выглядеть так:

- CALL SIMPLE (X, Y),

- где Y - массив численных значений, содержащий искомое число X.

- Теоретический словарь в этом случае будет состоять из

- n1*: {CALL, SIMPLE (...)},

- n1*=2; n2*: {X, Y},

- n2*=2,

- а его длина, определяемая как

- n* = n1* + n2*,

- будет равняться 4.

- Используя n*, Холстед вводит оценку V*:

- V* = n* * log2 n*, (3)

с помощью которой описывается потенциальный объем программы, соответствующий максимально компактному тексту программы, реализующей данный алгоритм.

 


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.018 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал