Глава 4 ЭЛЕМЕНТЫ ОБЪЕКТНО-ОРИЕНТИРОВАННОЙ РАЗРАБОТКИ ПРОГРАММ
В истории применения компьютеров вычислительная техника всегда использовалась на пределе своих возможностей. Каждое новое достижение в аппаратном либо в программном обеспечении приводит к попыткам расширить сферу применении ЭВМ, что влечет за собой постановку новых задач, для решения которых, в свою очередь, нужны новые вычислительные Средства. Основа для массового промышленного программирования была создана с разработкой новых методов построения программ. Одной из первых и наиболее широко применяемых технологий программирования стало структурное программирование. Этот метод до сих пор не потерял своего значения для многих классов задач. Основой структурного подхода являются два основополагающих принципа: • использование процедурного стиля программирования; • последовательная декомпозиция алгоритма решения задачи сверху вниз. В соответствии с этим подходом задача решается путем выполнения следующей последовательности действий. Первоначально задача формулируется в терминах ввода данных — вывода результата: на вход программы подаются некоторые данные, Программа работает и выдает ответ. После этого начинается последовательное расчленение (декомпозиция) всей задачи на отдельные более простые действия. При этом на любом этапе декомпозиции программу можно проверить, применяя механизм так называемых «заглушек» — процедур, имитирующих вход и/или выход процедур нижнего уровня. «Заглушки» позволяют проверить логику верхнего уровня до реализации следующего, т. е. на каждом шаге разработки программы существует работоспособный «каркас», который постепенно обрастает деталями. Структурное программирование ясно определило значение модульного построения программ (т. е. разбиения монолитных программ на группу отдельных модулей) при разработке больших проектов, но в языках программирования единственным способом структуризации программы оставалось составление ее из подпрограмм и функций. Объектно-ориентированное программирование появилось и получило широкое распространение именно благодаря попыткам разрешения следующих проблем, возникавших в процессе проектирования и разработки программных комплексов: • развитие языков и методов программирования не успевало за все более растущими потребностями в прикладных программах. Единственным реальным способом снизить временные затраты на разработку был метод многократного использования разработанного программного обеспечения, т. е. проектирование новой программной системы на базе разработанных и отлаженных ранее модулей, которые выступают в роли своеобразных «кирпичиков», ложащихся в фундамент новой разработки; • ускорение разработки программного обеспечения требовало решения проблемы упрощения их сопровождения и модификации; • не все задачи поддаются алгоритмическому описанию по требованиям структурного программирования, т. е. в целях упрощения процесса проектирования необходимо было решить проблему приближения структуры программы к структуре решаемой задачи. Решение перечисленных проблем в рамках создания объектно-ориентированного подхода к программированию и породило три его основных достоинства: • упрощение процесса проектирования программных систем; • легкость сопровождения и модификации; • минимизацию времени разработки за счет многократного использования готовых модулей. 4.1.