Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект.doc
Скачиваний:
148
Добавлен:
01.05.2014
Размер:
606.21 Кб
Скачать

Способ формирования зависит от этапа:

1) Этап разработки (трудоемкость, корректность – проверяется по тексту и выполняется в виде верификации)

2) Этап внедрения и эксплуатации (функциональность или корректность, надежность, производительность или ресурсоемкость)

3) Этап сопровождения (понимаемость и модифицируемость, трудоемкость, надежность)

Основные составляющие, обеспечивающие качество программы.

Составляющие качества

Процесс

ПП на стадии разработки

ПП на стадии использования

Метрики процесса

Метрики разработки продукта

↓ ↓

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

- трудоемкость (плановая и фактическая)

- повторное использование

- фактическая длительность недели

- обзор продуктов

- отслеживание

- завершение

Статические:

- проверка корректности

- проверка сложности

- проверка понимаемости

Динамические:

- производительность

- мобильность (прогноз)

- надежность (прогноз)

- производительность (временная и ресурсная)

- надежность (отказоустойчивость и восстанавливаемость)

- корректность

Контроль и управление процессом

Верификация. Удобство использования, моделирование, прогнозирование надежности

Классификация видов сложности пп

1) Алгоритмическая – асимптотические функции временной и емкостной сложности

2) Трудоемкость разработки

2.1) Интегральные – оценивают сложность по принципу «черного ящика». Размерно-ориентированные, функционально-ориентированные, Холстеда, сцепления модулей

2.2) Структурные – оценивают сложность по методу «белого ящика», используются при организации тестирования. Сложности маршрутов выполнения, сложности потока данных, связности фрагментов программы, метрика признаков графов управления

3) Сложность ПП при исполнении

3.1) Временная

3.2) Программная

3.3) Информационная

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

Позволяют оценить ПП в плане корректности, сложности, надежности.

В любой реализации на любом языке можно выделить измеримые параметры: операнды (переменные или константы) и операторы (символы или комбинации символов, влияющие на формирование значений и порядок использования операндов)

Основные измеряемые параметры:

1) Число уникальных операторов

2) Число уникальных операндов

3) Общее число операторов N1

4) Общее число операндов N2

Дополнительные параметры:

1) Частота вхождений i-го оператора f1i

2) Частота вхождений j-го операнда f2j

Словарь программы:

Опытная длина реализации:

Пример программы на Pascal

function GCD(a,b:integer):integer;

Label L1;

Var G,R:integer;

Begin

if (a=0) then begin

GCD:=b; return;

end;

if (b=0) then begin

GCD:=a; return;

end;

L1:

G:=a/b;

R:=a-b*G;

if (R=0) then begin

GCD:=b; return;

end;

a:=b; b:=R; GOTO L1;

end;

Оператор

Номер (i)

f1i

Операнд

Номер (j)

f2j

:=

1

7

GCD

1

3

=

2

3

G

2

2

R

3

3

if then

3

3

a

4

5

/

4

1

b

5

7

*

5

1

0

6

3

-

6

1

() begin end

7

8

goto

8

1

function GCD

9

1

return

10

3

;

11

14

Пример программы на языке С:

int GCD(int a, int b)

{

int G;

int R;

if (!a) return (b);

if (!b) return (a);

while(1)

{

G=a/b;

R=a-b*G;

if (R) { a=b; b=R;}

else return (b);

}

}

Оператор

Номер (i)

f1i

Операнд

Номер (j)

f2j

;

1

9

GCD

1

1

=

2

4

G

2

2

if else

3

1

R

3

3

if

4

2

a

4

5

while

5

1

b

5

7

/

6

1

1

6

1

*

7

1

-

8

1

!

9

2

() {}

10

11

int GCD

11

1

return

12

3

Программа на языке Assembler:

Оператор

Номер (i)

f1i

Операнд

Номер (j)

f2j

_gcd proc

1

1

2

1

1

enter

2

1

0

2

1

push

3

1

si

3

6

mov

4

11

cx

4

7

cmp

5

1

word ptr [bp+6]

5

1

ja short @1@86

6

1

bx

6

8

call f_overflow

7

1

word ptr [bp+8]

7

1

far ptr

8

1

sp

8

1

or

9

3

ax

9

6

jne @1@70

10

1

word ptr [bp-2]

10

1

jmp @1@338

11

1

dx

11

3

jne @1@226

12

1

_gcd

12

2

jmp @1@142

13

1

cwd

14

1

idiv

15

1

imul

16

1

sub

17

1

pop

18

1

leave

19

1

ret

20

1

retp

21

1

,

22

18

Расчетная длина программы.

- теоретическая оценка длины программы

Для стилистически корректных программ

Для Pascal:

Для С:

Объем программы

Холстед вводит метрику объема (размера) программы как

В качестве символов используются логические символы (не буквы, а слова целиком)

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

Уровень программы.

- уровень программы

- сложность программы

- оценка уровня программы