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

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


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

Требования


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  7. Для подсистемы создать класс-фасад и другие классы подсистемы, связи между подсистемой и другими частями системы показать на отдельной диаграмме классов, связи между классами подсистемы показать на ещё одной диаграмме классов, создать диаграммы последовательности для описания реализации операций интерфейса подсистемы.

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

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

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

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

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

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

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

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

  1. Сайт гостиничной сети

  2. Касса супермаркета

  3. Медиатека

  4. Веб-маркет

  5. Фильмопоиск

  6. Веб-афиша

  7. Инфомат на вокзале

  8. Инфомат в музее

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

  10. Билетный киоск

  11. Веб-петиция

  12. Инфомат в книжном магазине

Вариант 1. Сайт гостиничной сети


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

Постоянные клиенты гостиничной сети имеют собственные аккаунты для входа на сайт. Им предоставляется возможность узнать количество накопленных баллов. За каждый рубль, потраченный на оплату номеров, постоянный клиент получает один балл. Если сумма баллов ниже 40 000, постоянный клиент пользуется скидкой 3% при бронировании/оплате номера. При сумме баллов от 40 001 до 80 000 скидка составляет 5%; 80 001 - 150 000 -- 10%, от 150 001 -- 15%. Для получения скидки постоянный клиент должен бронировать номер, выполнив вход на сайт. Начисление баллов производится по окончании пребывания клиента в гостинице.

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

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

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

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

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


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

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

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

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

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

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

Вариант 3. Медиатека


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

Наряду с регистрационным списком системой должен поддерживаться каталог медиатеки, где хранится информация о носителях информации: бумажных книгах, аудиокнигах на CD, музыкальных CD, видеоматериалах на DVD и Blu Ray. Следует различать запись в каталоге -- наименование, и отдельные экземпляры книг или дисков. Одному наименованию могут соответствовать один или несколько экземпляров. О наименовании-книге известны следующие данные: название, ISBN, список авторов, каталожный шифр, год и место издания, название издательства, общее количество экземпляров книги в медиатеке и количество её экземпляров, доступных в текущий момент. О наименовании-диске известны следующие данные: название, тип диска, список людей, имеющих отношение к материалам на диске (авторов, актёров, исполнителей и т. п.), каталожный шифр, год выпуска диска, название издательства, общее количество экземпляров диска в медиатеке и количество его экземпляров, доступных в текущий момент. Система обеспечивает добавление, удаление и изменение данных каталога, а также поиск наименований в каталоге на основании введённого шифра или ISBN, или названия, или фамилии. Читатели имеют доступ только к каталогу медиатеки (они могут осуществлять в нем только поиск и просмотр).

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

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

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

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

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

Вариант 4. Веб-маркет


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

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

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

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

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

Вариант 5. Фильмопоиск


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

Незарегистрированный пользователь «Фильмопоиска» может осуществлять поиск фильмов среди сведений, представленных на сайте. Фильмы можно искать по названию, году выхода, персоне задействованной в съёмках фильма. Незарегистрированный пользователь может оценить любой фильм и любую персону по 10-тибальной шкале. На основании этих оценок вычисляются средние баллы для ранжирования фильмов (и персон) в рейтинге рядовых зрителей. Для ограничения накруток одному фильму с одного IP-адреса может быть выставлено не более одной оценки. Такое же ограничение действует при оценивании персон.

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

При удалении сведений о фильме удаляются связанные с ним оценки и рецензии. При удалении сведений о персоне удаляются все её оценки. Логины разных зарегистрированных пользователей не должны совпадать. Минимальная длина логина и пароля -- 8 символов.

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

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

Вариант 6. Веб-афиша


На сайте "Веб-афиша" можно ознакомиться со сведениями о проведении различных мероприятий: кинопоказов, театральных представлений, мастер-классов, выставок, концертов в различных городах. Добавлять новые сведения могут только зарегистрированные пользователи. Внося сведения о новом мероприятии, пользователь сайта указывает: название мероприятия, тип мероприятия, его тематику, даты начала и окончания, место проведения, условия участия, текстовое описание мероприятия, данные об организаторах, включающие телефон и e-mail, максимально допустимое количество участников (0 -- если количество участников не ограничено). Для привлечения внимания может быть приложена картинка, размер которой не превышает 800х640 пикселей. Местом проведения может быть театр, кинотеатр, выставочный зал, концертный зал, музей, площадь, кафе и т. п. В описании места проведения обязательно указывается адрес и сведения для связи (телефон, e-mail, аккаунты в соц. сетях). Участие в мероприятиях может быть либо платным, либо бесплатным. Публикация новых сведений происходит только после того, как модератор сайта их вычитает и одобрит.

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

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

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

Следует создать базу данных сайта "Веб-афиша".

Вариант 7. Инфомат на вокзале


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

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

Второй пункт меню даёт возможность пассажиру ознакомиться с инструкцией по регистрации электронного билета. Она состоит из нескольких шагов, каждый из которых описан на отдельной экранной странице. Пассажир может передвигаться по инструкции вперёд/назад или вернуться в главное меню. Прочитав или пролистав всю инструкцию, пассажир может вернуться в меню и начать регистрацию электронного билета в разделе «Расписание поездов». Он должен выбрать поезд из расписания и ввести свою фамилию и инициалы. Затем он должен открыть на экране смартфона сведения о билете, так чтобы был виден штрих-код. Экран смартфона следует поднести к сканеру. Далее инфомат запрашивает сервер вокзала о возможности регистрации данного электронного билета. Получив подтверждение, инфомат дублирует его на экран и предлагает распечатать посадочный талон. Если пассажир затребовал печать талона, инфомат печатает посадочный талон. На этом регистрация завершается и на экран выводится главное меню. В ходе регистрации пассажир может вместо штрих-кода ввести 14тизначный цифровой шифр электронного билета. Если возникают проблемы с получением подтверждения от сервера или с вводом сведений о билете, инфомат информирует пассажира о возникших затруднениях и предлагает начать регистрацию заново и вернуться к выбору поезда, либо вернуться в главное меню.

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

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

Если пассажир не совершает никаких действий с инфоматом в течение 5 минут, происходит автоматический переход в главное меню.

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

Вариант 8. Инфомат в музее


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

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

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

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

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

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

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

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


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

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

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

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

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

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


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

Загрузка бумажных бланков карт в автомат осуществляется обслуживающим персоналом. Автомат следит за наличием бланков карт. Если бланки какого-либо вида заканчиваются, автомат отправляет сообщение об этом на станцию обслуживания по линии связи и информирует покупателей (зажигается красная лампочка рядом с кнопкой выбора данного вида транспорта).
Автомат принимает к оплате бумажные купюры и монеты. После ввода денег клиент выбирает вид транспорта нажатием на одну из четырёх кнопок. Затем клиент должен выбрать ёмкость карты, перемещаясь по списку при помощи кнопок "Вверх", "Вниз" и "Выбор". Ёмкости бывают: 1 поездка, 2 поездки, 5 поездок, 10 поездок, 20 поездок, 60 поездок, 1 день, 5 дней, 30 дней, 90 дней, 365 дней. После того как пассажир сделал свой выбор, выдача карты производится только в том случае, если имеются бланки выбранных карт, и если введённая сумма денег не меньше цены карты выбранной ёмкости. В этом случае автомат использует бланк карты из лотка, где лежат бланки нужного вида, и записывает на бумажную карту данные о времени продажи карты и её ёмкости. Дата продажи карты и её ёмкость печатаются на её бланке. Готовая карта выдаётся клиенту. Если введённая клиентом сумма превышает цену карты, вместе с картой выдаётся сдача. За один сеанс клиент может купить не более одной карты.

Помимо бумажных билетных карт киоск может работать с пластиковыми картами "Квадрига". Разница при работе состоит в том, что в самом начале клиент вставляет свою пластиковую карту в ридер киоска, киоск считывает данные о карте, проверяет их валидность, а также запрашивает сервер транспортной компании о том, не заблокирована ли карта. Дальше работа происходит в том же ключе, что и с бумажной картой. При успешной покупке данные о купленном билете записываются на карту. Если на карте уже записан действующий билет на тот же вид транспорта, киоск препятствует покупке. На картах "Квадрига" помимо указанных выше типов билетов действует "электронный кошелёк", в который пассажир может добавить любую ненулевую сумму денег, не превышающую 5 000 рублей.
У киоска имеется информационное табло, на котором высвечивается текущая сумма денег, принятых к оплате, и сообщения для клиентов, такие как: «введите деньги», «выберите вид транспорта», «выберите ёмкость карты», «введённой суммы недостаточно», «закончились бланки», «заберите карту», «заберите сдачу», «заберите деньги», «добавьте сумму ... руб. чтобы получить сдачу».
Купюры и монеты, имеющиеся в распоряжении киоска, хранятся в денежном ящике. Киоск хранит сведения о том, сколько купюр или монет какого номинала есть в ящике. Принимаются купюры по 10, 50, 100, 500, 1000, 5000 рублей и монеты по 1, 2, 5, 10 рублей. Возможна ситуация, когда у киоска нет возможности выдать сдачу теми купюрами или монетами, что хранятся в ящике. В этом случае после нажатия на кнопку выдачи не производится выдача, а выводится сообщение, указывающее, минимальную сумму, которую надо добавить клиенту, чтобы киоск смог выдать сдачу. Например, пассажир покупает карту с 60 поездками на метро за 1570 рублей, опуская 1 купюру по 1000 рублей, 1 купюру по 500 рублей и 1 купюру по 100 рублей. Пусть в киоске есть только 2 монеты по 10 рублей, а других монет нет. Киоск мог бы выдать сдачу 50рублёвой купюрой из денежного ящика. В такой ситуации автомат высвечивает сообщение «Добавьте сумму 20 руб. чтобы получить сдачу.».
При нажатии на кнопку "Возврат" клиенту возвращаются все принятые от него к оплате деньги. Возврат денег не производился после выдачи карты. Киоск должен корректно работать при нажатии на "Возврат" во время выдачи карты.
В течение рабочего дня киоск накапливает данные о проданных картах (тип карты, ёмкость, стоимость, время покупки). В конце рабочего дня эти сведения передаются серверу транспортной компании, после чего удаляются из памяти. Задание включает в себя разработку схемы базы данных о типах карт, ценах, проданных и пополненных картах.
В специальном отделении киоска, закрываемом замком, есть сервисная консоль, которая используется обслуживающим персоналом. С консоли производится управление доступом к ящику с деньгами для изъятия/добавления купюр и монет, управление доступом к лоткам для загрузки или замены бланков карт, а также ввод данных о текущих типах карт и тарифах за проезд в память автомата. Данные включают в себя цену карт всех видов и всех ёмкостей, а также сведения о том, сколько бланков карт в каком лотке находится.

Вариант 11. Веб-петиция


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

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

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

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

Внутри сайта есть система отправки сообщений. Автор петиции получает автоматические сообщения о своих петициях. Сообщения содержат данные либо о действиях пользователей (кто-то подписал, кто-то отозвал подпись, кто-то прокомментировал), либо о действиях редакторов (удалена новость, удалён комментарий, петиция опубликована, петиция отклонена), либо действиях системы (петиция приостановлена, петиция переведена в архив). Пользователь, подписавший петицию получает сообщения о ней (добавлена новость, завершен сбор подписей, достигнуто очередное значительное количество поддержавших пользователей: 100, 250, 500, 1000, 1500, 2000, и далее с шагом 1000). Полученные сообщения могут быть удалены.

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

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

Вариант 12. Инфомат в книжном магазине


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

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

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

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

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

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

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


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

  

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

Обновлено: 1.3.2016