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

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


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

Требования


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

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

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

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

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

Процесс моделирования должен проходить так, как это описано в методическом пособии (см. Visual Paradigm). Начинать работу следует не с пустого проекта, а с заготовки [zip]. Структура модели должна соответствовать структуре, предусмотренной 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, как это описано в методичке и рассказано в лекциях. В каждом пакете внутри Design Model составить диаграмму классов со всеми классами пакета и их связями между собой.

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

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

  7. Для подсистемы создать класс-фасад и другие классы подсистемы, связи между подсистемой и другими частями системы показать на отдельной диаграмме классов, связи между классами подсистемы показать на ещё одной диаграмме классов, создать 3-4 диаграммы последовательности для описания реализации разнородных операций интерфейса подсистемы, если в интерфейсе их больше (1 read, 1 update, 1 delete, 1 create).

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

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

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

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

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

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

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

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

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

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

  3. Медиатека

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

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

  6. Веб-афиша

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

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

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

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

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

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

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

  14. Веб-недвижимость

  15. Кадров.Нет

  16. Инфомат в аэропорту

  17. Почтомат

  18. Расписание занятий и экзаменов

  19. Краудфандинг

  20. Вопросы и ответы

  21. Сайт конференций

  22. Еды.Нет

  23. Веб-аукцион

  24. Задания сотрудникам

  25. Веб-группы

Вариант 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 для выдачи сдачи покупателям. Эта сумма вводится в кассу как начальная сумма выручки. В конце рабочего дня кассир закрывает день, сдаёт менеджеру всю выручку, инициализирует передачу сведений о покупках за день на сервер супермаркета и выключает кассу по окончании передачи, заново авторизуясь при помощи пароля.

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

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

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

Вариант 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), цена диска, список людей, имеющих отношение к материалам на диске (авторов, актёров, исполнителей и т. п.), штрих-код с обложки диска, год выпуска диска, производитель диска, количество доступных экземпляров диска.

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

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

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

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

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


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

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

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

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

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

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

Вариант 14. Веб-недвижимость


"Веб-недвижимость" – это сайт для тех, кто хочет сдать/снять/купить/продать комнату/квартиру/дом. Сайт получает и показывает объявления от застройщиков и агентств недвижимости, а также частные объявления от собственников недвижимости. Полученная информация обрабатывается редакторами: устраняются повторы, сомнительные и устаревшие предложения. Перед подачей объявления необходимо "войти" в систему, используя учётную запись, заведённую при регистрации. Пользователь, выполняя регистрацию, сообщает свой email (далее используемый как логин), пароль, Ф. И. О., номер телефона. После проверки этих данных, осуществляемой редакторами сайта, регистрация подтверждается и даётся возможность "входить" на сайт и создавать объявления. В новом объявлении указывается: тип объявления (сдать/продать), тип объекта (комната/квартира/дом/участок/коммерческая недвижимость), адрес, общая площадь, этаж и количество комнат (для квартиры или дома), стоимость. Если в состав объекта входят 2 или более чем 2 помещения, то о каждом из них сообщается его тип (прихожая, спальня, столовая, кухня, библиотека, кабинет, ванная, передняя, детская, жилая, чулан, зал, холл, мастерская, будуар, гардеробная, гостинная, туалет, коридор) и площадь. Суммарная площадь помещений не должна превышать площадь объекта. Все созданные объявления модерируются редакторами и лишь потом попадают в базу, по которой ведётся поиск. Редактор проверяет достоверность сведений, отсутствие дубликатов, соответствие стоимости, полноту и качество сведений в объявлении. Если объявление перестаёт быть актуальным, то его создатель может его обновить или удалить. Обновлённые объявления также проходят модерацию.

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

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

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

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

Вариант 15. Кадров.Нет


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

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

В новом резюме соискателем указывается: желаемая должность; профессиональная область; от 1 до 3 специализаций в выбранной профессиональной области; желаемый месячный доход; опыт работы; образование; дополнительные сведения о себе; видимость резюме (всем, всем работодателям "Кадров.Нет", всем работодателям "Кадров.Нет" кроме указанных, только указанным работодателям "Кадров.Нет", только себе). Сведения об образовании даются с указанием учебных заведений, дат, уровня полученного образования. Опыт работы описывается с указанием прошлых работодателей, их адресов, периодов работы, занимаемых должностей. Все созданные резюме модерируются редакторами также как объявления о вакансиях и лишь потом попадают в базу, по которой ведётся поиск. Если резюме перестаёт быть актуальным, то его создатель может его обновить или удалить. Обновлённые резюме также проходят модерацию. Соискатель может иметь не более 20 резюме одновременно.

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

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

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

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

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

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

Вариант 16. Инфомат в аэропорту


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

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

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

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

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

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

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

Вариант 17. Почтомат


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

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

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

Для отправки посылки пользователь нажимает кнопку с цифрой 2. На экране появляется приглашение поднести к сканеру штрих-код со специальной марки, которую отправитель заблаговременно приобретает на почте. Почтамат по штрих-коду запрашивает у почтового сервера сведения об отправляемой посылке. Если пользователь пытается использовать копию штрих-кода с марки, по которой ранее была принята посылка, сеанс обслуживания завершается. Если код подходящий, пользователь должен указать размеры посылки: высоту, ширину, глубину. Каждый размер указывается нажатиями на кнопки-цифры и является двузначным десятичным числом. Если посылка не превышает размеры 15х40х60, она может быть принята в малую ячейку; 25х40х60 – в среднюю; 40х40х60 – в большую. Почтамат проверяет, есть ли свободные ячейки подходящего размера. Если ячейка находится, открывается её дверца, и пользователь может положить посылку в ячейку. После захлопывания дверцы почтамат запирает ячейку и отправляет на почтовый сервер сообщение о принятой посылке с указанием нового статуса («принята от отправителя»). Так сервер узнаёт, что по использованному штрих-коду больше не следует принимать отправления. По окончании отправки почтамат переходит в главное меню. Если нет подходящей свободной ячейки, на экран выдаются адреса ближайших почтаматов, с помощью которых пользователь может попробовать отправить посылку. Ознакомившись с этими сведениями, пользователь нажимает любую кнопку для возврата в главное меню. Адрес почтамата с подходящей свободной ячейкой почтамат получает от сервера. Сервер получает эти сведения, опрашивая окрестные почтаматы.

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

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

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

Вариант 18. Расписание занятий и экзаменов


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

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

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

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

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

Аналогично с составлением семестрового расписания занятий система используется при составлении расписания экзаменационной сессии. По правилам, принятым в университете, зимняя сессия длится с 4 по 26 января, летняя – с 1 по 26 июня. У одной и той же группы два подряд идущих экзамена не могут быть назначены с промежутком меньшим чем 3 суток. Выявление коллизий, учёт пожеланий преподавателей стереотипны.

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


Вариант 19. Краудфандинг


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

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

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

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

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

Автор проекта может размещать "новости" о проекте всё время, начиная с того момента, как проект проходит модерацию.

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

Вариант 20. Вопросы и ответы


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

Каждому пользователю сайта сопоставлен его рейтинг. Начальное значение рейтинга 100. За каждый ответ начисляется 1 балл. Если ответ выбран лучшим в результате голосования, дополнительно начисляются 9 баллов. Авторы с отрицательным рейтингом не имеют права задавать новые вопросы. Текущее состояние сводного рейтинга пользователей можно видеть на сайте. Может быть показан глобальный рейтинг и рейтинг в отдельной категории.

Чтобы сайт не засоряли посторонними текстами, любой пользователь, зайдя на сайт, может пожаловаться на вопрос или ответ, или комментарий к ответу. Запросы, ответы и комментарии, набравшие более 5 жалоб, высвечиваются в списке модератора сайта. Модератор может либо удалить содержимое, на которое пришли жалобы (при этом авторам этого содержимого рейтинг снижается на 20 баллов), либо признать жалобы необоснованными (при этом авторам жалоб рейтинг снижается на 40 баллов). Баллы, начисленные за удалённое модератором содержимое, снимаются. По решению модератора может быть приостановлено действие учётной записи пользователя бессрочно, либо на указанное модератором количество суток.

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

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

Вариант 21. Сайт конференций


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

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

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

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

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

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

Вариант 22. Еды.Нет


Сайт «Еды.Нет» создан для пользователей-кулинаров. Чтобы зарегистрироваться на сайте, нужно сообщить своё имя, фамилию, e-mail. Получив эти сведения, сайт генерирует пароль для нового пользователя и сообщает его пользователю. Логином для входа на сайт служит e-mail. Зашедший в систему пользователь видит список своих рецептов и рецептов пользователей, которых он отметил как своих друзей. Пользователь может добавлять новые рецепты, удалять или редактировать свои рецепты. Рецепты друзей можно читать, но не редактировать. Добавляя рецепт, пользователь указывает название блюда, тип блюда (закуска, салат, первое, второе, десерт), основу блюда (мясное, из птицы, из морепродуктов, овощное, фруктовое, из круп, мучное), длительность приготовления блюда, список ингредиентов блюда с указанием их количества, количество персон, на которых рассчитано блюдо и перечень шагов по приготовлению блюда. Шаги следуют по порядку. С каждым шагом связано текстовое описание шага какое-то количество ингредиентов блюда, причём суммарное количество одного ингредиента по всем шагам равно общему его количеству в блюде. Рецепты блюд могут сопровождаться несколькими фотографиями, иллюстрирующими какие-либо шаги по ходу приготовления и/или способ подачи на стол. Для рецепта пользователь указывает аудиторию: доступен всем, доступен зарегистрированным, доступен друзьям, личный.

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

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

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

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

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

Вариант 23. Веб-аукцион


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

После успешного завершения аукциона, которое наступает, если аукцион завершился с хотя бы одной принятой ставкой, сайт информирует продавца и покупателя о совершении сделки и пересылает им контактные данные. Обмен товаров на деньги осуществляется вне системы, но по каждой сделке и продавец, и покупатель могут оставить отзыв с указанием оценки сделки (от -5 до +5 баллов). Сумма баллов пользователя называется рейтингом. Пользователи с рейтингом ниже -20 не могут делать ставки. Пользователи с рейтингом ниже -30 не могут добавлять лоты. Модератор аукционного сайта может удалить аккаунты пользователей с рейтингом ниже -100.

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

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

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

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

Вариант 24. Задания сотрудникам


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

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

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

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

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

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

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

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

Вариант 25. Веб-группы


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

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

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

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

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

Удалить группу может только кто-либо из её владельцев.

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

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


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

  

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

Обновлено: 8.12.2016