Лек6_ОБектное моделирование

advertisement
Объектно-ориентированный подход к
моделированию процессов
Тема 9
Сущность Объектноориентированного подхода
 Объектно-ориентированный подход
использует объектную декомпозицию,
при этом статическая структура системы
описывается в терминах объектов и
связей между ними, а поведение системы
описывается в терминах обмена
сообщениями между объектами.
Схема взаимодействия объектов
Начать работу
Проверить есть ли деньги и
снять 1000 рублей
Выдать 1000 руб.
клиент
банкомат
Сообщить идентификационный код
счет
Определение объекта
 Объект определяется как осязаемая
реальность (tangible entity) - предмет или
явление, имеющие четко определяемое
поведение.
 Объект обладает состоянием, поведением
и индивидуальностью; структура и
поведение схожих объектов определяют
общий для них класс.
Определение объекта
 Состояние объекта – одно из множества
условий, в которых он может
существовать.
 Поведение объекта определяет действие
объекта и его реакцию на запросы от
других объектов
 Индивидуальность – свойство объекта
отличающая его от всех других объектов
Объектная модель
имеет четыре главных свойства
 абстрагирование (abstraction);
 инкапсуляция (encapsulation);
 модульность (modularity);
 иерархия (hierarchy).
 Абстрагирование
—
это
выделение
существенных
характеристик
некоторого
объекта, которые отличают его от всех других
видов объектов.
 Инкапсуляция
–
скрытие
внутренней
реализации объекта за предоставляемым этим
объектом интерфейсом.
 Модульность — это свойство системы,
связанное с возможностью ее декомпозиции на
ряд внутренне связных, но слабо связанных
между собой модулей.
 Иерархия - это упорядочивание абстракций,
расположение их по уровням.
Объектная модель
имеет три дополнительных свойства
 типизация (typing);
 параллелизм (concurrency);
 устойчивость (persistence).
 Типизация — это ограничение, накладываемое
на
класс
объектов
и
препятствующее
взаимозаменяемости различных классов.
 Параллелизм
—
способность
системы
обрабатывать несколько сообщений или задач
параллельно.
 Устойчивость - свойство объекта существовать
во времени (вне зависимости от процесса,
породившего
данный
объект)
и/или
в
пространстве (при перемещении объекта из
адресного пространства, в котором он был
создан).
Определение класса
 Класс — это множество объектов,
связанных общностью структуры и
поведения.
 Любой объект является экземпляром
класса.
Состояние объекта
 Атрибут – поименованное свойство
класса, определяющее диапазон
допустимых значений, которые могут
принимать экземпляры данного свойства.
Интерфейс объекта
 Определенное воздействие одного
объекта на другой с целью вызвать
соответствующую реакцию называется
операцией.
 Операция – это реализация услуги,
которую можно запросить у любого
объекта
Свойства класса
 Наследование – это
отношение между классами,
при котором один класс
разделяет структуру или
поведение одного или
нескольких классов
Счет
баланс
Снять
Положить
Проверить
Расчетный счет
Депозит
Срок
процент
Истек ли срок
Свойства класса
 Полиморфизм – это способность
скрывать множество различных
реализаций под единственным общим
интерфейсом
 Полиморфизмом называется возможность
взаимодействия с объектом, не зная, к
какому конкретному классу он относится
Виды связи
Между элементами объектной модели существую
следующие виды связей:
 Отношение ассоциации
Отношение
 Отношение зависимости
 Отношение обобщения
 Отношение агрегации
Класс _А
Класс_Б
Виды связи
 Отношение ассоциации соответствует
наличию некоторого отношения между
классами.
Компания
Работа
1
1..*
Сотрудник
Виды связи
 Отношение зависимости используется в такой
ситуации, когда некоторое изменение одного
элемента модели может потребовать изменения
другого зависимого от него элемента модели.
Класс _А
Класс_ Б
Виды связи
 Отношение обобщения является обычным
таксономическим отношением между более общим
элементом (родителем или предком) и более частным
или специальным элементом (дочерним или потомком)
Класс-предок
Класс-потомок
Виды связи
 Отношение агрегация имеет место между несколькими
классами в том случае, если один из классов
представляет собой некоторую сущность, включающую
в себя в качестве составных частей другие сущности.
композиция
Целое
Часть
Целое
Часть
Виды связи
Унифицированный язык
моделирования UML
 Унифицированный язык моделирования UML
(Unified Modeling Language) предназначен для
определения, представления, проектирования и
документирования программных систем,
организационно-экономических, технических и
др.
 UML содержит стандартный набор диаграмм и
нотаций.
Набор диаграмм стандарта
UML
 диаграммы вариантов использования (use
case diagrams) — для моделирования
бизнес-процессов организации
(требований к системе);
 диаграммы классов (class diagrams) — для
моделирования статической структуры
классов системы и связей между ними;
Набор диаграмм стандарта UML
 диаграммы поведения системы (behavior
diagrams);
 диаграммы состояний (statechart diagrams) для моделирования поведения объектов
системы при переходе из одного состояния
в другое;
 диаграммы деятельностей (activity diagrams)
- для моделирования поведения системы в
рамках различных вариантов использования
или моделирования деятельностей;
Набор диаграмм стандарта
UML
 диаграммы взаимодействия (interaction
diagrams) - для моделирования процесса обмена
сообщениями между объектами. Существуют
два вида диаграмм взаимодействия:
• диаграммы последовательности (sequence
diagrams);
• кооперативные диаграммы (collaboration
diagrams).
Набор диаграмм стандарта
UML
диаграммы реализации (implementation
diagrams):
 диаграммы компонентов (component
diagrams) — для моделирования иерархии
компонентов (подсистем) системы;
 диаграммы размещения (deployment
diagrams) — для моделирования
физической архитектуры системы
Набор диаграмм стандарта
UML
 диаграммы вариантов
использования (use
case diagrams) — для
моделирования
бизнес-процессов
организации
(требований к
системе);
Диаграмма вариантов
использования
 Вариант использования
представляет собой
последовательность
действий (транзакций),
выполняемых системой в
ответ на событие,
инициируемое некоторым
внешним объектом
(действующим лицом).
 Действующее лицо (actor) —
это роль, которую
пользователь играет по
отношению к системе.
Действующее лицо:
 представляет роль, которую
может играть пользователь
системы
 может активно обмениваться
информацией с системой
 может быть пассивным
получателем информации
 может представлять человека,
компьютер, внешнюю систему
или время (если от него зависит
запуск каких-либо событий в
системе)
Диаграмма вариантов
использования
Пример для банковской системы
С точки зрения бизнеспроцессов
С точки зрения системы
Структуризация модели
 Связь <<include>> (включение) применяется в тех
ситуациях, когда имеется какой-либо фрагмент
поведения системы, который повторяется более чем
в одном варианте использования
 Связь <<extend>> (расширение) применяется при
описании изменений в нормальном поведении
системы
Структуризация модели
Служащий
Совместитель
Почасовик
Служащий на
окладе
 Связи обобщения показывают, что у нескольких
действующих лиц имеются общие черты и
различия. Применяется в тех ситуациях, когда
отличия в поведении действующего лица одного
типа от поведения другого затрагивают функции
системы
Вариант использования - не зависящее от
реализации высокоуровневое представление
ожиданий пользователя от системы
 Названия вариантов использования должны быть
деловыми, а не техническими терминами, имеющими
значение для заказчика
 Каждый вариант использования должен представлять
собой завершенную транзакцию между пользователем и
системой, представляющую для первого некоторую
ценность
 Хорошо написанный вариант использования легко
читается и состоит из предложений, написанных в
единой грамматический фирме. На обучение чтению
варианта использования не должно уходить больше
нескольких минут
Диаграмма вариантов
использования
Диаграмма вариантов
использования
Диаграмма класса
 Диаграммы
классов
являются
центральным
звеном
объектноориентированных методов.
 Диаграмма классов определяет типы
объектов системы и различного рода
статические
связи,
которые
существуют между ними.
Диаграмма класса
 Класс (class) служит для обозначения множества объектов, которые
обладают одинаковой структурой, поведением и отношениями с объектами
из других классов.
 Видимость атрибута:
 Public (общий, открытый)
 Private (закрытый, секретный)
 Protected (защищенный)
Диаграмма класса
Диаграмма класса
Объектная модель сказки
Диаграммы
взаимодействия
 Диаграммы взаимодействия (interaction
diagrams)
являются
моделями,
описывающими
поведение
взаимодействующих групп объектов.
 Как правило, диаграмма взаимодействия
охватывает поведение объектов в рамках только
одного варианта использования. На такой
диаграмме отображаются ряд объектов и те
сообщения, которыми они обмениваются между
собой.
Диаграмма взаимодействия
Кооперативная диаграмма с
десятичной нумерацией
Диаграмма деятельности
Диаграмма деятельности
Преобразовать уравнение к
каноническому виду
Символ
ветвления
Вычислить дискриминант
[дискриминант >=0]
[дискриминант <0]
Вычислить корни (корень)
квадратного уравнения
Диаграмма состояний
Диаграмма состояний
Установить телефонное соединение (тел. номер)
[тел. соединение установлено]
Активация
почтовой
программы
Загрузка почты с
сервера провайдера
Закончить загрузку почты
[почтовый ящик на сервере пуст]/
разорвать тел. соединение(тел. номер)
Событие
Диаграмма состояний
Диаграмма компонентов для
клиентов
Диаграмма компонентов для
клиентов
Исполняемые компоненты
Библиотеки кода
Диаграмма компонентов для
клиентов
Диаграмма размещения
Диаграмма размещения
Диаграмма размещения
Диаграмма размещения
Пакет — основной способ
организации элементов модели
 Каждый пакет владеет всеми
своими элементами, т. е. теми
элементами, которые включены в
него.
 Каждый элемент может
принадлежать только одному
пакету.
 Одни пакеты могут быть вложены в
другие пакеты. В этом случае
первые называются подпакетами.
 Для элементов модели задается
отношение вложенности пакетов,
которое представляет собой
иерархию.
Имя пакета
Имя пакета
Содержимое пакета
(а)
(б)
Пакет_1
Пакет_2
Пакет_3
Диаграмма пакетов
Методика
моделирования
бизнес-процессов
(Rational Unified
Process)
Методика моделирования RUP
предусматривает построение двух
моделей:
 Модели бизнес-процессов (Business
Use Case Model)
 Модели бизнес-анализа (Business
Analysis Model)
Модель бизнес-процессов
(Business Use Case Model)
 Модель, описывающая бизнеспроцессы организации в терминах
ролей и их потребностей
Business Actor
(действующее лицо
бизнес-процессов)
Некоторая роль, выполняемая по отношению к бизнеспроцессам организации
Потенциальные кандидаты:
 Акционеры
 Заказчики
 Поставщики
 Партнеры
 Потенциальные клиенты
 Местные органы власти
 Коллеги из подразделений, не охваченные моделью
 Внешние системы
Поиск действующих лиц методом мозгового
штурма
Вопросы:
 Кто извлекает пользу из существования организации?
 Кто помогает организации осуществлять свою деятельность?
 Кому организация передает информацию и от кого получает?
Организация
Business Use Case
(вариант использования с точки
зрения бизнес-процессов)
Описание последовательности действий
в рамках некоторого бизнес-процесса,
приносящий ощутимый результат
конкретному действующему лицу
(Business Actor)
Пример модели Business Use Case
(регистрация пассажиров в аэропорту)
Пассажир
Руководитель
туристической группы
Пройти регистрацию
Зарегистрировать группу
Возможный вариант
(только связи инициирования)
Пассажир
Руководитель
туристической группы
Пройти регистрацию
Зарегистрировать группу
Возможный вариант
(стереотипы связей)
<<инициирует>>
Пройти регистрацию
Пассажир
<<инициирует>>
Руководитель
туристической группы
Зарегистрировать группу
Структуризация модели
Пассажир
Пассажир бизнескласса
Пассажир
эконом-класса
 Связи обобщения показывают, что у нескольких
действующих лиц имеются общие черты и
различия.
Структуризация модели
Зарегистрировать
группу
Зарегистрировать
пассажира
Оформить багаж
<<include>>
<<include>>
Связь включения применяется когда имеется какой-либо
фрагмент поведения системы, который повторяется более чем в
одном варианте использования
Структуризация модели
<<extend>>
Зарегистрировать пассажира
Зарегистрировать пассажира на
рейс прямого сообщения
Связь расширение применяется при описании
изменений в нормальном поведении системы
Спецификация Business Use
Case








Наименование
Краткое описание
Цели и ресурсы
Описание сценариев (основного и
альтернативных)
Специальные требования (время и
стоимость)
Расширения (исключительные ситуации)
Связи
Диаграммы деятельности (для описания
сценариев)




Пример
Наименование – Пройти регистрацию
Краткое описание – Процесс регистрации пассажира на рейс
Цели - Получить посадочный талон и сдать багаж
Основной сценарий:
8.
Пассажир встает в очередь к стойке регистратора
Пассажир предъявляет билет регистратору
Регистратор подтверждает правильность билета
Регистратор оформляет багаж
Регистратор резервирует место для пассажира
Регистратор печатает посадочный талон
Регистратор выдает пассажиру посадочный талон и квитанцию на
багаж
Пассажир уходит от стойки регистратора

Альтернативные сценарии:
a)
Билет неправильно оформлен – регистратор отсылает пассажира к
агенту по перевозкам
Багаж превышает установленный вес – регистратор оформляет
доплату
1.
2.
3.
4.
5.
6.
7.
b)

Специальные требования - Время регистрации не должно
превышать одной минуты
Модель бизнес-анализа
(Business Analysis Model)
 Объектная модель, описывающая
реализацию бизнес-процесса
(Business Use Case)
Business Worker
(исполнитель) - класс,
представляющий собой абстракцию
исполнителя, действующего в
рамках системы
 business Worker взаимодействует с другими
исполнителями и манипулирует бизнес-сущностями,
участвуя в реализации Business Use Case)
 представление в UML – класс со стереотипом <<business
Worker>>
Business Entity
(сущность) – пассивный
класс, не инициирующий
никаких взаимодействий
Business Entity может участвовать в реализации различных
Business Use Case. Сущность является объектом различных
действий со стороны исполнителя.
Пример: Business Use Case «Пройти регистрацию»
• Паспорт
• Билет
• Рейс
• Авиалиния
• Багаж
• Багажная бирка
•
Диаграмма классов
Объектная модель сказки
Диаграмма
последовательности
Пакет
Бизнес-система
(Business System)
 Бизнес-система – совокупность





Business Workers
Business Entity
Связи (relationships)
Business Use Case – реализации
Диаграммы и другие бизнес-системы
 Используются для структурирования
(декомпозиции) бизнес-модели
 Представление в UML – пакет со
стереотипом <<business system>>
Бизнес-система
(Business System)
Business Use Case Model
Business Analysis Model
•Классы
• действующие лица
•варианты
использования
•диаграммы вариантов
использования
Организационные единицы
•диаграммы моделей
бизнес-анализа
Business Use Caseа Realization
Структура бизнес-модели
Достоинства методики RUP при
моделировании бизнес-процессов
 Модель бизнес-процессов строится вокруг
участников процессов и их целей
 Моделирование на основе вариантов
использования способствует лучшему
пониманию модели бизнес-процессов
пользователями
 Механизмы расширения UML позволяют
доопределять и переопределять семантику
стандартных элементов диаграмм
Download