Самые распространенные модели разработки ПО

Рейтинг: 5.0/5. на основе 1 оценки.
Пожалуйста, подождите...

Жизненный цикл ПО – это временной период с момента принятия решения о разработке продукта и до момента его конечного срока эксплуатации.

Чтобы процессы проектирования, разработки и выпуска нового качественного продукта проходили немного легче, создали модели жизненного цикла ПО.

Решающим моментом для определения наиболее подходящей методологии являются проектные требования. Далее подробнее ознакомимся с самыми популярными моделями в разработке программных продуктов.

Модели разработки ПО

Модели разработки ПО

Инкрементная методология (Incremental model)

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

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

Преимущества:

  • Можно просмотреть риски, связанные с затратами и дедлайном;
  • Заказчик продукта может прокомментировать его каждую версию;
  • Заказчик привыкает к новой методологии со временем.

Недостатки:

  • Структура системы может нарушаться при постоянных обновлениях;
  • Чтобы итерации выделялись, функциональную систему следует определить в начале жизненного цикла;
  • График выполнения может не соблюдаться из-за ограниченности ресурсов (материальных, исполнительных).

Гибкая методология (Agile model)

Данная модель разработки ПО подразумевает сборку разных подходов. Сюда включаются серии подходов к созданию продукта, которые ориентируются на применение итеративной модели, а также динамическая формулировка требований и их внедрение в процессе беспрерывного взаимодействия самостоятельно организованных рабочих групп, куда входят разнопрофильные специалисты.

Каждая отдельная итерация – это маленький проект. Одна из ведущих идей гибкой модели – взаимодействие лицом к лицу между заказчиком и командой разработчиков.

Преимущества:

  • Риск сведен к минимуму;
  • Более упрощенная работа с документами;
  • Решения принимаются быстро благодаря постоянному общению.

Недостатки:

  • Очень редко модель применяется для выполнения больших проектов;
  • Много бесед и митингов, которые влияют на длительность создания ПО;
  • Из-за постоянного обновления требований сложно распланировать работу.

Каскадная методология (Waterfall model)

Суть модели в том, что каждая стадия проводится один раз, одна за другой. Чтобы приступить к следующей фазе, нужно полностью закончить предыдущую.

Преимущества:

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

Недостатки:

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

V-образная методология (V-model)

Эта модель – своего рода доработанная версия каскадной методологии, поскольку она помогает избавиться от недостатков, проявляемых ранее.

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

Преимущества:

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

Недостатки:

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

Scrum

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

Четко разграничить обязанности каждого позволяют разные роли (Product Owner, Scrum Master, Team). Scrum Master несет ответственность за успех проекта в целом и ведет работу как с отделом менеджмента, так и командой разработчиков.

Разработкой ПО, постановкой задач и принятием финальных решений для команды занимается Product Owner. Ну а Team – это целостная структура, успех которой оценивается не по отдельной работе каждого сотрудника, а по общему итогу.

Длительность спринтов в данной модели – 1-4 недели. По окончанию каждого спринта команда демонстрирует вариант полученного продукта.

Преимущества:

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

Недостатки:

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

Спиральная методология (Spiral model)

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

Таким образом, по окончанию каждого витка мы получаем целостный прототип, прошедший тестирование и дополняющий всю сборку. Если этот прототип отвечает всем предъявленным требованиям, он считается готовым к выпуску.

Преимущества:

  • Гибкость проектирования;
  • Достаточно внимания уделено процессу руководства рисками;
  • Новый функционал можно добавить на поздней стадии разработки.

Недостатки:

  • Чаще используется для объемных проектов;
  • Оценка рисков на каждой стадии влечет за собой достаточно большие затраты;
  • Возможность постоянно оставлять отзывы заказчиком провоцирует обновленные итерации, что влияет на сроки разработки ПО.

В заключение

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

Оставить комментарий