Модель прототипирования жизненного цикла разработки ПО

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

Прототип — это рабочая модель системы, которая используется для уточнения требований к ней. Относительно высокая скорость реализации проекта при использовании метода прототипирования обеспечивается за счет планирования работ и участия заказчика в процессе разработки.

Структурная эволюционная модель быстрого прототипирования представлена на рис. 5.6.

Модель прототипирования жизненного цикла разработки ПО - student2.ru

Рис. 5.6. Структурная эволюционная модель быстрого прототипирования.

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

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

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

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

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

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

Условия применения:

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

- существует потребность в разработке пользовательских интерфейсов;

- нужна проверка концепции;

- осуществляются временные демонстрации;

- выполняется новая, не имеющая аналогов разработка (в отличие от эксплуатации продукта на уже существующей системе);

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

- алгоритмы или системные интерфейсы усложнены;

- требуется продемонстрировать техническую осуществимость, когда технический риск высок;

- при разработке ПО проявляется средняя и высокая степень риска;

- в больших системах, в которых некоторые модели подвергаются прототипированию, а некоторые — разрабатываются более традиционным образом;

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

Наши рекомендации