V-модель
История модели
V-модель разработки программного обеспечения была разработана в Германии в 1980-х годах как расширение каскадной модели. Она была разработана с целью улучшения управления качеством и снижения рисков программных проектов. Особенно в таких критических областях, как автомобильная и медицинская промышленность. Одним из главных инициаторов создания этой модели была немецкая компания Bosch. Впоследствии она широко использовалась в проектах НАТО и в различных европейских правительственных агентствах.
Этапы
V-модель (иногда называемая V-образной моделью) — это расширение классической каскадной модели. В ней особое внимание уделяется контролю и проверке на каждом этапе разработки. Этапы модели расположены в форме буквы V, что символизирует направление процесса:
- Анализ требований: сбор и уточнение требований к системе от заинтересованных сторон. Результатом этого этапа является документ с требованиями к продукту.
- Определение требований к системе: определение функциональных и нефункциональных требований к системе, на основе которых разрабатывается архитектура.
- Проектирование высокого уровня (архитектура): создание архитектуры системы и определение ее основных компонентов и взаимодействия между ними. Результатом этого этапа является проект архитектуры.
- Низкоуровневое проектирование: детальное проектирование отдельных модулей и их функций, позволяющее разработчикам легко понять структуру и функциональность модулей.
- Кодирование: написание исходного кода на основе предыдущих этапов проектирования.
- Unit-тестирование: тестирование отдельных модулей для проверки их функциональности. На этом этапе выявляются ошибки и недочеты в реализации модулей.
- Интеграционное тестирование: тестирование взаимодействия между модулями системы. Цель этой фазы — убедиться, что модули работают вместе без каких-либо ошибок.
- Тестирование системы: тестирование всей системы на соответствие системным требованиям, определенным на предыдущих этапах.
- Приемочное тестирование: заключительное тестирование, гарантирующее, что система соответствует ожиданиям заказчика и готова к использованию.
Схема

5 шт. плюсов
- Строгое соблюдение требований — каждый этап проверяется и проверяется, что помогает избежать критических ошибок на ранней стадии.
- Прозрачность процесса — четкая структура этапов и их взаимосвязь облегчают контроль и управление проектом.
- Упор на тестирование — наличие тестов на всех уровнях снижает вероятность ошибок в конечном продукте.
- Подходит для проектов с четко определенными требованиями — позволяет точно следовать плану, когда требования известны и стабильны.
- Хорошая документация на всех этапах — каждый этап оставляет после себя документацию, которая облегчает дальнейшее сопровождение системы.
5 шт. минусов
- Отсутствие гибкости — любые изменения требований на более поздних этапах потребуют значительных ресурсов для внесения изменений на всех последующих этапах.
- Длительная реализация — требует полного завершения предыдущих этапов, что может стать тормозящим фактором.
- Высокая стоимость — из-за большого количества проверок и тестов реализация проекта может оказаться дорогостоящей.
- Сложность внедрения для agile-команд — структура V-модели плохо сочетается с методами agile-разработки.
- Риск ошибок из-за длительного цикла разработки — ошибки, допущенные на начальном этапе, могут быть обнаружены только в конце, что увеличивает риски.