Файл: Разработка регламента выполнения процесса «Транспортная доставка заказов» (Транспортная доставка заказов).pdf
Добавлен: 30.06.2023
Просмотров: 80
Скачиваний: 3
Для ее заполнения необходимо открыть ее, дважды щелкнув по ней, и разместить на ней актеров и варианты использования.
Для нашей предметной области мы выделили следующих актеров:
Таблица 1 Актеры
Актер |
Краткое описание |
Оператор |
Отвечает на звонок клиента и перенаправляет звонок соответствующему специалисту |
Менеджер |
Сотрудник, который занимается комплектацией заказов и проверкой выполнения доставки |
Водитель |
Сотрудник, который занимается доставкой заказов |
Рассмотрим теперь, какие возможности должна предоставлять наша система[5]:
- актер Оператор использует систему для приема и распределения звонков и управления информацией о клиентах предприятия;
- актер Менеджер использует систему для определения просмотра перечня необходимых для клиента продуктов и ведения информации о снабжении;
- актер Водитель использует систему для получения заданий на доставку заказов [1].
На основании вышеизложенного можно выделить следующие прецеденты:
Таблица 2 Прецеденты
Прецедент |
Краткое описание |
Прием звонка |
Запускается оператором. Позволяет вносить, изменять, удалять или просматривать заявку. |
Управление информацией о клиенте |
Запускается оператором. Позволяет добавлять, изменять или удалять клиентов, а также просматривать информацию о клиентах. |
Управление информацией о заказах |
Запускается менеджером. Позволяет просматривать информацию о заказах, производить анализ их доставки, прогнозировать необходимое их количество. |
Доставка |
Запускается Водителем. Позволяет просматривать информацию о клиентах и времени доставки. |
Оплата |
Запускается Водителем. Позволяет просматривать информацию о клиентах и оплате доставки. |
Рис.1 Диаграмма прецедентов
Поток событий для прецедентов главной диаграммы прецедентов
Потоки событий для прецедентов будем описывать по следующему шаблону:
- Х.1 предусловия;
- Х.2 главный поток;
- Х.3 под-потоки;
- Х.4 альтернативные потоки;
- Х.5 постусловия.
где Х - число от единицы до количества прецедентов[6].
Поток событий для прецедента «Прием звонка».
-
- Предусловия.
Если поступает звонок от нового клиента, то под-поток добавить нового клиента (Add a New Client) прецедента Управление информацией о клиенте должен быть выполнен перед его началом.
-
- Главный поток.
Прецедент начинает выполняться, когда оператор подключается к системе и вводит свое имя и пароль. Система проверяет правильность пароля (Е-1) и выводит возможные варианты действий: выбрать специалиста, добавить (Add), изменить (Change), удалить (Delete), просмотреть (View) или выйти (Exit),.
-
- Под-потоки.
S-1: выбрать водителя
Система отображает диалоговое окно, содержащее поле, в котором оператор должен выбрать специалиста для решения проблемы клиента.
S-1: добавить новый заказ (Add a New Order)
Система отображает диалоговое окно, содержащее поля для заполнения Оператор заполняет поля (E-2). Система запоминает введенные данные и распечатывает счет для оплаты. Затем прецедент начинается сначала[6].
S-2: изменить заказ (Change Order)
Система отображает диалоговое окно, содержащее список заказов и поле для ввода номера заказа. Оператор выбирает необходимый заказ из списка или вводит номер заказа в поле (Е-3). Система отображает информацию о данном заказе. Оператор делает необходимые изменения (Е-2). Система запоминает введенные данные. Затем прецедент начинается сначала.
S-3: удалить заказ (Delete Order)
Система отображает диалоговое окно, содержащее список заказов и поле для ввода номера заказа. Оператор выбирает необходимый заказ из списка или вводит номер заказа в поле (Е-3). Система удаляет выбранный заказ (Е-4). Затем прецедент начинается сначала.
S-4: просмотреть заказ (View Order)
Система отображает диалоговое окно, содержащее список заказов и поле для ввода номера заказа. Оператор выбирает необходимый заказ из списка или вводит номер заказа в поле (Е-3). Система отображает информацию о выбранном заказе. Когда Оператор просмотрит информацию, прецедент начнется сначала.
Поток событий для прецедента «Управление информацией о клиенте».
2.1 Предусловия.
2.2 Главный поток.
Прецедент начинает выполняться, когда Оператор подключается к системе и вводит свое имя и пароль. Система проверяет правильность пароля (Е-1) и выводит возможные варианты действий: добавить (Add), изменить (Change), удалить (Delete), просмотреть (View) или выйти (Exit).
2.3 Под-потоки.
S-1: добавить нового клиента (Add a New Client)
Система отображает диалоговое окно, содержащее поля для ввода данных о новом клиенте. Пользователь заполняет поля (Е-2). Система запоминает введенные данные. Затем прецедент начинается сначала.
S-2: изменить данные о клиенте (Change Client Data)
Система отображает диалоговое окно, содержащее список клиентов и поле для ввода номера клиента. Оператор выбирает необходимого клиента из списка или вводит его номер в поле (Е-3). Система отображает информацию о данном клиенте. Оператор делает необходимые изменения (Е-2). Система запоминает введенные данные. Затем прецедент начинается сначала.
S-3: удалить клиента (Delete Client)
Система отображает диалоговое окно, содержащее список клиентов и поле для ввода номера клиента. Оператор выбирает необходимого клиента из списка или вводит его номер в поле (Е-2). Система удаляет выбранного клиента (Е-4). Затем прецедент начинается сначала.
S-4: просмотреть данные о клиенте (View Client Data)
Система отображает диалоговое окно, содержащее список клиентов и поле для ввода номера клиента. Оператор выбирает необходимого клиента из списка или вводит его номер в поле (Е-3). Система отображает информацию о выбранном клиенте. Когда Оператор просмотрит информацию, прецедент начнется сначала.
Поток событий для прецедента «Управление информацией о заказах.»
3.1 Предусловия.
3.2 Главный поток.
Прецедент начинает выполняться, когда менеджер подключается к системе и вводит свое имя и пароль. Система проверяет правильность пароля (Е-1) и выводит возможные варианты действий: добавить (Add), отметить (Mark) или выйти (Exit).
3.3 Под-потоки.
S-1: внести поступившие заказы (Add a New Components)
Система отображает диалоговое окно, содержащее поля для ввода наименования комплектующих, их количества, поставщика. Завскладом заполняет указанные поля (Е-2). Система запоминает введенные данные. Затем прецедент начинается сначала.
S-2: сделать отметку о комплектации заказа (Change Order)
Система отображает список блюд, приготовленных на кухне. Менеджер напротив нужных блюд вводит количество (Е-3). Система запоминает введенные данные. Затем прецедент начинается сначала[5].
Поток событий для прецедента «Доставка заказа».
4.1 Предусловия.
4.2 Главный поток.
Прецедент начинает выполняться, когда Водительподключается к системе и вводит свое имя и пароль. Система проверяет правильность пароля (Е-1) и выводит возможные варианты действий: просмотреть (View), отметить (Mark) или выйти (Exit).
4.3 Под-потоки.
S-1: Просмотреть наряд на доставку
Система отображает диалоговое окно, содержащее список нарядов и поле для ввода номера наряда. Водитель выбирает необходимый наряд из списка или вводит его номер в поле (Е-2). Система отображает информацию о выбранном наряде. Когда водительр просмотрит информацию, прецедент начнется сначала[6].
S-2: сделать отметку о доставке заказа
Система отображает диалоговое окно, содержащее список нарядов. Возле необходимого заказа водитель делает отметку о доставке по данному наряду. Затем сохраняет изменения. Затем прецедент начинается сначала.
Создание диаграммы классов для сценария "Выполнить доставку заказа" прецедента "Доставка заказов"
Создадим классы-сущности Заказ, Клиент, Водитель. Поскольку в один заказ может входить много разных блюд, и одно блюдо может входить во много заказов, то введем еще один класс-сущность Строка заказа. Опишем каждый класс[7].
Таблица 3 Класс Клиент
Параметр |
Значение |
Комментарий |
Класс, представляющий собой клиента фирмы |
Атрибуты |
name : String - наименование клиента address : String - адрес клиента phone : String - телефон клиента Все атрибуты имеют модификатор доступа - private |
Операции |
AddClient() - добавление нового клиента RemoveClient() - удаление существующего клиента GetInfo() - получить информацию о клиенте Все операции имеют модификатор доступа - public |
Таблица 4 Класс Водитель
Параметр |
Значение |
Комментарий |
Класс, представляющий собой водителя |
Атрибуты |
name : String - наименование водителя address : String - адрес водителя phone : String - телефон водителя Все атрибуты имеют модификатор доступа - private |
Операции |
AddClient() - добавление нового водителя RemoveClient() - удаление существующего водителя GetInfo() - получить информацию о водителе Все операции имеют модификатор доступа - public |
Таблица 5. Класс Заказ:
Параметр |
Значение |
Комментарий |
Класс, представляющий собой заказ на готовый обед |
Атрибуты |
entryNumber : Integer - номер заказа entryDate : Date - дата оформления заказа entryComplete : Date - дата выполнения заказа idМaster водитель, выполняющий заказ Все атрибуты имеют модификатор доступа - private |
Операции |
Create() - создание нового заказа SetInfo() - занести информацию о заказе GetInfo() - получить информацию о заказе Все операции имеют модификатор доступа - public |
Таблица 6 Класс СтрокаЗаказа
Параметр |
Значение |
Комментарий |
Класс, представляющий собой пункт заказа |
Атрибуты |
itemNumber : Integer - номер пункта заказа quantity : Integer - количество блюд price : Double - цена за единицу Все атрибуты имеют модификатор доступа - private |
Операции |
Create() - создание новой строки заказа SetInfo() - занести информацию о строке заказа GetInfo() - получить информацию о строке заказа Все операции имеют модификатор доступа - public |
Результат создания классов-сущностей показан на рис. 3:
Рисунок 3. Созданные классы-сущности
Добавим отношения между классами (рис. 4):
Рисунок 4. Итоговая диаграмма классов
Диаграммы состояний
Диаграммы состояний применяются, как правило, для моделирования поведения классов, прецедентов или системы в целом.
Составим диаграмму состояний для класса Заказ, поскольку в нашей модели он наиболее часто будет менять свое состояние. Заказ может находится в нескольких состояния:
- присоздании заказа он переходит в состояние Инициализация, в котором выполняются некоторые предварительные действия;
- после завершения инициализации заказ переходит в состояние Открыт, в котором к заказу добавляются новые пункты. Выход из этого состояния возможен или в случае отмены заказа, или в случае заполненния всех необходимых пунктов заказа;
- если заполнены все необходимые пункты заказа, то он переходит в состояние Закрыт, в котором происходит выписка счета. Выход из этого состояния произойдет только после того, как счет будет выписан;
- если заказ отменен, то из состояния Открыт он переходит в состояние Отменен. При выходе из этого состояния происходит удаление всех пунктов заказа.
Диаграмма состояний для класса Entry представлена на рис.5:
Рисунок 5. Диаграмма состояний для класса Заказ
Первым состоянием на диаграмме состояний является начальное состояние. При выполнении события "заказ создан" заказ переходит в состояние Инициализация. При входе в это состояние выполняется входное действие "Сохранить дату заказа". Основное действие, которое будет выполняться в течении всего времени, пока заказ будет находится в этом состоянии, это "Внести информацию о клиенте". Переход из этого состояния в состояние Открыт произойдет только при выполнении сторожевого условия "инициализация завершена".
В состоянии Открыт имеется выходное действие и переход в себя. Переход в себя означает, что событие инициирует переход, происходит выход из текущего состояния, выполняется некоторое действие, после чего происходит возврат в исходное состояние. Поскольку при переходе в себя происходит выход из состояния и повторный вход в него же, то выполняется действие, ассоциированное с переходом, и, кроме того, действие при входе в состояние. В состоянии Открыт к заказу добавляются новые пункты, причем их можно добавить только в том случае, если есть незаполненные пункты. В состоянии Закрыт присутствует только внутреннее действие - "Выписать счет". В это состояние заказ переходит из состояния Открыт только при выполнении сторожевого условия "заполнены все позиции заказа". Выход из этого состояния и переход в конечное произойдет при наступлении события "счет выписан".