Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Технологии разработки приложений в средах Delphi и C++ Builder. Минаева Ю.В.doc
Скачиваний:
17
Добавлен:
01.05.2022
Размер:
827.9 Кб
Скачать

ФГБОУВПО

“Воронежский государственный технический университет”

Ю.В. Минаева

ТЕХНОЛОГИИ РАЗРАБОТКИ ПРИЛОЖЕНИЙ В СРЕДАХ

DELPHI И C++ BUILDER

Утверждено Редакционно-издательским советом университета в качестве учебного пособия

Воронеж 2011

УДК 681.3

Минаева Ю.В. Технологии разработки приложений в средах Delphi и C++ Builder: учеб. пособие / Ю.В. Минаева. Воронеж: ФГБОУВПО “Воронежский государственный технический университет”, 2011. 88 с.

В учебном пособии рассматриваются основы разработки приложений с использованием объектно-ориентированного подхода в средах Delphi и C++ Builder.

Издание соответствует требованиям Государственного образовательного стандарта высшего профессионального образования по направлению 230100.62 «Информатика и вычислительная техника», профилю «Системы автоматизированного проектирования», направлению 230400.62 «Информационные системы и технологии», профилю «Информационные системы и технологии», дисциплине «Технологии программирования».

Предназначено для студентов очной формы обучения.

Учебное пособие подготовлено в электронном виде в текстовом редакторе MS Word 1997-2003 и содержится в файле Технологии программирования.doc

Табл. 3. Ил. 29. Библиогр.: 5 назв.

Научный редактор д-р техн. наук, проф. Я.Е. Львович

Рецензенты: кафедра вычислительной техники Воронежской государственной лесотехнической академии (зав. кафедрой д-р техн. наук, проф.

В.К. Зольников);

канд. техн. наук, доц. Д.Э. Короткевич

 Минаева Ю.В., 2011

 Оформление. ФГБОУВПО «Воронежский государственный технический университет», 2011

Введение

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

Одной из таких технологий на настоящий момент является объектно-ориентированное программирование (ООП). Применение ООП позволяет разрабатывать программное обеспечение повышенной сложности за счет улучшения его технологичности (лучших механизмов разделения данных, увеличения повторяемости кодов, использования стандартизованных интерфейсов пользователя и т.д.).

В настоящее время большую популярность завоевали визуальные среды программирования Delphi и C++ Builder, обобщающие опыт ООП и включающие средства для эффективной разработки приложений. Сложность программирования в таких средах существенно снижается за счет наличия специальных библиотек объектов, «спрятавших» многие элементы техники программирования.

В теоретической части пособия рассматриваются общие вопросы ООП, особенности реализации объектов в языках Object Pascal и C++, приводятся краткие сведения об основных приемах работы в визуальных средах программирования.

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

  1. Основные концепции объектно-ориентированного программирования

    1. Принципы ооп

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

В теории программирования ООП определяется как технология создания сложного программного обеспечения, которая основана на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного типа.

Взаимодействие программных объектов в такой системе осуществляется путем передачи сообщений (рис. 1).

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

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

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

  1. Архитектура программы при ооп

Основной недостаток ООП - некоторое снижение быстродействия за счет более сложной организации программной системы.

В основу ООП положены следующие принципы: абстрагирование, ограничение доступа, модульность, иерархичность, типизация.

Рассмотрим, что представляет собой каждый принцип.

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

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

Необходимость ограничения доступа предполагает разграничение двух частей в описании объекта:

  • интерфейс - совокупность основных характеристик состояния объекта и его поведения, доступные для других объектов;

  • реализация - внутренняя организация объекта и механизмы реализации его поведения, невидимые для внешних объектов.

Ограничение доступа в ООП позволяет разработчику:

  • выполнять конструирование системы поэтапно, не отвлекаясь на особенности реализации используемых объектов;

  • легко модифицировать реализацию отдельных объектов, не затрагивая при этом другие.

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

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

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

В ООП используются два вида иерархии:

  • иерархия «целое/часть» - показывает, что некоторые объекты являются составными частями других (например, функция – модуль – программа);

  • иерархия «общее/частное» - показывает, что одни объекты являются частными случаями других, т. е. сложные объекты строятся на базе более простых путем добавления к ним новых характеристик и, возможно, уточнения имеющихся.

Наследование - такое соотношение между объектами, когда один из них использует структурную или функциональную часть одно или нескольких других (т. е. иерархия «общее/частное»).

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

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

Использование принципа типизации обеспечивает:

  • раннее обнаружение ошибок, связанных с недопустимыми операциями над программными объектами (ошибки обнаруживаются на этапе компиляции программы при проверке допустимости выполнения данной операции над программным объектом);

  • упрощение документирования;

  • возможность генерации более эффективного кода.