Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на теорию 46-60.doc
Скачиваний:
7
Добавлен:
23.08.2019
Размер:
1.12 Mб
Скачать

52. Определение метрики и её свойства. Шкалы: номинальная, порядковая, интервальная, относительная.

Метрика – мера, определяющая расстояния между элементами множества. Обладает следующими свойствами:

- всегда больше либо равна нулю;

- равна нулю, если элементы множества совпадают;

- симметричная, т.е. |AB|=|BA| (расстояние);

- метрика подчиняется закону треугольника: |AB|+|BC|>|AC|.

Введение метрики на множестве определяет метрическое пространство, Т.е. если определить какую-то метрику на множестве программ, то можно оперировать этой метрикой, сравнивая программы между собой.

Каждая метрика имеет определённую шкалу, вдоль которой располагаются величины. соответствующие значениям метрики. Виды шкал:

1. номинальная. По этой шкале программы классифицируются по признаку наличия или отсутствия какого-либо свойства или характеристики без учёта градаций;

2. порядковая шкала. По этой шкале программы классифицируются по признаку наличия или отсутствия какой-либо характеристики и упорядоченно располагаются по оси этой характеристики (но сами значения на ней не присутствуют – только взаимное расположение);

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

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

53. Метрики Холстеда.

Обозначим через η1 число уникальных различных операторов программы, включая символы-разделители, знаки операций и имена процедур и функций (словарь операторов),η2 – число уникальных имён операндов (словарь операндов), η=η12 (словарь модуля). Тогда N=η1*log21)+η2*log22) – информационная длина программного модуля, V=N*log2(η) – информационный объём модуля. Пусть N1 – число строк (операторов), N2 – число операндов. Тогда L=2*η2/(η1*N2) – уровень записи модуля (показатель антиконцентрированности вычислений в модуле).

Метрика Холстеда сложности. E=V/L – сложность модуля по Холстеду.

Язык

λсредн

dλ (абс. откл. от λсредн)

Английский

2.16

0.74

Fortran

1.14

0.81

PL-1

1.53

0.92

Assembler

0.88

0.42

Метрика Холстеда оценки языков программирования. Оценка языка программирования λ=L2*V. Она характеризует уровень языка программирования.

Метрика Холстеда «интеллектуальности». С помощью этой метрики Холстед собирался измерять интеллектуальное содержание алгоритма, инвариантное по отношению к языкам реализации. I=L*V.

Метрика Холстеда количества ошибок. Количество ошибок B=N/3000, где N – количество строк в программе.

54. Метрика МакКейба. Пример. Метрика «граничных значений». Пример.

Метрика МакКейба. Пусть имеется представление программы в виде ориентированного графа G(V, E), где V – вершины, соответствующие операторам, E – дуги, соответствующие переходам. Обозначим через p количество дуг, которые необходимо добавить для преобразования рассматриваемого графа в сильносвязанный (т.е. граф, любые две вершины которого взаимно достижимы). Для графов корректных программ, т.е. графов, не имеющих недостижимых от точки входа участков и «висячих» точек входа и выхода сильносвязанный граф получается путём замыкания дугой вершины, обозначающей конец программы, на вершину, обозначающую точку входа в эту программу. Тогда Z=E-V+2*p – метрика МакКейба.

Пример. V=8, E=10, p=1. Z=10-8+2*1=4.

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

Метрика «граничных значений». G(V, E) – граф программы с одной начальной и одной конечной вершиной. Число входящих в вершину дуг - отрицательная степень вершины, выходящих – положительная степень вершины. Тогда вершины делятся на два типа – принимающие (положительная степень равна единице) и вершины отбора (положительная степень равна двум).

Для получения значения метрики необходимо:

1. разбить граф G на максимальное число подграфов G’, удовлетворяющих следующим условиям: вход в подграф осуществляется только через вершину отбора, каждый подграф включает вершину (называемую в дальнейшем нижней границей подграфа), в которую можно попасть из любой другой вершины подграфа; вершина отбора, соединённая сама с собой дугой-петлёй так же образует подграф G’.

2. число вершин, образующих подграф G’, равно скорректированной сложности вершины отбора;

3. каждая принимающая вершина имеет скорректированную сложность равную единице;

4. скорректированная сложность конечной принимающей вершины всего графа равна нулю;

5. сумма скорректированных сложностей всех вершин графа G даёт абсолютную сложность модуля SA;

6. относительная сложность согласно метрике «граничных значений» вычисляется по формуле SO=1-(V-1)/SA.

Пример.