2.3. Методология RAD и ее использование при проектировании систем

Одним из возможных подходов к разработке ПО в рамках спиральной модели ЖЦ является получившая в последнее время широкое распространение методология быстрой разработки приложений RAD (Rapid Application Development). Под этим термином обычно понимается процесс разработки ПО, содержащий 3 базовых составляющих /6/:

- небольшую команду программистов (от 2 до 10 человек);

- короткий, но тщательно проработанный производственный график (от 2 до 6 мес.);

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

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

Жизненный цикл ПО в соответствии с подходом RAD включает четыре стадии:

- анализ и планирование требований;

- проектирование;

- реализация;

- внедрение.

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

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

После детального определения состава процессов оценивается количество так называемых функциональных точек разрабатываемой системы и принимается решение о разделении всей системы на подсистемы, поддающиеся реализации одной командой разработчиков за приемлемое для RAD-проектов время — порядка 60 — 90 дней. Под функциональными точками понимаются такие элементы разрабатываемой системы как входной или выходной документ, экранная форма, логический файл, интерфейс приложения и др. Далее проект распределяется между различными командами разработчиков. Результатом данной стадии должны быть:

- общая информационная модель системы;

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

- точно определенные интерфейсы между автономно разрабатываемыми подсистемами;

- построенные прототипы экранов, отчетов, диалогов.

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

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

- осуществляется анализ использования данных и определяется необходимость их распределения;

- производится анализ использования данных;

- производится физическое проектирование базы данных;

- формулируются требования к аппаратным ресурсам;

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

- завершается разработка документации проекта.

Результатом фазы является готовая система, удовлетворяющая всем согласованным требованиям.

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

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

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

Таким образом, основными принципами методологии RAD являются:

- разработка приложений итерациями;

- необязательность полного завершения работ на каждом из этапов жизненного цикла;

- обязательное вовлечение пользователей в процесс разработки системы;

- целесообразность применения CASE-средств, обеспечивающих целостность проекта и генерацию кода приложений;

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

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

- тестирование и развитие проекта, осуществляемые одновременно с разработкой;

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

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