Django TODO: выработка требований к системе

Fri 29 June 2012

После прочтения Макконелла захотелось спроецировать его советы на Django. Для этого я взял за основу разработку системы Django TODO. Итак, первый этап -- выработка требований к системе.

Требования подробно описывают, что должна делать система. Внимание к требованиям помогает свести к минимуму изменения системы после начала разработки. Явные требования помогают гарантировать, что функциональность системы определяется пользователем, а не программистом. Если явных требований нет, программисту обычно самому приходится вырабатывать их во время программирования [1].

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

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

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

Отображение дополнительной информации о сроке задачи зависит от ее статуса. Пример возможных вариантов для статуса WAIT:

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

Пример возможных вариантов для статусов WORK и STOP: до дедлайна осталось два дня, дедлайн просрочен на один день. Пример возможных вариантов для статуса DONE: выполнено в срок за пять дней, дедлайн просрочен на один день.

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

  • название;
  • дедлайн;
  • информацию об исполнителе задачи, ее статусе, выделенный и фактический срок исполнения;
  • информацию о сроке цепочки, которая зависит от статуса цепочки.
[1]Макконелл С. Совершенный код. Мастер-класс / Пер. с англ. – М. : Издательство "Русская редакция", 2012. – 896 стр. : ил.

Category: Python Tagged: python django django-todo requirements

Comments