Модель прототипирования жизненного цикла разработки ПО
Предполагает создание прототипа с целью устранения неопределенности в требованиях заказчика и приспосабливаемости продукта под конкретную операционную систему.
Прототип — это рабочая модель системы, которая используется для уточнения требований к ней. Относительно высокая скорость реализации проекта при использовании метода прототипирования обеспечивается за счет планирования работ и участия заказчика в процессе разработки.
Структурная эволюционная модель быстрого прототипирования представлена на рис. 5.6.
Рис. 5.6. Структурная эволюционная модель быстрого прототипирования.
Начало жизненного цикла разработки помещено в центре эллипса. Пользователь и программист разрабатывают предварительный план проекта, руководствуясь при этом предварительными требованиями. Используя методы ускоренного анализа, они совместно работают над определением требований и спецификаций для важнейших частей будущей системы. Планирование проекта — это первое действие, с помощью которого получают документ, описывающий в общих чертах примерные графики и результативные данные.
После планирования выполняется быстрый анализ, в процессе которого создается умышленно неполная высокоуровневая модель системы на уровне документации. В результате выполнения этой задачи получают документ, содержащий частичную спецификацию требований, который используется для построения исходного прототипа, создаваемого на последующих трех этапах, включающих проектирование базы данных и пользовательского интерфейса, а также разработку тех функций, которые определены в требованиях заказчика.
Затем следует итерационный процесс быстрого прототипирования, в ходе которого разработчик проекта демонстрирует очередной прототип, а пользователь оценивает его функционирование. После этого определяются проблемы, которые устраняются совместными усилиями обеих сторон. Этот процесс продолжается до тех пор, пока пользователь не согласится с тем, что прототип в точности отображает системные требования. Получив одобрение пользователя, прототип преобразуют детальный проект, и настраивают систему на производственное использование. Именно на этом этапе настройки ускоренный прототип становится полнофункциональной системой, которая заменяет собой частичную систему, полученную в итерационном цикле прототипирования.
При разработке производственной версии продукта может возникнуть необходимость в дополнительных работах, таких как учет различных системных ресурсов, необходимых для обеспечения полной рабочей нагрузки, или ограничений по времени. После этого следуют тестирование системы в предельных режимах, определение измерительных критериев и настройка. На заключительной фазе происходит эксплуатация и сопровождение системы.
Не существует «правильного» способа использования метода прототипирования. Полученный результат может не пригодиться, может быть использован в качестве основания для последующей модернизации или превращен в продукт используемого процесса в зависимости от исходных целей.
При использовании эволюционногопрототипирования снижаются затраты и оптимизируется соблюдение графиков, поскольку каждый из его компонентов находит свое применение.
Условия применения:
- требования не известны заранее, или непостоянны, или могут быть неверно истолкованы, или неудачно сформулированы;
- существует потребность в разработке пользовательских интерфейсов;
- нужна проверка концепции;
- осуществляются временные демонстрации;
- выполняется новая, не имеющая аналогов разработка (в отличие от эксплуатации продукта на уже существующей системе);
- разработчики не уверены в том, какую оптимальную архитектуру или алгоритмы следует применять;
- алгоритмы или системные интерфейсы усложнены;
- требуется продемонстрировать техническую осуществимость, когда технический риск высок;
- при разработке ПО проявляется средняя и высокая степень риска;
- в больших системах, в которых некоторые модели подвергаются прототипированию, а некоторые — разрабатываются более традиционным образом;
- подходит для разработки интенсивно используемых систем пользовательского интерфейса, таких как индикаторные панели для контрольных приборов, системы обеспечения принятия решений, среди которых можно назвать подачу команд, управление или медицинскую диагностику.