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

Применение

Прототипы целенаправленно применяются для сокращения рисков. Прототипы могут сократить неопределенность в отношении следующих факторов:

  • Шансы разрабатываемого продукта на коммерческий успех.
  • Стабильность и производительность ключевой технологии.
  • Принятие решения о финансировании и реализации проекта: создание опытного образца.
  • Понимание требований
  • Общее представление о продукте и удобство работы с ним.

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

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

Типы прототипов

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

В первом контексте можно выделить две разновидности прототипов:

  • Поведенческие прототипы, предназначенные для исследования определенных аспектов поведения системы.
  • Структурные прототипы, предназначенные для изучения архитектуры или технологий.

Во втором контексте (с точки зрения конечной формы) также различают два вида прототипов:

  • Исследовательские прототипы, которые становятся ненужными после использования.
  • Эволюционные прототипы, которые постепенно превращаются в конечный вариант системы.

Исследовательские прототипы

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

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

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

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

Поведенческие прототипы

Поведенческие прототипы в большинстве своем являются исследовательскими, и при их разработке не ставится задача полностью смоделировать архитектуру системы. Вместо этого цель данных прототипов - понять, как система будет выглядеть для пользователей. Эти прототипы довольно часто создаются "наспех" и не соответствуют стандартам проекта. Например, прототип может быть создан на языке Visual Basic притом, что проект разрабатывается на языке C++. Исследовательские прототипы временны по своей сути, создаются с минимальными усилиями и выбрасываются сразу же после того, как послужат своей цели.

Структурные прототипы

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