Файл: Применение объектно-ориентированного подхода при проектировании информационной системы (Теоретические основы).pdf
Добавлен: 29.04.2023
Просмотров: 319
Скачиваний: 1
СОДЕРЖАНИЕ
1.Теоретические основы объектно-ориентированного подхода
1.1.Объектно-ориентированный подход: сущность и основные понятия.
1.2.Преимущества и недостатки объектно-ориентированного подхода.
2.1.Объектно-ориентированный подход в Visual Basic при проектировании информационной системы.
2.2.Объектно-ориентированный подход в Delphi при проектировании информационной системы.
2.3.Объектно-ориентированный подход в C++ при проектировании информационной системы.
Обратим внимание, что приведенное выше описание является ничем иным, как декларацией интерфейса для работы с объектами класса TDelimitedReader.
В заключение можно сделать вывод, что с одной стороны, система ООП визуального программирования в Delphi является системой программирования, так как позволяет кодировать алгоритмы на данном языке. С другой стороны, система ООП является средой проектирования, так как позволяет осуществлять визуальное проектирование графического интерфейса.
2.3.Объектно-ориентированный подход в C++ при проектировании информационной системы.
Бьярни Страуструп создал этот язык в начале 80-х годов. Страуструп добавил в язык С элементы ООП и обобщенного программирования, не изменяя при этом существенно сам язык С. Таким образом, C++ является расширением языка С, а это означает, что любая корректная программа на С является также корректной программой на C++. В программах на C++ могут использоваться существующие библиотеки языка С. (Библиотеки это совокупности программных модулей, которые можно вызывать из программ. Такие модули обеспечивают готовые решения многих широко распространенных задач программирования, позволяя сэкономить большое количество времени и сил.) Только после того, как язык C++ получил некоторое признание, Страуструп добавил в него шаблоны, обеспечив тем самым возможность обобщенного программирования [3, с. 163].
В C++ существует специальное отношение между типом и подтипом, позволяющее указателю или ссылке на базовый класс адресовать любой из производных от него подтипов без вмешательства программиста. (Такая возможность манипулировать несколькими типами с помощью указателя или ссылки на базовый класс называется полиморфизмом.)
Объектно-ориентированное программирование в C++ расширяет объектное программирование, вводя отношения тип-подтип с помощью механизма, именуемого наследованием. Вместо того чтобы заново реализовывать общие свойства, класс наследует данные-члены и функции-члены родительского класса. В языке C++ наследование осуществляется посредством, так называемого порождения производных классов. Класс, свойства которого наследуются, называется базовым, а новый класс – производным. Все множество базовых и производных классов образует иерархию наследования (см. рис. 2.6).
Рис. 2.6 Внешний вид главного рабочего окна C++ с примером базового и производных классов
Состояние программного объекта полностью определяется некоторым набором (структурой) характеристик и их текущими значениями. Эти характеристики называют полями или (в C++) элементами данных объекта.
В C++ полиморфное поведение объектов обеспечивается механизмом виртуальных функций-элементов. Рассмотрим пример «полиморфизма», реализованного на языке С. Допустим, программа должна в числе всего прочего выводить на экран различные геометрические фигуры. Она определяет класс «фигура», в котором предусмотрен виртуальный метод «нарисовать» (в C++ это был бы абстрактный класс). От данного класса «фигура» можно произвести несколько классов – «точка», «линия», «круг» и т. д., – каждый из которых будет по-своему определять метод «нарисовать» [3, с. 167].
Указатель на класс «фигура» может ссылаться на объект любого из производных классов (поскольку все они являются фигурами), и для указываемого им объекта можно вызвать метод «нарисовать», не имея представления о том, что это на самом деле за фигура.
Полиморфизм подтипов дает возможность написать ядро приложения так, что оно не будет зависеть от конкретных типов, которыми мы манипулируем. Мы программируем открытый интерфейс базового класса придуманной нами абстракции, пользуясь только ссылками и указателями на него. При работе программы будет определен фактический тип адресуемого объекта и вызвана подходящая реализация открытого интерфейса.
Когда C++ стал развитым языком и его популярность возросла, все больше и больше разработчиков стали создавать компиляторы C++, которые генерировали объектный код непосредственно из исходного кода C++. Такой подход ускоряет процесс компиляции и в какой-то степени подчеркивает тот факт, что C++ является отдельным языком программирования, хотя и похож на язык С. Часто различия между транслятором cfront и компилятором почти невидимы для пользователя [11, с. 191].
В заключение можно сделать вывод, что при использовании ООП в C++, например, упрощается создание повторно используемого кода программы, что в конечном итоге освобождает человека от большого объема работы. Сокрытие информации позволяет предохранить данные от нежелательного доступа. Полиморфизм дает возможность создавать множественные определения для операций и функций. Наследование позволяет создавать новые классы из старых. Как видим, в объектно-ориентированном программировании основное внимание уделяется не алгоритмическому аспекту задач, а представлению понятий.
Заключение
В результате нашего исследования мы пришли к следующим выводам:
1. Суть ООП состоит в том, что проектируются не данные и программы в отдельности, а объекты, сочетающие в себе и данные, и программы, информационно и функционально характеризующие соответствующие сущности предметной области.
Использование объектно-ориентированного подхода позволяет свести проектирование системы к оптимальному синтезу функционально независимых компонент (объектов), совместно выполняющих заданные функции системы. Таким образом, значительно снижаются затраты на разработку, внедрение и модификацию систем.
2. Основное преимущество ООП – возможность создавать классы и объекты визуальным способом, т.е. прорисовывать на экране основные элементы, определять цвет, местоположение элементов и т.д.
Недостатком ООП можно считать то, что многоразовое использование требует от программиста познакомиться с большими библиотеками классов. А это может оказаться сложнее, чем даже изучение нового языка программирования. Библиотека классов фактически представляет собой виртуальный язык, который может включать в себя сотни типов и тысячи операций.
3. Visual Basic представляет собой интегрированную среду разработки, которая содержит набор инструментов, облегчающих и ускоряющих процесс разработки приложений. Причем процесс разработки заключается не в написании программы (программного кода), а в проектировании приложения. Приложение формируется средствами графического редактирования (компоновки), что позволяет свести процесс создания программного кода к минимуму.
4. Система ООП визуального программирования в Delphi является системой программирования, так как позволяет кодировать алгоритмы на данном языке. С другой стороны, система ООП является средой проектирования, так как позволяет осуществлять визуальное проектирование графического интерфейса.
5. Объектно-ориентированное программирование в C++ расширяет объектное программирование, вводя отношения тип-подтип с помощью механизма, именуемого наследованием. Вместо того чтобы заново реализовывать общие свойства, класс наследует данные-члены и функции-члены родительского класса. В языке C++ наследование осуществляется посредством, так называемого порождения производных классов. Класс, свойства которого наследуются, называется базовым, а новый класс – производным.
При использовании ООП в C++, например, упрощается создание повторно используемого кода программы, что в конечном итоге освобождает человека от большого объема работы. Сокрытие информации позволяет предохранить данные от нежелательного доступа. Полиморфизм дает возможность создавать множественные определения для операций и функций. Наследование позволяет создавать новые классы из старых. Как видим, в объектно-ориентированном программировании основное внимание уделяется не алгоритмическому аспекту задач, а представлению понятий.
Список литературы
- Бахтизин В.В. Технологии разработки программного обеспечения / В.В. Бахтизин. – Минск: БГУИР, 2010. – 267 с.
- Брауде Э.Дж. Технология разработки программного обеспечения / Э.Дж. Брауде. – СПб: Питер, 2014. – 487 с.
- Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на C++ / Г. Буч. – М.: Бином, 2015. – 373 с.
- Вигерс К. Разработка требований к программному обеспечению / К. Вигерс. – М.: Русская редакция, 2016. – 381 с.
- Гагарина Л.Г. Технология разработки программного обеспечения / Л.Г. Гагарина. – М.: Форум, ИНФРА-М, 2008. – 400 с.
- Гамма Э. Приемы объектно-ориентированного проектирования. Паттерны проектирования / Э. Гамма. – СПб: Питер, 2017. – 373 с.
- Головина Е.Ю. Модели и методы проектирования информационных систем / Е.Ю. Головина. – М.: МГТУ, 2015. – 105 с.
- Евсеев А.В. Проектирование информационных систем / А.В. Евсеев. – М.: МГУПП, 2014. – 190 с.
- Заботина Н.Н. Проектирование информационных систем / Н.Н. Заботина. – М.: НИЦ ИНФРА-М, 2013. – 331 с.
- Исаев Г.Н. Проектирование информационных систем / Г.Н. Исаев. – М.: Омега-Л, 2015. – 424 с.
- Коваленко В.В. Проектирование информационных систем: Учебное пособие / В.В. Коваленко. – М.: Форум, 2015. – 320 с.
- Липаев В.В. Системное проектирование сложных программных средств для информационных систем / В.В. Липаев. – М.: Синтег, 2015. – 357 с.
- Мирошниченко Е.А. Технология программирования / Е.А. Мирошниченко. – Томск: ТПУ, 2008. – 124 с.
- Соловьев И.В. Проектирование информационных систем / И.В. Соловьев. – М.: Проект, 2016. – 398 с.
- Туманова О.Н. Программирование в среде DELPHI / О.Н.Туманова. – Ухта: УГТУ, 2005. – 40 с.
- Федоров Н.В. Проектирование информационных систем на основе современных CASE-технологий / Н.В. Федоров. – М.: МГИУ, 2014. – 280 с.
- Элиенс А. Принципы объектно-ориентированной разработки программ / А. Элиенс. – М.: Бек, 2014. – 377 с.
- Якобсон А. Унифицированный процесс разработки программного обеспечения / А. Якобсон. – СПб.: Питер, 2012. – 497 с.