Жизненный цикл программного обеспечения
(Software Development Lifecycle)

sdlc

Результат слаженной работы команды — продукт или программное обеспечение. Например, приложение мобильного банка — это продукт.

Жизненный цикл программного обеспечения (SDLC) описывает процесс создания программного обеспечения, выделяя ключевые этапы.

Чем раньше QA инженер обнаружит проблемы в программном обеспечении, тем значительнее сократятся затраты на их исправление.


Этапы жизненного цикла программного обеспечения


1. Планирование
Этап планирования позволяет спланировать ресурсы, необходимые для реализации проекта, оценить риски и ожидаемые результаты.
2. Анализ
Аналитики собирают информацию от заказчиков, готовят документацию и описывают требования к продукту.
3. Дизайн
На данном этапе происходит детализация требований, создаются схемы и диаграммы взаимодействий, в частности макеты экранов.

4. Реализация
Разработчики изучают требования, описанные аналитиками, и пишут программный код приложения.
5. Тестирование
В дело вступают тестировщики, ведь продукт не должен быть выпущен в промышленное использование без полной уверенности в его корректной работе.
6. Поддержка
После успешного выпуска (релиза) продукту могут потребоваться доработки функционала либо исправления багов, обнаруженных уже реальными пользователями.

Модели разработки программного обеспечения

Сравним две наиболее распространенные модели разработки — модель типа водопад (Waterfall Model) и гибкую модель (Agile Model). Обе модели опираются на жизненный цикл программного обеспечения — SDLC.


Водопад или каскадная модель
waterfall-sdlс-model

Водопадная модель — это классическая модель разработки. Процесс разделен на последовательные этапы, каждый из которых зависит от успешного завершения предыдущего. Подходит для проектов с четкими требованиями и редкими изменениями.

Плюсы:
  • Требования определены на ранних этапах
  • Строгий контроль над процессом разработки
  • Облегчает оценку времени и затрат на каждый этап
Минусы:
  • Изменения требований затруднительны и затратны
  • Отсутствие быстрой обратной связи может привести к несоответствию ожиданиям заказчика
Гибкая модель
agile-sdlc-model

Гибкая модель ставит акцент на цикличной разработке, быстрой поставке новых версий рабочего программного продукта и постоянном взаимодействии с заказчиком. Ранее рассмотренный нами Scrum следует гибкой модели.

Плюсы:
  • Адаптация к изменяющимся требованиям
  • Высокая скорость выпуска рабочего продукта
  • Быстрая обратная связь и учет рекомендаций заказчика на каждом этапе разработки
Минусы:
  • Часто недостаточное внимание к документации
  • Необходимость активного участия заказчика может замедлить процесс разработки