Файл: Применение объектно-ориентированного подхода при проектировании информационной системы (Обзор и анализ основных принципов и особенностей объектно-ориентированного подхода).pdf
Добавлен: 13.03.2024
Просмотров: 9
Скачиваний: 0
Содержание:
Введение
Актуальность исследования заключается в том, что из существующих подходов к проектированию информационных систем объектно-ориентированный в настоящее время считается наиболее эффективным т.к. оперирует абстракциями реальных объектов и операций. Т.е. при построении модели имеющейся предметной области, выделении бизнес-процессов и пр. строится и модель будущей информационной системы (ИС). К тому же одной из важных особенностей объектно-ориентированного подхода является унифицированность процесса разработки ИС, неотъемлемой частью которого является унифицированный язык моделирования UML. Данная особенность обеспечивает упорядоченный подход к распределению задач и обязанностей при проектировании ИС, охватывающий весь ее жизненный цикл. Именно поэтому основы объектно-ориентированного подхода, а также принципы унифицированного моделирования широко используются при проектировании автоматизированных информационных систем.
Объектом исследования данной работы является объектно-ориентированный подход к проектированию информационных систем. Предметом исследования является унифицированный язык моделирования.
Цель данной работы является обзор и анализ основных принципов и особенностей объектно-ориентированного подхода, а также его неотъемлемого инструмента унифицированного языка моделирования (UML).
Задачи работы:
• Обзор основных понятий и концепций объектно-ориентированного подхода
• Выявление преимуществ и недостатков объектно-ориентированного подхода
• Обзор основных структур унифицированного языка моделирования
• Использование UML на примере.
В первой части работы рассмотрены основы объектно-ориентированного подхода, а также проведен обзор унифицированного языка моделирования, как составляющей процесса проектирования. Во второй части работы проведено моделирование информационной системы на примере системы электронной коммерции. В заключении приведены основные выводы, возникшие в ходе выполнения данной работы.
1. Сущность объектно-ориентированного подхода
Объектно-ориентированные концепции играют огромную роль в анализе и проектировании программного обеспечения, поскольку касаются фундаментальных вопросов адаптации развития. На протяжении некоторого времени существовало множество разнообразных нотаций и методов объектно-ориентированного анализа и проектирования программных систем, но потом появился унифицированный язык моделирования (UML[1]), который предоставляет стандартизованную нотацию для описания таких моделей. Однако UML лучше использовать в сочетании с методами объектно-ориентированного анализа и проектирования.
Объектно-ориентированные концепции особенно важны для анализа и проектирования программного обеспечения, поскольку они касаются фундаментальных вопросов адаптации и развития. Сравнительно недавно появившийся унифицированный язык моделирования (UML) предлагает стандартизованную нотацию для описания объектно-ориентированных моделей.
Термин «объектно-ориентированный» появился в связи с объектно-ориентированным программированием вообще и языком Smalltalk в частности, хотя концепции сокрытия информации и наследования были известны и раньше. Идея сокрытия информации и ее применения для проектирования программ впервые встречается в работе Парнаса, предложившего сокрытие информации для создания замкнутых модулей, которые можно было бы изменять, не затрагивая (или почти не затрагивая) другие модули. Концепции классов и наследования были введены в языке Simula 67, но получили широкое распространение только с появлением языка Smalltalk. В этом разделе я опишу объектно-ориентированные концепции на уровне задачи (анализ) и решения (проект).
Объектно-ориентированный подход использует объектную декомпозицию, то есть поведение системы описывается в терминах взаимодействия объектов.
Объект - это физическая или умозрительная сущность, облегчающая понимание реального мира и составляющая тем самым основу программного решения. Объект в реальном мире может обладать физическими свойствами (его можно увидеть или потрогать). Примерами могут служить дверь, двигатель или лампа. Умозрительный, или концептуальный, объект - это более абстрактное понятие, допустим банковский счет или транзакция. Объектно-ориентированные приложения состоят из объектов. С точки зрения проектировщика, в объекте присутствуют как данные, так и процедуры для работы с ними. Процедуры обычно называют операциями или методами. Иногда, в том числе в языке UML, операцией именуют спецификацию функции, выполняемой объектом, а методом - реализацию этой функции. Сигнатура операции состоит из ее названия, параметров и возвращаемого значения.
Интерфейс объекта - это набор предоставляемых им операций, описываемый с помощью сигнатур. Тин объекта определяется его интерфейсом, а реализация - классом. В частности, Мейер определяет класс как реализацию абстрактного типа данных.
Объект (называемый также экземпляром класса) - это единичная сущность, например, автомобиль Джона или счет Мери. Класс (или класс объектов) - это набор объектов с одинаковыми характеристиками, скажем счет, служащий, автомобиль, клиент.
Атрибут - это значение, хранящееся в объекте класса. У каждого объекта могут быть разные значения одного и того же атрибута.
Операция - это спецификация функции, выполняемой объектом. У объекта может быть одна или несколько операций. Операции манипулируют значениями атрибутов, хранящихся в объекте, и имеют входные и выходные параметры. Набор операций у всех объектов одного класса одинаков.
Сокрытие информации - это базовая концепция объектно-ориентированного проектирования.[2] Она используется при проектировании объектов и, в частности, при решении вопроса о том, какая информация должна быть доступной, а какая - скрытой. Те аспекты объекта, которые не должны быть видны другим объектам, прячутся. Следовательно, если в процессе развития внутреннее устройство объекта изменится, это отразится только на данном объекте. Для описания сокрытия объектом информации применяется термин инкапсуляция
Наследование - это механизм разделения и повторного использования одного и того же кода в разных классах. Класс-потомок наследует свойства (инкапсулированные данные и операции) от родительского класса. Но он может модифицировать структуру (то есть инкапсулированные данные) и поведение (операции) своего родителя. Родительский класс называется суперклассом или базовым классом, класс-потомок - подклассом или производным классом. Адаптация родительского класса для нужд потомка называется специализацией. Классы-потомки можно специализировать и дальше, создавая иерархии классов, или иерархии обобщения/специализации
Последовательное приложение - это последовательная программа, которая состоит из пассивных объектов и имеет только один поток управления (thread). Когда один объект вызывает операцию другого объекта, управление передается от вызвавшей операции к вызванной. После того как вызванная операция завершает выполнение, управление возвращается вызвавшей операции. В последовательном приложении существует только синхронная передача сообщений (вызов процедуры или метода). В параллельном приложении, как правило, есть несколько активных объектов - каждый со своим
потоком управления. В этом случае поддерживается асинхронная передача сообщений: активный объект-отправитель может послать асинхронное сообщение активному объекту-получателю, а затем продолжить выполнение вне зависимости от того, дошла ли информация до адресата. Если объект-получатель в момент прихода сообщения занят выполнением другой работы, то сообщение ставится в очередь.
Одним из самых распространённых применений объектно-ориентированного подхода являются компонентные объектные среды, к числу которых относятся, например, JavaBeans. Здесь существуют два новых важных понятия: компонент и контейнер. Компонент можно определить, как многократно переиспользуемый объект, осуществляющий обработку в графическом окружении и сохранением в долговременной памяти. Контейнеры, могут включать в себя множество компонентов, и создающие общий контекст взаимодействия с другими компонентами и окружением. Контейнеры, также могут выступать в роли компонентов других контейнеров. В этом случае компонентные объектные среды, обладают всеми достоинствами, присущими объектно-ориентированному подходу:
- Инкапсуляция, скрывает сложность реализации, делая видимым только предоставляемый в публичный доступ интерфейс.
- Наследование, позволяет изменять раннее созданные компоненты, не нарушая общую целостность ПО.
- Полиморфизм, дает возможность группировать объекты, характеристики с которых можно считать исходными.
2. Преимущества и недостатки объектно-ориентированного подхода.
Преимущества объектно-ориентированного можно выразить в следующем:
- Декомпозиция объектов дает возможность создавать программные средства меньшего размера путем использования единых механизмов, дающих значительную экономию вычислительных средств. Использование данного подхода значительно увеличивает уровень унификации разработки и пригодность, не только конкретного программного обеспечения, но и крупных проектов, что в конце дает возможность использовать сборочных процесс в создании ПО. Зачастую системы получаются более компактнее чем их не объектно-ориентированные аналоги, что дает не только уменьшение размера программного кода, но и уменьшение стоимости конечного продукта за счет переиспользования предыдущих разработок.
- Декомпозиция объектов предполагает эволюционный путь развития системы на базе не больших подсистем, что уменьшает риск создания сложных ПО
- Объектная модель достаточно естественна, т.к. в первую очередь ориентирована на человеческое восприятие мира, а не на компьютерную реализацию;
- Объектная модель позволяет максимально использовать возможность объектно-ориентированных языков программирования.
Применение объектно-ориентированного подхода позволяет свести разработку системы к максимальному объединению независимых функциональных компонентов (объектов), совместно выполняющих заданной системой задачи. В следствии чего, значительно уменьшаются финансовые затраты на разработку, внедрение, поддержку и модификацию системы.
Также в пользу объектно-ориентированного подхода можно отнести большое количество успешно реализованных систем различной функциональности, спроектированных и реализованных по этому принципу.
Недостатки объектно-ориентированного подхода можно выразить в следующем:
- Т.к. объектная декомпозиция сильно отличается от функциональной, поэтому переход на новый подход тесно связан как с дополнительными финансовыми затратами, так и с преодолением психологических трудностей
- Сложность реализации. Проекты, построенные с помощью объектно-ориентированного языке, приводят к построению более сложной и требовательной к ресурсам программы, в следствии чего требуют больших временных затрат. Поэтому классические методы для некоторых задач могут оказаться более эффективными
- Усложнение методологии. Применение данного подхода требует использования дополнительных наглядных способов представления информации об текущей области. Язык UML включает в себя более 100 условных обозначений. Поэтому использование данного инструмента требует наличие дополнительного уровня квалификации у сотрудников.
- На настоящий момент все еще продолжается формирование объектно-ориентированного языка моделирования UML, и по сравнению со средствами, поддерживающими структурный подход количество САSЕ-средств, поддерживающих объектно-ориентированный подход, невелико. Кроме того, диаграммы, отражающие специфику объектного подхода (диаграммы классов и т.п.), гораздо менее наглядны и плохо понимаемы непрофессионалами.
Структура и основные понятия унифицированного языка моделирования (UML)
Унифицированный язык моделирования (UML) стал в настоящий момент является стандартом де-факто при документировании (описания) результатов проектирования и разработки объектно-ориентированных систем.[3] Начало разработки UML было положено в 1994 г. Гради Бучем и Джеймсом Рамбо, работавшим в компании Rational Software. Осенью 1995 г. к ним присоединился Ивар Якобсон и в октябре того же года была выпущена предварительная версия 0.8 унифицированного метода (англ. Unified Method). С этого времени было выпущено несколько версий спецификации UML, две из которых носят статус международного стандарта. Со временем нотация UML расширялась, и теперь в ней поддерживается много различных диаграмм. Далее я рассмотрю возможности нотации UML.