- •Предисловие
- •Введение
- •Техника безопасности при выполнении лабораторных работ
- •1. Общие требования безопасности
- •2. Требования безопасности перед началом работы
- •3. Требования безопасности во время работы
- •1.1.2. Идентификация формы распределения результатов измерений. Критерии согласия
- •Критерий пирсона
- •Критерий колмогорова
- •Составной критерий
- •1.2. Порядок выполнения работы
- •Обработка результатов измерений
- •1. 3. Содержание отчета
- •1. 4. Контрольные вопросы
- •2.1.2. Точечные оценки законов распределения
- •2.1.3. Доверительная вероятность и доверительный интервал
- •2.1.4. Грубые погрешности и методы из исключения
- •2.1.4.1. Критерии исключения грубых погрешностей
- •2.1.5. Суммирование погрешностей
- •2.1.6. Порядок обработки результатов прямых многократных измерений
- •1.2. Порядок выполнения работы
- •Обработка результатов измерений
- •2. 3. Содержание отчета
- •2.4. Контрольные вопросы
- •Учебно-методическое обеспечение
- •Лабораторная работа № 3 контроль качества технологического процесса с помощью карт контроля по количественному признаку
- •3.1. Теоретическая часть
- •3.1.1. Общие сведения о контрольных картах
- •3.1.2. Построение контрольной карты
- •3.1.3. Карты контроля по количественному признаку
- •3. 2. Порядок выполнения работы
- •Обработка результатов измерений
- •3. 3. Содержание отчета
- •4. Контрольные вопросы
- •4. 2. Порядок выполнения работы
- •Обработка результатов измерений
- •2.1. Вычисляется величина среднего квадратического отклонения для всей выборки измерений (изделий) по формуле ,
- •3. 3. Содержание отчета
- •4. Контрольные вопросы
- •Литература
- •2. Метрическая теория программ. Разновидности метрик. Шкалы
- •3. Метрики сложности программ
- •2. Цикломатическое число Маккейба
- •3. Метрика Джилба оценки сложности
- •4. Метрика «граничных значений» оценки сложности
- •5. Описание алгоритма
- •Подграфы программы
- •Скорректированная сложность вершин графа программы
- •Задание
- •Контрольные вопросы
- •2. "Спен"
- •3. Метрика Чепина.
- •2. Метрики Холседа для оценки стилистики и понятности программ
- •Уровень качества программирования
- •Задание
- •Контрольные вопросы
- •Литература
- •Лабораторная работа № 9 Метрики использования языков программирования и технологических средств
- •Оценки языка программирования
- •2. Уровень автоматизации программирования
- •2.2. Обработка результатов измерений
- •2. 3. Содержание отчета
2. Метрики Холседа для оценки стилистики и понятности программ
Следующие характеристики являются продолжением метрики Холседа. Стилистика и понятность программ тесно связаны и с размером, и со сложностью программ.
Для измерения
теоретической
длины программы
М.Холстед вводит аппроксимирующую
формулу:
,
(4)
где η1 – словарь операторов; η2 – словарь операндов программы.
Вводя эту оценку, Холстед исходит из основных концепций теории информации, по аналогии с которыми частота использования операторов и операндов в программе пропорционально двоичному логарифму количества их типов. Таким образом, выражение (4) справедливо для потенциально корректных программ, свободных от избыточности или несовершенств (стилистических ошибок).
Несовершенствами можно считать следующие ситуации:
последующая операция уничтожает результаты предыдущей без их использования;
присутствуют тождественные выражения, решающие совершенно одинаковые задачи;
одной и той же переменной назначаются различные имена и т.п.
Подобные ситуации приводят к изменению N, без изменения η.
Для стилистически корректных программ отклонение в оценке теоретической длины от реальной N не превышает 10 %. Таким образом, измеряя η1, η2, N1 и N2 и сопоставляя значения N и для некоторой программы, можно говорить о наличии в программе стилистических ошибок, т.е. несовершенств.
Уровень качества программирования
Другой характеристикой, принадлежащей к метрикам корректности программ, по М.Холстеду, является уровень качества программирования L (уровень программы):
,
(5)
где V и V* соответственно реальный и потенциальный объем программы.
Очевидно, для идеальной программы L=1, а для реальной – L<1.
Нередко целесообразно определить уровень программы, не прибегая к оценке ее теоретического объема, поскольку список параметров программы часто зависит от реализации и может быть искусственно расширен. Это приводит к увеличению метрической характеристики качества программирования. М.Холстед предлагает аппроксимировать эту оценку выражением, включающим только фактические параметры, т.е. параметры реальной программы:
.
(6).
Коэффициент
корреляции между L
и
составляет 90 %. Однако, если для исследования
выбираются модули, в последствии
объединенные в сложную программу,
расхождения в значениях этих оценок
могут достигать целого порядка. Считается,
более корректным использовать
характеристику L.
Располагая характеристикой , Холстед выводит характеристику I, которую рассматривает как интеллектуальное содержание конкретного алгоритма, инвариантное по отношению к используемым языкам реализации.
I= V (7)
Преобразуя выражение (7) с использованием выражения (5) получаем I= V≈LV=V*V/V=V*.
Введение характеристики I позволяет определить умственные затраты на создание программы.
Поскольку 1/L имеет смысл рассматривать как средний коэффициент сложности, оценка необходимых усилий по написанию программы может быть изменена как
E= log2η/L (8).
Таким образом Е характеризует число требуемых элементарных решений при написании программы.
Однако Е, адекватно характеризует лишь начальные усилия по написанию программ, поскольку не учитываются отладочные работы, требующие интеллектуальных затрат иного характера. Поэтому данную характеристику можно интерпретировать, используя вместо теоретической длины программы , ее реальную длину:
E'=Nlog2 η/L (9).
Суть характеристики состоит в оценке затрат не на разработку программы, а затрат на восприятие готового продукта.
Преобразуя формулу (8) с учетом выражения V = Nlog2 η (см.формулу 3 лаб.раб.5) и (5) получим
E= V2/V*.
Такое представление E', Е иллюстрирует целесообразность разбиения программы на отдельные модули, т.к.интеллектуальные затраты пропорциональны квадрату объема программы , который всегда больше суммы квадратов отдельных модулей.
Пример:
ADD : PROCEDURE (A + B) RETURN (FLOAT);
RETURN(A + B);
END ADD;
η1 = 2 – количество операторов
η2 = 2 – количество операндов
η = η1 + η2 = 5
N = 2log22 + 3log23 ≈ 6,5
V = 6,5log25 ≈ 13,2
Сложность модуля E = V/L = 13,5; λ = L2V = 1*13,5 = 13,5
