Моделирование объектов Интернет-магазин ТЕМЫ Интернет-магазин – Постановка задачи Use Case моделирование Моделирование деятельности Моделирование классов Моделирование взаимодействия Моделирование состояний 2 ИНТЕРНЕТ-МАГАЗИН– ПОРЯДОК ОБРАБОТКИ Покупка компьютера через Интернет Компьютеры классифицируются рабочие станции и ноутбуки на серверы, Клиент может выбрать стандартную конфигурацию или построить заказную он-лайн Для размещения заказа клиент должен заполнить информацию о поставке и оплате (методы оплаты кредитной картой наличными) После ввода заказа система отправляет клиенту сообщение о конфигурации по электронной почте со спецификацией заказа 3 ИНТЕРНЕТ-МАГАЗИН(ПРОД.) Клиент в любое состояние заказа время может проверить Обработка заказа на сервере состоит необходимости выполнения следующих шагов Проверка полномочий и метода оплаты, Запросить заказанную конфигурацию со склада, Распечатать счет и запрос, и Запросить склад отправить компьютер клиенту Заказанная конфигурация клиенту со счетом отправляется 4 МОДЕЛИРОВАНИЕ ПРЕЦЕДЕНТОВ Поведение системы что делает система в ответ на внешние события Прецедент (Use case) – внешне заметное и проверяемое поведение системы Актор (Actor) – кто-либо или что-либо (субъект, машина, и т.п.) взаимодействующее с вариантом использования Актор получает полезный результат Прецедент представляет функциональности для актора Могут быть некоторые взаимодействуют с актором единицу прецеденты, полезной которые не В многих случаях функциональное требование отображается непосредственно на прецедент Use Case Diagram визуальное представление акторов и прецедентов вместе с дополнительными формулировками и спецификациями 5 РАСШИРЕННЫЕ ТРЕБОВАНИЯ(СЦЕНАРИЙ) Клиент использует веб-страницу интернет магазина производителя для просмотра стандартной конфигурации выбранного сервера, рабочей станции или ноутбука. Также представляется цена. Клиент выбирает просмотр конфигурации с намерением приобрести ее в таком виде либо построить более подходящую конфигурацию. Цена для каждой конфигурации может вычисляться по запросу клиента. Клиент может выбрать компьютер для заказа он-лайн или обратиться к продавцу с просьбой объяснить ему детали заказа, обсудить цену и т.п. прежде чем заказ будет действительно размещен. Для размещения заказа клиент должен заполнить онлайн форму с адресом доставки и оплаты, а также способом оплаты (кредитная карта или наличные). 6 РАСШИРЕННЫЕ ТРЕБОВАНИЯ (ПРОД.) После ввода клиентом заказа в систему , продавец посылает электронный запрос на склад со спецификацией заказанной конфигурации. Подробности транзакции, содержащие номер заказа и номер счета клиента отправляются по электронной почте клиенту, чтобы клиент мог проверить статус заказа он-лайн. Склад получает заказ от продавца и отправляет компьютер клиенту. 7 АКТОРЫ Акторы и прецеденты определяются на основе описания требований: После ввода клиентом заказа в систему , продавец посылает электронный запрос на склад со спецификацией заказанной конфигурации Customer Saleperson Warehouse 8 ПРЕЦЕДЕНТЫ Клиент использует вебстраницу интернет магазина производителя для просмотра стандартной конфигурации выбранного сервера, рабочей станции или ноутбука. Клиент выбирает просмотр конфигурации с намерением приобрести ее в таком виде либо построить более подходящую конфигурацию. Display Standard Computer Configuration Build Computer Configuration Order Configured Computer Request Salesperson Contact Verify and Accept Customer Payment Inform Warehouse about Order Update Order Status Print Invoice 9 9 USE CASE ДИАГРАММА Build Computer Display Standard Computer Configuration Configuration Связь<<extend>> Order Configured - прецедент Computer Order Configured Verify and Accept Customer Customer Payment <<extend>> Computer может быть расширен Customer с прецедентом Request Salesperson ContactRequest Print Invoice Salesperson Update Order Status Contact Warehouse Salesperson Warehouse Inform about Order 10 ДОКУМЕНТИРОВАНИЕ ПРЕЦЕДЕНТОВ Краткое описание Участвующие Actors Предусловия необходимы для запуска прецедента Подробное описание потока событий включает: Основной поток событий, который может быть разбит, чтобы показать: Подпотоки событий (подпотоки могут быть в дальнейшем разделены на более мелкие для улучшения понятности документа) Альтернативные потоки для определения исключительных ситуаций Постусловия которые определяют состояние системы после завершения прецедента 11 ОПИСАНИЕ СПЕЦИФИКАЦИИ ПРЕЦЕДЕНТА Use Case Заказ компьютера Brief Description Этот прецедент позволяет Customer ввести заказ покупки Краткое описание … Actors Customer Preconditions Страница отображает подробности конфигурации компьютера с его ценой … Main Flow Основной поток Система назначает номер заказа и номер счета клиента для покупки заказа и он хранится в информации о заказах в базе данных. … Alternative Flows Альтернативный поток Customer инициирует функцию Purchase до введения всей необходимой информации. При нажатии Reset сисиема позволяет ввести информацию вновь Postconditions Постстусловия Если прецедент был успешным, заказ на покупку записывается в12 базу данных. МОДЕЛИРОВАНИЕ ВИДОВ ДЕЯТЕЛЬНОСТИ Модель видов деятельности Может графически представлять поток событий для прецедента Может использоваться для понимания шагов выполнения бизнеспроцесса на высоком уровне абстракции перед созданием прецедента (до моделирования взаимодействия: диаграммы последовательности и кооперации) Показывает шаги вычислений Каждый шаг соответствует состоянию (state) в котором что-нибудь выполняется Шаг выполнения называется состоянием вида деятельности (activity states) Изображает какие шаги выполняются последовательно, а какие параллельно y Переход (transition) – передача управления из одного состояния в другое Описания прецедента (Use case descriptions) обычно создаетсяс точки зрения внешнего субъекта Модели видов деятельности (Activity models) отражают внутрисистемную точку зрения 13 ВИДЫ ДЕЯТЕЛЬНОСТИ Состояния видов деятельности (Activity states) могут быть установлены на основе описания прецедентов Виды деятельности (Activities) должны быть поименованы с точки зрения системы, а не с точки зрения субъекта Вид деятельности выполнения (Activity) требует время для Действие (Action) завершается так быстро– в масштабах временной шкалы– может считаться происходящим мгновенно UML использует один графический символ для состояния вида деятельности (activity state) и состояния действия (action state) – прямоугольник с закругленными углами 14 УСТАНОВЛЕНИЕ ОПЕРАЦИЙ В ОСНОВНОМ И АЛЬТЕРНАТИВНЫХ ПОТОКАХ N Формулировки прецедента Состояние вида деятельности 1 Начало прецедента - решение клиента Заказать компьютер с помощью Display Current выбора функции Continue (или аналогичной функции) при отображении Configuration; Get Order Request на экране подробной информации, относящейся к заказу 2 Система просит клиента ввести детализированную информацию о покупке, в том числе: имя продавца (если оно известно); детали, касающиеся доставки (имя и адрес клиента); детальную информацию по оплате (если она отличается от информации по доставке); способ оплаты (кредитная карточка или чек) и произвольные комментарии Display Purchase Form 3 Клиент выбирает функцию Purchase (или аналогичную функцию) для отправки заказа производителю. Get Purchase Details 4 Система присваивает уникальный номер заказа и клиентский учетный номер заказу на покупку и запоминает информацию о заказе в базе данных Store Order 5 Система отправляет клиенту по электронной почте номер заказа и клиентский номер клиенту вместе со всеми деталями, относящимися к заказу, в качестве подтверждения принятия заказа Email Order Details 6 Клиент инициирует функцию Purchase до того, как введет всю обязательную информацию. Система отображает на экране сообщение об ошибке и просит ввести пропущенную информацию. Get Purchase Details; Display Purchase Form 7 Клиент выбирает функцию Reset (или аналогичную) для того, чтобы вернуться к исходной форме заказа на покупку. Система дает возможность клиенту вновь ввести информацию 15 Display Purchase Form ВИДЫ ДЕЯТЕЛЬНОСТИ Display Current Configuration Get Order Request Display Purchase Form Get Purchase Details Store Order Email Order Details Система присваивает уникальный номер заказа и клиентский учетный номер заказу на покупку и запоминает информацию о заказе в базе данных. 16 ДИАГРАММА ВИДА ДЕЯТЕЛЬНОСТИ Диаграмма видов деятельности (Activity Diagram) показывает переходы между видами деятельности Закрашенная окружность состояние (initial state) представляет начальное Конечное состояние (final state) показывается в виде окружности с закрашенной центральной частью (бычий глаз) Переходы могут разветвляться по условию (branch) и объединяться (merge) (ромб-условие ветвления) – альтернативные вычислительные потоки Переходы могут разделяться (fork) и сливаться (re-join) (bar line) –в результате образуются параллельные (concurrent) вычислительные потоки (threads) Диаграмма вида деятельности без параллельных процессов похожа на обычную блок-схему (flowchart) 17 ACTIVITY DIAGRAM Display Current Configuration Множество выходных состояний (условия перехода внутренние по отношению к состоянию вида деятельности [ timeout ] Get Order Request Display Purchase Form [ incomplete ] Get Purchase Details Store Order [ OK ] Email Order Details Явное условие ветвления (которое появляется на выходной форме состояния вида деятельности) 18 МОДЕЛИРОВАНИЕ КЛАССОВ Систему образует системное состояние (system state) – функция системной информации в заданный момент времени Элементы моделирования классов: Сами классы Атрибуты и операции классов Связи– ассоциации, агрегации и композиции, обобщения Диаграмма классов (Class Diagram) – дает обобщенное визуальное представление для всех элементов модели Моделирование классов и прецедентов обычно выполняются параллельно 19 КЛАССЫ До сих пор классы рассматривались, чтобы определять бизнес-объекты, характеризующие сущность ИС Называются классы-сущности (entity classes) (model classes) Представляют постоянно хранимые объекты базы данных Другие классы Классы, которые определяют объекты GUI (sтакие как экранные формы) – граничные классы (boundary classes) (классы представления - view classes) Классы, которые управляют программную управляющие классы (control classes) логику – Граничные и управляющие классы могут или не могут рассматриваться на этапе анализа требований – могут быть отложены до этапа проектирования системы. 20 Выделение классов представляет собой итеративную задачу, и первоначальный перечень предполагаемых классов, как правило, претерпевает изменения 21 КЛАССЫ (ПРОД.) Что является классом? Является ли понятие «вместилищем» данных? Обладает ли оно отдельными атрибутами, которые принимают различные значения? Можно ли создать для него множество объектовэкземпляров? Входит ли оно в границы прикладной области? 22 КЛАССЫ(ПРОД.) • Склад получает счет-фактуру (Invoice) от продавца (Salesperson) и отправляет компьютер клиенту (Customer) Customer Computer (from Use Case View) Необходим ли класс Shipment? Входит ли он в систему? Salesperson класс или атрибут классов Order и Invoice? ConfiguredComputer Order Payment ConfigurationItem Invoice 23 АТРИБУТЫ На практике основные атрибуты назначаются классу сразу после его добавления к модели 24 АССОЦИАЦИИ Customer Computer (from Use Case View) 1..1 Ассоциации, связывающие классы, устанавливают пути для кооперации объектов 1..1 Payment 0..* ConfigurationItem Order 1..1 0..* 1..1 0..1 Invoice 1..* ConfiguredComputer 25 АГРЕГАЦИИ Customer Computer (from Use Case View) 1..1 0..* 1..* Order ConfigurationItem 1..1 1..1 Payment 0..* 1..1 0..1 Invoice 1..* 1..* ConfiguredComputer 26 ОБОБЩЕНИЯ Customer ConfigurationItem (from Use Case View) Класс изменен на абстрактный 1..1 класс Computer, являющийся родовым для двух конкретных подклассов — Standard Computer и ConfiguredComputer. 1..1 Теперь классы Order и ConfigurationItem связаны с классом Computer, который может быть либо классом StandardComputer, либо классом ConfiguredComputer. 1..1 Payment 1..* 0..* Computer Order 0..* 1..* 1..1 0..1 Invoice ConfiguredComputer StandardComputer 27 ДИАГРАММА КЛАССОВ Диаграмма классов составляет, так сказать, “сердце” и “душу” объектно - ориентированной системы. В данном наставлении ставится цель только продемонстрировать возможности статического моделирования применительно к модели классов. В классы пока что не введено ни одной новой операции. Операции принадлежат скорее к этапу проектирования, чем анализа. 28 МОДЕЛИРОВАНИЕ ВЗАИМОДЕЙСТВИЙ Охватывает вопросы взаимодействия между объектами, необходимым для выполнения прецедента Показывает последовательность событий (сообщений) и их связи с действующими в кооперации объектами Используются на более развитых стадиях анализа требований, когда становится известной модель классов, так что ссылки на объекты опираются на модель классов Два вида диаграмм взаимодействия Диаграммы последовательностей (Sequence Diagram) – концентрируются на временных последовательностях Диаграммы кооперации (Collaboration Diagram) – внимание уделяется отношениям между объектами В практике разработки ИС – диаграммы последовательностей используются на этапе анализа требований, а диаграммы кооперации - системного проектирования 29 ВЗАИМОДЕЙСТВИЯ Взаимодействие (Interaction) – набор сообщений, свойственных поведению некоторой системы, которыми обмениваются объекты в соответствии с установленными между ними связями Диаграммы последовательности Объекты располагаются по горизонтали Последовательности сообщений располагаются сверху вниз по вертикали Каждая вертикальная линия называется линией жизни (lifeline) объекта Стрелки представляют каждое сообщение, направляемое от вызывающего объекта (отправителя) к операции (методу) вызываемого объекта (получателя). Фактические параметры могут быть входными аргументами (передаются от отправителя к получателю) выходными аргументами (передаются от получателя назад к отправителю). crs_ref.getCourseName(out crs_name) Показывать возврат return не обязательно Итеративный маркер - звездочка перед обозначением сообщения - указывает на процесс итерации сообщения по всей коллекции 30 ВЗАИМОДЕЙСТВИЯ(ПРОД.) : Customer aConfWin : ConfigurationWindow aComp : Computer : Configuration Item openNew getConf * getConfItem (out item_rec) displayComputer(item_recset) Диаграмма последовательности для «отображения текущей конфигурации». Клиент принимает решение оботображении конфигурации компьютера. Сообщение openNew (открыть новое [окно]) отправляется объекту ConfWin класса ConfigurationWindow ([диалоговое] окно конфигурации). В результате создается ("материализуется как экземпляр") новый объект ConfWin. (Класс ConfigurationWindow - граничный класс. ConfWin необходимо “отобразить себя” вместе с данными, относящимися к конфигурации. С этой целью он отправляет сообщение объекту aComp:Computer. В 31 действительности, aComp — это объект класса StandardComputer или ConfiguredComputer. Класс Computer — абстрактный клас. aComp использует выходной аргумент для того, чтобы “собрать себя” из элементов конфигурации — объектов ConfigurationItem ВЗАИМОДЕЙСТВИЯ (CONT.) 32 ОПЕРАЦИИ Исследование взаимодействий между классами приводит к выявлению операций Каждое сообщение(message) вызывает операцию в вызываемом объекте Имена операция и сообщения совпадают Аналогично, наличие сообщения в диаграмме последовательностей обусловливает необходимость ассоциации в диаграмме классов 33 ОПЕРАЦИИ (ПРОД.) Класс ConfigurationWindow — пограничный класс. Два других класса — это классы сущности, представляющие постоянные объекты базы данных. Операция openNew выбрана в качестве шаблона операции конструктора. Это означает, что операция openNew будет реализована в качестве метода конструктора, который порождает новые объекты класса. 34 ДИАГРАММА ПОСЛЕДОВАТЕЛЬНОСТЕЙ ЗАКАЗ КОНФИГУРИРОВАННОГО КОМПЬЮТЕРА 35 линии жизни объектов Order и OrderWindow разделены на две части ДИАГРАММА ПОСЛЕДОВАТЕЛЬНОСТЕЙ(ПРОД.) 36 КОММЕНТАРИИ К ПРЕДЫДУЩИМ СЛАЙДАМ Пояснения к первым двум сообщением были сделаны на слайде 31. Сообщение acceptConf вызывает отправку сообщения prepareForOrder объекту :Order. Это приводит к созданию временного объекта :Order, отображаемого в “объектеокне” :OrderWindow. В ответ на принятие клиентом детализированных условий заказа (submitOrder) объект :OrderWindow инициирует (storeOrder) создание постоянного объекта :Order. После этого объектзаказ :Order устанавливает связь с заказанным компьютером (:Computer), а также соответствующими клиентом (:Customer) и платежом :Payment. После того, как эти объекты постоянно связаны в базе данных, объект :Order отправляет электронное сообщение emailOrder внешнему субъектуклиенту (Customer). Обратите внимание на двойное использование сущности :Customer — в качестве внешнего субъекта, представленного объектом, и внутреннего объекта-класса. Подобная двойственность довольно часто встречается в моделировании. Клиент (Customer) является по отношению к системе одновременно и внешней, и внутренней сущностью. Он представляет собой внешнюю сущность, поскольку взаимодействует с системой извне. Однако информация о клиенте должна храниться в системе, чтобы иметь возможность установить идентичность внешнего клиента и внутренней сущности, о которой знает система. 37 МОДЕЛИРОВАНИЕ СОСТОЯНИЙ Фиксирует динамику изменения состояния классов – возможные состояния класса - жизненный путь класса Эти изменения описывают поведение объектов в рамках нескольких прецедентов Состояние (state) объекта– обозначается текущими значениями атрибутов объекта Модель состояний (Statechart Diagram) – двудольный граф Состояний (states) (прям-к с закр. углами) и Переходов (transitions) (стрелок) вызваных событиями (events) Концепция состояний и событий совпадает с концепцией, которая известна по диаграмме деятельности. Различие же заключается в том, что "состояния графа видов деятельности представляют состояния выполнения вычисления, а не состояния 38 обычного объекта" СОСТОЯНИЯ И ПЕРЕХОДЫ Значения атрибутов объекта изменяются, однако не все подобные изменения вызывают переход между состояниями Модель состояний создается только для интересных изменений состояний объекта с точки зрения предметной области, а не для любого изменения Модель состояний – модель бизнес правил Бизнес правила– неизменны в течение некоторого периода времени Они относительно независимы от отдельных прецедентов 39 СОСТОЯНИЯ И СОБЫТИЯ Unpaid partial payment Partly Paid final payment final payment Fully Paid 40 ДИАГРАММА СОСТОЯНИЙ Обычно присоединяется к классу, но может присоединяться и к другим модельным представлениям, например, прецедентам Когда присоединяется к классу, диаграмма определяет как объекты класса реагирует на события Определяет – для каждого состояния объекта – какое действие (action) объект будет выполнять, когда получает событие Один и тот же объект может выполнять различные действия для одних и тех же событий в зависимости от состояния объекта Выполнение действия будет обычно вызывать изменение состояния 41 ДИАГРАММА СОСТОЯНИЙ (ПРОД.) Источник детализированного описания прецедента, и полное описание перехода состоит их трех необязательных частей event (parameters) [guard] / action Event - явление, воздействующее на объект, возможна проверка срабатывания события Action – короткое атомическое вычисление, которое выполняется при срабатывании перехода Действие может также связано с состоянием Activity – более продолжительное вычисление, связанное с состоянием 42 STATECHART DIAGRAM (CONT.) Pending Состояние может состоять из других состояний, которые называются вложенными. New Order stock not available Back Order stock available[ ship date in future ] Future Order stock available[ ship date in future ] [ canceled ] stock available[ ship date now ] / configureComputer Cancelled Ready to Ship [ canceled ] ship[ accepted ] Filled 43