Методологии разработки: Waterfall

Методология разработки программного обеспечения (ПО) – это процесс, с помощью которого команда инженеров создает конкретный продукт.

Методология Waterfall, также известная как «Модель водопада», представляет собой последовательный процесс разработки программного обеспечения, в течение которого реализуются различные этапы проекта, включающие анализ, проектирование, разработку, тестирование. Полную документацию проекта, включая пользовательский интерфейс, пользовательские истории, все варианты и результаты функций нужно изучить на курсах Deveducation. А в этом материале рассмотрим особенности методологии Waterfall детальнее.

Что такое методология Waterfall?

Методология Waterfall – это линейный подход к управлению проектом, при котором требования заинтересованных сторон и клиентов собираются в самом его начале, а затем создается последовательный план для реализации этих требований. Водопадный подход был впервые задуман Уинстоном У. Ройсом в 1970 году, и он был быстро принят в различных отраслях промышленности благодаря своей логической последовательности и простоте реализации.

В статье Википедии говорится, что Waterfall – это последовательный (не итеративный) процесс разработки программного обеспечения, который непрерывно проходит следующие фазы: концепция, инициация, анализ, проектирование, разработка, тестирование, производство/выпуск, внедрение и обслуживание. Определение этой модели в Techopedia гласит: «… каскадная модель не предполагает переход к следующей фазе до тех пор, пока не завершится предыдущая. Вернуться к предыдущей фазе можно только в случае явной необходимости». Tutorials Point отмечает: «В модели Waterfall каждый этап должен быть завершен до начала следующего, и этапы не должны пересекаться». Мы ограничимся этими определениями, потому что они встречаются в большинстве зарубежных и отечественных компьютерных учебниках и в средствах массовой информации. Разница в определениях заключается только в названиях и количестве фаз процесса разработки программного обеспечения, что для описания методологии не очень важно. Основываясь на этих определениях, основными характеристиками методологии выступают:

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

Некоторые из отраслей, которые регулярно используют метод Waterfall, включают строительство, IT и разработку программного обеспечения. Однако термин Waterfall обычно используется в контексте программного обеспечения, поэтому остальная часть этого поста будет касаться модели, относящейся к разработке программного обеспечения.

Фазы модели Waterfall

Модель Waterfall иллюстрирует процесс разработки программного обеспечения в линейном последовательном потоке. Это значит, что любая фаза в процессе разработки начинается только тогда, когда предыдущая завершена.

Модель Waterfall – это методология управления проектами, имеющая, как минимум, пять-семь этапов, которые следуют в строгом линейном порядке, причем очередной этап не может начаться до завершения предыдущего этапа. Конкретные названия фаз могут быть разными, но они изначально были определены Ройсом следующим образом:

  • Требования.

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

  • Проектирование.

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

  • Конструирование.

На данном этапе программисты усваивают требования и спецификации предыдущих и создают реальный код.

  • Воплощение.

Считается исполнительским этапом, когда происходит большая часть разработки. На этом этапе возможны только незначительные правки к «Конструированию».

  • Тестирование

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

  • Развертывание.

Когда программное обеспечение создано, оно может быть представлено клиенту. Поскольку этот этап также включает поддержку, взаимодействие с предыдущими этапами неизбежно.

Следующая иллюстрация представляет различные фазы модели Waterfall.

Все эти фазы связаны друг с другом каскадно, а прогресс в них рассматривается как непрерывно нисходящий (как водопад) через последовательные фазы.

Waterfall: Управление проектами

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

Кроме того, каждая фаза дискретна и в значительной степени существует в изоляции. Это особенно верно для фазы «требований». Как только требования клиента собраны, он перестают играть какую-либо роль в фактической разработке программного обеспечения.

Применение модели Waterfall

Любое программное обеспечение отличается в разработке и, в зависимости от внутренних и внешних факторов, требует соответствующего подхода. Вот некоторые ситуации, в которых использование модели Waterfall было бы наиболее подходящим:

  • Требования в проекте характеризуются ясностью и четко зафиксированы.
  • Продукт, который разрабатывается, стабилен.
  • Есть наличие достаточных ресурсов с необходимым опытом для поддержки продукта.
  • Проект не длительный.

Преимущества и недостатки Waterfall

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

Некоторые из преимущества модели Waterfall следующие:

  • Фазы проекта обрабатываются и завершаются одна за одной.
  • Жесткость модели для управления проектом с наличием конкретных результатов и процесса обзора на каждом этапе.
  • Хорошо подходит для небольших проектов, где имеются четкие требования.
  • Четко определенные этапы и сроки разработки.
  • Легкость организации задач в каждой фазе.
  • Процесс и результаты документированы.

Недостатком модели Waterfall является то, что она не дает времени для раздумий или пересмотра. Когда программное обеспечение проходит стадию тестирования, достаточно трудно вернуться назад и изменить что-то, что не было продумано и задокументировано на стадии разработки.

Основные недостатки модели следующие:

  • Никакое рабочее программное обеспечение не воспроизводится до окончания жизненного цикла.
  • Есть вероятность риска и неопределенности.
  • Не очень хорошая модель для сложных и объектно-ориентированных проектов.
  • Модель не подходит для длительных и текущих проектов.
  • Трудно измерить прогресс в несколько этапов.
  • Нет приспособления к изменяющимся требованиям.
  • Регулировка объема в течение жизненного цикла может привести к завершению проекта.
  • Интеграция проекта в самом конце не позволяет выявить какие-либо технологические проблемы на раннем этапе.

Присоединяйся к DevEducation — стань востребованным специалистом и построй карьеру в IT!