Программная инженерия | Сравнение разных моделей жизненного цикла

Опубликовано: 28 Января, 2022

Классическая модель водопада: Модель классического водопада может рассматриваться как базовая модель, и все другие модели жизненного цикла основаны на этой модели. Это идеальная модель. Однако модель Classical Waterfall нельзя использовать в практической разработке проекта, поскольку эта модель не поддерживает какой-либо механизм для исправления ошибок, которые совершаются на любом из этапов, но обнаруживаются на более позднем этапе. Эта проблема преодолевается моделью итеративного водопада за счет включения путей обратной связи.

Модель итеративного водопада: Модель итеративного водопада, вероятно, является наиболее часто используемой моделью разработки программного обеспечения. Эта модель проста в использовании и понимании. Но эта модель подходит только для хорошо изученных проблем и не подходит для разработки очень крупных проектов и проектов, которые страдают от большого количества рисков.

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

Эволюционная модель: Эволюционная модель подходит для крупных проектов, которые можно разложить на набор модулей для постепенной разработки и реализации. Эта модель широко используется в проектах объектно-ориентированной разработки. Эта модель используется только в том случае, если инкрементальная поставка системы приемлема для клиента.

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

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

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

  • Характеристики разрабатываемого программного обеспечения: выбор модели жизненного цикла во многом зависит от типа разрабатываемого программного обеспечения. Для небольших сервисных проектов предпочтение отдается гибкой модели. С другой стороны, для разработки продуктов и встраиваемых систем может быть предпочтительна модель Iterative Waterfall. Эволюционная модель подходит для разработки объектно-ориентированного проекта. Часть проекта, посвященная пользовательскому интерфейсу, в основном разрабатывается посредством прототипирования модели.
  • Характеристики команды разработчиков: уровень квалификации члена команды является важным фактором при выборе модели жизненного цикла, которую следует использовать. Если команда разработчиков имеет опыт разработки аналогичного программного обеспечения, то даже встроенное программное обеспечение может быть разработано с использованием модели Iterative Waterfall. Если команда разработчиков совсем новичок, то даже простому приложению для обработки данных может потребоваться модель прототипа.
  • Риск, связанный с проектом: если риски невелики и их можно предвидеть в начале проекта, то модель прототипирования полезна. Если риски трудно определить в начале проекта, но они могут увеличиваться по мере развития, то спиральная модель - лучшая модель для использования.
  • Характеристики заказчика: если заказчик не очень хорошо знаком с компьютерами, то требования, вероятно, будут часто меняться, поскольку будет сложно сформировать полные, последовательные и однозначные требования. Таким образом, может потребоваться модель прототипа, чтобы уменьшить количество последующих запросов на изменение от клиентов. Первоначально команда разработчиков очень доверяет клиенту. Во время длительного процесса разработки доверие клиентов обычно падает, поскольку работающего программного обеспечения еще не видно. Таким образом, эволюционная модель полезна, поскольку заказчик может испытать частично работающее программное обеспечение гораздо раньше, чем целое программное обеспечение. Еще одно преимущество эволюционной модели состоит в том, что она снижает травмы клиента, связанные с привыканием к совершенно новой системе.

Вниманию читателя! Не переставай учиться сейчас. Получите все важные концепции теории CS для собеседований SDE с курсом теории CS по доступной для студентов цене и будьте готовы к отрасли.