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

4.2 Язык c

Сначала произведём ручной расчёт метрических характеристик по Холстеду:

Операторы

Количество

Операнды

Количество

1

const

3

1

n

9

2

int

3

2

8

1

3

=

19

3

x

6

4

typedef

1

4

y

5

5

float

6

5

y_calc

2

6

ary

3

6

i

17

7

void linfit1

1

7

a

3

8

(), {}

17

8

b

3

9

for

3

9

sum_x

6

10

<

3

10

sum_y

6

11

++

3

11

sum_xy

4

12

[]

6

12

sum_x2

4

13

_[]

1

13

sum_y2

3

14

+=

5

14

xi

6

15

*

9

15

yi

6

16

-

4

16

sxy

3

17

/

8

17

sxx

4

18

randomize

1

18

syy

2

19

random

2

19

0

8

20

linfit1

1

20

2000

2

Итого

99

21

100

2

Итого

102

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

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

20

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

21

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

99

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

102

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

41

Экспериментальная длина программы (Nэ):

201,0000

Теоретическая длина программы (Nт):

178,6763

Объём программы (V):

1076,8776

Потенциальный объём (V*):

11,6096

Граничный объём (V**):

15.6844

Уровень программы (L):

0,0108

Сложность программы (C):

92,9343

Ожидание уровня программы (L^):

0,0206

Интеллектуальное содержание программы (I):

22,1710

Работа по программированию (Е):

100078,8659

Время кодирования (T):

10007,8866

Ожидаемое время кодирования (T^):

5230,5483

Уровень языка программирования (Lam):

0,1250

Уровень ошибок (В):

0,7130

Ожидаемый уровень ошибок (В^):

0,3590

Теперь произведём расчёт метрических характеристик по Холстеду при помощи программ Parser_C.exeиMetrics.exe.

parser_c -i c1.cpp -o c1.lxm –t

metrics -i c1.lxm -o result_c.txt -f -n 3 -s 10

Ниже приведены результаты роботы программы:

Statistics for module c1.lxm

=====================================

The number of different operators : 20

The number of different operands : 19

The total number of operators : 85

The total number of operands : 87

Dictionary ( D) : 39

Length ( N) : 172

Length estimation ( ^N) : 167.149

Volume ( V) : 909.089

Potential volume ( *V) : 11.6096

Limit volume (**V) : 15.6844

Programming level ( L) : 0.0127706

Programming level estimation ( ^L) : 0.0218391

Intellect ( I) : 19.8537

Time of programming ( T) : 7118.59

Time estimation ( ^T) : 4045.27

Programming language level (lambda) : 0.148262

Work on programming ( E) : 71185.9

Error ( B) : 0.572543

Error estimation ( ^B) : 0.30303

Table:

====================================

Operators:

| 1 | 4 | ()

| 2 | 9 | *

| 3 | 1 | +

| 4 | 2 | ++

| 5 | 5 | +=

| 6 | 12 | ,

| 7 | 4 | -

| 8 | 6 | /

| 9 | 2 | <

| 10 | 16 | =

| 11 | 4 | []

| 12 | 1 | _[]

| 13 | 4 | ary

| 14 | 3 | const

| 15 | 4 | float

| 16 | 2 | for

| 17 | 3 | int

| 18 | 1 | linfit1

| 19 | 1 | typedef

| 20 | 1 | void

====================================

Operands:

| 1 | 7 | 0

| 2 | 1 | 8

| 3 | 3 | a

| 4 | 3 | b

| 5 | 12 | i

| 6 | 8 | n

| 7 | 6 | sum_x

| 8 | 4 | sum_x2

| 9 | 4 | sum_xy

| 10 | 6 | sum_y

| 11 | 3 | sum_y2

| 12 | 4 | sxx

| 13 | 3 | sxy

| 14 | 2 | syy

| 15 | 4 | x

| 16 | 6 | xi

| 17 | 3 | y

| 18 | 2 | y_calc

| 19 | 6 | yi