Разработка ТЗ АСУ
Техническое задание фиксирует общий предмет договорённости: зачем создаётся система, что она должна делать, в каких условиях и как будет проверен результат.
Структура ТЗ
- Контекст, цель и ожидаемый эффект.
- Границы системы и внешние участники.
- Термины предметной области.
- Функциональные требования и сценарии ошибок.
- Данные, сроки хранения и миграция.
- Интеграции и версии контрактов.
- Роли, права и аудит.
- Производительность, доступность и восстановление.
- Ограничения по среде и технологиям.
- Критерии приёмки.
- Порядок внедрения и отката.
- Допущения, риски и вопросы.
Проверяемое требование
Слабая формулировка:
Система должна быстро формировать отчёт.
Проверяемая:
Для периода до 31 дня отчёт формируется не дольше 5 секунд в 95% запросов при 20 параллельных пользователях на согласованном наборе данных.
Она задаёт вход, метрику, порог, нагрузку и стенд. Отдельно надо описать поведение при превышении времени и повторе запроса.
Проектная документация
Отвечает на вопрос «как устроено решение»:
- контекст и компоненты;
- потоки данных и последовательности;
- модель хранения;
- интерфейсы;
- ключевые архитектурные решения и альтернативы;
- модель угроз;
- развёртывание;
- стратегия тестирования и миграции.
Документировать надо причины значимых решений, а не пересказывать каждый класс.
Эксплуатационная документация
- установка и конфигурация;
- проверка здоровья;
- метрики, логи и оповещения;
- типовые симптомы и порядок диагностики;
- резервное копирование и восстановление;
- масштабирование;
- ротация секретов;
- выпуск и rollback;
- контакты владельцев и границы ответственности.
Проверка ТЗ
- нет ли терминов с несколькими значениями;
- у каждого требования есть критерий;
- описаны ли неуспех, повтор и граничные данные;
- согласованы ли требования между собой;
- определена ли проверка нефункциональных свойств;
- можно ли безопасно эксплуатировать и вывести систему.
Связано: Функциональные характеристики системы, Понятие жизненного цикла информационной системы.
Самопроверка
- Почему слово «быстро» не является требованием?
- Чем ТЗ отличается от проектной документации?
- Какие эксплуатационные требования влияют на архитектуру заранее?