Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабор.практикум.doc
Скачиваний:
53
Добавлен:
18.11.2019
Размер:
1.68 Mб
Скачать

2. "Спен"

Следующей метрикой сложности потока данных является "спен".

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

«Спен» - это число утверждений, содержащих данный идентификатор между его первым и последним появлением в тексте.

Идентификатор, появившийся n раз, имеет спен равный n-1.

Усреднённый по всем идентификаторам, «Спен» даёт сложность программы.

Пример: Пусть у нас имеется 7 идентификаторов.

2 - «Спен» 12, 2 - «Спен» 41 и 3 - «Спен» 80.

(2)

Следовательно, при построении трассы программы необходимо будет ввести в тело программы, по крайней мере, 50 контролирующих утверждений, что усложнит тестирование и отладку.

3. Метрика Чепина.

Другой метрикой сложности потока данных является метрика Чепина.

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

Все множество переменных, составляющих список ввода-вывода разбивается на 4 группы:

  1. множество Р – это переменные вводимые для расчётов и обеспечения вывода. (Примером может служить используемая в программах лексического анализатора переменная, содержащая строку исходного текста программы, т.е. сама переменная не модифицируется, а только содержит исходную информацию).

  2. множество М – модифицируемые или создаваемые внутри программы переменные.

  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)

Следует отметить, что рассмотренные метрики сложности программ основаны на анализе исходных текстов программ и графов, что обеспечивает единый подход к автоматизации их расчета

ЗАДАНИЕ

Для одной из своих программ рассчитать:

  1. Отношение числа фактических переменных к возможным RUp;

  2. Метрики Чепина, (T,P,С, M, Q);

  3. Спен (Scp).

КОНТРОЛЬНЫЕ ВОПРОСЫ

  1. Что называется метриками сложности? Что такое "Спен"?

  2. Что показывает метрика "Модуль – глобальная переменная", опишите принцип нахождения этой метрики.

  3. Как построить поцесс тестирования и отладки на основе метода "Спена"?

  4. Как оценить информационную прочность отдельного программного модуля? Метрика Чепина.

ЛИТЕРАТУРА

  1. Изосимов А.В., Рыжко А.Л. Метрическая оценка качества программ. – М.: Издательство МАИ, 1989.

Лабораторная работа № 8

Метрики стилистики и понятности программ

ЦЕЛЬ РАБОТЫ: оценить качество программных продуктов с точки зрения их стилистики и понятности.

  1. оценка уровня комментированности

Наиболее простой метрикой стилистики и понятности программ является оценка уровня комментированности программы F:

, (1)

где Nком – количество комментариев в программе; Nстр - количество строк или операторов исходного текста.

Таким образом метрика F отражает насыщенность программы комментариями.

Практически, принято считать что F ≤ 0,1, т.е. на каждые десять строк программы должен приходится минимум один комментарий.

Как показываю исследования, комментарии распределяются по тексту программы неравномерно: в начале программы их избыток, а в середине или в конце – недостаток. Это объясняется тем, что в начале программы, как правило, расположены операторы описания идентификаторов, требующие более "плотного" комментирования. Такая насыщенность компенсирует недостаток комментариев в теле программы, и поэтому формула (1) недостаточно точно отражает комментированность функциональной части текста программы.

Более информативным будет вариант, когда вся программа разбивается на n равных сегментов и для каждого из них определяется Fi:

(2)

при этом (3)

Уровень комментируемости программы считается нормальным, если выполняется условие F = n. В противном случае какой либо фрагмент программы дополняется комментариями до номинального уровня.