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

Варианты 2-го задания по ООАП. 2017-18 учебный год


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

Требования


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

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

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

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

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

Отправляя свои результаты по этапу 2-го задания, выполняйте следующее: закройте проект в среде; vpp-файл проекта сархивируйте zip; полученный zip-файл и другое, что требуется по этапу, присоедините к письму.

Процесс моделирования должен проходить так, как это описано в методическом пособии по Visual Paradigm [html]. Начинать работу следует не с пустого проекта, а с заготовки архив шаблона (14.1 [zip]; 14.2 [zip]). Структура модели должна соответствовать структуре, предусмотренной Rational Unified Process.

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

Можно заработать дополнительные баллы, добавив в модель помимо ключевых вариантов использования 1 или 2 дополнительных. Каждый дополнительный ВИ в модели требований (описание + диаграмма деятельности) даёт 2 балла. Сделанное сверх указанной границы не оценивается, не рассматривается.

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

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

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

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

Можно заработать дополнительные баллы, добавив в модель анализа помимо реализаций ключевых вариантов использования реализации 1 или 2 дополнительных. Каждая добавленная реализация (VOPC, диаграммы последовательности для потоков событий) даёт 4 балла. Сделанное сверх указанной границы не оценивается, не рассматривается.

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

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

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

  3. Разработать диаграмму размещения. В зависимости от варианта задания диаграмма размещения должна показывать расположение процессов системы в вычислительной среде или связи между процессором и устройствами (последнее -- в вариантах 10, 14, 21, 23).

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

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

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

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

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

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

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

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

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

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

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

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

Требования по составлению отчета опубликованы отдельно [html].

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

  1. Гид по дискам

  2. Библиометр

  3. Книжный гид

  4. Фотосообщество

  5. Киногид

  6. Веб-форум

  7. Гид по телесериалам

  8. Дао новостей

  9. Игрогид

  10. Билетный терминал Экспрессаэро

  11. Театральный гид

  12. Онлайновая касса Экспрессаэро

  13. Программа лояльности

  14. Билетный терминал городского транспорта

  15. Тестирование учащихся

  16. Онлайновая касса городского транспорта

  17. Курьерская служба

  18. Клиника

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

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

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

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

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

Вариант 1. Гид по дискам


Через систему «Гид по дискам» можно получить сведения о музыкальных дисках (LP, CD), о треках на дисках, о тех, кто участвовавших в создании дисков. О диске из базы данных системы можно узнать, как он называется, дату его выпуска, жанр и стиль, какие награды или премии получил, тираж, общую длительность. В число тех, кто работал над диском входят: продюсер, специалист по записи звука, специалист по обработке звука, дизайнер (оформления диска), исполнители на различных музыкальных инструментах, композитор, лидер-вокалист, бэк-вокалист, хор и др.. Один и тот же человек может при создании разных дисков (или одного и того же диска) выполнять разные обязанности, например, – продюсера и барабанщика. Про каждый трек известно название, длительность, композитор. Про каждую персону в системе можно узнать имя, биографию, список дисков, в создании которых она принимала участие (с указанием выполняемых ей обязанностей), список полученных наград и/или премий, список групп, в состав которых она входит/входила.

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

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

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

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

Следует создать схему базы данных системы «Гид по дискам».

Вариант 2. Библиометр


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

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

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

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

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

Вариант 3. Книжный гид


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

Пользователь «гида» может осуществлять поиск изданий и произведений в базе данных системы. Издания можно искать по названию издания, названию произведения в составе издания, дате выхода, имени писателя, издательству, ISBN. Зарегистрированный пользователь может добавить любое произведение или писателя в свои списки избранного, а также "лайкнуть/дизлайкнуть" произведение или писателя. На основании "лайков" и "дизлайков" содержимое базы данных ранжируется в рейтингах по мнению пользователей системы. Для ограничения накруток одному произведению от имени одного пользователя может быть выставлено не более одного "лайка/дизлайка". Такое же ограничение действует для писателей. Поставленный "лайк/дизлайк" можно удалить, если мнение пользователя поменялось. Также можно удалить из избранного любое содержимое.

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

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

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

Следует создать схему базы данных системы «Книжный гид».

Вариант 4. Фотосообщество


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

Чтобы использовать услуги сообщества зарегистрированный пользователь должен войти в систему. При входе он указывает логин и пароль. Залогиненный пользователь попадает на свою персональную страницу. На этой странице отображается список загруженных им фотографий. Фотографии пользователь может группировать в серии, давая каждой серии название и описание, задавая порядок фотографий в серии. Одна и та же фотография может быть включена в любое количество серий, но повторяться внутри одной серии не может. Любой загруженный снимок может быть удалён его автором, либо сведения о загруженном снимке могут быть изменены. При загрузке снимка автор указывает его название, примечание, список меток, камеру и другое оборудование, использованное при съёмке, расположение файла снимка на локальном компьютере. В течение каждой недели автор может сделать не более 30 загрузок.

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

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

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

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

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

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

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

Вариант 5. Киногид


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

Киноман с помощью «гида» может осуществлять поиск фильмов среди сведений, представленных в базе данных системы. Фильмы можно искать по названию, году выхода, персоне задействованной в съёмках фильма. Зарегистрированный киноман может добавить любой фильм в свой список избранного, а также "лайкнуть/дизлайкнуть" фильм или персону. На основании "лайков" и "дизлайков" фильмы (и персоны) ранжируются в рейтинге. Для ограничения накруток одному фильму от имени одного киномана может быть выставлено не более одного "лайка/дизлайка". Такое же ограничение действует для персон. Поставленный "лайк/дизлайк" можно удалить, если мнение киномана поменялось. Также можно удалить из избранного любое содержимое.

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

При регистрации киноман сообщает системе свой e-mail в качестве логина и получает в свой электронный почтовый ящик сообщение для подтверждения e-mail со сгенерированным случайным, но достаточно стойким паролем.

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

Следует создать схему базы данных системы «Киногид».

Вариант 6. Веб-форум


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

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

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

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

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

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

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

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

Вариант 7. Гид по телесериалам


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

Телезритель с помощью «гида» может осуществлять поиск сериалов и персон среди сведений, представленных в базе данных системы. Сериалы можно искать по их названию или названию сезона/эпизода, персоне, задействованной в съёмках. Зарегистрированный телезритель может добавить любой сериал/сезон сериала/эпизод сериала/персону в свой список избранного, а также "лайкнуть/дизлайкнуть" его (её). На основании "лайков" и "дизлайков" содержимое базы данных системы ранжируется в рейтинге. Для ограничения накруток одному сериалу от имени одного телезрителя может быть выставлено не более одного "лайка/дизлайка". Такое же ограничение действует для персон, эпизодов, сезонов. Поставленный "лайк/дизлайк" можно удалить, если мнение телезрителя поменялось. Также можно удалить из избранного любое содержимое.

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

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

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

Следует создать схему базы данных системы «Гид по телесериалам».

Вариант 8. Дао новостей


Через систему «Дао новостей» можно получить свежие публикации новостных каналов. Публикации создаются обозревателями, зарегистрированными в качестве представителя новостного канала. У публикации любого новостного канала есть тема, ссылка на оригинал публикации (расположенный на собственном сайте канала), текст, изображения и, возможно, видеоролик, а также список меток. Публикации могут заводиться обозревателями вручную, либо создаваться самой системой по RSS-данным с сайта новостного канала. При добавлении нового канала в систему обозреватель – его представитель – указывает название канала, краткое описание, собственный сайт канала, изображение-логотип, url источника RSS-данных (если есть), список меток, характеризующий тематику канала.

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

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

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

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

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

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

Вариант 9. Игрогид


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

Игроман с помощью «гида» может осуществлять поиск игр среди сведений, представленных в базе данных системы. Игры можно искать по названию, году выпуска, издателю, персоне задействованной создании игры. Зарегистрированный игроман может добавить любую игру в свой список избранного, а также "лайкнуть/дизлайкнуть" игру или персону. На основании "лайков" и "дизлайков" игры (и персоны) ранжируются в рейтинге. Для ограничения накруток одной игре от имени одного игромана может быть выставлено не более одного "лайка/дизлайка". Такое же ограничение действует для персон. Поставленный "лайк/дизлайк" можно удалить, если мнение игромана поменялось. Также игроман может удалить из своего списка избранного любое содержимое.

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

При регистрации игроман сообщает системе свой e-mail в качестве логина и получает в свой электронный почтовый ящик сообщение для подтверждения e-mail со сгенерированным случайным, но достаточно стойким паролем.

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

Следует создать схему базы данных системы «Игрогид».

Вариант 10. Билетный терминал Экспрессаэро


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

Для приобретения билетов пассажир сначала указывает типы и количества нужных ему билетов (стандартный в одну сторону / стандартный в обе стороны / vip одну сторону/ vip в обе стороны / групповой / семейный / детский / абонементный). Далее пассажир указывает дату поездки, пункт отправления (центр / Шереметьево / Внуково / Домодедово / Жуковский), пункт прибытия (аналогично, но с учётом, что из центра можно приехать только в аэропорт, а из аэропорта – только в центр). Цена каждого билета зависит от его типа. Цена абонементного билета зависит от количества поездок в абонементе (10 / 20 / 30 / 50). Далее терминал выводит перечень заказанных билетов и итоговую сумму и просит ввести персональные данные (фамилию и. о. и мобильный номер либо номер паспорта) пассажира каждого билета и свой ID участника программы Экспрессаэро-бонус. Участники программы могут часть оплаты погасить за счёт бонусных баллов, если сервер Экспрессаэро подтвердит, что какие-либо из введённых персональных данных соответствуют ID участника, и что на бонусном счетё достаточно баллов. Для использования бонусных баллов, пассажир должен указать, сколько баллов из имеющихся на счёте он хочет потратить. Оплатить баллами можно не более чем 50% стоимости билетов. Затем пассажир должен для оплаты билетов вставить в ридер банковскую карту. После вставки банковской карты он должен ввести четырёхзначный пин-код. Если введён неверный пин-код, приобретение билетов прекращается, а карта возвращается. Если пин-код верен, терминал по линии связи с банком отправляет запрос на списание средств для оплаты билетов. Варианты ответов на запрос: операция одобрена банком; операция невозможна, так как карта блокирована; операция невозможна, так как превышен кредитный баланс. Если операция одобрена, сервер Экспрессаэро информируется о проданных билетах, терминал печатает билеты, указывая в каждом № билета, тип билета, дату продажи, сведения о поездке (дату, пункт прибытия и пункт отправления) и цену. Каждый билет печатается на отдельном бланке. Данные на нём выводятся в человеко-читаемом виде и в виде QR-кода для турникетов. На этом покупка билетов завершается. В ходе покупки пассажир может раздумать и до момента оплаты поменять тип билета и другие параметры, или отказаться от покупки. Покупка билетов должна быть совершена за не более чем 5 минут. По истечение 5 минут терминал принудительно переходит в главное меню, прерывая процесс покупки.

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

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

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

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

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

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

Вариант 11. Театральный гид


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

Театрал с помощью «гида» может осуществлять поиск постановок и персон среди сведений, представленных в базе данных системы. Постановки можно искать по их названию или жанру, персоне, задействованной в постановке. Зарегистрированный театрал может добавить любую постановки или персону в свой список избранного, а также "лайкнуть/дизлайкнуть" её. На основании "лайков" и "дизлайков" содержимое базы данных системы ранжируется в рейтинге. Для ограничения накруток одной постановке от имени одного театрала может быть выставлено не более одного "лайка/дизлайка". Такое же ограничение действует для персон. Поставленный "лайк/дизлайк" можно удалить, если мнение театрала поменялось. Также театрал может удалить из своего списка избранного любое содержимое.

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

При регистрации театрал сообщает системе свой e-mail в качестве логина и получает в свой электронный почтовый ящик сообщение для подтверждения e-mail со сгенерированным случайным, но достаточно стойким паролем.

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

Следует создать схему базы данных системы «Театральный гид».

Вариант 12. Онлайновая касса Экспрессаэро


Онлайновая касса Экспрессаэро – это сайт службы продажи билетов на поезда-экспрессы, курсирующие между центром города и аэропортами.

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

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

Залогиненный клиент может купить билеты. Для приобретения билетов клиент сначала указывает типы и количества нужных ему билетов (стандартный в одну сторону / стандартный в обе стороны / vip одну сторону/ vip в обе стороны / групповой / семейный / детский / абонементный). Далее клиент указывает дату поездки, пункт отправления (центр / Шереметьево / Внуково / Домодедово / Жуковский), пункт прибытия (аналогично, но с учётом, что из центра можно приехать только в аэропорт, а из аэропорта – только в центр). Цена каждого билета зависит от его типа. Цена абонементного билета зависит от количества поездок в абонементе (10 / 20 / 30 / 50). Далее касса выводит перечень заказанных билетов и итоговую сумму. Для каждого приобретаемого билета клиент должен указать персональные данные (фамилию и. о., мобильный номер или номер паспорта). Все клиенты являются участниками программы лояльности и могут часть оплаты погасить за счёт бонусных баллов. Для использования бонусных баллов клиент должен указать, сколько баллов из имеющихся на его счёте он хочет потратить. Оплатить баллами можно не более чем 50% стоимости билетов. Затем клиент должен для оплаты билетов сообщает кассе номер банковской карты, срок её годности, имя владельца карты и код CVV2. Касса по линии связи с банком отправляет запрос на списание средств для оплаты билетов. Варианты ответов на запрос: операция одобрена банком; операция невозможна, так как карта блокирована; операция невозможна, так как превышен кредитный баланс. Если операция одобрена, то система сообщает клиенту уникальный код покупки, который он может использовать для распечатки электронных билетов в терминалах Экспрессаэро. Эти сведения также отправляются по электронной почте и SMS. На этом покупка билетов завершается. В ходе покупки клиент может раздумать и до момента оплаты поменять типы билетов и другие параметры, или отказаться от покупки.

Клиент может оформить полный или частичный возврат билетов 6 часов до наступления даты поездки. Для этого он сообщает кассе уникальный код, полученный им при покупке. Получив код, система выводит сведения о купленных билетах. Клиент указывает, какие именно билеты он желает вернуть. Возврат средств осуществляется через банковскую систему с использованием реквизитов, указанных при покупке. Сведения о возврате система может получить от терминалов Экспрессаэро. Не допускается двойной возврат одного и того же билета (и через онлайновую кассу, и через терминал).

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

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

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

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

Вариант 13. Программа лояльности


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

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

Накопление "фишек" происходит после покупок. Клиент, приобретая товары, может сделать это за счёт средств на карте лояльности. Данные об этом (номер карты, дата и время, сумма покупки, купленный напиток или товар) фиксируются сервером торговой сети в базе данных о продажах и передаются этим сервером на сайт программы лояльности. Данные о покупках, совершённых без карты лояльности, в программе не учитываются. За каждую покупку начисляется одна "фишка". Если покупка крупная – на сумму более 1500 рублей, то начисляется дополнительная вторая "фишка". Накопленные "фишки" клиента суммируются по всем его картам лояльности. Он может ими распоряжаться независимо от того, с помощью какой своей карты лояльности он их накопил. "Фишки" можно конвертировать в вознаграждения. 10 "фишек" могут быть обменены на 1 вознаграждение "5% скидки на один покупаемый товар". 20 "фишек" – на 1 вознаграждение "15% скидки на один покупаемый товар". 30 "фишек" – на 1 вознаграждение "25% скидки на следующую покупку". Вознаграждениями клиент может воспользоваться в точках сети. Для этого ему следует с помощью сайта распечатать листовку. В листовке содержится QR-код с данными о вознаграждении, а также текст с указанием вида вознаграждения. После печати листовки количество накопленных "фишек" уменьшается соответственно выбранному вознаграждению. Использованные листовки учитываются сервером торговой сети и отмечаются в базе данных о продажах. Сведения о них передаются на сайт программы лояльности, который помечает вознаграждение как использованное. Ежегодно в день рождения клиента на его основную карту лояльности начисляются 1000 рублей как подарок от торговой сети. Вознаграждение "10% скидки на один покупаемый товар" начисляется клиенту после каждого пополнения его карты лояльности на сумму, превышающую 1999 рублей.

Изменение старых правил и заведение новых правил начисления фишек/вознаграждений за покупки, пополнения или в зависимости от дат осуществляется менеджером сайта программы лояльности. Менеджер поддерживает сайт в актуальном состоянии. Он может редактировать сведения и добавлять новые виды вознаграждений, обмениваемых на "фишки", а также публиковать на сайт рекламные статьи о товарах и магазинах торговой сети. Эти статьи доступны любому посетителю сайта программы лояльности. Неактуальные статьи менеджер может править или удалять с сайта. При выявлении нарушений менеджер может вносить изменения в данные любой учётной записи, или блокировать учётную запись нарушителя.

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

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

Вариант 14. Билетный терминал городского транспорта


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

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

Для покупки билетов пассажир указывает вид покупки и ёмкость, а терминал высвечивает сумму покупки. Для билетов с фиксированным количеством поездок ёмкость бывает: 1 поездка, 2 поездки, 5 поездок, 10 поездок, 20 поездок, 60 поездок. Для билетов с безлимитными поездками и фиксированным сроком действия ёмкость бывает: 1 день, 5 дней, 30 дней, 90 дней, 365 дней. Для пополнения "личного кошелька" транспортной карты, используемого для оплаты проезда, ёмкостью является любая введённая пассажиром сумма, соответствующая ограничению на предельный размер всей денежной суммы в "кошельке": 20000 рублей. Терминал принимает к оплате купюры достоинством 5, 10, 50, 100, 500, 1000 и 5000 рублей. После ввода каждой купюры терминал пересчитывает сумму введённых денег и сумму, которую осталось ввести. Как только денег введено достаточно, появляется приглашение вставить транспортную карту для записи купленного билета. После записи билета на карту, она выдаётся пассажиру. Если введённая пассажиром сумма превышает цену билета, вместе с транспортной картой выдаётся сдача. За один сеанс пассажир может купить не более одного билета. Карта может быть неисправна и/или заблокирована, в таком случае её можно заменить, либо отказаться от покупки и получить назад введённую сумму. Сведения о статусе транспортной карты терминал получает с сервера городской транспортной сети. При успешной покупке терминал выдаёт пассажиру чек.

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

При оплате наличными возможна ситуация, когда у терминала нет возможности выдать сдачу теми купюрами, что хранятся в нём. В этом случае выводится сообщение, указывающее, минимальную сумму, которую надо добавить пассажиру, чтобы терминал смог выдать сдачу. Например, пассажир покупает карту с 60 поездками за 1570 рублей, опуская 1 купюру по 1000 рублей, 1 купюру по 500 рублей и 1 купюру по 100 рублей. Пусть в терминале есть только купюры по 50 рублей, а других купюр нет. Он мог бы выдать сдачу 50рублёвой купюрой. В такой ситуации терминал высвечивает сообщение «Добавьте сумму 20 рублей, чтобы получить сдачу».

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

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

Пассажир может потребовать у терминала выдать ему новую транспортную карту. Терминал запрашивает у пассажира персональные данные (фамилия и. о, мобильный номер или номер паспорта) и проверяет, что они введены по формату. Далее выдаётся новая транспортная карта с записанными данными пассажира. Стоимость услуги по выдаче карты – 50 рублей. По оказанной услуге выдаётся чек. О том, что выдана новая транспортная карта информируется сервер транспортной сети.

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

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

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

Вариант 15. Тестирование учащихся


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

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

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

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

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

Вариант 16. Онлайновая касса городского транспорта


Онлайновая касса городского транспорта – это сайт службы продажи билетов на городской транспорт.

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

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

Залогиненный клиент может купить билеты. Для приобретения билетов клиент сначала указывает типы и емкость нужного ему билета. Для билетов с фиксированным количеством поездок ёмкость бывает: 1 поездка, 2 поездки, 5 поездок, 10 поездок, 20 поездок, 60 поездок. Для билетов с безлимитными поездками и фиксированным сроком действия ёмкость бывает: 1 день, 5 дней, 30 дней, 90 дней, 365 дней. Для пополнения "личного кошелька" транспортной карты, используемого для оплаты проезда, ёмкостью является любая введённая клиентом сумма, соответствующая ограничению на предельный размер всей денежной суммы в одном "кошельке": 20000 рублей. Цена каждого билета зависит от его типа и ёмкости. Далее касса выводит список транспортных карт, привязанных к аккаунту клиента. Если список пуст, клиент может привязать новую карту, указав её ID, напечатанный на ней. Клиент должен выбрать карту, на которую будет записан билет в случае успешной покупки. Возможность записи билета зависит от того, какие билеты уже записаны на карте. Так, пополнение кошелька может быть принято, если сумма после пополнения не превысит 20000 рублей (это предел по одной транспортной карте). Билет с фиксированным сроком действия не может быть записан, если на карте в данный момент записан действительный билет такого же типа, срок которого не истёк. Билет с фиксированным количеством поездок может быть записан всегда. Осуществив проверки, касса либо предупреждает о неуспехе, либо выводит сведения о заказанном билете и сумме покупки. Для оплаты билета клиент сообщает кассе номер банковской карты, срок её годности, имя владельца карты и код CVV2. Касса по линии связи с банком отправляет запрос на списание средств для оплаты билета. Варианты ответов на запрос: операция одобрена банком; операция невозможна, так как карта блокирована; операция невозможна, так как превышен кредитный баланс. Если операция одобрена, то система заносит нужные сведения, отмечая факт покупки. Клиенту направляется чек по электронной почте и SMS. На этом покупка билета завершается. В ходе покупки клиент может раздумать и до момента оплаты поменять тип билета и другие параметры, или отказаться от покупки.

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

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

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

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

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

Вариант 17. Курьерская служба


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

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

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

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

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

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

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

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

Вариант 18. Клиника


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

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

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

Система клиники по требованию пользователя формирует и выдаёт на печать следующую справочную информацию:

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

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

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

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

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

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


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

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

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

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

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

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

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


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

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

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

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

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

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


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

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

Для приобретения билета зритель должен указать дату, время, название спектакля, сцену, тип билета (взрослый, детский). Цена билета зависит от сцены, на котором проходит спектакль, от расположения места в зале (первые ряды партера дороже других, места в ложе дороже, чем на верхнем ярусе и т. п.). Далее терминал демонстрирует схему зала и предлагает выбрать от 1 до 4 свободных мест в зале. О том, какие места свободны, терминал узнаёт от сервера системы театральных касс. После выбора мест зрителем, терминал выводит стоимость билетов. Затем зритель должен ввести в терминал достаточное количество наличных денег. Терминал принимает к оплате купюры достоинством 5, 10, 50, 100, 500, 1000 и 5000 рублей. После ввода каждой купюры терминал пересчитывает сумму введённых денег и сумму, которую осталось ввести. Как только денег введено достаточно, система театральных касс информируется о проданных билетах, терминал печатает билеты, указывая все необходимые сведения. Если введённая зрителем сумма превышает цену билета, вместе с билетами выдаётся сдача. На этом покупка билетов завершается и на экран терминала выводится главное меню. В ходе покупки зритель может раздумать и до момента оплаты поменять места и другие параметры, или отказаться от покупки. При отказе терминал возвращает принятые деньги. Терминал не должен допускать ситуаций, когда выдаётся билет и возвращаются деньги, принятые в уплату за этот билет. Продажа билетов на спектакль через терминал прекращается в момент начала спектакля.

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

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

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

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

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

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


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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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


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

  

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

Обновлено: 14.12.2017