Файл: Применение объектно-ориентированного подхода при проектировании информационной системы ...pdf
Добавлен: 23.04.2023
Просмотров: 235
Скачиваний: 1
СОДЕРЖАНИЕ
Глава 1. Сущность объектно-ориентированного подхода к проектированию
Основные положения объектно-ориентированного подхода
Глава 2. Применение объектно-ориентированного подхода при проектировании информационной системы
2.1. Достоинства и недостатки объектно-ориентированного подхода. Методологии его реализации
ВВЕДЕНИЕ
Современные технологии многогранны и сложны, и их применение и эффективное использование не было бы возможно даже представить без современного пользовательского интерфейса. Так, сегодня аппаратные и программные средства обработки информации становятся все более совершенными, одновременно предлагая все большую функциональность и все большую направленность на пользователя.
Также сегодня важно, что упрощается и сам процесс программирования – программные среды и продукты, предназначенные для создания новых программ становятся все более универсальными, благодаря чему и навыки специалистов в некоторой степени унифицируются. Этому, в частности, способствовал объектно–ориентированный подход к проектированию информационной системы, который позволяет не просто создавать максимально удобные и интуитивно понятные программные продукты (в частности – автоматизированные информационные системы), но и сделать сам процесс проектирования более приятным, интуитивно понятным и простым.
Сегодня для разработки программ используется несколько подходов. Самые распространенные из них – процессный и объектно-ориентированный подход. Процессный подход ориентируется на бизнес-процессы, которые протекают внутри организации. В связи с этим для его применения необходимо знать все об организации, и, в частности – об ее бизнес-процессах. Объектно-ориентированный подход к проектированию информационной системы, в то же время, основывается на выделении определенных компонентов, которые являются либо субъектами действий, либо объектами действий. В данном подходе каждый объект обладает собственной манерой поведения, и каждый объект осуществляет моделирование определенного реального объекта.
Как и любой другой подход к проектированию информационной системы, объектно–ориентированный подход обладает некоторыми характеристиками, особенностями, достоинствами и недостатками, которые следует проанализировать перед тем, как отдавать предпочтение данному или любому другому подходу.
Таким образом, цель исследования: рассмотрение особенностей применения объектно–ориентированного подхода при проектировании информационной системы. Для достижения поставленной цели необходимо выполнить следующие задачи:
- охарактеризовать объектно–ориентированный подход;
- рассмотреть основные понятия объектно–ориентированного подхода;
- проанализировать достоинства и недостатки объектно–ориентированного подхода;
- осуществить краткий обзор методологий, применяемых в процессе реализации объектно–ориентированного подхода.
Структура работы включает в себя две главы, каждая из которых содержит по два параграфа. Кроме того, в структуру работы включены такие элементы, как оглавление, введение, заключение и список источников.
Теоретической базой работы выступили источники, перечисленные в списке литературы – работы авторов, завоевавших уважение и доверие в научном сообществе. В частности, в контексте данной работы используются публикации, освещающие проблему процесса проектирования информационной системы, различных систем, программ и подходов к программированию.
Глава 1. Сущность объектно-ориентированного подхода к проектированию
Основные положения объектно-ориентированного подхода
Как следует из названия, объектно-ориентированный подход к проектированию программного обеспечения и, в частности, информационных систем, в первую очередь характеризуется применением объектно-ориентированных моделей и методологий. Так, в понятие объектно-ориентированного подхода входят две основных характеристики:
- объектно–ориентированные методологии (технологии) разработки программных систем;
- инструментальные средства, поддерживающие эти технологии [12].
Известно, что при разработке того или иного программного продукта формируется определенный тип жизненного цикла проекта. Так, применение объектно-ориентированного подхода к разработке может быть осуществлено с самого начала – на первом этапе жизненного цикла. При этом важно отметить, что объектно-ориентированная разработка не связывается конкретно с языком программирования, который планируется использовать для реализации программного продукта. Иначе говоря, при разработке объекты являются только определенными формальными конструкциями, на данном этапе никаким образом не связанные с их будущей реализацией.
Также одной из важнейших характеристик объектно-ориентированного подходя является методология. Объектно-ориентированная методология, как правило, поддерживается специализированными программными средствами. Тем не менее, их применение и без подобных средств остается полезным – изучение объектно-ориентированных методологий дает возможность как следует изучить разные стороны, характеристики и свойства программы, которая должна быть реализована. И, как следствие, упрощается и сам процесс реализации, тестирования, отладки и исправления ошибок, а также всех последующих этапов работки продукта.
В объектно-ориентированном подходе к проектированию информационной системе есть несколько базовых характеристик. В частности, это такие составляющие как:
- унифицированный процесс;
- унифицированный язык моделирования;
- шаблоны проектирования.
Унифицированный процесс представляет собой процесс разработки программного обеспечения (ПО), обеспечивающий наиболее стройный и структурированы подход к распределению задач и функций между исполнителями. Унифицированный процесс касается всего жизненного цикла ПО полностью – от определения требований и до сопровождения. Так, унифицированный процесс является некоторым каркасом, фундаментом, применяемым для разработки и сопровождения не одного продукта, а целой группы систем [9].
UML – язык, применяемый для определения, визуализации и конструирования моделей системы в виде диаграмм и документов на основе объектно–ориентированного подхода. [9].
Нa cтaдиях aнaлизa и проектирования часто используются так называемые шаблоны (пaттeрны) прoeктирoвaния. Шaблoн – это именованная пара «проблема/решение», содержащая готовое oбoбщeннoe рeшeниe типичнoй проблемы [7]. Как правило, шаблон помимо текстового oпиcaния coдeржит тaкжe одну или несколько диаграмм UML (например, диаграммы клaccoв, пocлeдoвaтeльнocти и/или коммуникации), графически иллюстрирующих состав и структуру классов, a тaкжe ocoбeннocти их взаимодействия при решении поставленной проблемы. Шаблоны рaзрaбaтывaютcя oпытными прoфeccиoнaлaми и являются проверенными, эффективными (порой оптимальными) решениями [7].
Понятия объектно-ориентированного подхода
Концептуальная база методологии объектно–ориентированного моделирования включает в себя четыре главных взаимосвязанных понятия [10]: абстрагирование, иерархия, инкапсуляция и модульность.
Абстрагирование – способ выделения существенных характеристик некоторого объекта (абстракций), отличающих его от всех других видов объектов и, таким образом, четко определяющих его концептуальные границы.
Иерархия – способ упорядочения абстракций (классов) по уровням.
Инкапсуляция – способ отделения элементов объекта (класса), определяющих его устройство, от элементов, определяющих его поведение (т.е. отделениереализации от интерфейса).
Модульность – способ разложения системы на связанные, но относительно самостоятельные части (модули).
Объектно–ориентированное моделирование, проектирование и программирование в обязательном порядке основано на использовании названных понятий при описании классов и объектов [8].
Описание класса включает атрибуты, с помощью которых характеризуется состояние объектов данного класса, иоперации, с помощью которых характеризуется функционирование (поведение) объектов данного класса. При этом разграничивается внешний облик класса (спецификация или интерфейс) и его внутреннее устройство (реализация). Главное в интерфейсе – объявление операций, поддерживаемых экземплярами класса. В него также могут входить объявления других классов, переменных, исключительных ситуаций, уточняющих абстракцию, которую класс должен выражать. Реализация, как правило, состоит в определении операций, объявленных в интерфейсе класса.
Между классами могут существовать следующие отношения:
Наследование – такое отношение между классами, при котором класс повторяет описание состояния и поведения суперкласса (одного – одиночное наследование; нескольких – множественное наследование). Данное отношение является основным при выявлении иерархии классов предметной области. Узкие, специализированные классы в иерархии, от которых создаются экземпляры (объекты), называютсяконкретными классами. Общие классы, от которых экземпляры не производятся, называютсяабстрактными классами. Самый общий класс в иерархии классов называетсябазовымили корневым.
Ассоциация – отношение семантической зависимости, показывающее какие роли классы играют друг для друга. Ассоциации различаются по мощности: «один–к–одному», «один–ко–многим», «многое–ко–многим».
Агрегация – отношение, соответствующее отношению «часть–целое» между объектами данных классов.
Использование – может рассматриваться как разновидность отношения ассоциации, при котором одна из сторон (клиент) пользуется услугами или ресурсами другой стороны (сервера). Кроме того, использование может рассматриваться как один из аспектов отношения наследования, так как подкласс, наследуя состояние и поведение класса, выступает в роли его клиента. Так же клиентом класса является его экземпляр (объект), который использует атрибуты и операции данного класса [10].
При этом операция рассматривается как услуга, которую класс может предоставить своим клиентам. Как правило, эти операции бывают следующих видов:
Модификатор – операция изменения состояния объекта.
Селектор – операция считывания состояния объекта (без изменения состояния).
Итератор – операция, организовывающая доступ ко всем частям объекта в строго определенной последовательности.
Конструктор – операция создания и/или инициализации объекта.
Деструктор – операция, освобождающая состояние объекта и/или разрушающая сам объект [12].
Описание объекта включает в себя описание его состояния, которое характеризуется перечнем атрибутов, соответствующих классу, экземпляром которого является данный объект, и их текущими значениями. Кроме того, описание объекта включает также описание его поведения (функции), которое характеризуется методами, реализующими операции класса, экземпляром которого является данный объект.
Объединяя понятия состояния и поведения объекта, можно ввести понятие роли или ответственности объекта. Ответственность объекта имеет две стороны – знания, которые объект поддерживает, и действия, которые объект может исполнить. Она выражает смысл его предназначения и место в системе. Ответственность понимается как совокупность всех услуг и всех контрактных обязательств объекта. Следовательно, состояние и поведение объекта определяют его роль в системе, а она, в свою очередь, необходима соответствующему классу для выполнения его ответственности.
При выявлении структуры объектов моделируемой системы между объектами устанавливаются различные связи (посредством передачи сообщений), представляющие собой «физическое или концептуальное соединение между объектами». Связи обозначают равноправные или «клиент–серверные» отношения между объектами. «Наиболее желательной является функциональная связность, при которой все элементы…тесно взаимодействуют в достижении определенной цели» [6]. Участвуя в связях, объект может выполнять одну из трех ролей:
- актора – при которой объект может воздействовать на другие объекты, но сам никогда не подвергается их воздействию (активный объект);
- сервера – при которой объект может только подвергаться воздействию со стороны других объектов, но никогда не выступает в роли воздействующего объекта (пассивный объект);
- агента – при которой объект может быть и активным, и пассивным [15].
Кроме того, между объектами могут быть выявлены иерархические отношения, а именно отношение «часть–целое», т.е. агрегация. При этом, идя от целого (агрегата), можно придти к его частям (атрибутам). Агрегация означает физическое или концептуальное вхождение одного объекта в другой.
Классы и объекты выявляются (обнаруживаются, открываются) на этапе OOA и в совокупности составляют словарь предметной области. На этапе OOD могут понадобиться новые классы, объекты и механизмы их взаимодействия для обеспечения поведения, требуемого моделью, которые приходится уже изобретать [15].