Главная страница « Информация « ВВМПО «

Варианты задания II по ВВМПО. 2020-21 учебный год


«Нет проблем! Мы можем покончить с этой ерундой за выходные!»
Э. Йордон «Путь камикадзе»

Требования


В каждом из предложенных вариантов требуется при помощи среды Visual Paradigm построить UML модель программного обеспечения. Выполнять задание следует самостоятельно, не используя решения, выполненные другими студентами. При выявлении заимствований из других студенческих моделей задание не может быть зачтено.
Процесс создания модели состоит из нескольких этапов, выполняемых по желанию, по окончании каждого из которых производится сдача полученных результатов (если предыдущий этап не сдан, то следующий за ним не принимается):

  1. Создание модели требований к системе.

  2. Создание эскизной модели системы.

  3. Создание проектной модели системы.

  4. Составление отчёта по модели.

Процесс моделирования должен проходить так, как это описано в методическом пособии (см. Visual Paradigm). Структура модели должна соответствовать структуре, предусмотренной Rational Unified Process.

При работе над моделью требований к системе (1й этап) рекомендуется сначала создать эскиз и отправить на проверку. Эскизом является скриншот диаграммы вариантов использования, на которую помещены все действующие лица и все варианты использования. При создании эскиза не следует выделять включённые и/или расширяющие варианты использования. Цветом на диаграмме следует отметить два ключевых ВИ, которые Вы собираетесь реализовывать в ходе работы над заданием. Скриншот диаграммы ВИ следует отправить через форму в Moodle. После согласования с лектором можно продолжить работу по первому этапу.

Сдаваемая после выполнения первого этапа модель должна удовлетворять следующим требованиям. В модели (отправленной через Moodle как один VPP-файла проекта) должна присутствовать диаграмма вариантов использования системы. В отдельном дополнительном PDF-файле (или DOC-файле) должны быть объединены глоссарий проекта, составленный в виде таблицы, а также тексты описаний всех действующих лиц и всех вариантов использования с диаграммы ВИ из модели. Описания должны быть составлены на русском языке. Полные описания двух ключевых вариантов использования должны предшествовать кратким описаниям остальных вариантов использования. Описание действующего лица должно коротко (в одну-две строки) сообщать о роли данного лица. Два ключевых варианта использования должны быть описаны полностью, остальные – лишь кратко (одним-двумя абзацами). Выбирать ключевые варианты использования следует так, чтобы они относились к основному функционалу системы. Вход в систему, как и выход из неё не могут быть назначены ключевыми вариантами использования. В кратком описании варианта использования указываются основные действия (шаги) системы и действующих лиц, а также перечисляются особые случаи, соответствующие альтернативным потокам. Краткое описание не подробно, так в нём нет шагов альтернативных потоков. Полное описание (ключевого) варианта использования должно включать в себя краткое описание, предусловие, постусловие, потоки событий (основной и альтернативные – один или более) и постусловие. Постусловие должно быть не пусто, оно составляется из двух частей: гарантии успеха (что истинно по окончании основного потока) и минимальных гарантий (что истинно всегда, в том числе при неуспехе). Для каждого из двух ключевых вариантов использования должны быть составлены диаграммы деятельности. Каждая такая диаграмма моделирует основной поток и альтернативные потоки своего варианта использования.

До конца мая 2021 г. можно заработать дополнительные баллы, добавив в модель помимо двух ключевых вариантов использования 1 или 2 дополнительных ключевых ВИ. Каждый дополнительный ключевой ВИ в модели требований (полное описание + диаграмма деятельности) даёт 2 балла. Сделанное сверх указанной границы не оценивается, не рассматривается. Присланное летом 2021 г. или позднее не приносит баллов. Штрафы за дополнительное моделирование не начисляются. При отправке результатов информация о дополнительном моделировании должна быть явно сообщена в дополнительном PDF-файле (или DOC-файле). Вход в систему, как и выход из неё не могут быть выбраны в качестве дополнительных ключевых ВИ.

При работе над эскизной моделью системы (2й этап) рекомендуется сначала создать первую версию диаграммы ключевых абстракций и первую версию реализации одного из ключевых ВИ. Файл проекта следует отправить через Moodle-форму. После согласования с лектором можно продолжить работу по второму этапу.

Сдаваемая после выполнения второго этапа модель должна удовлетворять перечисленным ниже требованиям. В Analysis Model должна быть создана диаграмма KeyAbstractions, на которой отображены все классы – ключевые абстракции, а также перечислимые типы и связи между ними. Следует создать внутри Analysis Model пакет, названный Usecase realizations. В этом пакете следует для каждого из двух ключевых вариантов использования, выбранных и описанных на первом этапе, создать отдельную кооперацию, содержащую относящиеся к реализации этого варианта использования элементы модели:

  • диаграммы последовательности, реализующие основной и альтернативный потоки варианта использования;

  • диаграмму классов View of Participating Classes, на которой представлены все классы анализа, участвующие в реализации этого варианта использования.

Все классы анализа следует разместить непосредственно в пакете Analysis Model (на верхнем уровне), а не внутри коопераций. Созданные диаграммы могут содержать необходимые пояснения в виде примечаний. В сложных потоках событий ветвления и циклы должны быть промоделированы с помощью комбинированных фрагментов на диаграммах последовательности. Не следует увлекаться усложнением потоков -- зацикливанием, дублированием и проч.. Если диаграмма не помещается на экране FullHD (или помещается, но не читается из-за мелкого размера текста), то следует разделить её на части и вторую часть сделать отдельной диаграммой, на которую сделать ссылку на диаграмме с первой частью.

До конца мая 2021 г. можно заработать дополнительные баллы, добавив в модель анализа помимо реализаций двух ключевых вариантов использования реализации 1 или 2 дополнительных, при условии, что это те же дополнительные ВИ, которыми уже была ранее пополнена модель требований. Каждая добавленная реализация (диаграмма VOPC + диаграммы последовательности для потоков событий) даёт 4 балла. Сделанное сверх указанной границы не оценивается, не рассматривается. Присланное летом 2021 г. или позднее не приносит баллов. Штрафы за дополнительное моделирование не начисляются. При отправке результатов PDF-файле должна быть явно сообщена информация о дополнительном моделировании.

При работе над проектной моделью системы (третий этап) требуется:

  1. Разбить систему на 3 уровня (Application, Business Services, Middleware).

  2. Создать структуру пакетов внутри Design model, как это описано в методичке.

  3. Создать диаграмму размещения внутри Deployment View. Для встроенных систем (варианты со словом «терминал» в названии и т. п.) диаграмма размещения должна изображать связи между процессором и устройствами, а также узлами внешних систем. В остальных вариантах диаграмма размещения показывает узлы вычислительной среды системы, узлы внешних систем, связи между ними и размещение процессов разрабатываемой системы по узлам. Для упрощения допускается и рекомендуется рисовать среды выполнения без объемлющих их аппаратных узлов.

  4. Разместить классы по пакетам в Design model, как это описано в методичке и рассказано в лекциях.

  5. Выделить не менее чем одну подсистему. В каких-то вариантах предусмотрена работа с устойчивыми объектами. Её следует поручить подсистеме обеспечения устойчивости (т. е., взаимодействия с БД на основе RDBMS-JDBC). В каких-то вариантах предусмотрен обмен данными / запросами с внешней программной системой. Его реализацию следует поручить подсистеме взаимодействия с внешним ПО на основе XMLRPCInterchange. Одну из подсистем следует спроектировать, как это описано в методичке и рассказано на лекциях.

  6. Следует создать интерфейс подсистемы, дать полные сигнатуры его операциям. Описание интерфейса поместить в PDF-файл, где указать краткое описание (ответственность подсистемы) и таблицу с описанием операций (полная сигнатура, назначение операции).

  7. Для подсистемы создать класс-фасад («subsystem proxy») и при необходимости другие классы подсистемы. На отдельной диаграмме классов показать связи между классами подсистемы, а также связи между классами подсистемы и элементами модели, лежащими вне подсистемы. Создать диаграммы последовательности для описания реализации операций интерфейса подсистемы. При наличии в интерфейсе нескольких однотипных операций следует промоделировать по одной операции каждого типа (например, один «read», один «update», один «delete», один «create»).

  8. Изменить созданные ранее реализации вариантов использования, указав на них линии жизни экземпляров классов, реализующих интерфейс подсистемы (типом таких объектов должен быть указан интерфейс подсистемы).

  9. Уточнить связи между классами системы, заменяя необязательные ассоциации на зависимости, указывая направления у всех оставшихся ассоциаций, выбирая при необходимости тип для ассоциаций «часть -- целое»: агрегация или композиция, уместно добавляя квалификаторы и/или свойства полюсов ассоциаций (ordered, nonunique).

  10. Уточнить типы атрибутов классов, их мощности, начальные значения, области действия и дать полные сигнатуры операциям классов.

  11. Каждый класс (ключевую абстракцию, участника реализаций вариантов использования, класс подсистемы) снабдить описанием, помещённым в общий текстовый файл, где ранее описан интерфейс подсистемы. Описание класса должно включать в себя краткое указание ответственности класса, описания атрибутов и операций (с указанием для каждого атрибута и каждой операции полной сигнатуры и его/её назначения). Не описывайте тривиальные операции с очевидной сигнатурой: геттеры, сеттеры, конструкторы без параметров.

  12. Для описания поведения экземпляров класса со сложным поведением построить диаграмму состояний. В проектной модели должна быть хотя бы одна нетривиальная диаграмма состояний с действиями. Не следует выбирать для составления диаграммы состояний граничный класс. Подходящим кандидатом для этого, как правило, является класс-ключевая абстракция или «subsystem proxy»-класс подсистемы.

  13. Построить диаграмму деятельности для моделирования сложного метода с альтернативами и/или циклами. В проектной модели должна быть хотя бы одна нетривиальная диаграмма деятельности, моделирующая метод какой-либо операции некоторого класса.

  14. Разработать схему базы данных и отобразить её в виде диаграммы классов со стереотипами из специализированного профиля UML (во всех вариантах).

Можно заработать дополнительные баллы, добавив в проектную модель помимо реализаций двух ключевых вариантов использования реализации 1 или 2 дополнительных, при условии, что это те же дополнительные ВИ, которыми уже были ранее пополнены модель требований и модель анализа. Каждая добавленная реализация (VOPC, диаграммы последовательности для потоков событий) даёт 4 балла. Либо можно смоделировать вторую подсистему в дополнение к первой, при условии, что подсистемы базируются на разных архитектурных механизмах. Реализация второй подсистемы даёт 4 балла. Сделанное сверх указанной границы не оценивается, не рассматривается. Присланное летом 2021 г. или позднее не приносит баллов. Штрафы за дополнительное моделирование не начисляются. При отправке результатов в PDF-файле должна быть явно сообщена информация о дополнительном моделировании.

Требования по составлению отчёта опубликованы отдельно [html]. Составление отчёта не обязательно, его можно выполнить по желанию.

Список вариантов


1. Терминал оплаты

2. Терминал супермаркета

3. Терминал кинотеатра

4. Кассовый терминал городского транспорта

5. Авиабилетный терминал

6. Валидатор городского транспорта

7. Терминал выдачи заказов

8. Терминал пополнения

9. Турникет станции МЦД

10. Терминал курьерской службы

11. Терминал службы «единого окна»

12. Система курьерской службы

13. Онлайновые отзывы

14. Сайт сети пиццерий

15. Терминал пиццерии

16. Ломбард

17. Онлайновая театральная касса

18. Билетный терминал театра

19. Онлайновая музейная касса

20. Билетный терминал музея

Вариант 1. Терминал оплаты


Терминал оплаты «Эму» – это автомат для приёма платежей по банковским картам. В его состав входят следующие устройства: дисплей, клиентская консоль с кнопками, устройство для считывания / записи данных на банковских картах, принтер для печати справок, сервисная консоль с кнопками. Терминал подключён линиями связи с центральным сервером и с банковской системой. Обслуживание клиента начинается с приглашения ввести свой логин и код. Логином является 11-тизначный телефонный номер, совпадающий с номером мобильного телефона клиента. Код представляет собой четырёхзначное число. Затем терминал оправляет запрос на центральный сервер для проверки правильности кода. Если код указан неверно, пользователю предоставляются ещё две попытки для ввода правильного кода. После ещё двух неудач терминал заново запрашивает логин и код, блокируя при этом на 15 минут попытки входа в систему с тем же логином. После ввода правильного кода клиент может осуществить безналичный платёж со своей банковской карты в пользу разных получателей.

Терминал предлагает клиенту выбрать получателя платежа, сумму платежа, ввести другие реквизиты. Затем терминал просит клиента ввести банковскую карту в считыватель. Клиент вводит карту. Если карту удалось прочесть, то терминал запрашивает PIN. По введённому PIN терминал вычисляет некоторое другое число (PVV) и вместе с данными карты, считанными с её магнитной полосы, и другими сведениями о платеже отправляет в банковскую систему. Ответ на этот запрос может быть положительным или нет. Если попытка была неуспешной, то платёж не осуществляется. Клиенту возвращается банковская карта. Сеанс обслуживания клиента заканчивается. Терминал ожидает нового клиента. Платёж успешен только в том случае, если реквизиты платежа были верны, и если банковская система подтвердила успешную оплату. В этом случае терминал печатает чек о проведённом платеже. Чек выдаётся клиенту. Клиенту возвращается банковская карта. Сеанс обслуживания клиента заканчивается. Терминал ожидает нового клиента. За один сеанс клиент может осуществить не более одного платежа.

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

Сервисная консоль, которая используется обслуживающим персоналом, находится в специальном отделении терминала, закрываемом на замок. С консоли осуществляется доступ к конфигурация сетевого соединения с центральным сервером, с банковской системой, а также диагностика работоспособности устройств в составе терминала и заряжка бумажной ленты в принтер. Всё то время, когда используется сервисная консоль, обслуживание клиентов невозможно.

Внешними по отношению к системе являются центральный сервер, банковская система.

Вариант 2. Терминал супермаркета


Терминал (автоматизированная касса самообслуживания покупателей) обеспечивает расчёт с клиентами супермаркета «Шестёрочка». Терминал снабжён дисплеем, консолью с кнопками, устройством чтения штрих-кода (сканером), печатающим устройством, выдающим чеки, линиями связи с сервером супермаркета и с банком, устройством чтения банковских карт.

Очередной покупатель, подходя к терминалу, нажимает кнопку "Новый чек". Дисплей терминала высвечивают нулевую сумму. Каждый купленный товар снабжён штрих-кодом, который считывается сканером, когда покупатель подносит товар к нему. На дисплее высвечивается наименование и стоимость товара и текущая сумма чека. Когда все сведения о купленных товарах введены, покупатель нажимает кнопку "Расплатиться". При этом терминал высвечивает на дисплее приглашение вставить банковскую карту в приёмник. Клиент вводит карту. Если карту удалось прочесть, то терминал запрашивает PIN. По введённому PIN терминал вычисляет некоторое другое число (PVV) и вместе с данными карты, считанными с её магнитной полосы, и другими сведениями об оплате отправляет в банковскую систему. Варианты ответов на запрос: операция одобрена банком, операция невозможна, так как карта блокирована, операция невозможна, так как превышен кредитный баланс, операция невозможна из-за сбоя. Если операция одобрена, терминал печатает чек с указанием даты и времени покупки, всех купленных товаров (для каждого печатается код товара, наименование товара, стоимость товара, сумму скидки на товар, если есть), общей суммы скидки, итоговой суммы к оплате, сведений о проведённой операции и использованном терминале. Затем терминал пересылает полные сведения о чеке серверу данных супермаркета, после чего он готов обслужить следующего клиента. Если операция невозможна, клиент может попробовать оплатить другой картой или отказаться от покупки совсем.

Данные о товарах, ценах и скидках, торговый терминал получает с сервера супермаркета. В ходе выполнения этого варианта задания должна быть разработана схема базы данных о товарах, ценах, скидках, чеках (покупках). В связи с изменением в законодательстве торговый терминал должен особым образом обрабатывать покупку спиртных напитков. С 23-00 до 10-00 в чек не могут быть добавлены товары, являющиеся напитками, содержащими спирт в количестве более 5% объёма.

У терминала помимо рабочего режима работы есть сервисный режим. Терминал может быть переключён в сервисный режим обслуживающим персоналом при помощи специального штрих-кода. В сервисном режиме можно настраивать параметры сетевых соединений с сервером данных и с банком, заряжать бумажную ленту в принтер. Всё то время, когда терминал переключён в сервисный режим, обслуживание клиентов невозможно. Обратное переключение в рабочий режим производится обслуживающим персоналом также с помощью специального штрих-кода.

Внешними по отношению к системе являются сервер супермаркета и банк.

Вариант 3. Терминал кинотеатра


Терминал кинотеатра предоставляет потенциальным зрителям сведения о расположении залов, кафе и других объектов кинотеатра, о текущих киносеансах, а также позволяет приобретать билеты либо распечатывать электронные билеты, ранее купленные онлайн. В состав терминала входят следующие устройства: сенсорный дисплей, часы, кардридер, линия связи с банком, принтер для билетов, линия связи с сервером киносети.

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

Для приобретения билета зритель должен указать дату сеанса, время, название фильма, номер зала, тип билета (взрослый, детский). Цена билета зависит от формата фильма (2D, 3D, IMAX), от зала, в котором проходит сеанс, от времени (утренние сеансы дешевле дневных, а дневные дешевле вечерних), от дня недели (с пятницы по воскресенье сеансы дороже), от расположения места в зале (ближе к середине находится так называемая vip-зона). Далее терминал демонстрирует схему зала и предлагает выбрать от 1 до 5 свободных мест в зале. О том, какие места свободны, терминал узнаёт от сервера киносети. Далее терминал просит зрителя ввести банковскую карту в считыватель. Зритель вводит карту. Если карту удалось прочесть, то терминал запрашивает PIN. По введённому PIN терминал вычисляет некоторое другое число (PVV) и вместе с данными карты, считанными с её магнитной полосы, и другими сведениями об оплате отправляет в банковскую систему. Варианты ответов на запрос: операция одобрена банком; операция невозможна, так как карта блокирована; операция невозможна, так как превышен кредитный баланс. Если операция одобрена, то терминал информирует сервер киносети о проданных билетах, терминал печатает билеты, указывая дату, тип билета, зал, начало сеанса, название фильма, ряд, место и цену. Банковская карта возвращается зрителю. Напечатенные билеты выдаются зрителю. На этом покупка билета завершается и на экран выводится главное меню. Продажа через терминал билетов на ближайший сеанс прекращается в момент начала этого сеанса. Если операция не одобрена, то зритель может попробовать оплатить другой картой или отказаться от покупки совсем.

Терминал может выдать афишу с перечнем демонстрируемых фильмов. О каждом фильме сообщается название, жанр, краткое описание, сведения о съемочной группе, режиссёре, актёрах-исполнителях главных ролей. Ознакомившись с афишей, зритель может вернуться в главное меню.

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

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

Терминал может быть использован для возврата электронных билетов. При возврате зритель сообщает свой номер мобильного телефона и код, полученный при покупке. Терминал получает с сервера киносети сведения о приобретённых билетах. Если эти билеты не были распечатаны, их можно вернуть. Зритель должен указать, какие именно билеты он возвращает (необязательно все). После подтверждения от зрителя терминал просит вставить а ридер банковскую карту. Процедура проверки PIN совпадает с описанной выше. Банковская система получает запрос на возврат средств. Если операция одобрена, то сервер киносети получает сведения о возвращённых билетах. Банковская карта возвращается зрителю. Возврат билетов возможен не позднее чем за полчаса до начала сеанса.

Следует создать схему базы данных сервера киносети со сведениями о сеансах и билетах.

Внешними по отношению к системе являются банк, сервер киносети.

Вариант 4. Кассовый терминал городского транспорта


Терминал установлен на кассе городского транспорта. С это помощью осуществляются операции с транспортными картами, используемыми для оплаты проезда. В состав терминала входят следующие устройства: информационный дисплей, клавиатура, принтер для печати чеков о совершённых операциях, устройство чтения и записи данных на транспортные карты, устройство чтения данных с банковских карт, линии связи с сервером городского транспорта и с банковской системой.

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

На карты, выпущенные в оборот и не находящиеся в стоп-листе (стоп-лист хранится на сервере городского транспорта), может быть записан билет. Кассир узнаёт вид билета, который пассажир хочет приобрести и записать на пластиковую карту (1 поездка, 2 поездки, 5 поездок, 10 поездок, 20 поездок, 60 поездок, 1 день, 5 дней, 30 дней, 90 дней, 365 дней, пополнение на сумму от 50 до 5000 рублей на баланс карты-"кошелька", при этом сумма пополнения не может быть такой, чтобы в «кошельке» оказалось более 5000 рублей; если «кошелёк» полон до отказа, то внесение в него средств невозможно). Если пассажир передумал, то покупка билета может не состояться. После того как кассир указал билет или сумму пополнения, терминал высвечивает на дисплее сумму к оплате. Цены на билеты терминал получает автоматически в начале каждых суток своей работы, направляя запрос серверу городского транспорта. Пассажир должен оплатить указанную сумму либо банковской картой, либо банкнотами. Кассир принимает от клиентов к оплате бумажные купюры (номиналом 10, 50, 100, 200, 500, 1000, 2000, 5000 рублей). Пассажир может передумать и попросить вернуть купюры, переданные кассиру. Кассир должен выполнить возврат купюр по требованию пассажира. После возврата купюр оплата завершается неуспехом. При оплате банковской картой клиент вставляет карту в устройство чтения данных с банковских карт. Кассир инициирует оплату кнопкой на клавиатуре. Если карту удалось прочесть, то терминал запрашивает PIN у пассажира. По введённому PIN терминал вычисляет некоторое другое число (PVV) и вместе со стоимостью покупки и данными карты, считанными с её магнитной полосы (тип карты, номер карты, срок действия карты, имя и фамилия владельца), отправляет в банковскую систему. В ответ может придти либо подтверждение успешной оплаты, либо отказ и причины отказа. При отказе пассажиру предоставляются ещё не более чем 2 попытки оплаты той же или другой банковской картой. Если и они не успешны, то оплата завершается неуспехом.

В терминале имеется информационный дисплей, на котором высвечивается текущая сумма денег, принятых к оплате, и сообщения для кассира, такие как: «выберите вид билета для покупки», «выберите сумму для пополнения электронного кошелька», «карта в стоп-листе», «заберите транспортную карту», «заберите банковскую карту».

После удачной покупки терминал печатает чек о покупке, указывая в нём дату и время, № терминала, № транспортной карты, тип проданного билета и его цену (или сумму пополнения «кошелька»). Принятые в уплату банкноты кассир помещает в кассовое хранилище банкнот. Вместе с чеком кассир выдаёт пассажиру транспортную карту, на которую записан приобретённый билет (записана пополненная сумма «кошелька»). Пассажир забирает её и банковскую карту, если та использовалась для оплаты. Если пассажир передал кассиру банкноты на сумму, превышающую цену билета, терминал по окончании покупки высвечивает сумму сдачи, и кассир выдаёт пассажиру сдачу банкнотами из кассового хранилища денег. Сведения о проведённой операции передаются на сервер городского транспорта и хранятся там для фискального отчёта. После успешной передачи на сервер сведения об операции удаляются из памяти терминала.

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

Пассажир может обратиться к кассиру с просьбой заменить транспортную карту, пришедшую в негодность. Убедившись, что карта не исправна (с неё не читаются данные), кассир может вывести её из обращения. Он выбирает в меню терминала соответствующий пункт и сообщает номер карты, напечатанный на ней. Терминал запрашивает с сервера городского транспорта о том, находится ли карта в стоп-листе, и если это не так, то каково не используемое количество поездок / оставшийся срок годности карты / сумма на балансе карты-"кошелька". Если карта не в стоп-листе, то кассир возвращает карту пассажиру, выдаёт денежную компенсацию, передаёт напечатанный терминалом чек. Терминал передаёт на сервер сообщение о том, что карта выведена из обращения. Карту кассир утилизирует -- разрезает ножницами пополам.

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

Данные, которые нужны терминалу для работы и которые не хранятся на сервере, следует считать постоянно находящимися в памяти терминала (доступ к ним посредством JDBC и т. п. не требуется). Внешними по отношению к терминалу являются сервер городского транспорта, банковская система.

Вариант 5. Авиабилетный терминал


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

Для приобретения билета авиапассажир должен указать дату, город вылета, город прилёта, класс обслуживания (экономический, бизнес-класс, первый класс). При желании, авиапассажир может указать номер рейса. Цена билета зависит от класса обслуживания, номера рейса, времени покупки (билеты, приобретаемые за 60 суток до вылета, предлагаются со скидкой 20%). Далее терминал выводит список подходящих рейсов, на которых есть незанятые места, того класса обслуживания, который нужен пользователю. Эти сведения терминал получает от сервера авиакомпании. Затем авиапассажир должен выбрать рейс (если он не сделал этого ранее, указав известный ему номер). Авиапассажир указывает сведения о владельцах билетов (ф., и., о, № паспорта -- без этих полных сведений билеты не продаются). Единовременно одному клиенту система продаёт не более чем 3 билета на один рейс. На своё имя авиапассажир не может купить более чем один билет на один и тот же рейс, если время вылета совпадает. Допускается приобретение авиапассажиром нескольких билетов на своё собственное имя на разные рейсы, вылетающие в разное время. Сообщив данные, авиапассажир должен вставить в ридер банковскую карту. После вставки банковской карты он должен ввести четырёхзначный PIN. Если введён неверный PIN, приобретение билетов прекращается, а карта возвращается. Если PIN верен, терминал по линии связи с банком отправляет запрос на операцию для оплаты билетов. Варианты ответов на запрос: операция одобрена банком; операция невозможна, так как карта блокирована; операция невозможна, так как превышен кредитный баланс. Если операция одобрена, сервер авиакомпании информируется о проданных билетах, терминал печатает билеты, указывая в каждом № билета, класс обслуживания, № рейса, сведения о прилёте и вылете (аэропорты, даты и время) и цену. Карта возвращается авиапассажиру, билеты выдаются ему. На этом покупка билета завершается. Продажа билетов на ближайшие рейсы через терминал прекращается за 2 часа до вылета рейса.

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

Терминал может выдать расписание рейсов на определённую дату между двумя указанными авиапассажиром городами. О каждом рейсе сообщается номер, аэропорт вылета, аэропорт прилёта, время вылета, время прилёта, длительность рейса. Ознакомившись с расписанием, авиапассажир может вернуться в главное меню.

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

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

Терминал может быть использован для возврата электронных билетов. При возврате авиапассажир сообщает свой номер мобильного телефона и код, полученный при покупке. Терминал получает с сервера авиакомпании сведения о приобретённых билетах. Если эти билеты не были распечатаны, их можно вернуть. Авиапассажир должен указать, какие именно билеты он возвращает (необязательно все). После подтверждения от авиапассажира терминал просит вставить а ридер банковскую карту. Процедура проверки PIN совпадает с описанной выше. Банковская система получает запрос на возврат средств. Если операция одобрена, то сервер авиакомпании получает сведения о возвращённых билетах. Возврат билетов возможен не позднее чем за 12 часов до вылета.

Вариант задания предусматривает разработку схемы базы данных сервера авиакомпании, в которой хранятся сведения о расписании, тарифах, наличии мест и билетах.

Внешними по отношению к системе являются банк, сервер авиакомпании.

Вариант 6. Валидатор городского транспорта


Валидатор контролирует оплату проезда пассажирами на маршрутах городских автобусов, троллейбусов, трамваев. Валидатор имеет устройство, осуществляющее чтение из запись данных с бесконтактных транспортных карт и/или банковских карт, часы, устройство подачи звуковых сигналов, дисплей для вывода сведений пассажиру, линию связи с сервером городского транспорта, линию связи с банковской системой, устройство беспроводного обмена данными с мобильным терминалом контролёра.
Рассмотрим работу валидатора при валидации поездки пассажиром. В начале на дисплее высвечивается "Приложите карту для валидации". Пассажир должен приложить бесконтактную транспортную карту (либо банковскую карту) к считывающему устройству. Каждая транспортная карта имеет срок годности, по истечении которого она не может быть использована для прохода. Транспортные карты бывают трёх типов: с фиксированным количеством поездок; с неограниченным количеством поездок; карта-"кошелёк". Валидатор считывает с транспортной карты данные: срок годности карты, номер карты, тип карты и количество поездок. Если данные не удаётся считать, или карта просрочена, или количество поездок нулевое, то валидатор подаёт предупредительный звуковой сигнал и валидация заканчивается неуспешно. Если данные считаны и подходят для валидации поездки, то валидатор проверяет, не находится ли карта в стоп-листе. Для этого он отправляет запрос на сервер городского транспорта. Карты из стоп-листа непригодны для валидации поездок. Валидатор сообщает о таких картах, высвечивая на дисплее "Карта в стоп-листе". Если карта не в стоп листе, то валидация поездки продолжается. С карты с фиксированным количеством поездок списывается одна поездка, на дисплее высвечивается количество оставшихся поездок. Валидация успешна. Если карта имеет неограниченное количество поездок, то при валидации поездки картой такого типа поездки не списываются, а на дисплее высвечивается срок, до которого действует карта. Во избежание злоупотреблений с картами без лимита поездок в течение трёх минут после их валидации должны блокироваться другие попытки валидировать поездку той же картой (этим валидатором или любым другим). Работа с картами-"кошельками" отличается тем, что на них записывается не количество поездок, а некоторая денежная сумма. Карта-"кошелёк" пригодна для валидации проезда, если сумма на ней не меньше, чем цена поездки. При валидации с использованием такой карты сумма на карте уменьшается на цену поездки и высвечивается оставшаяся остаток. После списывании цены поездки остаток средств на карте не может стать ниже нуля. Цену поездки валидатор ежедневно запрашивает у сервера городского транспорта в начале рабочего дня. В течение дня цена поездки не меняется, так что достаточно одного запроса к серверу.

При валидации поездки банковской картой валидатор считывает данные с приложенной карты (номер, срок действия, сведения о владельце) и посылает запрос банковской системе на списание цены поездки. В запросе используются реквизиты, считанные с карты. Банковская система может либо подтвердить, либо отвергнуть запрос на списание. В первом случае валидация завершается успешно, и на дисплее высвечивается списанная сумма и сообщение "Оплата произведена успешно". Во втором случае валидация не успешна. В остальном банковская карта с точки зрения валидатора похожа на карту-"кошелёк".

Валидатор заносит в свою память сведения о попытках валидации (как успешных, так и безуспешных) и картах (транспортных или банковских), использованных при попытках валидации. В конце рабочего дня он передаёт всю информацию, накопленную за день, на сервер городского транспорта. После успешной передачи на сервер данные о попытках валидации удаляются из памяти валидатора.

Контроллёры используют валидатор для проверки оплаты проезда. Мобильный терминал контролёра подносится к валидатору, и на него передаются данные обо всех валидациях за последние 60 минут. По окончании передачи на дисплее высвечивается "Передача данных завершена успешно". Данные после передачи остаются в памяти валидатора, чтобы быть переданными на сервер в конце рабочего дня.

Пассажир может использовать валидатор в справочных целях, чтобы получить сведения о количестве поездок / сроке годности / остатке средств на своей транспортной карте. Для этого пассажир перед тем как приложить карту нажимает кнопку на корпусе валидатора. Затем, после прикладывания карты, валидатор считывает с неё данные и высвечивает их на дисплее.

Сервер городского транспорта может синхронизировать время и дату на часах валидатора с серверными.

Валидатор не имеет собственной базы данных, тем не менее, следует смоделировать схему базы данных сервера городского транспорта, где хранятся сведения о маршрутах автобусного, троллейбусного и трамвайного городского транспорта, об установленных валидаторах, о попытках валидации и картах, по которым эти попытки совершены.

Данные, которые нужны валидатору для работы и которые не хранятся на сервере, следует считать постоянно находящимися в памяти валидатора (доступ к ним посредством JDBC и т. п. не требуется). Внешними по отношению к валидатору являются сервер городского транспорта, банковская система.

Вариант 7. Терминал выдачи заказов


Терминал выдачи заказов -- это автоматизированный пункт обслуживания клиентов интернет-магазина. С его помощью клиенты получают свои заказы. Клиент может отказаться от получения заказа, не подошедшего ему по какой-то причине. Получение заказа осуществляется следующим образом: Терминал ожидает очередного клиента, высвечивая приглашение ввести номер мобильного телефона. Клиент набирает на клавиатуре терминала запрошенный номер. Терминал через шлюз сотовой связи отправляет по введённому номеру SMS c 6тизначным кодом и выводит запрос кода на свой экран. Клиент получает код на мобильный телефон и сообщает код терминалу. Если ввод верен, выдача продолжается, иначе сеанс обслуживания завершается неуспехом. В продолжение обслуживания происходит проверка того, что внутрь терминала курьер уже разместил заказ/заказы клиента с введённым номером телефона. Если проверка неудачна, то терминал запрашивает сервер интернет-магазина, чтобы выяснить, есть ли у клиента заказы, готовые к выдаче и в каких терминалах они находятся. Сведения, сообщённые сервером в ответе, выводятся клиенту, чтобы он мог забрать свои заказы в других терминалах.

Если в терминала есть заказы клиента, то терминал высвечивает их список на своём дисплее и предлагает выбрать один из заказов для выдачи. О каждом заказе сообщается его номер, дата создания заказа, стоимость заказа, перечень названия товаров из позиций заказа, статус заказа: оплачен / не оплачен. Клиент должен выбрать один заказ для получения. Клиент может отказаться от получения, и в этом случае сеанс завершается. После выбора заказа для получения, на экран выводится схема, поясняющая расположение дверцы ячейки терминала, из которой клиент может его забрать. Для предоплаченных заказов оплата не требуется. Если заказ должен быть оплачен при получении, то терминал просит клиента ввести банковскую карту в считыватель. Клиент вводит карту. Если карту удалось прочесть, то терминал запрашивает PIN. По введённому PIN терминал вычисляет некоторое другое число (PVV) и вместе с данными карты, считанными с её магнитной полосы, и другими сведениями об оплате отправляет в банковскую систему. В ответ может придти либо подтверждение успешной оплаты, либо отказ. При отказе клиенту предоставляются ещё не более чем 2 попытки оплаты той же или другой картой. Если и они неуспешны, то оплата завершается неуспехом, заказ не выдаётся. После успешной оплаты (или при предоплаченном заказе) открывается автоматический замок на дверце нужной ячейки. Клиент открывает дверцу ячейки, достаёт заказ. Терминал запрашивает клиента, забирает ли он заказ целиком или отказывается ли он от заказа целиком. После выбора клиента обслуживание продолжается. Если заказ целиком забран, то терминал закрывает дверцу, запирает её замок, сообщает на сервер интернет-магазина об успешно выданном заказе. Если у клиента не осталось других заказов для получения, то терминал завершает обслуживание, высвечивает приглашение и ожидает следующего клиента. Если у одного клиента несколько заказов, то он может забрать продолжая свой сеанс. При возврате заказа целиком клиент помещает его обратно в открытую ячейку и сообщает об этом терминалу. Дверца ячейки автоматически закрывается, её замок запирается. Терминал отправляет сообщение на сервер интернет-магазина об отказе клиента получать заказ. Терминал не должен повторно предлагать к получению заказы, от которых клиент ранее отказался. Вопросы компенсации оплаты возвращённых заказов клиент решает без использования терминала.

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

Курьер сообщает, что хочет забрать возвращённый заказ. Терминал выводит перечень ячеек, занятых возвращёнными заказами, и предлагает выбрать одну из них. Получив данные, терминал отпирает замок выбранной курьером ячейки. Курьер открывает ячейку и забирает содержимое. Терминал закрывает дверцу ячейку и запирает её замок. Он информирует сервер интернет-магазина о том, что возвращённый заказ направляется на склад с курьером. По окончании работы курьер должен перевести терминал обратно в режим обслуживания клиентов.

Моделированию подлежит терминал. Сервер интернет-магазина, банковская система и шлюз сотовой связи находятся за границами моделируемой системы, т. е. не являются её частями. Несмотря на это, дополнительно следует создать схему базы данных сервера интернет-магазина со сведениями о клиентах, товарах, заказах, терминалах выдачи. Предполагается, что в самом терминале нет собственной БД, а значит, следует смоделировать внешнюю БД.

Вариант 8. Терминал пополнения


Терминал осуществляет пополнение транспортных карт пассажирам городского транспорта. Используются многоразовые пластиковые карты, которые могут быть получены пассажирами в пунктах выдачи. В состав терминала входят следующие устройства: информационный дисплей с экранной клавиатурой, приёмник банкнот, хранилище банкнот и лоток для их выдачи, принтер для печати чеков о совершённых операциях, устройство чтения и записи данных на пластиковые транспортные карты, устройство чтения данных с банковских карт, линии связи со сервером городского транспорта и с банковской системой.

Пассажир начинает пополнение карты с того, что он вставляет карту в приёмник транспортных карт. Если карту удалось прочесть, то терминал запрашивает сервер городского транспорта о том, не находится ли карта в стоп-листе. Если карта включена в стоп-лист, то терминал возвращает карту, информирует клиента о причине отказа, и сеанс завершается неуспехом. Иначе терминал высвечивает сведения о карте: список ранее записанных на неё билетов, упорядоченных по убыванию даты их записи на карту.

Далее пассажир может выбрать вид билета, который он хочет приобрести и записать на транспортную карту (1 поездка, 2 поездки, 5 поездок, 10 поездок, 20 поездок, 60 поездок, 1 день, 5 дней, 30 дней, 90 дней, 365 дней). Пассажир может оказаться от покупки. Также вместо покупки билета пассажир может выбрать пополнение «электронного кошелька» на транспортной карте на выбранную им сумму (от 50 до 5000 рублей с шагом 50 рублей; при этом сумма пополнения не может быть такой, чтобы в итоге в «кошельке» оказалось более 5000 рублей; если «кошелёк» полон до отказа, то внесение в него средств невозможно). После того как пассажир выбрал покупку или пополнение, терминал высвечивает на дисплее сумму к оплате. Цены на билеты терминал получает в начале каждых суток от сервера городского транспорта. Пассажир должен оплатить указанную сумму либо банковской картой, либо банкнотами. Терминал принимает к оплате бумажные купюры (номиналом 10, 50, 100, 200, 500, 1000, 2000, 5000 рублей). Пассажир может передумать и попросить вернуть введённые им купюры. Терминал должен выполнить возврат купюр по требованию пассажира. Возврат введённых денег производится через лоток выдачи банкнот. Возврат всех введённых денег не должен производиться после выдачи транспортной карты с записанным билетом. Терминал должен корректно работать, не допуская получения пассажирами неоплаченных покупок и пополнений.

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

В терминале имеется информационный дисплей, на котором высвечивается текущая сумма денег, принятых к оплате, и сообщения для клиентов, такие как: «введите банкноты или банковскую карту», «выберите вид билета для покупки», «выберите сумму для пополнения электронного кошелька», «введённой суммы недостаточно», «карта в стоп-листе», «заберите транспортную карту», «заберите банковскую карту», «заберите сдачу», «заберите деньги».

После удачной покупки терминал печатает чек о покупке, указывая в нём дату и время, № терминала, № транспортной карты, тип проданного билета и его цену (или сумму пополнения «кошелька»). Принятые в уплату банкноты терминал помещает в хранилище банкнот. Вместе с чеком терминал выдаёт пассажиру транспортную карту, на которую записан приобретённый билет (записана пополненная сумма «кошелька»), и банковскую карту, если та была введена пассажиром. Если пассажир ввёл банкноты на сумму, превышающую цену билета, терминал по окончании покупки выдаёт сдачу. Выдача сдачи производится через лоток выдачи банкнот. За один сеанс пассажир может сделать не более одной покупки или не более одного пополнения.

В течение рабочего дня терминал накапливает данные о сеансах обслуживания пассажиров (удачных и неудачных). В конце суток эти сведения передаются серверу городского транспорта, после чего удаляются из памяти терминала.

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

Данные, которые нужны терминалу для работы и которые не хранятся на сервере, следует считать постоянно находящимися в памяти терминала (доступ к ним посредством JDBC и т. п. не требуется). Внешними по отношению к терминалу являются сервер городского транспорта, банковская система.

Вариант 9. Турникет станции МЦД


Турникет контролирует вход пассажиров внутрь станции Московских центральных диаметров (МЦД), выход пассажиров со станции и взимает плату за проезд. Турникет имеет устройство, осуществляющее чтение из запись данных с бесконтактных транспортных карт, два набора створок из ударопрочного стекла для перекрывания прохода, часы, три оптических датчика для контроля прохода пассажира, устройство подачи звуковых сигналов, индикаторы "Проход" и "Стоп", индикатор количества оставшихся поездок, линию связи с сервером городского транспорта. Датчики прохода расположены следующим образом: один датчик находится до передних створок, ещё один находится между передними и задними створками, и третий датчик находится после задних створок.

Турникет работает в одном из трёх режимов: "Вход", "Выход", "Блокировка".

Рассмотрим работу турникета в режиме "Вход". В начальном состоянии турникета зажжён индикатор "Стоп", индикатор "Проход" потушен, передние и задние створки закрыты. Если датчик, расположенный до передних створок, или датчик, расположенный после задних створок, посылает сигнал, то турникет подаёт предупредительный звуковой сигнал и остаётся в исходном состоянии. Для прохода пассажир должен поднести бесконтактную транспортную карту к считывающему устройству. Каждая транспортная карта имеет срок годности, по истечении которого она не может быть использована для прохода. Транспортная карта может быть занесена в стоп-лист. Сведения об этом турникет запрашивает у сервера городского транспорта. Транспортные карты бывают трёх типов: с фиксированным количеством поездок; с неограниченным количеством поездок; карта-"кошелёк". Турникет считывает с транспортной карты данные: срок годности карты, номер карты, тип карты и количество поездок. Турникет запрашивает сервер городского транспорта о том, находится ли карта в стоп-листе. Если данные не удаётся считать, или если карта просрочена, или если количество поездок нулевое, или если карта занесена в стоп-лист, то турникет подаёт предупредительный звуковой сигнал и остаётся в исходном состоянии. Иначе с карты с фиксированным количеством поездок списывается одна поездка, индикатор "Стоп" гаснет, зажигается индикатор "Проход", индикатор количества оставшихся поездок высвечивает текущее значение, открываются передние створки и пассажир может дойти до задних створок турникета, которые пока закрыты. Получив от датчика между передними и задними створками сигнал, что пассажир прошёл внутрь, турникет закрывает передние створки и открывает задние створки. Когда датчик после задних створок сообщает, что пассажир вышел из турникета, задние створки закрываются, и турникет готов осуществить проход следующего пассажира. Если карта имеет неограниченное количество поездок, то при проходе с картой такого типа индикатор количества оставшихся поездок высвечивает символ ∞ (бесконечность), а поездки не списываются. Во избежание злоупотреблений с картами без лимита поездок в течение пяти минут после входа пассажира через любой турникет станции МЦД должны блокироваться остальные попытки входа с той же картой через все турникеты той же станции. Работа с картами-"кошельками" отличается тем, что на них записывается не количество поездок, а некоторая денежная сумма. Карта-"кошелёк" пригодна для оплаты проезда, если сумма на ней больше чем цена поездки. При входе по такой карте с неё списывается цена поездки.

Работа турникета в режиме "Выход" такова: В начальном состоянии турникета зажжён индикатор "Проход", индикатор "Стоп" потушен, передние и задние створки закрыты. Если датчик, расположенный после задних створок, посылает сигнал, то турникет то турникет подаёт предупредительный звуковой сигнал и остаётся в исходном состоянии. Для прохода пассажир должен поднести бесконтактную транспортную карту к считывающему устройству. Турникет считывает с транспортной карты данные: срок годности карты, номер карты, тип карты. Турникет запрашивает сервер городского транспорта о том, находится ли карта в стоп-листе. Если данные не удаётся считать, или если карта просрочена, или если карта занесена в стоп-лист, то турникет подаёт предупредительный звуковой сигнал и остаётся в исходном состоянии. Иначе турникет открывает задние створки и пассажир может пройти дальше до передних створок, которые пока закрыты. Получив от датчика между передними и задними створками сигнал, что пассажир прошёл внутрь, турникет закрывает задние створки и открывает передние створки. Когда датчик до передних створок сообщает, что пассажир вышел из турникета, передние створки закрываются, и турникет возвращается готов осуществить выход следующего пассажира. Если в начальном состоянии срабатывает датчик до передних створок, турникет подаёт предупредительный звуковой сигнал и остаётся в исходном состоянии. Таким образом он препятствует входу пассажиров через него.

Работа турникета в режиме "Блокировка": В начальном состоянии турникета зажжён индикатор "Стоп", индикатор "Проход" потушен, передние и задние створки закрыты. Если один из датчиков, расположенных до передних створок, или после задних створок, посылает сигнал, то турникет подаёт предупредительный звуковой сигнал и остаётся в исходном состоянии. На использование пассажирских и/или банковских карт турникет в этом режиме не реагирует.

В режимах работы "Вход" и "Выход" турникет заносит в свою память сведения обо всех попытках входа и выхода (как удачных, так и безуспешных) и картах, использованных при проходах. В конце рабочего дня он передаёт всю информацию, накопленную за день, на сервер городского транспорта.

Переключение между режимами "Вход", "Выход", "Блокировка" осуществляется обслуживающим персоналом при помощи специальных сервисных бесконтактных карт. Считав с такой карты данные: номер сервисной карти и номер режима работы, в который следует переключиться, турникет из любого режима переходит в требуемый режим. Переключение режима турникета не может происходить во время незавершённого прохода пассажира (входа или выхода).

Сервер городского транспорта может обновить цену поездки, может синхронизировать время и дату на часах турникета с серверными.

Турникет не имеет собственной базы данных, тем не менее, следует смоделировать схему внешней реляционной базы данных сервера городского транспорта, где хранятся сведения о станциях МЦД, об установленных на станциях турникетах, о ценах поездки, актуальных на разные даты, о входах и выходах через турникеты и картах, по которым эти проходы совершены, а также о текущем стоп-листе, в который занесены транспортные карты.

Данные, которые нужны турникету для работы и которые не хранятся на сервере, следует считать постоянно находящимися в памяти турникета (доступ к ним посредством JDBC и т. п. не требуется). Внешним по отношению к турникету является сервер городского транспорта.

Вариант 10. Терминал курьерской службы


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

В режиме обслуживания клиентов терминал ожидает очередного клиента, высвечивая приглашение ввести уникальный идентификатор отправления. Клиент набирает на клавиатуре терминала запрошенный идентификатор. Если на сервере курьерской службы зарегистрировано отправление с таким идентификатором, то терминал сообщает сведения об отправлении: тип, отправитель, получатель, адрес отправки, адрес получателя, стоимость пересылки, объявленная стоимость (если есть), сумма страховки (если есть), история операций с отправлением. Виды операций: принято на доставку в каком-то пункте службы (с указанием пункта), ожидает отправки в пункте приёма (с указанием пункта), отправлено по городу (с указанием города), отправлено в другой город (с указанием города), прибыло в город (с указанием города), прибыло в пункт вручения (с указанием пункта), ожидает вручения в пункте выдачи (с указанием пункта), вручено получателю, выдано курьеру для доставки на дом, возвращается отправителю, возвращено отправителю. По каждой операции указывается её дата, время, место.

Если запрошенное отправление клиента готово к выдаче в пункте курьерской службы, где установлен терминал, то терминал предлагает подтвердить, что клиент готов оформить выдачу отправления. Отправление может быть без оплаты либо с оплатой наложенным платежом. Если отправление должно быть оплачено, то терминал просит клиента ввести банковскую карту в считыватель. Клиент вводит карту. Если карту удалось прочесть, то терминал запрашивает PIN. По введённому PIN терминал вычисляет некоторое другое число (PVV) и вместе с данными карты, считанными с её магнитной полосы, отправляет в систему оплаты. В ответ может придти либо подтверждение успешной оплаты, либо отказ. При отказе клиенту предоставляются ещё не более чем 2 попытки оплаты той же или другой картой. Если и они неуспешны, то оплата завершается неуспехом. При успешной оплате распечатывается чек об оплате. Распечатывается и выдаётся талон электронной очереди, где указан № талона и № окна, где будет произведена выдача. Талоны имеют сквозную нумерацию в течение суток, стартующую от 1. № окна назначается терминалом в зависимости от количества талонов, связанных с этим окном, выдача по которым пока не произведена. Терминал завершает обслуживание клиента, высвечивает приглашение и ожидает следующего клиента. Если у одного клиента несколько готовых к выдаче отправлений, то он может забрать их в течение нескольких сеансов работы с терминалом.

Работник курьерской службы может использовать терминал на свой лад. С помощью специальной карты, помещаемой в считыватель, он переводит терминал в служебный режим и сообщает свой № окна для обслуживания клиентов. В этом режиме работник вводит сведения об операциях с отправлениями. Работник сканирует штрих-код отправления и выбирает тип операции с ним (см. выше). Сведения о дате, времени и месте терминал заполняет самостоятельно. Дополнительные сведения могут быть добавлены работником. Когда ввод завершён и подтверждён, сведения отправляются на сервер курьерской службы. От сервера может придти подтверждение или отказ. Если вводимая операция некорректна, то сервер должен прислать отказ, так как он отслеживает корректность последовательности операций с отправлением (например, уже выданное отправление не может быть позднее возвращено отправителю). Для исправления подобной ситуации работник может запросить весь список операций с отправлением и внести необходимые изменения. По окончании работы работник должен перевести терминал обратно в режим обслуживания клиентов.

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

Сервис-инженер может провести техническое обслуживание терминала. С помощью специальной карты, помещаемой в считыватель, он инициирует режим т/о. В этом режиме сервис-инженер может переконфигурировать и проверить параметры сетевых соединений с сервером, с платёжной системой. Сервис-инженер может зарядить бумажную ленту в принтер терминала, если она закончилась или на исходе. По окончании работы сервис-инженер должен перевести терминал обратно в режим обслуживания клиентов.

Моделированию подлежит только сам терминал. Сервер курьерской службы и платёжная система находятся за границами моделируемой системы, т. е. не являются частями системы. Несмотря на это, дополнительно следует создать схему базы данных сервера курьерской службы, где хранятся сведения о клиентах, отправлениях, пунктах, операциях с отправлениями. Предполагается, что в самом терминале нет собственной БД, а значит, следует смоделировать внешнюю БД.


Вариант 11. Терминал службы «единого окна»


Терминалы устанавливаются в отделениях городской службы «единого окна» для автоматизированного обслуживания клиентов. С помощью терминала клиенты могут оплатить свои штрафы и/или пени, получить свои документы и/или справки, заявки на оформление которых они оставили ранее, оставить заявки на оформление документов. Терминалы также используются клерками для ввода сведений об операциях по заявкам клиентов, отчёта о выполненных приёмах клиентов, работы со своим расписанием и передачи сведений обо всём перечисленном на сервер городской службы.

Терминал ожидает очередного клиента, высвечивая приглашение ввести номер мобильного телефона. Клиент набирает на клавиатуре терминала запрошенный номер. Если на сервере городской службы зарегистрирован клиент с таким номером, то терминал через шлюз сотовой связи отправляет по введённому номеру SMS c 4хзначным кодом и выводит запрос кода на свой экран. Клиент получает код на телефон и вводит его в терминал. Если ввод верен, сеанс обслуживания продолжается, иначе он завершается неуспехом. В продолжение обслуживания происходит запрос на сервер о штрафах и заявках клиента с введённым номером телефона. Список штрафов и список заявок выводятся клиенту. О своей заявке клиент может узнать историю операций с ней. Виды операций: заявка принята, заявка обрабатывается, заявка отклонена из-за неполных и/или недостоверных сведений, документ оформлен, документ готов к выдаче заявителю, документ вручён заявителю. По каждой операции указывается её дата, время, а также, возможно, дополнительные сведения.

Если в отделении службы «единого окна», где установлен терминал, есть заявки клиента, по которым документы готовы к выдаче, то терминал предлагает выбрать одну из них для оформления выдачи. На экран выводятся сведения о выдаваемом документе и указание клерков, которые могут выдать документ и имеют свободный слот в своём расписании в текущие сутки. Документ может быть оформлен без оплаты либо с оплатой пошлины по банковской карте. Если пошлина должна быть уплачена, то терминал просит клиента ввести банковскую карту в считыватель. Клиент вводит карту. Если карту удалось прочесть, то терминал запрашивает PIN. По введённому PIN терминал вычисляет некоторое другое число (PVV) и вместе с данными карты, считанными с её магнитной полосы, отправляет в систему оплаты. В ответ может придти либо подтверждение успешной оплаты, либо отказ. При отказе клиенту предоставляются ещё не более чем 2 попытки оплаты той же или другой картой. Если и они неуспешны, то сеанс обслуживания завершается неуспехом. При успехе распечатывается чек об уплате пошлины. Распечатывается и выдаётся клиенту чек об уплате пошлины и талон, по которому клерк выдаст доумент. Терминал завершает обслуживание клиента, высвечивает приглашение и ожидает следующего клиента. Если у одного клиента несколько готовых к выдаче документов, то он может оплатить пошлину и забрать их в течение нескольких сеансов работы с терминалом.

Оплата штрафов и/или пеней клиентом происходит сходим образом. Клиент выбирает штраф из высвечиваемого терминалом списка. Далее следует попытка оплаты с помощью банковской карты (см. выше). Штрафы оплачиваются по одному. Сведения об оплате передаются на сервер городской службы. Клиент может оставить с помощью терминала заявку для оформления справки и/или документа. В заявке указывается тип (справка / документ), наименование, а также дополнительные сведения, необходимые для оформления (например, СНИЛС, ИНН, номер свидетельства о рождении и проч.). Сведения об оставленной заявке терминал пересылает на сервер городской службы.

Клерк использует терминал на свой лад. С помощью специальной карты, помещаемой в считыватель, он переводит терминал в служебный режим. В этом режиме клерк вводит сведения об операциях с заявками клиентов. Клерк выбирает одну заявку из списка, высвеченного терминалом и выбирает тип операции с ним (см. выше). Сведения о дате и времени операции терминал заполняет самостоятельно. Дополнительные сведения могут быть добавлены клерком. Когда ввод завершён и подтверждён, сведения отправляются на сервер городской службы. От сервера может придти подтверждение или отказ. Если вводимая операция некорректна, то сервер должен прислать отказ, так как он отслеживает корректность последовательности операций (например, по отклонённой заявке не могут быть оформлены и/или выданы документы; после выдачи документов нельзя отклонить заявку и т. п.). Для исправления подобной ситуации клерк может запросить весь список операций по заявке и внести необходимые изменения. Также клерк отмечает в терминале выполненные им приёмы клиентов. Приём не может быть помечен выполненным заранее, до его начала. Клер может работать с данными о своём расписании работы на неделе. В течение недели он должен отработать 30 часов. Если есть заявки клиентов на приём на какое-то время, то клерк не может изменить своё расписание так, что это время станет не рабочим. Сведения запрашиваются и сохраняются на сервере городской службы. По окончании работы клерк должен перевести терминал обратно в режим обслуживания клиентов.

Сервис-инженер может провести техническое обслуживание терминала. С помощью специальной карты, помещаемой в считыватель, он инициирует режим т/о. В этом режиме терминал поочерёдно проводит самодиагностику всех устройств в его составе: считывателя, экрана, принтера, соединений с сервером, с платёжной системой, со шлюзом сотовой связи. Отчёт с итогами самодиагностики выводится на экран. Сервис-инженер может распечатать его, если принтер исправен. Также сервис-инженер может переконфигурировать параметры сетевых соединений с сервером, с платёжной системой, со шлюзом сотовой связи. Сервис-инженер может зарядить бумажную ленту в принтер, если она закончилась или на исходе. По окончании работы сервис-инженер должен перевести терминал обратно в режим обслуживания клиентов.

Моделированию подлежит терминал. Сервер, платёжная система и шлюз сотовой связи находятся за границами моделируемой системы и моделированию в качестве её частей не подлежат. Несмотря на это, дополнительно следует создать схему базы данных сервера городской службы, где хранятся сведения о клиентах, заявках, операциях с заявками и др.. Предполагается, что в самом терминале нет собственной БД, а значит, следует смоделировать внешнюю БД.

Вариант 12. Система курьерской службы


Система курьерской службы автоматизирует доставку отправлений получателям. Чтобы стать клиентом службы, нужно в ней зарегистрироваться, указав логин-email, пароль, ф., и., о., адрес, паспортные данные. Если форма заполнена верно, e-mail не совпадает с e-mail'ом другого клиента, регистрационная запись о новом клиенте создаётся, клиент получает в свой электронный почтовый ящик сообщение для подтверждения e-mail со сгенерированным случайным кодом. Чтобы подтвердить e-mail, клиент должен воспользоваться ссылкой из полученного по e-mail сообщения. По ссылке открывается форма, в которую клиент вбивает свой логин, пароль и присланный ему код. Если все данные сообщены верно, то клиент получает полноценный доступ к службе. Теперь он может «входить» и использовать все возможности, предоставляемые клиентам.

Так, клиент может отслеживать отправленные им или направленные ему отправления по уникальному идентификатору отправления, заведённому системой. Клиент не может отслеживать и/или получать сведения об отправлениях, к которым не имеет отношения (не является отправителем или получателем). Клиент указывает идентификатор в запросе на отслеживание. Ответ на запрос либо содержит данные о том, что сведения об отправлении отсутствуют, либо о том, какие операции с отправлением зарегистрированы в службе. Виды операций: принято на доставку в каком-то пункте службы (с указанием пункта), ожидает отправки в пункте приёма (с указанием пункта), отправлено по городу (с указанием города), отправлено в другой город (с указанием города), прибыло в город (с указанием города), прибыло в пункт вручения (с указанием пункта), ожидает вручения в пункте выдачи (с указанием пункта), вручено получателю, выдано курьеру для доставки на дом, возвращается отправителю, возвращено отправителю. По каждой операции указывается её дата, время, место, а также, возможно, дополнительные сведения. Так при принятии на доставку сообщаются полные сведения об отправлении (см. ниже). Данные об операциях с отправлениями служба принимает от своих операторов через служебные терминалы.

После обработки запроса отправление добавляется в список отправлений клиента, чтобы в следующий раз он мог выбрать его из списка, не вводя снова идентификатор. Отправление остаётся в списке до тех пор, пока клиент не решит удалить его оттуда. При получении данных о новой операции с отправлением служба посылает уведомление по электронной почте клиента. Служба отслеживает корректность последовательности операций с отправлением (например, уже переданное получателю отправление не может быть позднее возвратиться отправителю), а также уведомляет об истечении контрольных сроков пересылки: 15 суток для междугороднего отправления и 5 суток для внутригородского; а также сроков хранения в месте вручения: 10 суток. Сведения о некорректных операциях служба отказывается принимать от служебных терминалов. Работники, вводящие данные через терминалы, должны исправить некорректные сведения и заново отправить их, и тогда они будут приняты службой.

Об отправлении служба сообщает пользователю полные сведения: тип, отправитель (фио и e-mail), получатель (фио и e-mail), адрес отправителя, адрес получателя, стоимость пересылки, объявленная стоимость (если есть), сумма страховки (если есть). Служба контролирует, что к данным об отправлении получает доступ либо получатель, либо отправитель, либо работник за служебным терминалом, но никто другой.

По отправлениям, прибывшим в пункт вручения, клиент-получатель может с помощью системы заказать доставку курьером на дом. При оформлении заказа служба предлагает клиенту выбрать время, удобное для доставки и сообщает стоимость. Работники меняют статусы выполненным заказам на доставку, пользуясь служебным терминалом. По отправлениям, пока ешё не прибывшим в пункт вручения, клиент-получатель может с помощью системы выбрать и назначить другой пункт вручения -- один из соседних с указанным ранее.

Если клиент забыл свой пароль, то система может прислать ему по e-mail ссылку для восстановления доступа с новым паролем. Если клиент меняет e-mail и/или пароль в своих настройках, то это также контролируется с помощью сообщения электронной почты. Если клиент не пользуется службой более 365 суток с момента последнего «входа», то считается, что он больше не является клиентом и все его данные удаляются. Если клиент закончил работу со службой, то он «выходит» из неё.

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

Вариант 13. Онлайновые отзывы


Сайт отзывов позволяет покупателям помогать друг другу, делясь впечатлениями от приобретённых ими товаров. Пользоваться сайтом могут как зарегистрированные, так и незарегистрированные пользователи. Вторые могут только читать содержимое сайта и не могут добавлять какие-либо сведения. Чтобы зарегистрироваться, нужно заполнить анкету, указав e-mail в качестве логина, пароль и псевдоним. Если форма заполнена верно, e-mail не совпадает с e-mail'ом другого пользователя, то регистрационная запись о новом пользователе создаётся, и пользователь получает в свой электронный почтовый ящик сообщение для подтверждения e-mail со сгенерированным системой кодом. Чтобы подтвердить e-mail, пользователь должен воспользоваться ссылкой из полученного по e-mail сообщения. По ссылке открывается форма, в которой заполняется логин, пароль и присланный код. Если все данные сообщены верно, то пользователь получает полноценный доступ к системе. Теперь он может «входить» и использовать все возможности, предоставляемые зарегистрированным пользователям.

Зарегистрированный пользователь, зайдя на сайт, может либо написать новый отзыв, либо оценить чужой отзыв, либо прокомментировать чужой отзыв. Размещая отзыв, пользователь указывает заголовок отзыва, текст отзыва, JPG-изображения, приложенные к отзыву, товар, о котором оставлен отзыв, свою оценку товара по 10-тибалльной шкале. Товар может быть выбран из каталога товаров, в который попадают все товары, о которых были оставлены отзывы ранее. Если товара нет в каталоге, то пользователь может указать сведения о товаре в своём отзыве: название, категория, производитель, ссылку на веб-страницу с товаром на сайте производителя (может отсутствовать).

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

Чтобы сайт не засоряли посторонними текстами, любой пользователь, зайдя на сайт, может пожаловаться на чужой отзыв, или чужой комментарий к своему или чужому отзыву. Отзывы и комментарии, набравшие более 2 жалоб, высвечиваются в списке модератора сайта. Модератор может либо удалить содержимое, на которое пришли жалобы, либо признать жалобы необоснованными. По решению модератора может быть приостановлено действие аккаунта зарегистрированного пользователя бессрочно, либо на указанное модератором количество суток. Модераторы могут обнаружить, что товары в каталоге дублируются, и указать на это системе. По указанию модератора система объединяет сведения о дублирующихся товарах (2 или более), оставляя единую запись о товаре, под которой объединены все отзывы, ранее оставленные под товарами-дублями.

Сайт позволяет искать товары в каталоге по категории, словам из названия, производителю. Результаты выдачи могут быть отсортированы по среднему арифметическому оценок, указанных в отзывах о товарах.

Зарегистрированные пользователи могут добавлять (и удалять) авторов отзывов в список своих друзей. Им доступна лента отзывов, оставленных пользователями-друзьями. Лента сортируется/фильтруется по дате публикации отзыва, категории товара, оценке товара из отзыва. Помимо ленты друзей всем доступна общая лента отзывов, которая сортируется/фильтруется также.

Следует разработать схему реляционной базы данных системы. Все необходимые для работы сведения хранятся в самой системе, а не в каком-либо внешнем хранилище. Внешним по отношению к системе является SMTP-сервер.

Вариант 14. Сайт сети пиццерий


Сеть пиццерий с доставкой «Pizza Hit» открывает сайт для автоматизированного онлайнового обслуживания клиентов. Воспользоваться сайтом может любой клиент, имеющий клубную карту и доступ в Веб. Выдача карт осуществляется офлайн в пиццериях. При этом работники пиццерий вводят с помощью терминала данные о клиенте (ф. и. о., дату рождения, e-mail, мобильный телефон, адрес). У разных клиентов не может совпадать e-mail, номера мобильных и сочетания ф. и. о. с датой рождения. Клиенты -- полные тёзки -- встречаются, но редко. На карту наносится ID клиента в виде QR-кода и записи цифрами. Терминал пересылает данные на сервер сайта, где они сохраняются. Клиент может войти на сайт, если верно введёт свой e-mail и ID с клубной карты. После входа клиент может оформить заказ пиццы с доставкой на дом либо с получением в одной из пиццерий (заказ на вынос). В любом заказе с доставкой указан адрес доставки и телефон клиента. В заказе на вынос указана пиццерия, в которой будет выдан заказ. В любом заказе указан его номер, общая стоимость заказа и непустой список позиций. В каждой позиции указана конкретная пицца и заказанное количество таких пицц. Про любую пиццу известно её название, цена, а также непустой набор начинок, тип основы (тонкая, пышная, обычная), вид (открытая пицца или закрытая). Начинки отличаются признаком (обязательная, дополнительная) и разновидностью (томаты, перец, оливки, салями, ветчина, базилик, орегано, моцарелла, пармезан). Например, пицца Napoli -- это открытая пицца на тонкой основе с таким набором начинок: томаты, моцарелла, пармезан и базилик. В пиццу начинка может быть положена в одинарном, двойном или тройном объёме по выбору клиента.

Общая стоимость заказа равна сумме цен позиций и цены доставки. Цена позиции равна цене её пиццы, умноженной на количество пицц в позиции. Цена пиццы зависит от её названия и от того, положены ли в неё какие-либо начинки в более чем ординарном объёме. Для каждой начинки известна сумма наценки за двойной и за тройной её объем. Все цены хранятся на сервере сайта.

По окончании оформления заказа клиенту по e-mail или на мобильный телефон в виде SMS (в зависимости от его настроек) отправляются сведения о заказе. Оформленный заказ на вынос клиент должен оплатить. Заказ с доставкой оплачивается через курьера. При оплате заказа сайт просит клиента ввести сведения о банковской карте (номер, дату истечения срока действия, сведения о держателе карты и трёхзначный контрольный код. Клиент вводит сведения о карте. Полученные от него данные карты отправляются в платёжную систему в составе запроса на оплату. В ответ может придти либо подтверждение успешной оплаты, либо отказ. При отказе клиенту предоставляются ещё не более чем 2 попытки оплаты той же или другой картой. Если и они неуспешны, то оплата заказа завершается неуспехом. При успехе заказ помечается как оплаченный.

К серверу сайта могут приходить запросы и/или данные от терминалов, установленных в пиццериях. Так, терминалы могут запрашивать сведения о клиентах, сведения ранее введённых о заказах. Терминал может прислать запрос на обновление статуса заказа (при выполнении заказа, при отмене заказа, при оплате заказа). Терминалы могут присылать данные о новых заказах, которые должны быть сохранены на сервере сайта.

Администратор сайта может изменить общий прайс-лист сети пиццерий. Изменённый прайс-лист начинает действовать с наступлением новых суток. Ежесуточно в период с 00-00 по 00-30 сервер сайта должен связаться со всеми терминалами и выслать актуальные данные о ценах на пиццы и начинки.

Моделированию подлежит сайт (сервер). Платёжная система, терминалы, шлюз сотовой сети для отправки SMS, SMTP-сервер находятся за границами моделируемой системы и моделированию в качестве её частей не подлежат. Следует создать схему базы данных сервера «Pizza Hit», где хранятся сведения о клиентах, заказах, ценах.

Вариант 15. Терминал пиццерии


Сеть пиццерий с доставкой «Pizza Hit» установила в своих пиццериях терминалы для автоматизированного обслуживания клиентов. Воспользоваться терминалом может любой клиент, имеющий клубную карту. Карта подносится к сканеру QR-кодов, после чего терминал узнаёт ID клиента и запрашивает сведения о нём у сервера «Pizza Hit». В ответ может придти отказ, если ID неверен, либо подтверждение и сведения о клиенте. Во втором случае обслуживание продолжается. Клиент может оформить свой заказ. Типы заказов: на месте (оформляются только при наличии свободных столиков в пиццерии, где установлен терминал); на вынос (клиент получает заказанные пиццы и уходит); с доставкой (клиент делает заказ и получает его от курьера на дому). В любом заказе с доставкой указан адрес доставки и телефон клиента. В заказе на месте указан номер столика, назначенный терминалом клиенту. В любом заказе указан его номер, общая стоимость заказа и непустой список позиций. В каждой позиции указана конкретная пицца и заказанное количество таких пицц. Про любую пиццу известно её название, цена, а также непустой набор начинок, тип основы (тонкая, пышная, обычная), вид (открытая пицца или закрытая). Начинки отличаются признаком (обязательная, дополнительная) и разновидностью (томаты, перец, оливки, салями, ветчина, базилик, орегано, моцарелла, пармезан). Например, пицца Napoli -- это открытая пицца на тонкой основе с таким набором начинок: томаты, моцарелла, пармезан и базилик. В пиццу начинка может быть положена в одинарном, двойном или тройном объёме по выбору клиента.

Общая стоимость заказа равна сумме цен позиций и цены доставки. В стоимость заказа на месте включена 5%-ная наценка за обслуживание. Цена позиции равна цене её пиццы, умноженной на количество пицц в позиции. Цена пиццы зависит от её названия и от того, положены ли в неё какие-либо начинки в более чем ординарном объёме. Для каждой начинки известна сумма наценки за двойной и за тройной её объем. Все цены терминал получает ежесуточно в начале суток (с 00-00 по 00-30) от сервера «Pizza Hit». Во время обновления этих сведений обслуживание клиентов не производится.

По окончании оформления заказа клиенту распечатываются сведения о заказе. Оформленный заказ на вынос клиент должен оплатить. Заказы других типов оплачиваются через официанта / курьера. При оплате заказа терминал просит клиента ввести банковскую карту в считыватель. Клиент вводит карту. Если карту удалось прочесть, то терминал запрашивает PIN. По введённому PIN терминал вычисляет некоторое другое число (PVV) и вместе с данными карты, считанными с её магнитной полосы, отправляет в систему оплаты в составе запроса на оплату. В ответ может придти либо подтверждение успешной оплаты, либо отказ. При отказе клиенту предоставляются ещё не более чем 2 попытки оплаты той же или другой картой. Если и они неуспешны, то оплата заказа завершается неуспехом. При успехе распечатывается чек об оплате. Сведения о заказе и об оплате заказов терминал пересылает на сервер «Pizza Hit» для учёта.

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

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

Работник пиццерии может использовать терминал на свой лад. С помощью специальной карты, помещаемой в считыватель, он переводит терминал в служебный режим. В этом режиме работник вводит сведения новом клиенте, которому выдаётся клубная карта. Служащий вводит ф. и. о., дату рождения, номер телефона и адрес клиента. Сведения пересылаются на сервер, чтобы убедиться, что клиент не был зарегистрирован раньше. Сервер сообщает результат проверки. Иногда клиенты теряют клубные карты, в этом случае им может быть выдан дубликат. Если карта выдаётся, то работник распечатывает через терминал QR-код на прозрачной клейкой ленте. Затем он наклеивает ленту на пластиковую основу и выдаёт клиенту. У дубликата QR-код прежний -- тот, что был на утерянной карте. У новой карты QR-код новый.

Помимо выдачи клубных карт работник через терминал делает отметки о том, что какие-то заказы выполнены и оплачены (здесь имеются в виду заказы оплачиваемые не через терминал). Новые статусы заказов пересылаются на сервер. Сведения о заказах запрашиваются с сервера, т. к. какие-то из них могут быть оформлены онлайн, а не через терминал. По окончании использования терминала работник должен перевести терминал обратно в режим обслуживания клиентов.

Сервис-инженер может провести техническое обслуживание терминала. С помощью специальной карты, помещаемой в считыватель, он инициирует режим т/о. В этом режиме терминал поочерёдно проводит самодиагностику всех устройств в его составе: считывателя, экрана, сканера QR-кодов, принтера, соединений с сервером, с платёжной системой. Отчёт с итогами самодиагностики выводится на экран. Сервис-инженер может распечатать его, если принтер исправен. Также сервис-инженер может переконфигурировать параметры сетевых соединений с сервером, с платёжной системой. Сервис-инженер может зарядить бумажную ленту в принтер, если она закончилась или на исходе. По окончании работы сервис-инженер должен перевести терминал обратно в режим обслуживания клиентов.

Моделированию подлежит терминал. Сервер и платёжная система находятся за границами моделируемой системы и моделированию в качестве её частей не подлежат. Несмотря на это, дополнительно следует создать схему базы данных сервера «Pizza Hit», где хранятся сведения о клиентах, заказах, ценах. Предполагается, что в самом терминале нет собственной БД, а значит, следует смоделировать внешнюю БД.

Вариант 16. Ломбард


Программная система автоматизирует работу ломбарда, позволяет частично осуществлять её онлайн. Пользователи-заёмщики и пользователи-покупатели регистрируются в системе через Веб, указывая в форме регистрации логин-email, пароль, ф., и., о., адрес, паспортные данные. Если форма заполнена верно, e-mail не совпадает с e-mail'ом другого пользователя, то регистрационная запись о новом пользователе создаётся, и пользователь получает в свой электронный почтовый ящик сообщение для подтверждения e-mail со сгенерированным системой кодом. Чтобы подтвердить e-mail, пользователь должен воспользоваться ссылкой из полученного по e-mail сообщения. По ссылке открывается форма, в которой заполняется логин, пароль и присланный код. Если все данные сообщены верно, то пользователь получает полноценный доступ к системе. Теперь он может «входить» и использовать все возможности, предоставляемые зарегистрированным пользователям.

Заёмщик, войдя в систему может оставить заявку на заём под залог. В заявке он указывает сведения о ценном предмете, предлагаемом в качестве залога, и сумму займа, необходимую ему. Сведения о предмете для залога включают в себя: название, категорию (электроника, букинистика, коллекционирование, ювелирные изделия, часы и т. п.), описание, фотографию. Заявки заёмщиков доступны в системе для работников ломбарда. Работник изучает заявку и либо отклоняет её, либо принимает, устанавливая сумму займа, ежедневный процент, длительность контрольного периода времени, в течение которого залог может быть выкуплен заёмщиком. Сведения о новом статусе заявки доводятся до заёмщика по электронной почте. Оформление документов и передача предмета в ломбард осуществляется офлайн. Если заём был выдан, то работник ломбарда меняет статус заявки на заём, вводит № договора займа, дату начала контрольного периода времени. Пока длится контрольный период времени заёмщик может отслеживать в системе, как меняется сумма выкупа залога. Она является результатом сложения суммы займа и дополнительной суммы, определяемой как произведение ежедневного процента, на количество дней, прошедших с начала контрольного периода до текущей даты, и на сумму займа. Например, при сумме займа 100 000 рублей, проценте в 0,05% по прошествии 20 дней сумма выкупа составит 100 000 + 0,0005 * 20 * 100 000 = 101 000. Выкуп залога осуществляется либо наличными через кассу ломбарда, либо онлайн по банковской карте. Заёмщик сообщает сведения о банковской карте: номер, срок действия, сведения о владельце, трёхзначный код защиты. Если сведения сообщены должным образом, система передаёт их в составе запроса на оплату через шлюз к внешней платёжной системе. Ответ на этот запрос может быть положительным или нет. Если попытка была неуспешной, то статус займа не меняется. Если получено подтверждение успешной оплаты, то заём помечается в системе как погашенный. Залог за погашенный заём заёмщик получает офлайн. Работник ломбарда делает в системе пометку о том, что залог возвращён. Возвращаются залоги только по погашенным займам.

Не выкупленные залоги после истечения контрольных сроков займов выставляются на аукционы. Работник ломбарда по каждому залогу, выставляемому на аукцион, определяет начальную ставку, начало и длительность аукциона, шаг (минимальная разница между двумя подряд идущими ставками). Пользователи-покупатели могут делать ставки по лотам, по которым аукционы начались и ещё не закончились. Первая ставка принимается, если она не ниже начальной ставки. При наличии предыдущих ставок, ставка принимается если разница между ней и последней по времени принятой ставкой не ниже шага, установленного продавцом, иначе ставка считается не принятой. Принятая ставка пользователя может быть «перебита» более крупной ставкой. Один и тот же пользователь может сделать несколько ставок на одном и том же аукционе. Ставки заёмщиков к собственным залогам принимаются, также заёмщики могут делать ставки к чужим залогам.

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

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

Действия с залогом журналируются и хранятся в системе. По прошествии 365 суток после последнего обновления сведений о залоге (заявке/займе) данные автоматически удаляются из системы.

Следует разработать схему реляционной базы данных системы.

Все необходимые для работы сведения хранятся в самой системе, а не в каком-либо внешнем хранилище. Внешними по отношению к системе являются платёжная система, SMTP-сервер.

Вариант 17. Онлайновая театральная касса


Онлайновая театральная касса представляет собой веб-сайт службы продажи билетов на спектакли. Перед тем как впервые воспользоваться услугами кассы зритель должен зарегистрироваться. В ходе регистрации он указывает данные о себе (ф. и. о., телефон, адрес электронной почты) и получает по email пароль, сгенерированный системой (логины клиентов совпадают с их email, у разных клиентов они должны быть разными).

Войдя в систему, зритель может ознакомиться с афишей театров на интересующую его дату. Для продажи доступны спектакли, до начала которых остаётся не менее чем 24 часа. Для каждого спектакля в афише указан театр, сцена театра, время начала спектакля и значок о наличии/отсутствии доступных для покупки мест. Зрителю даётся возможность поиска по афише. Параметрами поиска могут быть: театр, диапазон дат, название спектакля, его жанр и вид (опера, балет, оперетта, ...). Поиск может вестись по нескольким параметрам. Выбрав спектакль в афише или в результатах поиска, зритель может купить нужное ему количество билетов. Единовременно (за один сеанс работы в системе) одному зрителю система продаёт не более чем 5 билетов на один спектакль. Система сообщает зрителю схему расположения мест в зрительном зале, отмечает на схеме места, доступные для покупки. Цена билета зависит от театра, сцены, спектакля. Билеты могут быть получены зрителем до начала показа в кассе театра или в терминалах выдачи электронных билетов. Указав выбранные им к покупке свободные места в зале, персональные данные каждого будущего обладателя билета (ф. и. о., год рождения), реквизиты своей банковской карты, зритель должен подтвердить покупку билетов. Получив сведения и подтверждение от зрителя, система запрашивает списание средств у банковской системы. В ответ может придти либо подтверждение списания, либо сообщение об ошибке (недостаточно средств, неверные реквизиты, нет связи). При успешной оплате система сообщает зрителю уникальный код, который он использует для получения билета в кассе или в терминале. Соответствующие места помечаются, как выкупленные. Если возникла ошибка, система даёт зрителю только ещё одну возможность повторить ввод данных и повторить попытку оплаты.

Система может получить сведения о том, что какие-то билеты были куплены в обычной кассе или терминале театра. В таком случае система не допускает онлайновой продажи тех же самых билетов. Зритель может оформить полный или частичный возврат билетов за 12 часов до начала спектакля. Для этого он сообщает системе уникальный код, полученный им при покупке. Получив код, система выводит купленные билеты с указанием мест. Зритель указывает, какие именно билеты он желает вернуть. Возврат средств осуществляется через банковскую систему с использованием реквизитов, указанных при покупке. Возвращённые билеты могут быть куплены, если выполнены ограничения по времени. Сведения о возврате система может получить от касс театра.

По истечении 1 месяца с момента покупки билета данные автоматически удаляются из системы. Данные о возвратах также хранятся лишь месяц.

В обязанности работников онлайновой кассы входит внесение в систему сведений о спектаклях и об имеющихся в продаже билетах. Данные о спектакле – жанр; вид; название; описание; театр; сцена; даты и времена, постановщик; – хранятся в системе. Один и тот же спектакль может идти на разных сценах одного и того же театра, но разные спектакли не могут пересекаться по времени и сцене театра. Запись о билете содержит название спектакля, дату, время, театр, сцену, ряд и место (возможно, с уточнением части зала: партер, ложа, бельэтаж, ...), цену билета, статус билета (есть в наличии / выбран для покупки / выкуплен / доступен только офлайн).

По истечении 1 недели с даты, указанной в билете, данные о нём автоматически удаляются из системы.

За 24 часа до начала спектакля все не проданные на него билеты передаются для реализации в обычные кассы или терминалы театра. В системе они автоматически помечаются как "доступен только офлайн".

Система ведёт учёт средств, потраченных зрителем для покупки билетов онлайн. Средства за возвращённые билеты в этой сумме не учитываются. Зрители, потратившие более 15000, получают статус "постоянных". Зрители, потратившие более 50000, – vip-статус. Постоянные зрители могут купить билеты со скидкой 5% на спектакли, участвующие в акции. Vip-зрители могут купить билеты со скидкой 7% на любые спектакли.

Следует разработать схему базы данных онлайновой кассы.

Платёжная система и SMTP-сервре для отправки email зрителям считаются находящимися вне границ системы и моделированию в качестве части системы не подлежат.

Вариант 18. Билетный терминал театра


Терминал театра предоставляет потенциальным зрителям сведения о расположении сцен, буфетов, гардеробов и других объектов театра, о текущих постановках на сценах театра, а также позволяет приобретать билеты либо распечатывать электронные билеты, ранее купленные онлайн. В состав терминала входят следующие устройства: сенсорный дисплей, часы, принтер для билетов, устройство чтения / записи данных с банковских карт, линия связи с сервером системы театральных касс, линия связи с банковской системой.

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

Для приобретения билета зритель должен указать дату, время, название спектакля, сцену, тип билета (взрослый, детский). Цена билета зависит от сцены, на котором проходит спектакль, от расположения места в зале (первые ряды партера дороже других, места в ложе дороже, чем на верхнем ярусе и т. п.). Далее терминал демонстрирует схему зала и предлагает выбрать от 1 до 4 свободных мест в зале. О том, какие места свободны, терминал узнаёт от сервера системы театральных касс. После выбора мест зрителем, терминал выводит стоимость билетов и предлагает зрителю ввести в считыватель банковскую карту. Зритель вводит карту. Если карту удалось прочесть, то терминал запрашивает PIN. По введённому PIN терминал вычисляет некоторое другое число (PVV) и вместе с данными карты, считанными с её магнитной полосы, отправляет в банковскую систему в составе запроса на оплату. В ответ может придти либо подтверждение успешной оплаты, либо отказ. При отказе зрителю предоставляются ещё не более чем одна попытка оплаты той же или другой картой. Если и они неуспешны, то оплата билетов завершается неуспехом. Карта возвращается и сеанс обслуживания зрителя завершается. При успехе распечатывается чек об оплате, распечатываются все приобретённые билеты. Банковская карта и билеты выдаются зрителю. Сведения о приобретённых билетах и об их оплате терминал пересылает на сервер системы театральных касс для учёта. Продажа билетов на спектакль через терминал прекращается сразу после начала спектакля.

Терминал может выдать афишу с перечнем текущих театральных постановок. О каждом спектакле сообщается название, жанр, краткое описание, сведения о постановочной группе, режиссёре, актёрах-исполнителях главных ролей. Ознакомившись с афишей, зритель может вернуться в главное меню.

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

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

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

Моделированию подлежит терминал. Система театральных касс и банковская система являются внешними по отношению к моделируемому терминалу.

Вариант 19. Онлайновая музейная касса


Онлайновая музейная касса представляет собой веб-сайт службы продажи билетов на посещения музеев. Перед тем как впервые воспользоваться услугами кассы посетитель должен зарегистрироваться. В ходе регистрации он указывает данные о себе (ф. и. о., телефон, адрес электронной почты) и получает по email сгенерированный системой пароль (логины клиентов совпадают с их email, у разных клиентов они должны быть разными).

Войдя в систему, посетитель может ознакомиться с афишей выставок на интересующий его период времени. Для продажи доступны билеты на выставки, до начала проведения которых остаётся не более чем 120 часов, и до конца проведения которых остаётся не менее чем 6 часов. Для каждой выставки в афише указан музей, здание музея, где размещена выставка, даты начала и окончания проведения выставки и значок о наличии/отсутствии доступных для покупки билетов. Посетителю даётся возможность поиска по афише. Параметрами поиска могут быть: музей, диапазон дат, название выставки, имя художника. Поиск может вестись по нескольким параметрам.

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

Цена билета зависит от музея, здания музея, выставки. Бывают в продаже билеты "друзей музея", дающие право на бесплатное посещение в течение года. Помимо билетов на выставки через систему распространяются абонементные билеты на циклы лекций и/или экскурсий по музею и/или выставкам. Указав выбранные им типы билетов, реквизиты своей банковской карты, посетитель должен подтвердить покупку билетов. Получив сведения и подтверждение от посетителя, система запрашивает списание средств у банковской системы. В ответ может придти либо подтверждение списания, либо сообщение об ошибке (недостаточно средств, неверные реквизиты, нет связи). При успешной оплате система сообщает посетителю уникальный код покупки.

Приобретённые билеты могут быть получены посетителем в кассе музея или распечатаны в билетных терминалах музея, если он сообщит код покупки.

Количество билетов, продаваемых на некоторые временные выставки может быть фиксировано. Система отслеживает количество билетов, проданных на такие выставки и не допускает овербукинг.

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

Система может получить сведения о том, что какие-то билеты были куплены в обычной кассе или терминале музея. В таком случае система не допускает онлайновой продажи тех же самых билетов.

По истечении 1 месяца с момента покупки билета данные о ней автоматически удаляются из системы.

В обязанности работников онлайновой кассы входит внесение в систему сведений о выставках и об имеющихся в продаже билетах. Данные о выставке – название; описание; место проведения; даты проведения; кураторы; спонсоры; организации-участники проведения выставки; цены билетов на выставку разных типов – хранятся в системе. Разные выставки не могут пересекаться по времени и месту проведения.

Следует разработать схему базы данных онлайновой кассы.

Терминалы музея, офлайновые кассы и банковская система являются внешними по отношению к моделируемомой системе.

Вариант 20. Билетный терминал музея


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

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

Для приобретения билета посетитель должен выбрать тип билета (взрослый, детский, студенческий или билет для нерезидента). Билет может давать право на посещения всего музея, или только постоянной экспозиции, или только одной из временных выставок. От этого зависит стоимость билета. Далее терминал предлагает вставить в ридер банковскую карту. Посетитель вводит карту. Если карту удалось прочесть, то терминал запрашивает PIN. По введённому PIN терминал вычисляет некоторое другое число (PVV) и вместе с данными карты, считанными с её магнитной полосы, отправляет в банковскую систему в составе запроса на оплату. В ответ может придти либо подтверждение успешной оплаты, либо отказ. При отказе посетителю предоставляются ещё не более чем три попытки оплаты той же или другой картой. При неуспехе банковская карта возвращается, и на экран выводится главное меню. Если операция одобрена, то сервер музея информируется о проданном билете, терминал печатает билет, указывая дату, тип билета, цену и разрешённые к посещению выставки. Банковская карта и распечатанный билет выдаются посетителю. На этом покупка билета завершается и на экран выводится главное меню.

Продажа билетов на текущий день прекращается в 19:00 – за час до окончания работы музея.

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

Терминал собирает статистику о том, какие залы музея, какие выставки, какие экспонаты пользуются наибольшим интересом у посетителей. В конце рабочего дня терминал пересылает эти данные на сервер музея.

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

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

Разработанная модель должна содержать схему базы данных (системой музейных касс) для хранения схемы музея и сведений о залах, выставках, экспонатах, входной плате и проданных билетах.

Моделированию подлежит терминал. Сервер музея и банковская система являются внешними по отношению к моделируемому терминалу.

Предупреждение


Размещение на других ресурсах, а также коммерческое использование материалов, опубликованных в данном разделе, возможно только с разрешения авторов. По всем вопросам пишите:   

  

© Кафедра системного программирования ВМК МГУ.

Обновлено: 25.III.2021