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

Варианты задания по ООАП для группы 314. 2016-17 учебный год


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

Требования


В каждом из предложенных вариантов требуется при помощи CASE-средства построить UML модель программного обеспечения. Процесс создания модели состоит из нескольких этапов, по окончании каждого из которых производится сдача полученных результатов:

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

  2. Создание модели анализа.

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

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

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

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

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

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

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

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

  1. Разбить систему на уровни.

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

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

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

  5. Выделить хотя бы одну подсистему. В частности, в большинстве вариантов предусмотрена работа с устойчивыми объектами, её следует поручить системе обеспечения устойчивости (взаимодействия с БД). Другой вариант подсистемы -- подсистема для взаимодействия с внешней программой.

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

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

  8. Изменить созданные ранее реализации вариантов использования, указав на них экземпляры классов-реализаций интерфейсов подсистем.

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

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

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

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

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

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

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


1Б. Ветклиника

2Б. Склад

3Б. Почтовый треккер

4Б. Кинокасса

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

6Б. Система материального учёта

7Б. Библиометрическая система

8Б. Оценки и задания

9Б. Система учёта рабочего времени

10Б. Система учёта преподавательской нагрузки

11Б. Железнодорожная касса

12Б. Железнодорожный терминал

13Б. Огавирт: поиск гостиницы

14Б. Авиакасса

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

16Б. Интернет-магазин компьютерной техники

17Б. Турникет метро

Вариант 1Б. Ветклиника


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

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

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

  • недельный график работы ветеринаров;

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

  • счёт клиенту клиники на оплату медицинской услуги.

В ходе выполнения задания должна быть разработана схема базы данных системы.

Вариант 2Б. Склад


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

  • список всех товаров;

  • инвентаризационную опись товаров, имеющихся в наличии;

  • список товаров, количество которых необходимо пополнить;

  • список товаров, поставляемых данным поставщиком;

  • все позиции в каком-либо приходе товара;

  • все позиции в какой-либо расходной накладной.

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

В ходе выполнения задания должна быть разработана схема базы данных системы.

Вариант 3Б. Почтовый треккер


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

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

Данные об операциях с отправлением почтовый треккер хранит у себя, до тех пор, пока пользователь не решит удалить данные об отправлении. При получении данных о новой операции треккер посылает уведомление пользователю либо по электронной почте, либо через SMS в зависимости от настроек пользователя. Треккер отслеживает корректность последовательности операций с отправлением (например, уже полученное отправление не может быть позднее принято на таможню; отправление, посланное локально в границах страны, не проходит таможню и транзит и т. п.), а также уведомляет об истечении контрольных сроков пересылки: 30 суток для международной почты и 15 суток для междугородней и локальной.

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

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

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

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

Вариант 4Б. Кинокасса


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

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

Система может получить сведения о том, что какие-то билеты были куплены в кассе или терминале кинотеатра. В таком случае система не допускает онлайновой продажи тех же самых билетов. Клиент может оформить полный или частичный возврат билетов за 1,5 часа до начала показа. Для этого он сообщает системе уникальный код, полученный им при покупке. Получив код, система выводит купленные билеты с указанием мест. Клиент указывает, какие именно билеты он желает вернуть. Возврат средств осуществляется через банковскую систему с использованием реквизитов, указанных при покупке. Возвращённые билеты могут быть куплены, если выполнены ограничения по времени. Сведения о возврате система может получить от касс кинотеатра. По истечении 1 месяца с момента покупки билета данные автоматически удаляются из системы. Данные о возвратах также хранятся лишь месяц.
В обязанности работников онлайновой кассы входит внесение в систему сведений о сеансах и об имеющихся в продаже билетах. Данные о сеансе – вид: 2D / 3D; название фильма; описание фильма; кинотеатр, № зала; дата и время начала сеанса, длительность фильма; – хранятся в системе. Один и тот же фильм может идти в разных кинотеатрах, или в разных залах одного и того же кинотеатра, но разные сеансы не могут пересекаться по времени и залу. Запись о билете содержит название фильма, дату, время, кинотеатр, зал, ряд и место, цену билета, статус билета (есть в наличии / выбран для покупки / выкуплен / доступен только офлайн). По истечении 1 недели с даты, указанной в билете, данные о нём автоматически удаляются из системы.

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

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

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


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

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

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

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

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

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

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

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

Вариант 6Б. Система материального учёта


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

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

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

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

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

Вариант 7Б. Библиометрическая система


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

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

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

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

Вариант 8Б. Оценки и задания


Система контроля успеваемости используется в университете для отслеживания работы студентов в семестре.
Сотрудники учебного отдела вводят в систему данные о студентах, преподавателях и учебных дисциплинах. Данные могут быть изменены и/или удалены. Студенты университета делятся на курсы. Курс делится на группы. Каждая группа студентов ходит на занятия по дисциплинам, которые ведутся преподавателями. Преподаватель может вести любое количество дисциплин у одной или нескольких групп. Несколько преподавателей могут вести одну и ту же дисциплину в одной и той же группе или в разных группах.
Преподаватели пользуются системой, чтобы отмечать успехи и неуспехи студентов, посещающих их занятия. В течение семестра преподаватель последовательно выдаёт студентам "своей" группы несколько заданий по своей дисциплине. Для каждого задания устанавливается контрольный срок, когда оно должно быть сдано. Когда студент сдаёт задание, преподаватель отмечает этот факт в системе. Он ставит «±», если задание сдано не до конца, «+» -- если задание сдано полностью. Система контроля автоматически ставит «−», если задание пока не сдано. От времени сдачи зависит цвет, которым отметка о сдаче выделена в системе. Если сдача проходила до установленного срока (за неделю и более), отметка высвечивается зелёным. Если сдача проходила после установленного срока (через неделю и более) отметка высвечивается красным. В остальных случаях отметка чёрная. Поскольку сдача может быть не полной, студент может сдавать задание несколько раз. После получения отметки «±» за это же задание может быть поставлена отметка «±» или «+», относящаяся к старшей дате. если за задание уже стоит отметка «+» никакая отметка не может быть поставлена за это же задание. По этим правилам преподаватели могут ставить одному и тому же студенту несколько отметок о сдаче одного и того же задания. Если преподаватель ошибся, он может удалить отметку или изменить её.
За сдачу заданий студентам начисляются баллы. Баллы зависят от текущей даты и от сведений об отметке по этому заданию, относящихся к самой старшей дате. Если на текущую дату студент имеет отметку «−» или «±», то ему начисляются штрафные баллы в количестве равном, количеству полных недель с момента наступления контрольного срока до текущей даты. Количество штрафных баллов неотрицательно. Если на текущую дату студент имеет отметку «+», полученную раньше наступления срока сдачи, то ему начисляются бонусные баллы в количестве, равном количеству полных недель с момента получения отметки «+» до наступления контрольного срока. Количество бонусных баллов неотрицательно. Если на текущую дату студент имеет отметку «+», полученную позже наступления срока сдачи, то ему начисляются штрафные баллы в количестве равном количеству полных недель с момента наступления контрольного срока до момента получения отметки. Количество штрафных баллов неотрицательно.
Преподаватель для любой группы, в которой он ведёт занятия, может видеть полный список группы с полным набором отметок по заданиям, раскрашенных по указанным выше правилам, с указанием штрафных и бонусных баллов и общей суммы баллов по всем заданиям. Преподаватель может начислять студентам, у которых он ведёт задания, дополнительные бонусные (и штрафные) баллы, поощряя или наказывая их по своему усмотрению.
Студенты также могут пользоваться системой, чтобы узнать сроки сдачи заданий и результаты собственных сдач. Каждому студенту высвечивается сводная таблица, с отметками о сдаче заданий по всем, изучаемым им дисциплинам, с указанием штрафных и бонусных баллов, и номера в рейтинге по данной дисциплине. Рейтинг составляется на основе вычитания из бонусных баллов штрафных баллов. Сортировка в рейтинге идёт по невозрастанию. Чужие отметки студенты видеть не должны, это конфиденциальная информация.
Вариант задания включает в себя разработку схемы базы данных для хранения отметок, данных о студентах, дисциплинах и преподавателях.

Вариант 9Б. Система учёта рабочего времени


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

Некоторые служащие получают фиксированный оклад. Они на общих основаниях вводят в систему сведения об отработанных часах. Система должна вести учет количества отработанных ими часов, чтобы снижать выплату на 6%, если служащий отработал менее 38 или 39 часов в неделю (на 12% -- если 36 или 37 часов и т. п.). Сверхурочные служащим с фиксированным окладом оплачиваются на тех же основаниях, что и почасовикам. Расчёт выплат служащим с фиксированным окладом и передача счетов на оплату в бухгалтерскую систему осуществляется в последний рабочий день месяца.

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

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

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

Вариант 10Б. Система учёта преподавательской нагрузки


Чтобы автоматизировать учёт преподавательской нагрузки за учебный год, в университете внедрена система «Педнагрузка». Каждый преподаватель имеет в системе заведённый им аккаунт для доступа к функциям. В течение учебного года он вводит выполняемые им работы, входящие в нагрузку. Так, преподаватель может указать сведения о проведении им занятий: указывается название курса, количество студентов, слушающих курс, количество групп, количество часов лекций и/или семинаров, количество экзаменов, зачётов, контрольных, домашних работ. Система автоматически рассчитывает часы: за экзамены = 0,5 * количество студентов * количество экзаменов; за зачёты = 0,3 * количество студентов * количество зачётов; за контрольные = 0,25 * количество студентов * количество контрольных; за домашние работы = 0,2 * количество студентов * количество домашних работ; за семинары = количество часов по плану * количество групп. Также преподаватель может указать руководство практикой (по 12 часов на каждого студента); руководство курсовой работой (по 6 часов на каждого студента); руководство ВКР (по 25 часов на каждого студента); руководство диссертацией (по 50 часов на каждого аспиранта); приём вступительных экзаменов (в бакалавриат, магистратуру, аспирантуру) = 0,25 * количество проверенных работ; проверка олимпиад/универсиад = 0,3 * количество проверенных работ; рецензирование = 3 * количество рецензий. Все вычисленные часы суммируются и составляют суммарную нагрузку. Особенностью ввода нагрузки является то, что преподаватель может выполнять разные работы по одному и тому же курсу с разными или одними и теми же группами (например, читать потоковый курс всем группам потока и вести семинары по этому курсу только в одной из групп потока).

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

Нагрузка введённая преподавателями утверждается работником учебного отдела в конце учебного года. Затем она автоматически передаётся в систему «Справедливость» для расчёта рейтинга преподавателя. Утверждённую нагрузку скорректировать нельзя.

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

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

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

Вариант 11Б. Железнодорожная касса


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

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

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

Система ведёт учёт средств, потраченных клиентом для покупки билетов онлайн. Каждые 100 рублей, таких средств приносят клиенту 1 бонусный балл после завершения его поездки по купленному онлайн билету. Бонусными баллами клиенты могут оплачивать часть стоимости приобретаемых онлайн билетов (не более 25% от их стоимости).

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

Вариант 12Б. Железнодорожный терминал


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

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

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

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

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

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

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

Вариант 13Б. Огавирт: поиск гостиницы


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

Представители гостиничных сетей регистрируются на сайте, после чего могут добавить в систему данные о своей гостинице или гостиницах: название, url сайта, юридический адрес и контактную информацию, url страницы с ежедневно обновляемым перечнем предлагаемых для бронирования номеров и цен. На указанной странице в формате CSV публикуются сведения о номерах: категории, описании, цене, url веб-страницы, с которой можно осуществить бронирование. Эти данные система регулярно запрашивает, чтобы поддерживать собственную базу данных в актуальном состоянии. Если сведения о номерах какой-либо гостиницы невозможно получить в течение 5 последних попыток обновления, то гостиница помечается, как недоступная. Для экономии трафика попыток обновить перечни номеров недоступных гостиниц не производятся. Менеджер может связаться с представителем недоступной гостиницы и либо деактивировать его учётную запись, а заодно убрать сведения о связанных гостиницах из системы, либо скорректировать url страницы с перечнем. В последнем случае менеджер помечает гостиницу как вновь доступную.

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

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

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

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

Вариант 14Б. Авиакасса


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

Войдя в систему, клиент может ознакомиться с расписанием рейсов, указав город вылета, город прилёта и дату. Для продажи билетов доступны рейсы, время до вылета которых находится в диапазоне от 12 часов до 90 суток. Для каждого рейса в расписании указаны номер рейса, аэропорт вылета и аэропорт прилёта, время вылета, время прилёта, длительность рейса, модель авиалайнера и значок о наличии/отсутствии доступных для покупки билетов. Клиенту даётся возможность сортировки расписания по номеру рейса, времени вылета или прилёта, наличию билетов. Выбрав рейс в расписании, пассажир может купить нужное ему количество билетов. Единовременно одному клиенту система продаёт не более чем 3 билета на один рейс. Система сообщает клиенту перечень свободных мест. Места могут отличаться по классу обслуживания (эконом, бизнес-класс, первый класс). После выбора класса обслуживания, система выводит цена билетов, которая зависит от рейса, класса обслуживания, времени до вылета рейса (билеты, выкупаемые за 60 суток до вылета, предлагаются со скидкой 25%). Билеты могут быть получены клиентом до завершения регистрации на рейс в офлайновой кассе авиакомпании или в терминалах выдачи электронных билетов в аэропорту. Указав выбранные им места и сведения о пассажирах -- владельцах билетов (ф., и., о, № паспорта -- без этих полных сведений билеты не продаются), а также реквизиты своей банковской карты, клиент должен подтвердить покупку билетов. Получив сведения и подтверждение от клиента, система запрашивает списание средств у банковской системы. В ответ может придти либо подтверждение списания, либо сообщение об ошибке (недостаточно средств, неверные реквизиты, нет связи). При успешной оплате система сообщает клиенту уникальный код, который он использует для получения билета в кассе или в терминале. Соответствующие места помечаются, как выкупленные. Если возникла ошибка, система даёт клиенту возможность повторить ввод сведений о пассажирах, реквизитов и повторить попытку. Покупка билета должна быть совершена за не более чем 9 минут. Не допускается приобретение пассажиром нескольких билетов на своё собственное имя, если все билеты на один и тот же рейс и время вылета одинаковое.

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

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

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

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

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


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

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

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

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

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

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

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

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

Вариант 16Б. Интернет-магазин компьютерной техники


Магазин компьютеров предлагает возможность приобретения своих товаров через Интернет. Клиент может выбрать компьютер на web-странице магазина. Компьютеры подразделяются на серверы, настольные, портативные и планшетные. Заказчик может выбрать подходящую стандартную конфигурацию из списка и детально ознакомиться с ней на отдельной web-странице. Если стандартная конфигурация ему не подходит, он может построить требуемую ему конфигурацию в диалоговом режиме. Компоненты конфигурации (такие, как оперативная память, процессор, жесткий диск и т. п.) представляются как список для выбора из доступных альтернатив. Для каждой новой конфигурации система может подсчитать цену. Если конфигурация неполна, т. е. в ней отсутствует важный компонент, то при заказе веб-страница оповещает об этом клиента и предлагает выбрать недостающий компонент из списка. Клиент может дополнить конфигурацию по своему выбору, либо приобрести неполную конфигурацию. Клиент может приобретать в магазине не только компьютеры, но и отдельные комплектующие и/или периферийные устройства. На странице магазина работает поиск комплектующих и периферийных устройств по их типу, производителю, названию. Результаты поиска могут быть отсортированы клиентом по цене.
Чтобы оформить заказ, клиент должен заполнить электронную форму с адресом для доставки товара, а также деталями, касающимися оплаты. Оплата компьютеров осуществляется наличными курьеру, осуществляющему доставку, или по банковской карте. Для оплаты по карте клиент сообщает её реквизиты интернет-магазину. Он, в свою очередь, обращается к банковской системы с запросом на оплату заказа. Ответ на запрос может быть положительным или отрицательным. При положительном ответе заказ помечается как оплаченный. При отрицательном ответе клиент может отказаться от покупки, либо скорректировать реквизиты карты для оплаты, либо выбрать оплату курьеру по получении. После успешного оформления заказа система отправляет клиенту по электронной почте сообщение с подтверждением получения заказа вместе с относящимися к нему деталями (стоимость, номер счета, и т. п.). Пока клиент ожидает прибытия компьютера, он может проверить состояние заказа (поставлен в очередь / собран / отправлен). Данные об оформленных заказах интернет-магазин пересылает складской системе, ведущей учёт запасов компьютерных компонентов и сборки заказов. Отправленные заказы помечаются как поставленные в очередь. Собранные компьютеры вместе передаются со склада в отдел доставки, при этом заказ помечается как собранный. Отдел доставки направляет заказы клиентам (статус заказа – отправлен). Если заказ оплачивается наличными, курьер по возвращении передаёт деньги в кассу. Работник интернет-магазина, принимая деньги, помечает заказ как оплаченный. По окончании работы с заказом, он помечается в системе как выполненный.

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

Вариант 17Б. Турникет метро


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

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

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

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

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

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

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

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


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

  

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

Обновлено: 13.2.2017