Объектно- ориентированный подход к моделированию систем. Объектно-ориентированное моделирование

Объектно- ориентированный подход к моделированию систем. Объектно-ориентированное моделирование

28.07.2019

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


Объект Объект – осязаемая реальность, имеющая четко определенное поведение. Объект обладает состоянием, поведением, индивидуальностью Структура и поведение схожих объектов определяют общий для них класс => Объект = экземпляр класса Объект = экземпляр класса"> Объект = экземпляр класса"> Объект = экземпляр класса" title="Объект Объект – осязаемая реальность, имеющая четко определенное поведение. Объект обладает состоянием, поведением, индивидуальностью Структура и поведение схожих объектов определяют общий для них класс => Объект = экземпляр класса"> title="Объект Объект – осязаемая реальность, имеющая четко определенное поведение. Объект обладает состоянием, поведением, индивидуальностью Структура и поведение схожих объектов определяют общий для них класс => Объект = экземпляр класса">


Свойства объекта Состояние объекта – перечень всех возможных (статических) свойств объекта и текущими (динамическими) значениями каждого из этих свойств Поведение – воздействие объекта на другой объект и наоборот, а также относительное изменение состояний этих объектов и передачу сообщений между ними Индивидуальность – это свойство объекта, отличающее его от других объектов


Различие между классом и объектом Множество объектов со схожими свойствами (состояние, поведение, индивидуальность) = КЛАСС => Каждый объект = экземпляр класса Каждый объект = экземпляр класса"> Каждый объект = экземпляр класса"> Каждый объект = экземпляр класса" title="Различие между классом и объектом Множество объектов со схожими свойствами (состояние, поведение, индивидуальность) = КЛАСС => Каждый объект = экземпляр класса"> title="Различие между классом и объектом Множество объектов со схожими свойствами (состояние, поведение, индивидуальность) = КЛАСС => Каждый объект = экземпляр класса">


Иерархия классов: Родительский класс обладает фи" title="Принципы ООП. Наследование Наследование – принцип, в соответствии с которым знание о более общей категории разрешается применять для более частной категории Наследованиеиерархия классов Наследование -> иерархия классов: Родительский класс обладает фи" class="link_thumb"> 7 Принципы ООП. Наследование Наследование – принцип, в соответствии с которым знание о более общей категории разрешается применять для более частной категории Наследованиеиерархия классов Наследование -> иерархия классов: Родительский класс обладает фиксированным набором свойств => производный от него класс содержит тот же набор свойств + дополнительные свойства, характеризующие его уникальность иерархия классов: Родительский класс обладает фи"> иерархия классов: Родительский класс обладает фиксированным набором свойств => производный от него класс содержит тот же набор свойств + дополнительные свойства, характеризующие его уникальность"> иерархия классов: Родительский класс обладает фи" title="Принципы ООП. Наследование Наследование – принцип, в соответствии с которым знание о более общей категории разрешается применять для более частной категории Наследованиеиерархия классов Наследование -> иерархия классов: Родительский класс обладает фи"> title="Принципы ООП. Наследование Наследование – принцип, в соответствии с которым знание о более общей категории разрешается применять для более частной категории Наследованиеиерархия классов Наследование -> иерархия классов: Родительский класс обладает фи">




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




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


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


Универсальный язык моделирования UML. Предыстория В начале 90-х гг. 20 века – создание новых объектно-ориентированных языков программирования (Smalltalk, C++, Java) Разработано огромное количество методов проектирования объектно-ориентированного ПО Результат – разработка UML, с целью объединения достоинств различных подходов в один независимый от производителей язык моделирования.


Универсальный язык моделирования UML UML – Unified Modeling Language – унифицированный язык моделирования, который предназначен для визуализации и документирования объектно-ориентированных систем и бизнес-процессов с ориентацией на их последующую реализацию в виде программного обеспечения.


Универсальный язык моделирования UML Авторы – Гради Буч (G. Booch), Джим Румбах (или Рамбо, D. Rumbaugh), Айвар Джекобсон (I. Jacobson). Первая версия языка появилась в 1996 г. В настоящее время все вопросы дальнейшей разработки UML сконцентрированы в рамках консорциума OMG. В 2004 г. – UML 2.0.


Диаграммы UML UML включает в себя 8 типов диаграмм: 1) диаграммы вариантов использования; 2) диаграммы классов; 3) диаграммы состояний; 4) диаграммы деятельности; 5) диаграммы кооперации; 6) диаграммы последовательности; 7) диаграммы компонентов; 8) диаграммы развертывания. Диаграммы взаимодействия Диаграммы реализации


Некоторые программные продукты (UML tools) IBM Rational Software Architect (IBM) IBM Rational Rose (IBM) ARIS UML Designer (IDS Sheer) Enterprise Architect (SPARX Software) Altova Umodel KUml, Dia, PowerDesigner И т.д. Подробнее:




Задание Самостоятельно изучить статью «UML basics: An introduction to the Unified Modeling Language»: /library/769.html?S_TACT=105AGX15&S_ CMP=EDU

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

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

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

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

Если принять объектно-ориентированный взгляд на мир, необходимо отве­тить на ряд вопросов. Какая структура должна быть у хорошей объ­ектно-ориентированной архитектуры? Какие артефакты должны быть созданы в процессе работы над проектом? Кто должен создавать их? И, наконец, как оценить результат?

Визуализация, специфицирование, конструирование и документирование объектно-ориентированных систем - это и есть назначение языка UML.

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

Технология разработки программных систем, в основу которых положена парадигма представления окружающего мира в виде объектов, являющихся экземплярами соответствующих классов, получила название - объектно-ориентированный анализ и проектирование (ООАП) - OOA&D (Object-Oriented Analysis/Design). В рамках этой технологии язык UML является средством графического представления результатов моделирования не только программного обеспечения, но и более широких классов систем и бизнес-приложений, с использованием объектно-ориентированных понятий. При этом явным образом обеспечивается взаимосвязь между базовыми понятиями для моделей концептуального и физического уровня, достигается масштабируемость моделей, что особенно важно для сложных многоцелевых систем.

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

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

Бурное развитие 1980-ые годы.

Главное не процедура или функция, а объект .

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

Появились средства визуального программирования (RAD), где программист создаёт прогу мышкой, а код программы генерируется автоматически. Внимание программистов переключилось с написания кода, на предшествующие этапы – анализ предметной области и проектирование программы.

Появились методы объектно-ориентированного анализа и проектирования OOA/OOD. Они позволяют проектировать системы до написания кода, так чтоб проект был задокументирован. С помощью модели можно исправить недочёты без затрат.

2 вида диаграмм:

1) Структурные модели

2) модели поведения

В дальнейшем UML стал использоваться не столько для проектирования ИС, сколько для анализа и перепроектирования БП.

Моделирование бизнеса с помощью UML предполагает построение двух моделей:

1) прецедентная модель (вопрос 16)

2) объектная модель (анализ структурной модели, описывающийся внешней структурой бизнеса и т.д)(вопрос 17).

Прецедентная модель бизнеса

Так же как и для прецедентов так и для акторов, различают понятия класса и экземпляра. Класс – описывает общие характеристики некоторого типа акторов, а экземпляр – характеристики конкретного актора. На диаграмме вариантов использования, как правило отображаются классы прецедентов и классы акторов. Причем их расположение может быть произвольное. Акторы принадлежащие к разным классам могут иметь общие характеристики или общие обязательства по отношению к бизнесу. Можно ввести обобщенный класс акторов объединяющие общие характеристики нескольких более конкретных классов. Например, для классов покупатели мебели и покупатели компьютеров может быть введен общий класс покупатель. В этом случае между обобщенном типом акторов и более конкретным устанавливается отношение-обобщение.



Между прецедентами и акторами устанавливается отношение коммуникации. Они моделируют информационные и материальные потоки, т.е. обмен прецедентов с субъектами окружения материальной и информационной природы (данными, документами, сырьем и т.д.).

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

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


Объектная модель бизнеса.

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

Объекты модели бизнеса представляют людей, участвующих в выполнении процессов, и различного рода, сущности, которые обрабатываются или создаются бизнесом. Участники процессов называются активными объектами, сущности – пассивными. Похожие объекты группируются в классы, каждый конкретный объект рассматривается как экземпляр некоторого класса. Например объекты, соответствующие конкретным служащим могут быть объединены в класс «служащие». Свойство объекта описывается с помощью характеристик, называемых атрибутами, при этом состав атрибутов одинаков для всего класса. Класс «служащий» может иметь атрибуты: фамилия, стаж, и т.д. Разные объекты будут иметь разные значения (которые могут меняться во времени). Поведение представляется с помощью набора операций, которые может выполнять объект. Пример операций класса «служащий»: Принять заказ, оформить договор, принять оплату и т.д.



Виды анализа БП.

Существуют различные классификации видов анализа. Классификация по объекту анализа позволяет выделить:

1. Анализ окружения

~ Анализ макроокружения (Политического, Экономического, технологического)

~ Анализ микроокружения (клиентов, поставщиков, конкурентов)

2. Анализ бизнеса (Продукции, Оборудования, Кадров).

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

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

Классификации в соответствии с анализируемыми состояниями системы (текущим, прошлым, будущим) – позволяет выделить сравнительный, ретроспективный и прогностический анализ.

Классификации по методам анализа – позволяет выделить две основные группы:

· количественный (основан на объективном измерении и дальнейшей обработке количественных параметров)

1) статистический (корреляционный, регрессионный, кластерный)

2) экономический (детерминированный факторный анализ, балансовый)

3) вычислительный (линейное программирование, анализ чувствительности и т.д.)

· качественный анализ (основан на мнениях, субъективных суждениях и оценках экспертов). При этом, как правило, используются неформальные или слабо-формализованные методы, такие как: Методы экспортных оценок, метод ДЭЛФИ, морфологический анализ, метод сценариев и метод построения дерева решений.

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

Концептуальной основой является объектная модель, которая строится с учетом следующих принципов:

  • абстрагирование;
  • инкапсуляция;
  • модульность;
  • иерархия;
  • типизация;
  • параллелизм;
  • устойчивость.

Основными понятиями объектно-ориентированного подхода являются объект и класс.

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

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

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

Диаграмма (Diagram) - это графическое представление множества элементов. Чаще всего она изображается в виде связного графа с вершинами (сущностями) и ребрами (отношениями) и представляет собой некоторую проекцию системы.

Объектно-ориентированный подход обладает следующими преимуществами:

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

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

Сравнение существующих методик

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

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

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

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

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

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

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

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

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

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

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

Объектно-ориентированное моделирование (ООМ) обеспечивает ряд существенных преимуществ:

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

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

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

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

5. Объектная модель позволяет в полной мере использовать выразительные возможности современных объектно-ориентированных языков программирования.

Сравнение определений объекта в литературе позволило выявить важные моменты ООМ:

Объектный анализ выявляет для объектов поведение и структуру;

Неоднозначность в представлении разрешается путем закрепления за понятиями термина «класс» , а за конкретными физическими объектами термина «объект» .

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

Более сложными понятиями ООМ являются наследование и полиморфизм. Наследование позволяет перенести в описание нового класса элементы описания уже имеющегося класса с добавлением новых. Полиморфизм означает возможность использования вместо экземпляра блока некоторого базового класса экземпляра любого его производного класса.

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


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

В настоящее время признанным стандартом моделирования сложных систем является унифицированный язык моделирования UML (Unified Modeling Language ). Язык UML был разработан компанией Rational Software и ее партнерами. Он является преемником языков моделирования, основанных на методах объектного анализа и проектирования Буча, OOSE Якобсона, OMT Рэмбо и др.

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

Одним из немногих инструментальных средств ИМ, использующих в качестве основы структурные диаграммы UML, является AnyLogic , которое применяется в основном для исследования динамических непрерывных систем, за счет использования «гибридных» карт состояний и активных объектов UML-RT, созданных специально для представления динамических систем реального времени. Система Model Vision Studium является упрощенным (лабораторным) вариантом системы AnyLogic .



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows