Каковы различия между одноразовыми и эволюционными прототипами?

12

У меня есть заметки о различных методах прототипирования, и я нашел несколько определений в Интернете, но я хотел бы подтвердить то, что я узнал.

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

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

Это верно? Есть ли лучшие определения одноразового и эволюционного прототипирования?

Томас Оуэнс
источник
2
Чаще всего не кажется, что прототип превращается в готовый продукт. Никогда прежде не слышал об одноразовых и эволюционных разработках.
его
1
Привет, Мифас, извини, это перенесено, но если ты получил свои определения из Интернета, то просьба подтвердить, что определения правильные, круговая и не совсем актуальная.
1
@MarkTrapp Если мы удалили определения, можем ли мы снова открыть? Оба определения в посте, а также существующий ответ неверны с точки зрения формального определения фразы. В переполнении стека есть дубликаты, но я не могу найти их здесь, и я думаю, что крайне важно, по крайней мере, не размещать больше ложной информации в Интернете.
Томас Оуэнс
@Mifas Если вы удалите определения, нет вопроса к телу, не так ли? Если бы Мифас следил за этим вопросом и обновил его, чтобы объяснить, что он пытается сделать, что заставило его спросить об этих определениях, это был бы очень хороший вопрос.
1
@ Марк фантастический. Благодарю. Работаю над моим ответом сейчас.
Томас Оуэнс

Ответы:

11

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

Обратите внимание, что существует много видов одноразовых прототипов, и ни один из них не ограничен всей системой. Например, использование эскизов пользовательского интерфейса на бумаге или доске можно рассматривать как одноразовое создание прототипа. Да, вы можете пройти несколько итераций и отбросить предыдущий дизайн, но вы также не будете использовать окончательный прототип в системе (физически это невозможно, например).

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

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


Эволюционное прототипирование

Исследовательская разработка, целью которой является работа с заказчиком для изучения его требований и создания окончательной системы. Разработка начинается с частей системы, которые понятны. Система развивается путем добавления новых функций, предлагаемых клиентом. (Sommerville: разработка программного обеспечения, 8-е издание)


Эволюционное прототипирование - это модель жизненного цикла, в которой система развивается поэтапно, чтобы ее можно было легко изменять в ответ на отзывы конечных пользователей и клиентов. Большинство усилий по эволюционному прототипированию начинаются с создания прототипа пользовательского интерфейса, а затем с его помощью дорабатываются законченные системы, но создание прототипов может начинаться с любой области высокого риска. Эволюционное прототипирование не то же самое, что Throwaway Prototyping, и правильный выбор в отношении того, разрабатывать ли эволюционный прототип или одноразовый прототип, является одним из ключей к успеху. Другие ключи к успеху включают использование опытных разработчиков, управление расписанием и ожиданиями бюджета, а также управление самой деятельностью по созданию прототипов. (Макконнелл: Быстрая разработка: Укрощение диких программных расписаний)


Throwaway Прототипирование:

В процессе быстрого прототипирования цель эволюционного процесса разработки состоит в том, чтобы понять требования заказчика и, следовательно, разработать более точное определение требований для системы. Прототип концентрируется на экспериментах с плохо понятыми требованиями заказчика. (Sommerville: разработка программного обеспечения, 8-е издание)


С Throwaway Prototyping код разрабатывается для изучения факторов, важных для успеха системы, а затем этот код выбрасывается. Реализация прототипа использует языки программирования или методы разработки или оба, которые намного быстрее, чем целевой язык и практики. Пользовательский интерфейс прототипируется гораздо чаще, чем любая другая часть системы, но другие части некоторых систем также могут выиграть от прототипирования. При использовании в качестве вспомогательного средства для определения требований практика Throwaway Prototyping может ускорять проекты, основанные на традиционных моделях жизненного цикла, таких как проекты DoD. Он может быть инициирован как на уровне управления, так и на техническом уровне. (Макконнелл: Быстрая разработка: Укрощение диких программных расписаний)

Томас Оуэнс
источник
-2

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

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

Самуил
источник
1
Этот вопрос был задан в 2011 году. Ваш ответ мало что добавляет к уже полученным ответам.
Ян Догген,