Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Метрики ХолстедаСтр 1 из 3Следующая ⇒
Введение Качество ПО - это совокупность свойств, определяющих полезность изделия (программы) для пользователей в соответствии с функциональным назначением и предъявлёнными требованиями. Характеристика качества программы - понятие, отражающее отдельные факторы, влияющие на качество программ и поддающиеся измерению. Критерий качества - численный показатель, характеризующий степень, в которой программе присуще оцениваемое свойство. Критерии качества включают следующие характеристики: экономичность, документированность, гибкость, модульность, надёжность, обоснованность, тестируемость, ясность, точность, модифицируемость, эффективность, легкость сопровождения и т.д. Критерий должен: * численно характеризовать основную целевую функцию программы; * обеспечивать возможность определения затрат, необходимых для достижения требуемого уровня качества, а также степени влияния на показатель качества различных внешних факторов; * быть по возможности простым, хорошо измеримым и иметь малую дисперсию. Для измерения характеристик и критериев качества используют метрики. Метрики Холстеда Метрики Холстеда включают следующие характеристики. 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) с помощью которой описывается потенциальный объем программы, соответствующий максимально компактному тексту программы, реализующей данный алгоритм.
|