Краткое описание Данный вариант использования описывает оформление кассиром покупки. Основной поток событий 1. Кассир заводит новый чек, дисплей высвечивает нулевую сумму. 2. Для каждого товара выполняется: //2.1 Система предлагает считать штрих-код товара. 2.2. Кассир сканирует штрих-код. 2.3. Система отправляет серверу запрос, содержащий штрих-код товара. //Сервер выдает системе данные(цена, наименования, штучный или весовой) о товаре. 2.4. Система высвечивает на дисплее наименование и цена товара. 2.5. Кассир вводит количество штук или вес товара. // Система рассчитывает стоимость товара. 2.6. Система высвечивает на дисплее стоимость и добавляет ее к сумме чека. /*2.8. Если кассир удаляет текущую позицию в чеке, то выплняется подчиненный поток "Удаление текущей позиции"//то текущей становится предыдущая позиция. */ Кассир инициирует закрытие чека. //проверка водки 3. Если в чеке есть спиртное, система выдает напоминание кассиру напоминание проверить документы покупателя. //3. Если продавцу предъявляют дисконтную карту, то выполнякется подчиненный поток "обработка дисконтной карты". 4. Кассир вводит полученную сумму. 5. Терминал рассчитывает сдачу, высвечивает ее на дисплее и печатает чек. 6. Система сохраняет данные чека для последующей отправки на сервер. 7. Система обновляет значение текущей выручки. альтернативный поток к п 7 : 7. Если значение выручки становится больше либо равно 200 000 рублей, система уведомляет кассира о том, что надо сдать выручку. 7.1. Кассир приостанавливает работу. 7.2. Кассир сбрасывает значение выручки до 5000 рублей. 7.3. Кассир возобновляет работу. Подчиненные потоки событий 3. Обработка дисконтной карты 3.1. Кассир сканирует карту. 3.2. Система отправляет серверу запрос, содержащий штрих-код карты. 3.3. Сервер выдает системе данные о скидке (тип скидки: на весь чек, либо на отдельные позиции, процент скидки) 3.4. Система пересчитывает текущую стоимость покупки. /* 2.3,2.7.2A. Получение информации о товарах и скидках с сервера супермаркета. 1. Система запрашивает связь с сервером. 2. Сервер подтверждает, что связь установлена. 3. Система отправляет серверу запрос, содержащий штрих-код. 4. В зависимости от того, какие данные запрашивает система, 4.1. . 4.2. . 5. Система заканчивает сеанс связи с сервером. */ /*2.5A. Товар штучный. 1. Кассир вводит количество штук. 2.5Б. Товар весовой. 1. Кассир вводит вес. */ Альтернативные потоки 2.2A Удаление текущей позиции. 2.3,2.7 A.2A. Cвязь с сервером не установилась. 1. Система предлагает кассиру либо попробовать связаться с сервером еще раз, либо отказаться от доступа к серверу. 2. В сооветствии с выбором кассира либо выполнение переходит в пункт 1 подчиненного потока 2.3,2.7 A., либо вариант использования завершается. 2.3,2.7.2A.3.1A. Сервер не может найти нужные данные о товаре. 1. Сервер сообщает системе о том, что нужных данных нет. 2. Система выдает сообщение о том, что данные не найдены. 3. Система завершает сеанс связи с сервером 4. Управление переходит на шаг 2 основного потока. 2.3,2.7.2A.3.1Б. Сервер не может найти нужные данные о скидке. 1. Сервер сообщает системе о том, что нужных данных нет. 2. Система выдает сообщение о том, что данные не найдены. 3. Система завершает сеанс связи с сервером. 4. Управление переходит на шаг 2.7 основного потока. 2.5A. Данный товар- крепкий спиртной напиток, и уже позднее, чем 22.00. 1. Система выдает информацию о том, что данный товар не будет внесен в чек. 2. Управление переходит на шаг 2.1 основного потока. 4А. введена сумма, меньшая, чем требуется для данной покупки. 1. Система рассчитывает, какой суммы не хватает, чтобы оплатить покупку. 2. Система выдает сообщение с недостающей суммой и предлагает либо ввести еще денег, либо отменить покупку. 3. Если кассир отменяет покупку, введенная сумма обнуляется и аннулируется чек. Вариант использования завершается неуспехом. Иначе управление переходит на шаг 5 основного потока. Предусловия Кассир должен быть авторизован. В терминале должна быть введена начальная выручка для сдачи. Постусловия Если вариант использования выполнен успешно, в системе сохранены данные о новом чеке, увеличилась текущая выручка. Иначе состояние системы не меняется.