SDLC
Software Development Life Cycle — жизненный цикл разработки ПО, набор этапов от идеи до вывода системы из эксплуатации.
Что такое SDLC
SDLC (Software Development Life Cycle, жизненный цикл разработки программного обеспечения) — модель, описывающая полный набор этапов, через которые проходит система: от появления идеи до вывода из эксплуатации. Иногда аббревиатуру расшифровывают как Systems Development Life Cycle — тогда речь шире, чем про софт: про информационную систему целиком.
SDLC — не методология и не конкурент Scrum. Это перечень работ, которые всё равно придётся выполнить: требования кто-то соберёт, архитектуру кто-то придумает, код кто-то протестирует. Разные методологии отличаются не составом этапов, а их порядком, размером и тем, сколько раз цикл повторяется.
Этапы SDLC
| Этап | Что происходит | Артефакт |
|---|---|---|
| 1. Планирование | Оценка целесообразности, бюджет, риски | Устав, дорожная карта |
| 2. Анализ требований | Что система должна делать | Требования, критерии приёмки |
| 3. Проектирование | Как это будет устроено | Архитектура, модель данных, контракты API |
| 4. Разработка | Написание кода | Код, code review |
| 5. Тестирование | Проверка соответствия требованиям | Отчёт о тестировании |
| 6. Внедрение | Выкатка в production | Релиз, стратегия деплоя |
| 7. Эксплуатация | Мониторинг, поддержка, доработки | SLA, инциденты |
| 8. Вывод | Отключение, миграция данных | Архив, план миграции |
Про последний этап обычно забывают, а он существует: систему когда-нибудь придётся выключить, и данные из неё надо будет куда-то деть.
Требования на этапе 2 делят на функциональные («что делает»: пользователь может восстановить пароль) и нефункциональные («каким должно быть»: 500 RPS при p95 ниже 300 мс, доступность 99,9%). Нефункциональные требования — самые дорогие в пропуске: их нельзя дописать после релиза, они определяют архитектуру. Формулирует и те, и другие обычно аналитик.
Модели SDLC
- Waterfall (водопад) — этапы строго последовательно, каждый закрывается перед началом следующего. Работает, только когда требования известны заранее и не изменятся. Главная слабость: ошибка в требованиях обнаруживается на приёмке, когда всё построено.
- V-модель — водопад, где каждому этапу слева сопоставлен уровень тестирования справа: требованиям — приёмочные тесты, проектированию — интеграционные, коду — модульные. Распространена там, где обязательна прослеживаемость: медтехника, транспорт.
- Итеративная и инкрементальная — цикл повторяется, продукт растёт кусками. Каждая итерация проходит все этапы в миниатюре.
- Спиральная — итерации с явной оценкой рисков на каждом витке. Для дорогих и рискованных проектов.
- Agile — итерации в 1–4 недели, требования уточняются по ходу. Сегодня доминирует в продуктовой разработке.
- DevOps — цикл замыкается: эксплуатация даёт обратную связь обратно в планирование, а этапы 4–7 автоматизируются в CI/CD-пайплайн.
Разница между водопадом и Agile — не в наличии этапов, а в длине цикла:
Waterfall: ─ Требования ─ Дизайн ─ Код ─ Тест ─ Релиз ─→ (месяцы, один проход)
Agile: ┌ Требования ─ Дизайн ─ Код ─ Тест ─ Релиз ┐
└──────────── обратная связь ──────────────┘ (2 недели, много проходов)
Secure SDLC
Secure SDLC (SSDLC) — вариант, где на каждом этапе есть свои требования информационной безопасности, а не отдельная проверка в конце:
- анализ требований — модель угроз, требования к защите данных;
- проектирование — архитектурный разбор рисков;
- разработка — статический анализ (SAST), проверка зависимостей на известные уязвимости;
- тестирование — динамический анализ (DAST), пентест;
- эксплуатация — мониторинг уязвимостей и патч-менеджмент.
Принцип называется shift-left — сдвиг проверок влево по циклу, ближе к началу. Логика та же, что у code review: уязвимость, найденная на этапе требований, стоит разговора, а найденная в production — инцидента.
Зачем знать SDLC
На практике знание модели даёт три вещи: общий язык с заказчиком (понятно, на каком этапе проект и что будет дальше), понимание, где именно теряются деньги (обычно в требованиях, а не в коде), и аргумент против пропуска этапов. Ни одна методология не позволяет не собирать требования — она позволяет собирать их порциями.
Связанные термины
- Agile / процессы разработки — итеративная реализация цикла
- DevOps — замыкание цикла обратной связью из эксплуатации
- CI/CD — автоматизация этапов сборки, тестирования и внедрения
- Code review — контроль качества внутри этапа разработки
- Тестирование и бенчмарки — этап проверки соответствия требованиям
- Роли аналитиков — кто отвечает за требования
Готовы запустить GPU-задачу?
Запустить GPU-сервер