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

Прототипирование (от англ. prototyping, от πρωτότυπον — первичная форма) — процесс создания раннего образца, модели или версии изделия для проверки концепции или процесса[1]. Термин используется в различных областях — от семантики и дизайна до электроники и программирования. Как правило, прототип используют для оценки нового проекта и повышения точности его анализа специалистами и пользователями[2][3]. Прототипирование служит для создания спецификаций реальной, работающей системы вместо абстрактной[4]. К классическим физическим прототипам в последнее время широко добавляются бумажное прототипирование и виртуальное прототипирование. В некоторых процессах разработки создание прототипа (иногда называемое материализацией) выступает промежуточным шагом между формализацией идеи и её дальнейшей оценкой[5].

Термин происходит от πρωτότυπον (, «первичная форма», средний род) и πρωτότυπος (, «оригинал, изначальный»; πρῶτος — «первый», τύπος — «отпечаток, форма»; см. также «типичный»)[1][6][7].

Виды прототипов

Прототипы позволяют исследовать различные стороны будущего проекта:

  • Демонстрационный прототип (англ. proof-of-principle prototype) — предназначен для проверки ключевых функций проекта, но обычно не обладает всей функциональностью финального продукта[8].
  • Рабочий прототип (англ. working prototype) — реализует всю или почти всю заложенную функциональность конечного продукта[9].
  • Визуальный прототип (англ. visual prototype) — отображает размеры и внешний вид, но не воспроизводит функции продукта. Формообразующий прототип (англ. form study prototype) — разновидность визуального прототипа, в котором акцент сделан на геометрические характеристики с меньшим вниманием к цвету, текстуре и другим аспектам[10].
  • Прототип пользовательского опыта (англ. user experience prototype) — содержит достаточно функций и внешнего вида для проведения пользовательских исследований[11].
  • Функциональный прототип (англ. functional prototype) — сочетает функционирование и внешний вид, хотя может быть выполнен с иными технологиями либо в другом масштабе[12][13].
  • Бумажный прототип (англ. paper prototype) — напечатанное либо нарисованное изображение пользовательского интерфейса программного продукта. Используется для раннего тестирования и может быть элементом пошагового разбора, чтобы подтвердить проектные решения до дорогих этапов производства[14].

Отличия между прототипом и конечным продуктом

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

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

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

Свойства и ограничения прототипов

Инженеры и специалисты по прототипированию осознают ограничения прототипа как точной модели проектируемого объекта.

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

Обычно себестоимость отдельного прототипа существенно выше стоимости единицы массового продукта из-за неэффективности малосерийного производства. Прототипы также используются для сокращения затрат за счёт оптимизации и refinement-конструкций[15].

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

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

Инженерные науки

В технологических исследованиях демонстратор технологии (англ. technology demonstrator) — вид прототипа, используемый для подтверждения концепции (proof-of-concept) и демонстрации будущих продуктов или технологий.

В крупных проектах роль испытательного стенда для экспериментов и настройки новых компонентов, теорий и инструментов выполняет тестовая платформа (англ. testbed)[16].

С прогрессом методов компьютерного моделирования стало возможным отказаться от физических прототипов (за исключением маркетинговых целей), смоделировав изделие полностью в виде электронной модели. Такой подход применён, например, для Boeing 787 Dreamliner, где первую полноразмерную физическую модель создавали уже на производственной линии. Компьютерные модели активно используются и в автопроме — при проектировании формы (стайлинга и аэродинамики) и оптимизации свойств (например, безопасности и веса).

Машиностроение и электроника

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

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

В настоящее время всё чаще первый полноценный прототип строится на «прототипной» печатной плате, максимально близкой к серийной, так как цены на производство печатных плат снижаются, а большинство компонентов выпускаются только в SMD-исполнении под пайку на плату.

Разработчики военной техники чаще используют терминологию «экспериментальный» и «испытательный образец»[17].

Информатика и программирование

Программные прототипы часто называют «альфа-версиями» (англ. alpha grade), что подразумевает первую рабочую модификацию. Обычно в ней реализованы только основные функции, чтобы обеспечить фундамент для последующего расширения. После интеграции большей части требуемого функционала прототип становится «бета-версией» (англ. beta software), которая тестируется для исправления непредвиденных ситуаций[18].

Часто конечные пользователи не могут на начальном этапе предоставить полный перечень целей и требований, поэтому создаются серии прототипов по обратной связи с заказчиком: цикл повторяется снова и снова. Существуют современные средства моделирования приложений (англ. Application Simulation Software), позволяющие создавать имитации продуктов до начала их разработки[19].

В экстремальном программировании используется поэтапное построение системы, при котором к прототипу добавляют по одной возможности[20].

Иные понятия программирования и информатики

Во многих языках программирования прототип функции — декларация подпрограммы или функции (однако это не связано с программным прототипированием). В языке англ. C и англ. C++ этот термин устоялся; в других языках применяются определения сигнатура, тип, интерфейс. В прототипном программировании (вид объектно-ориентированного), новые объекты создают путём клонирования уже существующих прототипов[21].

К числу подобных понятий также относят Prototype Javascript Framework, а также шаблон проектирования «Прототип».

В бизнес-процессах также используются так называемые бизнес-прототипы или процессные прототипы.

В области проектирования интерфейсов (web-дизайна) степень соответствия сайта привычным ожиданиям (прототипичность) влияет на пользовательское восприятие и предпочтения[22].

Прототипирование данных

Прототип данных (англ. data prototype) — разновидность функционального или рабочего прототипа[23]. Как правило, используется при миграции данных, интеграционных проектах или внедрении систем, с целью опробовать все правила обработки и очистки реальных данных ещё до запуска новых приложений.

Задачи прототипирования данных:

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

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

Прототипирование для человеко-компьютерного взаимодействия

При разработке ПО или цифровых инструментов для людей прототип служит для постановки и уточнения проектных вопросов — он позволяет анализировать проблемы дизайна и сравнивать решения[24].

В области ЧКВ существует ряд подходов к прототипам:

  • Прототип «Волшебник страны Оз»: приём, в котором компьютерную часть взаимодействия имитирует скрытый человек[25]. Используется для показа сложных или труднореализуемых функций, например, голосовых интерфейсов.
  • Ролевой прототип (англ. role prototype): может не выглядеть финальным изделием, но выявляет пользовательские потребности. Демонстрирует, зачем может понадобиться тот или иной функционал[24]. Пример — деревянный брусок, который носил Джефф Хокинс, проектируя Palm Pilot.
  • Бумажный прототип: макет интерфейса из бумаги, картона и простых материалов для тестирования с пользователями без программирования.[26]. В последние годы популярность метода среди специалистов снизилась из-за малой точности и ограничений в пользовательских тестах[27].

Архитектура

В архитектуре под прототипированием подразумевают создание архитектурных моделей (вид масштабного моделирования), либо материальные и эстетические эксперименты, например на базе открытой лаборатории прототипирования Forty Wall House в Австралии[28][29].

Архитекторы используют прототипы для проверки идей конструктивно, эстетически и технически. Работоспособность модели не всегда является целью эксперимента — зачастую важен опыт и анализ, полученные в ходе прототипирования[30].

Метрология

В метрологии прототип — физический объект-образец, используемый в качестве эталона для измерения конкретной величины. Такой объект часто называют артефактом. В СИ с 20 мая 2019 года больше не используется материальный прототип; до этого последним подобным образцом был международный прототип килограмма — цилиндр из платино-иридиевого сплава, хранящийся в Бюро международных мер и весов в Севре (Франция, пригород Парижа), и служивший определением массы одного килограмма. Копии этого эталона распределялись по странам в качестве национальных стандартов и регулярно сверялись с парижским оригиналом. Сейчас килограмм определён через фиксированное значение постоянной Планка.

До 1960 года метр определялся длиной прототипной планки из платино-иридия с двумя метками, расстояние между которыми принималось за один метр; с 1983 года метр равен расстоянию, которое проходит свет за 1/299 792 458 секунды.

Естественные науки

Во многих научных дисциплинах (от патологии до таксономии) термин прототип означает пример, служащий эталоном для всей группы (например, «прототип вида» либо «архаичный предок» для биологических групп)[31]. Так, сенегальский многопёр считается прототипом рода Polypterus.

Моделизм

Моделисты — создатели копий техники (железнодорожной, авиационной, военной и пр.) — обычно называют прототипом объект в полном масштабе[32], например, говоря: «Длина модели не соответствует прототипу».

Примечания