Костерин В В
Шрифт:
Информация по отдельным файлам представлена:
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 — ассемблерный файл подпрограмм запоминания в оперативной памяти информации экрана, а также восстановления ранее сохраненной информации экрана.
Все файлы закодированы с соблюдением стандартов оформления.
Хотя фирма "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% |