Макетирование

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

Основная цель макетирования — снять неопределенности в требованиях заказчика. Макетирование (прототипирование) — это процесс создания модели требуемого программного продукта.

Модель может принимать одну из трех форм:

· бумажный макет или макет на основе ПК (изображает или рисует человеко-машинный диалог);

· работающий макет (выполняет некоторую часть требуемых функций);

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

Как показано на рис. 2.3, макетирование основывается на многократном повторении итераций, в которых участвуют заказчик и разработчик.

Рис. 2.3. Макетирование

 

Макетирование начинается со сбора и уточнения требований к создаваемому ПО Разработчик и заказчик встречаются и определяют все цели ПО, устанавливают, какие требования известны, а какие предстоит доопределить. Затем выполняется быстрое проектирование. В нем внимание сосредоточивается на тех характеристиках ПО, которые должны быть видимы пользователю.

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

Главное достоинство макетирования состоит в том, что оно обеспечивает определение полных требований к ПО.

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

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