8.3. СРАВНИТЕЛЬНЫЙ АНАЛИЗ ТЕХНОЛОГИЙ СТРУКТУРНОГО И ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ

We use cookies. Read the Privacy and Cookie Policy

8.3. СРАВНИТЕЛЬНЫЙ АНАЛИЗ ТЕХНОЛОГИЙ СТРУКТУРНОГО И ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ

Для проведения сравнительного анализа технологий структурного и объектно-ориентированного программирования разработана специальная методика, основанная на таких объективных принципах, как арифметический подсчет элементов текста программы, анализе алгоритмов программ. Арифметический подсчет выполнялся ручным счетом и был дополнен статистическими данными, выдаваемыми компиляторами и текстовыми редакторами. Итоговые таблицы и их визуализация осуществлялась при помощи программы Excel. Таблицы включают информацию по отдельным файлам и расчет итоговой информации по всей программе.

Информация по отдельным файлам представлена:

1) именем файла;

2) общим количеством строк файла (показывается текстовым редактором);

3) количеством строк операторов описаний данных во всем файле;

4) общим количеством комментариев в файле (выявляется контекстным поиском признака комментария в тексте файла);

5) количеством строк отдельных комментариев в файле;

6) количеством пустых строк в файле (выявляется визуальным анализом текста файла);

7) количеством подпрограмм в файле (является контекстным поиском заголовков procedure и function в тексте файла);

8) количеством операторов описания подпрограмм в файле;

9) количеством строк кода, рассчитанных по формуле: количество строк кода = 2) — 3) — 5) — 6) — 8).

Количество операторов описания подпрограмм в файле выявляется по принципу подсчета всех срок, например, в следующем примере выявлено четыре строки:

function CellString (Col, Row: Word; var Color: Word;

Formatting; Boolean): String;

Begin

End; {CellStrung}

Для проведения объективного сравнительного анализа потребовался выбор функционально похожих программ:

— Mcalc — рассмотренная ранее в гл. 2 и 7 демонстрационная программа, реализованная по технологии структурного программирования;

— Tcalc — демонстрационная программа, реализованная по технологий объектно-ориентированного программирования — функционально полный аналог программы Mcalc.

Результаты арифметического анализа текста программы MCalc, разработанной по технологии структурного программирования, представлены в табл. 8.1.

Таблица 8.1

Результаты анализа текста программы MCalc

Имя файла Всего строк Количество описательных операторов Комментарии Пустых строк Количество процедур Количество описательных операторов процедур Код Всего Строк Mcalc 143 8 11 7 5 2 6 117 Mcdisply 357 54 47 15 49 18 64 175 Mcinput 240 33 18 8 19 7 25 155 Mclib 503 68 47 20 46 21 73 296 Mcommand 873 88 63 19 54 24 86 626 Mcparser 579 51 33 21 16 12 36 455 Mcutil 413 62 46 16 45 18 75 215 mcvars 124 96 9 5 19 0 0 0 Итого: 3232 460 274 111 253 102 365 2043 15,4% 3,7% 12,3% 68,6%

Анализ демонстрационный программы TCalc "Borland Inc."

Программа TCalc 1993 (Turbo Pascal 6.0) состоит из следующих файлов:

tcalc.pas — файл основной программы;

tcell.pas — файл работы с клетками;

tcellsp.pas — файл дополнений работы с клетками (изменение значений);

tchash.pas — файл дополнений работы с клетками (значения в клетках);

tcinput.pas — файл подпрограмм ввода данных с клавиатуры;

tclstr.pas — файл подпрограмм работы со строками;

tcmenu.pas — файл подпрограмм, обслуживающих систему меню;

tcparser.pas — файл интерпретатора арифметических выражений формул клеток;

tcrun.pas — файл инициализации и запуска основных объектов;

tcscreen.pas — файл подпрограмм работы с дисплеем;

tcsheet.pas — файл подпрограмм, обслуживающих действия, выбранных посредством меню;

tcutil.pas — файл вспомогательных подпрограмм;

mcmvsmem.asm — ассемблерный файл подпрограмм запоминания в оперативной памяти информации экрана, а также восстановления ранее сохраненной информации экрана.

Все файлы закодированы с соблюдением стандартов оформления.

Хотя фирма "Borland Inc." занимается разработкой компиляторов, файл mcparser.pas также является заимствованным из UNIX YACC utility и лишь частично модифицирован. Остальные файлы являются оригинальными.

Ассемблерный файл mcmvsmem.asm является искусственно добавленным. Цель его добавления — демонстрация возможности использования ассемблерных вставок. Результаты арифметического анализа текста программы представлены в табл. 8.2.

Таблица 8.2

Результаты анализа текста программы TCalc

Имя файла Всего строк Количество описательных операторов Комментарии Пустых строк Количество процедур Количество описательных операторов процедур Код Всего Строк Tcalc 21 2 9 3 5 1 3 8 Tcell 1962 490 206 20 153 46 152 1147 Tcellsp 228 39 24 5 18 6 25 141 Tchash 262 50 47 23 23 14 43 123 Tcinput 334 63 39 15 22 9 32 202 Tclstr 243 45 120 20 12 15 52 114 Tcmenu 234 48 40 20 21 22 66 79 Tcparser 677 73 29 5 17 9 64 518 Tcrun 1367 146 128 59 57 47 163 942 Tcscreen 523 215 92 37 16 8 96 159 Tcsheet 1722 240 170 40 44 32 101 1297 Tcutil 379 114 55 38 70 29 115 42 Итого: 7952 1525 959 285 458 238 912 4772 20,3% 3,8% 12,2% 63,7%

В табл. 8.3 и на рис. 8.3 отображены результаты сравнительного анализа технологий структурного и объектно-ориентированного программирования.

Таблица 8.3

Результаты сравнительного анализа технологий структурного и объектно-ориентированного программирования

Имя программы Всего строк Количество описательных операторов Комментарии Пустых строк Количество процедур Количество операторов процедур Код Всего Строк MCalc 3232 460 274 111 253 102 365 2043 15,4% 3,7% 12,3% 68,6% TCalc 7952 1525 959 285 458 238 912 4772 20,3% 3,8% 12,2% 63,7%

Сравнительный анализ технологий структурного и объектно-ориентированного программирования установил, что для этих технологий наблюдается практически полное совпадение:

• процентного состава описательных операторов;

• процентного состава количества комментариев;

• процентного состава описательных операторов процедур;

• процентного состава операторов кода программы.

Рис. 8.3. Результаты сравнительного анализа технологий структурного и объектно-ориентированного программирования

При проведении разработки по технологии объектно-ориентированного программирования по сравнению с технологией структурного программирования объем кода увеличился в 2,34 раза с учетом только кода, выполняющего одни и те же функции (для этого был исключен код функций, аналогичных функциям работы с clipboard Windows). Общее число строк увеличилось в 2,46 раза. Во столько и даже более раз увеличилась трудоемкость разработки.

Собственно функционально полезный код программ Mcalc и Tcalc — одинаковый и составляет порядка 1500 строк.

Почти 2,3–3,5 кратное увеличение трудоемкости разработки объясняется платой за организацию самостоятельности поведения объектов и их завершенную функциональность для повторного использования.