Задача, которую буду решать [book rental]

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

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

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

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

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

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

Первоначальный анализ требований

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

Элементы:

  • Компания — оставим существующую сущность CRM компания
  • Издание — объект, группирующий экземпляры
  • Экземпляр — книга, журнал, любой другой товар, который дают в аренду
  • Журнал экземпляра — журнал событий, происходящих над экземпляром с возможностью указать комментарий по каждому дейтвию

Роли:

  • Администратор — полностью контролирует модуль
  • Менеджер — отвечает за взаимодействия с клиентом
  • Ответственный за издание — отвечает за управление экземпларями в рамках своих изданий

Действия:

Действия представлены на UML диаграмме вариантов использования

Диаграмма вариантов использования

Добавить комментарий