- •Предисловие
- •Введение
- •Техника безопасности при выполнении лабораторных работ
- •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. "Спен"
Следующей метрикой сложности потока данных является "спен".
Определение спена основывается на локализации обращений к данным внутри каждой программной секции.
«Спен» - это число утверждений, содержащих данный идентификатор между его первым и последним появлением в тексте.
Идентификатор, появившийся n раз, имеет спен равный n-1.
Усреднённый по всем идентификаторам, «Спен» даёт сложность программы.
Пример: Пусть у нас имеется 7 идентификаторов.
2 - «Спен» 12, 2 - «Спен» 41 и 3 - «Спен» 80.
(2)
Следовательно, при построении трассы программы необходимо будет ввести в тело программы, по крайней мере, 50 контролирующих утверждений, что усложнит тестирование и отладку.
3. Метрика Чепина.
Другой метрикой сложности потока данных является метрика Чепина.
Суть метода состоит в оценке информационной прочности отдельно взятого программного модуля с помощью анализа характера использования переменных из списка ввода-вывода.
Все множество переменных, составляющих список ввода-вывода разбивается на 4 группы:
множество Р – это переменные вводимые для расчётов и обеспечения вывода. (Примером может служить используемая в программах лексического анализатора переменная, содержащая строку исходного текста программы, т.е. сама переменная не модифицируется, а только содержит исходную информацию).
множество М – модифицируемые или создаваемые внутри программы переменные.
множество С – переменные, участвующие в управлении работой программного модуля (управляющие переменные).
множество Т – переменные, не используемые в данной программе (паразитные переменные).
Поскольку каждая переменная может выполнять одновременно несколько функций, необходимо учитывать ее в каждой соответствующей функциональной группе.
Далее вводится значение метрики Чепина:
Q = а1P + а2М + а3С + а4Т, (3)
где α1, α2, α3, α4 – весовые коэффициенты, используемые для отражения различного влияния на сложность программы каждой функциональной группы.
По мнению автора метрики: α1 = 1, α2 = 2, α3 = 3, α4 = 0,5.
Таким образом наибольший вес, равный трем, имеет функциональная группа С, т.к. она влияет на поток управления. Весовой коэффициент группы Т не равен нулю, поскольку "паразитные" переменные не увеличивают сложность программы, но затрудняют ее понимание.
С учетом весовых коэффициентов выражение (3) примет вид
Q = P + 2М + 3С +0,5Т (4)
Следует отметить, что рассмотренные метрики сложности программ основаны на анализе исходных текстов программ и графов, что обеспечивает единый подход к автоматизации их расчета
ЗАДАНИЕ
Для одной из своих программ рассчитать:
Отношение числа фактических переменных к возможным RUp;
Метрики Чепина, (T,P,С, M, Q);
Спен (Scp).
КОНТРОЛЬНЫЕ ВОПРОСЫ
Что называется метриками сложности? Что такое "Спен"?
Что показывает метрика "Модуль – глобальная переменная", опишите принцип нахождения этой метрики.
Как построить поцесс тестирования и отладки на основе метода "Спена"?
Как оценить информационную прочность отдельного программного модуля? Метрика Чепина.
ЛИТЕРАТУРА
Изосимов А.В., Рыжко А.Л. Метрическая оценка качества программ. – М.: Издательство МАИ, 1989.
Лабораторная работа № 8
Метрики стилистики и понятности программ
ЦЕЛЬ РАБОТЫ: оценить качество программных продуктов с точки зрения их стилистики и понятности.
оценка уровня комментированности
Наиболее простой метрикой стилистики и понятности программ является оценка уровня комментированности программы F:
,
(1)
где Nком – количество комментариев в программе; Nстр - количество строк или операторов исходного текста.
Таким образом метрика F отражает насыщенность программы комментариями.
Практически, принято считать что F ≤ 0,1, т.е. на каждые десять строк программы должен приходится минимум один комментарий.
Как показываю исследования, комментарии распределяются по тексту программы неравномерно: в начале программы их избыток, а в середине или в конце – недостаток. Это объясняется тем, что в начале программы, как правило, расположены операторы описания идентификаторов, требующие более "плотного" комментирования. Такая насыщенность компенсирует недостаток комментариев в теле программы, и поэтому формула (1) недостаточно точно отражает комментированность функциональной части текста программы.
Более информативным будет вариант, когда вся программа разбивается на n равных сегментов и для каждого из них определяется Fi:
(2)
при этом
(3)
Уровень комментируемости программы считается нормальным, если выполняется условие F = n. В противном случае какой либо фрагмент программы дополняется комментариями до номинального уровня.
