Подтвердить что ты не робот

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

Я изучаю Software Engineering в этом году, и я немного запутался в вопросе в названии.

Как мой профессор, так и ссылка ( "Software Engineering A Practitioner Approach" ) различают три названия как разные модели. Тем не менее, я не вижу очевидной разницы, поскольку их методологии выглядят одинаково для меня, но используют разные инструкции для их определения. Я чувствую, что практически все они представляют одну и ту же модель процесса.

Может ли кто-нибудь лучше объяснить разные модели?

4b9b3361

Ответ 1

Крейг Ларман много писал по этой теме, и я предлагаю его знаменитую статью Итеративное и инкрементальное развитие: краткая история (PDF) и его книга Agile and Iterative Development: Руководство для Менеджера.

Вот как я бы обобщил вещи:

Инкрементное развитие

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

Инкрементальное развитие (добавление) часто используется вместе с Iterative Development (redo) в разработке программного обеспечения. Это называется Итеративным и Инкрементальным Развитием (IID).

Эволюционный метод

Термины эволюции и эволюции были введены Томом Гилбом в его книге "Программные показатели", опубликованной в 1976 году, где он писал об EVO, своей практике IID (возможно, самой старой). Эволюционное развитие фокусируется на ранней доставке высокой ценности заинтересованным сторонам и получении и использовании отзывов от заинтересованных сторон.

В Разработка программного обеспечения: Итеративный и эволюционный, Крейг Ларман делает следующее:

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

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

Спиральная модель

Спиральная модель - это еще один подход IID, который был формализован Барри Бем в в середине 1980-х годов в качестве расширения водопада для лучшей поддержки итеративного развития и уделяет особое внимание управлению рисками (посредством анализа итеративного риска).

Цитата Итеративное и инкрементальное развитие: краткая история:

Знак 1985 года в публикациях МИР был Барри Бемс "Спиральная модель Разработка и расширение программного обеспечения" (хотя более частая цитата дата - 1986 год). Спиральная модель была возможно, не первый случай, когда команда уделяла приоритетное внимание циклам разработки риск: Gilb и IBM FSD ранее применяемые или защищенные варианты эта идея, например. Однако спиральная модель оформила и сделала видные рискованные итерации концепции и необходимости использования дискретных шаг оценки риска в каждом итерации.

Что теперь?

Agile Methods являются подмножеством IID и эволюционных методов и являются предпочтительными в настоящее время.

Ссылки

Ответ 2

Эти понятия обычно плохо объясняются.

Инкрементный является свойством рабочих продуктов (документов, моделей, исходного кода и т.д.), а это означает, что они создаются постепенно, а не за один раз. Например, вы создаете первую версию модели своего класса во время анализа требований, затем дополняете ее после моделирования пользовательского интерфейса, а затем даже расширяете ее во время детального проектирования.

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

[Жизненный цикл итеративный, но способ относится к задачам, которые вы выполняете (в отличие от "incremental", который относится к продуктам, это представление, принятое SEMAT), и это означает, что вы выполняете задачи одного и того же типа снова и снова. Например, в итеративном жизненном цикле вы можете заниматься дизайном, затем кодированием, затем тестировать единицы, затем выпускать, а затем снова одни и те же вещи снова и снова. Обратите внимание, что итеративные и инкрементальные не подразумевают друг друга; возможно любая комбинация обоих.]

спиральная модель для жизненных циклов - это модель, предложенная ISO/IEC 24744.

Надеюсь, что это поможет.

Ответ 3

Это определение ipsis litteris из ISO 24748-1: 2016 (Управление жизненным циклом систем и программного обеспечения):

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

a) Один раз. Стратегия "один раз", также называемая "водопад", состоит из выполнения процесса разработки за один раз. Упрощенно: определять потребности пользователей, определять требования, разрабатывать систему, внедрять систему, тестировать, исправлять и доставлять.

b) Инкрементный. Стратегия "incremental" определяет потребности пользователей и определяет системные требования, а затем выполняет остальную часть разработки в последовательности сборок. Первая сборка включает часть запланированных возможностей, следующая сборка добавляет больше возможностей и т.д., Пока система не будет завершена.

c) Эволюционная. "Эволюционная" стратегия также разрабатывает систему в сборках, но отличается от поэтапной стратегии, признавая, что потребность пользователя не полностью понята и все требования не могут быть определены заранее. В этой стратегии потребности пользователя и требования к системе частично определены спереди, а затем уточняются в каждой последующей сборке.

Надеюсь, это поможет. Tati