Жизненный цикл разработки ПО

R5AM, Александр Ящук, Москва, 2022г.
На главную


SDLC - Software development lifecycle, жизненный цикл разработки программного обеспечения.

Этот цикл состоит из 6 (шести) основных этапов: Анализ требований, Планирование, Проектирование, Разработка, Тестирование и Развёртывание, Поддержка и сопровождение.

При реализации SDLC используют различные модели, которые определяют переходы между этапами разработки:

Waterfall - каждый следующий этап SDLC начинается только по завершении предыдущего. Например, разработка начинается только по утвержденному проектному решению, где полностью описаны все требования к системе. А тестирование стартует после разработки, поэтому стоимость ошибки, допущенной на ранних этапах, таких как отсутствие требования или его некорректное описание, многократно возрастает. Эта модель подходит для проектов с четко и подробно проработанной документальной базой по всем возможным сценариям, в медицине или военно-космической промышленности.

Iterative - на этапе планирования и анализа описываются не все требования к продукту, а только базовые, которые составляют его «ядро», реализующее основную суть. Такой минимально жизнеспособный продукт (MVP, Minimal Viable Product) можно быстро выпустить на рынок, протестировать на реальных пользователях и собрать от них обратную связь, чтобы далее исправить не найденные штатными тестировщиками ошибки и добавить новые полезные функции. Итерационная модель подходит для больших проектов с неопределёнными требованиями и инновационных задач.

Spiral - проект тоже реализуется итерациями. Движение по этапам SDLC подобно спирали, где каждая последующая стадия основывается на предыдущей, а в конце витка (цикла итераций) принимается решение о дальнейшей разработке. Спиральная модель похожа на инкрементную, но гораздо больше внимания уделяет оценке рисков: с каждым новым витком спирали процессы разработки ПО усложняются и расширяются. Эта модель подходит для исследований и проектов с высокими рисками.

Agile - предполагает гибкий итеративный подход к управлению проектами и разработке ПО, позволяющий командам ускорить доставку ценности клиентам. Вместо «монолитного» выпуска всего продукта целиком, Agile-команда выполняет работу в рамках небольших итераций, поставляя ценность частями, которые называются-инкрементами. При этом требования, планы и результаты работы постоянно проходят проверку на актуальность. Такая обратная связь от клиента дает возможность быстро реагировать на изменения. Это особенно важно для продуктовой разработки, когда в рамках ИТ-проекта создается совершенно новый, ранее не существовавший продукт.

V-shaped - реализует последовательное движение по этапам SDLC с принципом разработки через тестирование (TDD, Test Driven Development). По сути, это усовершенствованная каскадная модель, где одновременно с выполнением каждого этапа SDLC разрабатываются тесты, описывающие проверку его корректного выполнения. V-модель подходит для проектов, где важна надёжность и цена ошибки очень высока. Например, разработка систем обеспечения безопасности в транспорте или мониторинга за жизненно важными параметрами человеческого организма в реанимации.

Большого взрыва - не следует никаким конкретным процессам, требует очень мало планирования, проста в управлении, требует мало ресурсов, высоки риски неопределённости. Заказчик не уверен, что именно он хочет, и требования выполняются на лету без особого анализа. Обычно эта модель используется для небольших проектов, где команды разработчиков очень малы.






На главную
К началу страницы