Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LAB_5_UML_ПРЕЦЕДЕНТЫ.doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
207 Кб
Скачать
☆

Прецедент Покупка лимонада

Исполнителем в данном прецеденте является покупатель, желающий приобрести ста­кан лимонада. Он инициирует сценарии, опуская монету в автомат. Затем он выбирает сорт лимонада. Если все идет нормально, автомат выдает ему стакан с выбранным напитком.

Помимо последовательности выполняемых действий заслуживают внимания также и другие факторы. Какие предусловия необходимы для реализации сценария Покупка лимонада? Наиболее очевидным является ощущение жажды. Какие посту­словия реализуются после выполнения сценария? Самым очевидным является на­личие лимонада у покупателя.

Рис. 1. Прецедент определяет набор сценариев для достиже­ния цели, полезной исполнителю. В рассматриваемом при­мере одним из прецедентов является Покупка лимонада

Является ли описанный сценарий единственным для прецедента Покупка лимонада? Мне приходят в голову и другие сценарии. Возможно, выбранный покупа­телем сорт лимонада отсутствует или у покупателя нет точной суммы, соответствую­щей стоимости покупки. Как автомат должен обрабатывать эти сценарии?

Давайте вернемся к сценарию, когда требуемый сорт лимонада отсутствует. Он явля­ется альтернативным при реализации этого прецедента. Пользователь инициирует пре­цедент, опуская монету в автомат. Затем он выбирает сорт лимонада. Поскольку вы­бранный сорт отсутствует, покупателю выдается соответствующее сообщение. В идеале пользователю нужно предложить выбрать другой сорт лимонада или вернуть деньги. Пользователь выберет другой сорт лимонада или потребует вернуть деньги. Постуслови­ем этого сценария является полученный стакан лимонада или возвращенные деньги.

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

Теперь рассмотрим сценарий отсутствия нужной суммы. Как обычно, пользователь инициирует прецедент и выбирает сорт лимонада. Допустим, требуемый сорт лимона­да имеется. Тогда автомат должен выдать стакан лимонада и сдачу. Если сдача отсут­ствует, автомат должен вернуть деньги с предложением опустить точную сумму. Пре­дусловие для этого сценария совпадает с предыдущим. Постусловием является стакан лимонада со сдачей либо возвращенная сумма денег.

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

Дополнительные прецеденты

Мы рассмотрели пример с автоматом по продаже лимонада с точки зрения потре­бителя — покупателя. Другие пользователи дополняют картину эксплуатации автома­та. Этот автомат обслуживает специалист, пополняющий запасы лимонада, и инкасса­тор. Зачастую такие функции выполняет один и тот же человек. Названные специали­сты реализуют еще два прецедента: Заправка автомата и Сбор денег.

Рассмотрим прецедент Заправка автомата. Специалист инициирует этот прецедент через заданные интервалы времени (скажем, раз в две недели). Он разблокирует систему защиты автомата (возможно, специальным ключом), открывает автомат и заполняет емко­сти для сиропа. Затем пополняет запас мелочи для сдачи. После этого он закрывает авто­мат и включает систему защиты. Предусловием этого прецедента является истечение за­данного интервала времени, а постусловием — новый запас продукта для продажи.

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

Заметим, что при описании прецедента нас не интересует способ его реализации. В рассматриваемом примере мы не касаемся внутреннего устройства автомата. Не важно также как работает механизм дозировки или выполняется процесс оплаты. Мы описываем, как автомат выглядит с точки зрения пользователя.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]