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



Метрики сложности потока управления

Схемы алгоритмов

Рис. 1 Рис. 2 Рис. 3
Метрика Маккейба Z(G) 3 5 5
Абсолютная сложность программы CL по метрике Джилба 2 4 4
Относительная сложность программы cl по метрике Джилба 0,29* 0,36 0,36
Максимальный уровень вложенности условного оператора CLI по метрике Джилба 1 3 3
Метрика граничных значений (абсолютная граничная сложность программы) Sa 10 14 32
Метрика граничных значений (относительная граничная сложность программы) S0 0,4 0,357 0,625

 

Примечание.

* - относительная \сложность cl по метрике Джилба для программы, схема алгоритма которой представлена на рис. 1, рассчитана в предположении, что каждый блок схемы алгоритма содержит один оператор программы.

 

Метрики сложности потока данных

Метрики сложности потока данных связывают сложность программы с использованием и размещением данных в данной программе. Метрики этой группы основаны на анализе исходных текстов программ.

К наиболее известным в данной группе метрик можно отнести спен и метрику Чепина [2].

 

Спен идентификатора – это число повторных появлений идентификатора (число появлений после его первого появления) в тексте программы. Идентификатор, встречающийся в тексте программы п раз, имеет спен, равный п—1.

Величина спена связана со сложностью тестирования и отладки программы. Например, если спен идентификатора равен 10, то при трассировании программы по этому идентификатору следует ввести в текст программы 10 контрольных точек, что усложняет тестирование и отладку программы.

 

Метрика Чепина базируется на анализе характера использования в программе переменных.

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

1. Р – вводимые переменные, содержащие исходную информацию, но не модифицируемые в программе и не являющиеся управляющими переменными;

2. М – модифицируемые переменные и создаваемые внутри программы константы и переменные, не являющиеся управляющими переменными;

3. С – переменные, участвующие в управлении работой программного модуля (управляющие переменные);

4. Т – не используемые в программе («паразитные») переменные, например, вычисленные переменные, значения которых не выводятся и не участвуют в дальнейших вычислениях.

Значение метрики Чепина определяется по формуле:

 

Q = a1 p + a2 m + a3 c + a4 t ,

 

где а1, a2, a3, a4 – весовые коэффициенты; p, m, c, t – количество переменных в группах Р, М, С, Т соответственно.

Весовые коэффициенты позволяют учитывать различное влияние на сложность программы каждой функциональной группы. Наиболее часто применяются следующие значения весовых коэффициентов: а1 = l, а2 = 2, а3 = 3, а4 = 0,5. С учетом данных значений формула для определения метрики Чепина принимает вид :

 

Q = p + 2m + 3c + 0,5t .

 

Помимо полной метрики Чепина распространен ее вариант, при котором анализу и разбиению на четыре группы подвергаются только переменные из списка ввода/вывода программы, то есть те переменные, которые содержатся в списке параметров операторов ввода/вывода программы. Назовем данный вариант метрикой Чепина ввода/вывода.

Табл. 8, 9 содержат метрики сложности потока данных для программы, вычисляющей значение функции

 

Y = sin X .

 

Исходный текст программы приведен в примере 1.

 

Таблица 8

Спен программы

Идентификатор х n vs y eps Суммарный спен программы
Спен 6 5 5 4 2 22

 

В тексте программы (см. пример 1) идентификаторы впервые встречаются в разделе объявлений. Поэтому значение спена идентификатора равно количеству его появлений в разделе операторов, то есть значению f2i в метриках Холстеда.

Таблица 9

Метрики Чепина программы

 

Полная метрика Чепина

Метрика Чепина ввода/вывода

Группа переменных Р М С Т Р М С Т
Переменные, относящиеся к группе x y, n vs, eps -- x y eps --
Количество переменных в группе р = 1 m = 2 c = 2 t = 0 р = 1 m = 1 c = 1 t = 0
Метрика Чепина

Q = 1*1 + 2*2 + 3*2 + 0,5*0 = 11

Q = 1*1 + 2*1 + 3*1 + 0,5*0 = 6

 

В список переменных ввода/вывода программы (см. пример 1) входят переменные х (оператор ввода Readln ( x)) и y, z (оператор вывода Writeln ( x, y, eps)). Остальные переменные (n, vs) в расчете метрики Чепина ввода/вывода не участвуют.

 

Литература

1. ГОСТ 19.701-90 – Единая система программной документации – Схемы алгоритмов, программ, данных и систем – Условные обозначения и правила выполнения.

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

3. Холстед М.Х. Начала науки о программах. – М.: Финансы и статистика, 1981.


Индивидуальная

Практическая работа № 1

Тема задания

 

Метрики сложности потока управления программ.

Для вычисленного варианта индивидуального задания разработать детализированную схему алгоритма, представленную в соответствии с положениями ГОСТ 19701-90. По полученному алгоритму рассчитать метрики сложности потока управления программ (метрики Маккейба, Джилба, максимальный уровень вложенности условного оператора, метрику граничных значений). В алгоритме предусмотреть вывод на экран всех входных и выходных данных.

 

Методические указания к выполнению
индивидуальной практической работы

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

Затем для рассчитанного варианта индивидуального задания следует разработать схему алгоритма с максимальным уровнем детализации. Это означает, что каждому блоку схемы алгоритма должен соответствовать один оператор языка программирования (в привязке к языку Паскаль). Например, ввод или вывод двухмерного массива в алгоритме должен быть представлен не одним символом ввода (параллелограмм), а сложным циклом (во внешнем цикле вводятся строки, во внутреннем цикле вводятся элементы строк).

Для правильного расчета метрики Маккейба при представлении циклов следует использовать не парный символ «Граница цикла», а символ «Решение» с обратной связью (по аналогии с представлением цикла, состоящего из блоков 2, 3 на рис. 1).

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

На основании разработанного алгоритма рассчитываются значения метрик сложности потока управления будущей программы:

· рассчитывается метрика Маккейба и определяются базисные независимые пути в алгоритме (по аналогии с примером, приведенным в теоретических сведениях);

· рассчитываются абсолютная CL и относительная cl сложности программы, а также максимальный уровень вложенности условного оператора CLI, используя метрику Джилба;

· рассчитываются абсолютная Sa и относительная So граничные сложности программы по метрике граничных значений (по аналогии с примерами, приведенными в теоретических сведениях). Результаты расчетов метрики граничных значений должны быть представлены в виде таблиц, аналогичных таблицам 3 и 4;

· значения всех рассчитанных метрик сложности потока управления для разработанного алгоритма должны быть сведены в итоговую таблицу (аналогичную таблице 7, но включающую не три столбца для схем алгоритмов, а один столбец для разработанного алгоритма).

·

Содержание отчета по индивидуальной

 практической работе № 1

Индивидуальная практическая работа № 1 должна содержать:

· титульный лист;

· номер и условие индивидуального задания;

· детализированную схему алгоритма по ГОСТ 19. 701-90;

· описание схемы алгоритма;

· расчет метрики Маккейба ддя разработанного алгоритма и определение базисных независимых путей;

· расчет метрики Джилба ддя разработанного алгоритма;

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

· результаты расчетов метрик в виде итоговой таблицы.


Индивидуальная

Практическая работа № 2

Тема задания


Дата добавления: 2019-11-16; просмотров: 2431; Мы поможем в написании вашей работы!

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






Мы поможем в написании ваших работ!