Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИСЭ-пособие.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
1.99 Mб
Скачать

3.4. Объектно-ориентированные технологии

3.4.1. Возникновение объектно-ориентированных технологий

Интерес к объектно-ориентированным технологиям значительно возрос в последние годы прошлого десятилетия, когда в центре внимания разработчиков программного обеспечения оказались сложные системы, не поддающиеся программированию "в лоб". Создание подобных систем требует выполнения ряда этапов, предшествующих программированию.

Традиционно проектирование сложных систем основывалось на декомпозиции систем, т.е. разбиении их на составные части, каждая из которых рассматривалась отдельно от других. Классический подход к разработке сложных систем представляет собой структурное проектирование, при котором осуществляется алгоритмическая декомпозиция системы по методу "сверху-вниз". Жизненный цикл разработки прикладной системы в этом случае складывается из этапов анализа, проектирования, программирования, тестирования и сопровождения, которые выполняются последовательно. Такой метод, называемый каскадным, имеет следующие отличительные особенности:

  • линейность выполнения этапов жизненного цикла разработки;

  • четкое разделение данных и процессов их обработки;

  • использование процедурных языков программирования.

Недостатки каскадного метода очевидны. Главный из них – последовательное выполнение этапов. Например, программирование можно начать только по завершении анализа и проектирования. Это приводит к большим потерям времени, не позволяет быстро разрабатывать прототипы программной системы. Каскадный принцип не стыкуется с итеративным характером разработки программной системы, поскольку на последних этапах может выясниться необходи­мость внесения изменений в решения, принятые на предыдущих эта­пах.

Для устранения этого недостатка Б.Боэм предложил спиральный подход. Он заключается в том, что разработка проекта ведется как бы по спирали, причем на каждом ее витке выполняются после­довательно перечисленные выше этапы, на которых уточняется про­ект. Этот подход дополняет каскадный метод элементами итера­тивности. Но и для него характерен ряд существенных недостатков, к числу которых можно отнести:

  • трудоемкость внесения изменений;

  • большой объем документации по проекту, затрудняющий программирование;

  • серьезные ограничения возможностей сборки системы из готовых компонентов;

  • сложность переноса на другие платформы.

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

Иерархичность. Известно, что сложные системы имеют иерархический характер. Иерархическое построение сложных систем облегчает понимание их человеком, возможности которого по восприятию информации весьма ограничены. В иерархических структурах человек может ограничиваться рассмотрением только определенного уровня, не вдаваясь в детали реализации.

Для сложной системы целесообразно моделировать два типа иерархии - типовую и структурную. Типовая иерархия отражает взаимосвязи "общее/частное". При объектно-ориентированном подходе ей соответствует иерархия классов. Структурная иерархия показывает связи типа "часть/целое". При объектно-ориентированном подходе ей соответствует иерархия объектов, o6pазуемых атрибутами контейнерных классов.

Групповая разработка. Разработка сложной программной системы не может быть прерогативой одного человека. Для этой цели формируется группа, в которой каждый выполняет свои определенные функции. Иерархический характер сложных систем хорошо согласуется с принципом групповой разработки. В этом случае деятельность каждого участника проекта ограничивается соответствующим иерархическим уровнем. Применяемые инструментальные средства должны поддерживать групповую разработку. Для этого современные программные средства реализуются на комплексах с архитектурой клиент-сервер. В них должны быть предусмотрены возможности интеграции результатов работы отдельных участников проекта и защиты их от несанкционированного доступа.

Модифицируемость проекта. Сложные системы, имеющие достаточно долгое время жизни, обычно подвергаются многократной модификации. Это связано как с устранением ошибок, выявленных в процессе разработки, отладки или эксплуатации, так и с необходимостью внесения изменений и дополнений, вызванных изменениями внешних условий и требований к системе. Очевидно, что модификация сложных приложений может столкнуться с существенными трудностями ввиду значительного объема таких систем и большого числа их взаимосвязей между компонентами.

Сборочное проектирование. При разработке больших программных систем широко используется концепция сборочного проектирования, основанная на идее повторно используемых компонент. Сборка прикладной системы из готовых компонент позволяет значительно сократить время разработки.

Использование стандартных СУБД. Современные интегрированные программные системы обычно используют в работе стандартные СУБД в основном реляционного типа, причем реализация таких систем обычно осуществляется в клиент-серверной среде. Интеграция прикладной системы с базой данных ставит перед разработчиками ряд дополнительных задач. Главной из них является преемственность, т.е. возможность использования в разрабатываемом приложении данных, накопленных ранее в базе данных. Кроме того, при разработке приложения в большинстве случаев возникает необходимость проектирования логической структуры новой базы данных. Для интегрированных систем с архитектурой клиент-сервер используются специальные инструментальные средства.