Разработка ТЗ АСУ

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

Структура ТЗ

  1. Контекст, цель и ожидаемый эффект.
  2. Границы системы и внешние участники.
  3. Термины предметной области.
  4. Функциональные требования и сценарии ошибок.
  5. Данные, сроки хранения и миграция.
  6. Интеграции и версии контрактов.
  7. Роли, права и аудит.
  8. Производительность, доступность и восстановление.
  9. Ограничения по среде и технологиям.
  10. Критерии приёмки.
  11. Порядок внедрения и отката.
  12. Допущения, риски и вопросы.

Проверяемое требование

Слабая формулировка:

Система должна быстро формировать отчёт.

Проверяемая:

Для периода до 31 дня отчёт формируется не дольше 5 секунд в 95% запросов при 20 параллельных пользователях на согласованном наборе данных.

Она задаёт вход, метрику, порог, нагрузку и стенд. Отдельно надо описать поведение при превышении времени и повторе запроса.

Проектная документация

Отвечает на вопрос «как устроено решение»:

  • контекст и компоненты;
  • потоки данных и последовательности;
  • модель хранения;
  • интерфейсы;
  • ключевые архитектурные решения и альтернативы;
  • модель угроз;
  • развёртывание;
  • стратегия тестирования и миграции.

Документировать надо причины значимых решений, а не пересказывать каждый класс.

Эксплуатационная документация

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

Проверка ТЗ

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

Связано: Функциональные характеристики системы, Понятие жизненного цикла информационной системы.

Самопроверка

  • Почему слово «быстро» не является требованием?
  • Чем ТЗ отличается от проектной документации?
  • Какие эксплуатационные требования влияют на архитектуру заранее?