Шрифт:
Характеристика 8. Композиция является предпочтительной альтернативой множественному наследованию и позволяет изменять состав объектов агрегата в процессе выполнения программы.
Характеристика 9. Структура объектно-ориентированной программы на этапе выполнения часто имеет мало общего со структурой ее исходного кода. Последняя фиксируется на этапе компиляции. Ее код состоит из классов, отношения наследования между которыми неизменны. На этапе же выполнения структура программы — быстро изменяющаяся сеть из взаимодействующих объектов. Две эти структуры почти независимы.
8.3. СРАВНИТЕЛЬНЫЙ АНАЛИЗ ТЕХНОЛОГИЙ СТРУКТУРНОГО И ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ
Для проведения сравнительного анализа технологий структурного и объектно-ориентированного программирования разработана специальная методика, основанная на таких объективных принципах, как арифметический подсчет элементов текста программы, анализе алгоритмов программ. Арифметический подсчет выполнялся ручным счетом и был дополнен статистическими данными, выдаваемыми компиляторами и текстовыми редакторами. Итоговые таблицы и их визуализация осуществлялась при помощи программы Excel. Таблицы включают информацию по отдельным файлам и расчет итоговой информации по всей программе.
Информация по отдельным файлам представлена:
1) именем файла;
2) общим количеством строк файла (показывается текстовым редактором);
3) количеством строк операторов описаний данных во всем файле;
4) общим количеством комментариев в файле (выявляется контекстным поиском признака комментария в тексте файла);
5) количеством строк отдельных комментариев в файле;
6) количеством пустых строк в файле (выявляется визуальным анализом текста файла);
7) количеством подпрограмм в файле (является контекстным поиском заголовков procedure и function в тексте файла);
8) количеством операторов описания подпрограмм в файле;
9) количеством строк кода, рассчитанных по формуле: количество строк кода = 2) — 3) — 5) — 6) — 8).
Количество операторов описания подпрограмм в файле выявляется по принципу подсчета всех срок, например, в следующем примере выявлено четыре строки:
Для проведения объективного сравнительного анализа потребовался выбор функционально похожих программ:
— 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 — ассемблерный файл подпрограмм запоминания в оперативной памяти информации экрана, а также восстановления ранее сохраненной информации экрана.