Шрифт:
Все файлы закодированы с соблюдением стандартов оформления.
Хотя фирма "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 кратное увеличение трудоемкости разработки объясняется платой за организацию самостоятельности поведения объектов и их завершенную функциональность для повторного использования.
8.4. ОСНОВНЫЕ ПОНЯТИЯ ОБЪЕКТНО-ОРИЕНТИРОВАННОЙ ТЕХНОЛОГИИ
С чего же начинается создание объектно-ориентированной программы?
Конечно, с объектно-ориентированного анализа (ООА — object-oriented analysis), который направлен на создание моделей реальной действительности на основе объектно-ориентированного мировоззрения. Объектно-ориентированный анализ (ООА) — это методология, при которой требования к системе воспринимаются с точки зрения классов и объектов, прагматически выявленных в предметной области.
На результатах QOA формируются модели, на которых основывается объектно-ориентированное проектирование (object-oriented design, OOD).
Объектно-ориентированное проектирование (ООП) — это методология проектирования, соединяющая в себе процесс объектной декомпозиции и приемы представления логической и физической, а также статической и динамической моделей проектируемой системы.
Что же такое объектно-ориентированное программирование (ООПр) (object-oriented programming)? Программирование прежде всего подразумевает правильное и эффективное использование механизмов конкретных языков программирования. Объектно-ориентированное программирование — это процесс реализации программ, основанный на представлении программы в виде совокупности объектов. ООПр предполагает, что любая функция (процедура) в программе представляет собой метод объекта некоторого класса, причем класс должен формироваться в программе естественным образом, как только в программе возникает необходимость описания новых физических предметов или их абстрактных понятий (объектов программирования). Каждый новый шаг в разработке алгоритма также должен представлять собой разработку нового класса на основе уже существующих классов, т. е. технология ООПр иначе может быть названа как программирование "от класса к классу".
Можно ли реализовать объектно-ориентированную программу не на объектно-ориентированных языках? Ответ, скорее всего, положителен, хотя придется преодолеть ряд трудностей. Ведь главное, что требуется, — это реализовать объектную модель. Сокрытие информации при использовании обычных языков, в принципе, можно реализовать сокрытием доступности вызовов подпрограмм в файлах (Unit). Инкапсуляцию объектов можно достичь как и в объектно-ориентированных языках написанием отдельных подпрограмм. Далее можно считать, что каждый объект порождается от своего уникального класса. Конечно, иерархии классов в таком проекте не будет и для достижения параллелизма придется писать код для организации вызова к исполнению как бы сразу нескольких копий процедур, но программа при этом будет вполне объектно-ориентированной.