В настоящее время я работаю над диаграммой последовательности для аукционной системы, которая действует как посредник между клиентами и компаниями.
Однако у меня возникли трудности с дизайном системы, и я был бы признателен за некоторые рекомендации, особенно когда я пытаюсь подтянуть диаграмму UML.
Вся идея системы заключается в том, что клиент создает бронирование через мобильное приложение, которое загружается в приложение аукциона, где компании могут делать ставки на него. Если компания выигрывает торги, приложение аукциона предоставляет им ценовой диапазон, в котором они могут предложить цену покупателю (например, если компания А выигрывает тендер на стрижку газона клиента X, тогда приложение аукциона устанавливает диапазон цен от 15 до 20 долларов США). за работу, и расценки компании А должны быть между этим диапазоном). Затем клиент может принять предложение и продолжить работу или отклонить ее.
Действуйте следующим образом:
1. Customer creates a booking on booking app
1.1 Booking app saves booking (recursive as customer can save more than one
booking)
1.2 Job is uploaded to auction app where other companies can bid for it. In the
next step, a company will bid for job.
In the event of an unsuccessful bid:
2. Company makes bid for job on auction application
2.1 Message sent to company telling them that they failed to win the job
In the event of a successful bid:
3. Company makes bid for job on auction application
3.1 Message sent to company telling them that they won the job
4. Auction app sends price limit message for the job that the company has just
won (to prevent overcharging). In the next step, the company needs to set a
quote
In the event that a customer rejects a set quote
5. Company sets quote for the job that they won
5.1 Auction app sends the quote message to the auction app
6. Quote displayed to customer on mobile application
7. Customer rejects the quote
7.1 The rejection message is sent to the auction app
8. The rejection message is displayed to the company
In the event that a customer accepts a set quote
9. Company sets quote for the job that they won
9.1 Auction app sends the quote message to the auction app
10. Quote displayed to customer on mobile application
11. Customer accepts the quote
11.1 The acceptance message is sent to the auction app
12. The acceptance message is displayed to the company
13. End booking process
Это схема UML:
У меня есть 3 вопроса:
- Когда
BidSuccess=False
(т. е. заявка компании на вакансию не удалась), они могут принять участие в торгах на другую работу и выиграть (таким образом, войдя в ветвьBidSuccess=True
). Можно ли это передать на диаграмме последовательности. Если да, то как? - Кажется, что в шагах 5-13 много избыточности, может ли схема последовательности быть лучше разработана здесь? Как мне объединить 5,5.1,6 и 9,9.1,10, но позволить им возвращать разные результаты в зависимости от
CustomerAcceptQuote
. - Возможно, меня больше всего беспокоит, поставил ли я цикл/альтернативную защиту на место. Я думаю, что я использовал их правильно, но, пожалуйста, поправьте меня, если это не так.
Спасибо, что нашли время, чтобы прочитать это.