Разработка и описание программы на заданную тематику

Автор работы: Пользователь скрыл имя, 31 Марта 2014 в 02:51, задача

Краткое описание

•Разработать программу по заданной тематике в среде Microsoft Visual;
•Составить описание разработанной программы, использую метрику Холстеда, три критерия, метрику Маккейба, функциональные указатели, модели Джелински – Моранды и Миллса.

Содержание

1. Формулировка задания 3
2. Описание программы 4
2.1 Постановка задачи 4
2.2 Алгоритм задачи 5
2.3 Исходный текст программы 6
2.4 Виды основных окон программы 13
3. Оценка характеристик программы на основе метрик Холстеда 16
4. Оценка структурной сложности программы на основе трех критериев и метрики Маккейба. 34
5. Оценка характеристик программы на основе функциональных указателей 39
6. Оценка надежности программы 42
6.1 Оценка надежности программы на основе модели Джелински – Моранды 42
6.2 Оценка надежности программы на основе модели Миллса 44
7. Выводы 46
8. Литература 47

Вложенные файлы: 1 файл

Документация_Новикова_372_КДЗ.docx

— 258.06 Кб (Скачать файл)

 

Таблица 1. Словарь операндов программы

№ п/п

Операнды

Количество повторений

1

System

10

2

Program

1

3

Main()

3

4

Main

9

5

Values()

2

6

Values

6

7

TaskForm()

2

8

TaskForm

4

9

vs

17

10

mf

2

11

tf

2

12

StateID

4

13

Form

3

14

InitializeComponent()

2

15

TaskForm_Load()

1

16

sender

8

17

EventArgs

8

18

e

8

19

SecondPage

2

20

FirstPage

2

21

OperationID

4

22

TaskForm_FormClosed()

1

23

StreamWriter

2

24

StreamReader

2

25

Stream

1

26

Car

5

27

Name

9

28

Price

12

29

Power

10

30

CarList

12

31

List<Car>

1

32

CreateButton_Click

1

33

FindButton_Click

1

34

CheckValue

6

35

str

7

36

sw

4

37

sr

3

38

paramID

5

39

st

3

40

i

26

41

ValueList

5

42

ProcessButton_Click

1

43

MinValue

4

44

MaxValue

4

45

b

6

46

OpID

4

47

StID

4

48

FirstTaskButton_Click

1

49

Main_FormClosed

1

50

FormClosedEventArgs

2

Всего

243


 

 

Таблица 2. Входные и выходные переменные программы

Входные переменные

Выходные переменные

 

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

 

"Ошибка в параметре  поиска!"

 

"Марка автомобиля: " + "Мощность: " + "Цена:"

 

"Марка автомобиля: " + "Мощность: " + "Цена:"

 

"Ничего не  найдено!"

 

"Близнецы: "

 

"Ничего не  найдено!"

 

"Ошибка при  вводе параметров!"

Всего  8


 

 

Таблица 3. Значения метрик Холстеда для программы

Наименование

характеристики

Обозначение

и формула для вычисления

Значение

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

n1

80

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

n2

50

Общее число всех операторов и операций

N1

807

Общее число всех операндов

N 2

243

Число входных и выходных переменных (параметров)

n 2*

8

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

n = n 1 + + n 2

130

Длина реализации программы

N = N1 + N2

1050

Объем программы (в битах)

V = (N1 + N2) × log2(n 1 + n 2)

7371

Потенциальный объем программы

V* = (n2* + 2) · log2(n2* + 2)

33,2

Уровень реализации программы

L = V*/V

0,005

Уровень реализации языка

l = L × V*

0,166

Работа программирования

E = V / L

1474200


 

Потенциальный объем программы (V*) меньше объема программы (V). В связи с этим уровень реализации программы очень низкий (L=0,005).

 

 

 

 

 

 

 

 

 

 

 

 

4. Оценка структурной сложности  программы на основе трех критериев  и метрики Маккейба.

 

 Граф сложности программы

 

 

Граф сложности программы имеет 23 вершины, 8 из которых разветвлены, и 29 ребер.

Первый критерий

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

Вершины с разветвлениями (выделены цветом): 1, 2, 3, 5, 8, 9, 15, 20

 

М: 1-2-4-6-7-2-5-8-10-2-5-8-11-18-20-22-1-2-5-9-12-18-20-22-1-2-5-9-13-2-5-8-11-18-20-22-1-3-14-15-17-19-20-22-1-3-14-15-16-3-14-15-17-19-20-21-23

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

S1 = p1 = 32

Второй критерий

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

Z = nв +1, где nв – количество вершин ветвления.

В нашем случае количества вершин ветвления равно 8, следовательно

Z = 8+1 = 9

Выделим эти маршруты.

1) Ациклические маршруты

М1: 1-2-5-8-11-18-20-21-23  р1 = 5

М2: 1-2-5-9-12-18-20-21-23  р2 = 5

М3: 1-3-14-15-17-19-20-21-23  р3 = 4

2) Циклические маршруты

М4: 2-4-6-7  р4 = 1

М5: 2-5-8-10  р5 = 3

М6: 2-5-9-13  р6 = 3

М7: 3-14-15-16  р7 = 2

М8: 1-2-5-9-12-18-20-22 р8 = 5

М9: 1-3-14-15-17-19-20-22  р9 = 4

 

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

S2 = = 32

Матрица смежности

Матрица имеет размер 23х23, что соответствует количеству вершин в графе. Номер столбца соответствует номеру вершины, из которой выходит дуга, а номер строки соответствует номеру вершины, в которую входит дуга.

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

1

                                         

1

 

2

1

         

1

   

1

   

1

                   

3

1

                           

1

             

4

 

1

                                         

5

 

1

                                         

6

     

1

                                     

7

         

1

                                 

8

       

1

                                   

9

       

1

                                   

10

             

1

                             

11

             

1

                             

12

               

1

                           

13

               

1

                           

14

   

1

                                       

15

                         

1

                 

16

                           

1

               

17

                           

1

               

18

                   

1

1

                     

19

                               

1

           

20

                                 

1

1

       

21

                                     

1

     

22

                                     

1

     

23

                                       

1

   

 

 

Матрица достижимости

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

 

 

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

 

1

 

2

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

 

1

 

3

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

 

1

 

4

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

 

1

 

5

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

 

1

 

6

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

 

1

 

7

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

 

1

 

8

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

 

1

 

9

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

 

1

 

10

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

 

1

 

11

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

 

1

 

12

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

 

1

 

13

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

 

1

 

14

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

 

1

 

15

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

 

1

 

16

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

 

1

 

17

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

 

1

 

18

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

 

1

 

19

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

 

1

 

20

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

 

1

 

21

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

 

1

 

22

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

 

1

 

23

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

 

 

 

Третий критерий

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

М1: 1-2-4-6-7-2-5-8-11-18-20-21-23  p1 = 6

М2: 1-2-5-8-10-2-5-8-11-18-20-21-23  p2 = 8

М3: 1-2-5-8-11-18-20-21-23  p3 = 5

М4: 1-2-5-9-13-2-5-9-12-18-20-21-23  p4 = 8

М5: 1-2-5-9-12-18-20-21-23  p5 = 5

М6: 1-3-14-15-16-3-14-15-17-19-20-21-23  p6 = 6

М7: 1-3-14-15-17-19-20-21-23  p7 = 4

М8: 1-2-5-9-12-18-20-22-1-3-14-15-17-19-20-21-23  p8 = 9

Оценку структурной сложности программы рассчитаем по следующему соотношению:

S3 = = 51

Выводы

Исходя из полученных результатов расчета метрик структурной сложности по первому (S1 = 32), второму (S2 = 32) и третьему (S3 = 51) критериям выделения маршрутов можно сделать вывод, что программа, имеющая такой граф управления, имеет невысокую алгоритмическую сложность, так как количество используемых в тексте операторов условий равно 9, для проверки которых необходимо проверить от 9 до 51 тестовых вариантов исходных данных.

Метрика Маккейба

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

Z = m – n + 2 , где

m – количество дуг графа, построенного на основе алгоритма программы;

n – количество вершин графа.

В соответствии с полученным графом:

m = 29

n = 23

Следовательно,

Z = 29 – 23 + 2 = 8

Выводы

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

 

5. Оценка характеристик программы  на основе функциональных указателей

 

Для расчета FP – метрик, будем использовать следующую формулу:

 

Рассчитаем функциональные указатели программы.

f1 – количество внешний вводов (вводов данных пользователем) – 4 (Power/Price (см. строки 111 и 115) для первой задачи и MinValue/MaxValue (см. строку 161) для второй задачи);

f2 – количество внешних выводов (отчеты, сообщения, распечатки, экраны) – 8 (см. строки 53, 127, 139, 146, 152, 184, 189, 196);

f3 – количество внешних запросов – 2 (выбор файла/создание файла);

f4 – количество локальных внутренних логических файлов – 0;

f5 – количество внешних интерфейсных файлов – 0.

Сведем полученные данные в Таблицу.

Таблица 1 – исходные данные для расчета FP - метрик

Имя характеристики

Количество с учетом сложности

Низкий

Средний

Высокий

Итого

Внешние вводы

4*3=12

m*4=0

m*6=0

12

Внешние выводы

0*4=0

8*5=40

0*7=0

40

Внешние запросы

2*3=6

0*4=0

0*6=0

6

Внутренние логические файлы

0*7=0

0*10=0

0*15=0

0

Внешние интерфейсные файлы

0*5=0

0*7=0

0*10=0

0

Общее количество

F = 58

Информация о работе Разработка и описание программы на заданную тематику