Прототипное проектирование ЭИС (RAD-технология)
С появлением корпоративных экономических информационных систем, базирующихся на архитектуре «клиент-сервер», появляется естественная возможность ускорения разработки приложений за счет параллельного создания клиентской и серверной частей. Однако реально использовать преимущества такой архитектуры оказалось очень непросто из-за резко возросшей сложности создания приложений в гетерогенной среде. Кроме естественной сложности создания приложений в неоднородной среде существует тенденция к усложнению приложений с течением времени. В этих условиях процесс разработки информационных систем традиционным каскадным методом может затянуться на длительное время, а соответствие результата потребностям заказчика не гарантируется.
Основное желание заказчика ЭИС - получить готовое приложение высокого качества быстро при минимальных затратах на его разработку. Кроме того, вкладывая значительные средства на создание системы, заказчики желают контролировать процесс разработки. Критерием качества должно быть наиболее полное удовлетворение требований заказчиков на момент введения системы в эксплуатацию.
Одним из условий обеспечения высокого качества создаваемых ЭИС является активное вовлечение конечных пользователей в процесс разработки предназначенных для них интерактивных систем, что нашло отражение в методологии прототипного проектирования. Ядром этой методологии является быстрая разработка приложений RAD (Rapid Application Development).
Область самостоятельной разработки информационных систем (точнее, приложений) конечными пользователями ограничена. Такой вариант может быть применим для решения простых, задач информационно-поискового и сводного характера.
При создании более сложных корпоративных ЭИС пользователям необходимо работать совместно с проектировщиками на протяжении всего периода разработки. Одним из путей повышения качества и эффективности создаваемых таким образом систем является применение технологии прототипного проектирования.
Данная технология обеспечивает создание на ранней стадии реализации действующей интерактивной модели системы, так называемой системы-прототипа, позволяющей наглядно продемонстрировать пользователю будущую систему, уточнить его требования, оперативно модифицировать интерфейсные элементы: формы ввода сообщений, меню, выходные документы, структуру диалога, состав реализуемых функций.
В процессе работы с системой-прототипом пользователь реально осознает возможности будущей системы и определяет наиболее удобный для него режим обработки данных, что значительно повышает качество создаваемых систем. Осуществляются проверка принципиальных проектных решений по составу и структуре ЭИС и оценка основных ее эксплуатационных характеристик.
Вовлечение пользователей в процесс проектирования и конструирования приложения позволяет получать замечания и дополнения к требованиям непосредственно в процессе проектирования приложения, сокращая время разработки. Представители заказчика получают возможность контролировать процесс создания системы и влиять на ее функциональное наполнение. Результатом является сдача в эксплуатацию системы, учитывающей большинство потребностей заказчиков. Согласованная система-прототип служит спецификацией для дальнейшей разработки ЭИС, что позволяет на ранних этапах проектирования выявить возможные ошибки проектирования и определить параметры будущей системы.
Рассмотрим основные возможности и преимущества быстрой разработки прототипа ЭИС (рис. 13.23).
Рис. 13.23. Основные возможности и преимущества быстрой разработки прототипа ЭИС
Все приемы для быстрой разработки приложений RAD служат одновременно для обеспечения высокого качества продукта и низкой стоимости разработки. К числу этих приемов относятся:
1) разработка приложения итерациями;
2) необязательность полного завершения работ на каждом из этапов жизненного цикла для начала работ на следующем;
3) обязательное вовлечение пользователей в процесс проектирования и построения системы;
4) высокая параллельность работ;
5) повторное использование частей проекта;
6) необходимое применение CASE-средств, обеспечивающих техническую целостность на этапах анализа и проектирования;
7) применение средств управления конфигурациями, облегчающее внесение изменений в проект и сопровождение готовой системы;
8) использование автоматических генераторов (мастеров);
9) использование прототипирования, позволяющего полнее выяснить и удовлетворить потребности конечного пользователя;
10) тестирование и развитие проекта, осуществляемые одновременно с разработкой нескольких версий прототипа.
Каждое из перечисленных положений в отдельности способствует повышению скорости, улучшению качества, но только их совместное применение вызывает качественные изменения в процессе разработки.
Неполное завершение работ на каждом этапе позволяет переходить на следующий этап, не дожидаясь полного завершения работы на текущем этапе. При итеративном способе разработки ЭИС недостающую работу можно будет выполнить на следующей итерации. Главная же задача - как можно быстрее показать пользователям системы работоспособный продукт, тем самым активизируя процесс уточнения и дополнения требований.
Основная проблема процесса разработки ЭИС по RAD-технологии заключается в определении момента перехода на следующий этап. Для ее решения необходимо ввести временные ограничения на каждый из этапов жизненного цикла. Переход осуществляется в соответствии с планом, даже если не вся запланированная работа закончена. План составляется на основе статистических данных, полученных в предыдущих проектах, и личного опыта разработчиков с использованием инструментов автоматизации процесса планирования. Средства автоматизации планирования являются важным элементом при разработке приложений по методологии RAD. Они применяются для определения состава и объема работ, необходимого числа разработчиков, распределения работ между участниками проекта, контроля за ходом выполнения работ и динамической корректировкой плана.
Для реализации технологии прототипного проектирования необходимо применять высокоуровневые инструментальные средства, которые позволяют быстро преобразовать прототип системы в функционирующую версию и внести в нее в дальнейшем необходимые изменения.
Такие инструментальные средства можно условно разделить на два класса: инструменты быстрой разработки приложения в развитых СУБД - класс DEVELOPER и интегрированные инструменты быстрой разработки приложений - класс BUILDER.
К инструментам этих классов можно отнести средства 4GL (генераторы компонентов приложений):
• генераторы таблиц базы данных;
• генераторы форм ввода-вывода;
• генераторы запросов;
• генераторы отчетов;
• генераторы меню.
Такие генераторы существуют почти во всех СУБД, как персональных Access, FoxPro, Paradox, так и в окружении промышленных серверов БД (Oracle, Informix, Adabas D и др.).
Отличительной чертой класса BUILDER является то, что инструменты данного класса легко интегрируются с CASE-средствами и представляют собой единую среду быстрой разработки приложения. К интегрированным инструментам класса BUILDER можно отнести такие, как Power Builder Enterprise (Power Soft), Delphi (Borland), Builder Си ++ и др.
Рассмотрим инструментальную среду быстрой разработки приложений СУБД Access, которая включает ряд мастеров (конструкторов).
· Мастер (конструктор) таблиц предназначен для быстрого создания структуры/таблиц БД и их взаимосвязей.
· Мастер (конструктор) форм ввода-вывода позволяет быстро создать экраны ввода информации в БД различного типа (ленточные, в столбец, табличные).
· Мастер (конструктор) запросов позволяет создавать запросы различной сложности.
· Мастер (конструктор) отчетов позволяет создавать отчеты на базе нескольких таблиц или запросов.
· Мастер (конструктор) кнопочных форм позволяет разрабатывать управляющие интерфейсные объекты, которые используются для управления работой приложения.
Работа с мастером заключается в пошаговом выполнении настройки мастера. На рис. 13.24 представлен экран выбора мастера форм, а результат генерации формы для таблицы «Товары» показан на рис. 13.25.
Рис. 13.24.Экран выбора мастера форм
Работа с конструктором заключается в детальном определении конструктивных элементов содержания проектируемой компоненты ЭИС. На рис. 13.26 представлены экран конструктора форм для таблицы «Товары» и его параметрическая настройка.
Рис. 13.25. Результат генерации формы для таблицы «Товары»
Рис. 13.26. Экран конструктора форм для таблицы «Товары»
Жизненный цикл создания ЭИС на основе RAD-технологии предполагает после формирования технического задания и декомпозиции системы независимую разработку подсистем с последующей сборкой, тестированием и внедрением комплексной ЭИС (рис. 13.27).
Рис. 13.27. Жизненный цикл создания ЭИС на основе RAD-технологии
Накопленный опыт использования RAD-технологии показывает, что существуют два базовых варианта организации технологического процесса проектирования с использованием систем-прототипов.
В первом варианте создание системы-прототипа используется для лучшей спецификации требований к разработке ЭИС, после разработки которых сам прототип оказывается ненужным. В этом случае традиционно разрабатывается «Постановка задачи», документация которой является спецификацией системы-прототипа. После демонстрации пользователю и доработки прототипа разрабатывается новая «Постановка задачи», которая служит основой создания действующей ЭИС. Технологическая сеть проектирования (TСП) данного варианта на стадии техно-рабочего проектирования ЭИС представлена на рис. 13.28.
Рис. 13.28. Технологическая сеть проектирования традиционного использования прототипа ЭИС: Д1 - техническое задание на разработку; Д2 - описание предметной области; ДЗ - постановка задачи; U1 - универсум средств быстрой разработки приложений; G1 - приложение-прототип; Д4 - результаты работы приложения-прототипа; Д5 - замечания и уточненные требования к ЭИС; G2 - доработанный прототип; Д6 - новая постановка задачи; U2 - универсум средств разработки приложений; G3 - готовое приложение
В соответствии с технологической сетью проектирования (рис. 13.28) на основе технического задания (Д1) и описания предметной области (Д2) выполняется преобразователь П1, предназначенный для разработки постановки задачи (ДЗ). Технологическая операция с преобразователем П2 служит для разработки системы-прототипа на основе спецификаций постановки задачи (ДЗ) и выбранного средства из универсума средств быстрой разработки приложений (U1). Выходом операции является готовое приложение-прототип (G1). Результаты работы приложения-прототипа (Д4) демонстрируются заказчику (преобразователь ПЗ), после чего формируются замечания и уточненные требования к ЭИС (Д5) и происходит доработка прототипа (преобразователь П4). На основании результатов доработки прототипа (G2) формируется (преобразователь П5) новая постановка задачи (Д6). Технологическая операция с преобразователем П6 предназначена для разработки действующего программного приложения (G3).
Основным недостатком первого варианта использования прототипирования является неэффективное использование системы-прототипа, а именно: прототипы не используются в дальнейшей разработке ЭИС после того, как выполнили свою первую задачу - устранили неясности в проекте.
Второй вариант предполагает итерационное развитие системы-прототипа в готовый для эксплуатации программный продукт. Итерации разработки системы-прототипа включают создание/модификацию системы-прототипа, ее демонстрацию пользователю и согласование, разработку новых спецификаций-требований к системе, новую модификацию и т.д., пока не будет создано готовое приложение. Документацию компонентов системы-прототипа непосредственно составляют спецификации, которые являются требованиями к программной реализации системы и определяют характер взаимоотношений с заказчиком на этапе сдачи готовой системы. Технологическая сеть проектирования данного варианта на стадии техно-рабочего проектирования ЭИС представлена на рис. 13.29.
Рис. 13.29.Технологическая сеть проектирования итерационного использования системы-прототипа ЭИС: Д1 - техническое Задание на разработку; Д2 - описания предметной области; U1 - универсум средств быстрой разработки приложений; G1 - приложение-прототип; Д4 - результаты работы приложения-прототипа, Д5 - замечания и уточненные требования к ЭИС; G2 - доработанный прототип, Дб - новые спецификации-требования; G3 - готовое приложение.
В соответствии с технологической сетью проектирования (рис. 13.29) на основе технического задания (Д1), описания предметной области (Д2), выбранного средства из универсума средств быстрой разработки приложений (RAD-средств U1) выполняется преобразователь П1, предназначенный для разработки системы-прототипа. Выходом операции является готовое приложение-прототип (G1). Результаты работы приложения-прототипа (Д4) демонстрируются заказчику (преобразователь П2), после чего либо формируются замечания и уточненные требования к ЭИС (Д5) и происходят доработка прототипа (преобразователь ПЗ) и разработка новых спецификаций-требований (Дб) (преобразователь П4) либо система-прототип полностью удовлетворяет требованиям заказчика, и она документируется (преобразователь П5) и сдается в виде готового программного приложения (G3) с соответствующей документацией (Д7).
Итерационное использование прототипного подхода к разработке ЭИС обеспечивает экономию ресурсов на проектирование, а самое главное, - резкое сокращение времени на разработку и внедрение готовой к эксплуатации системы.
При этом основным достоинством прототипной технологии является значительное снижение объема доработок ЭИС при ее внедрении, который для традиционных методов проектирования, как показывает опыт, соразмерен с затратами на первоначальную реализацию.
Вопросы для самопроверки
1. Дайте определение CASE-технологии проектирования ЭИС.
2. Какова структура CASE-средства?
3. Какие классы CASE-средств существуют?
4. Как можно определить стратегию выбора CASE-средства?
5. Как можно определить функционально-ориентированную CASE-технологию?
6. Какие диаграммы выступают в качестве инструментальных средств функционально-ориентированного анализа и проектирования?
7. Зачем создаются диаграммы функциональных спецификаций?
8. Определите основные понятия и конструктивные элементы диаграммы функциональных спецификаций.
9. Зачем создаются диаграммы потоков данных?
10. Определите основные понятия и конструктивные элементы диаграммы потоков данных.
11. Зачем создаются диаграммы переходов состояний?
12. Определите основные понятия и конструктивные элементы диаграммы переходов состояний.
13. Зачем создаются диаграммы «сущность-связь»?
14. Определите основные понятия и конструктивные элементы диаграммы «сущность-связь».
15. Зачем создаются системные структурные диаграммы?
16. Определите основные понятия и конструктивные элементы системной структурной диаграммы.
17. Определите технологическую сеть проектирования ЭИС при использовании функционально-ориентированного CASE-средства.
18. Определите технологическую сеть проектирования ЭИС при использовании функционально-ориентированного CASE-средства.
19. Какие диаграммы выступают в качестве инструментальных средств объектно-ориентированного анализа и проектирования?
20. Зачем создаются диаграммы прецедентов использования?
21. Определите основные понятия и конструктивные элементы прецедентов использования.
22. Зачем создаются диаграммы классов объектов?
23. Определите основные понятия и конструктивные элементы диаграммы классов объектов.
24. Зачем создаются диаграммы состояний?
25. Определите основные понятия и конструктивные элементы диаграммы состояний.
26. Зачем создаются диаграммы взаимодействия объектов?
27. Определите основные понятия и конструктивные элементы диаграммы взаимодействия объектов.
28. Какие существуют виды диаграмм взаимодействия объектов?
29. Зачем создаются диаграммы деятельностей?
30. Определите основные понятия и конструктивные элементы диаграммы деятельностей.
31. Зачем создаются диаграммы пакетов?
32. Определите основные понятия и конструктивные элементы диаграммы пакетов.
33. Зачем создаются диаграммы компонентов и размещения?
34. Определите основные понятия и конструктивные элементы диаграмм компонентов и размещения.
35. Определите технологическую сеть проектирования ЭИС при использовании объектно-ориентированного CASE-средства.
36. В чем заключается процесс генерации программного приложения ЭИС?
37. В чем заключается сущность прототипной (RAD) технологии?
38. Каковы основные возможности и преимущества быстрой разработки прототипа ЭИС?
39. Как классифицируются инструментальные средства быстрого прототипирования ЭИС?
40. Чем отличаются технологии традиционного и итерационного прототипирования ЭИС?