|
|
|||||||||||||||||||||||||||||
|
ERwin и автоматическая генерация кода клиентских приложенийИсточник: Компьютер Пресс №10-98 Анатолий Тощев
ВведениеПривычным становится для программистов, создающих информационные системы в технологии «клиент-сервер», работа по моделированию структуры базы данных с помощью CASE-средств. Это позволяет значительно упростить процесс создания реально работающих информационных систем, а также облегчает их сопровождение. Но данная методика касается только серверной части информационных систем. А может ли CASE-средство автоматизировать разработку клиентского приложения? Однозначно положительный ответ вряд ли кто рискнет дать. Когда разговор идет об автоматической генерации кода приложения, любой программист скажет, что об оптимальности этого кода не может быть и речи. Однако все серьезные CASE-средства имеют модули по автоматизации разработки клиентской части информационной системы. В чем же они могут оказать помощь программисту? Рассмотрим генерацию клиентских приложений на примере одного из самых распространенных CASE-средств программного продукта ERwin фирмы Logic Works.
С чем работает ERwin?Первый вопрос, который возникает при попытке использования ERwin для разработки клиентской части звучит так: «Какие средства разработки приложений поддерживает ERwin?». Последняя версия ERWin 3.5 напрямую работает с двумя средствами: Visual Basic (Microsoft) и PowerBuilder (Sybase) версии 4.0, 5.0 и 6.0. Т.е., весь процесс обмена информацией при генерации приложения осуществляется только между ERwin и соответствующим средством разработки. Используя специальный продукт MetaBase (производитель - швейцарская фирма «gs-soft»), можно расширить список еще одним популярным средством разработки, а именно Delphi (Borland).
Какое приложение ERwin создает при использовании автоматической генерации кода? Все зависит от используемого средства разработки. Давайте более подробно остановимся на каждом из этих средств. Visual BasicПри работе с Visual Basic сразу виден результат работы, т.к. на основе модели данных создается экранная форма. Процесс генерации можно разбить на две части: формирование клиентских данных в ERwin и использование Visual Basic для создания кода приложения.
Загрузив в ERwin модель данных, необходимо установить через меню Client - Target Client средство разработки Visual Basic. Следует заметить, что ERwin работает с Visual Basic версии 4.0 или 5.0. Выбор номера версии непредусмотрен, т.к. практически нет никаких различий с точки зрения ERwin на генерацию кода в различных версиях Visual Basic. Работа с клиентской частью доступна только на уровне физической модели. Далее приступаем к созданию словарей (осуществляется с помощью соответствующих пунктов меню Client) для стилей, форматов, условий проверки и начальных значений. Можно пропустить этот шаг и формировать словари непосредственно на следующем шаге. Назначение словарей состоит в следующем:
Следующий шаг требует задать параметры для всех колонок модели, которые будут использованы в процессе генерации.
На данном этапе работу с ERwin можно считать завершенной. Перейдем к этапу генерации, который выполняется с помощью Visual Basic. Для процесса генерации кода должны быть загружены обе программы (ERWin и Visual Basic). Первым шагом необходимо создать новый проект Visual Basic и подключить к нему два внешних файла (модуля) CONST40.BAS и ERWIN40.BAS, расположенных в каталоге ERwin. Если Вы забудете добавить файлы, генерация кода пройдет успешно, но проблемы возникнут на этапе компиляции приложения. Используя пункт меню AddIns-ERwin-Form Wizard, начните процесс генерации. Генерация кода производится по принципу Wizard. Для данной операции потребуется от трех до пяти шагов: 1. Выбор таблицы (таблиц) для генерации кода - перенесите нужные таблицы из левого списка в правый. Если в ERwin в данный момент открыто более одной модели имеется возможность работы с любой из них, но только с одной, выбрав ее в списке моделей. Нажмите кнопку Next. 2. Выбор дочерних таблиц (выполняется если выбрано более одной таблицы) - выберите дочерние таблицы (из выбранных) для всех родительских таблиц, приведенных в верхнем списке. Нажмите кнопку Next. 3. Выбор колонок для включения в форму - перенесите все необходимые колонки из левого списка в правый для всех выбранных таблиц. Нажмите кнопку OК для пропуска шага 4 или кнопку Next. 4. Установите стиль отображения таблиц с помощью выпадающего списка:
5. Задайте параметры для соединения с базой, имя и заголовок формы. Нажмите кнопку OК. К достоинствам данной технологии можно отнести очень быстрый процесс разработки приложений. Практически не приходится писать одну из самых трудоемких частей приложения - функции работы с базой данных, что значительно сокращает время на разработку.
В заключение этого раздела приведу пример из личной практики. В процессе чтения лекций по ERwin за два часа было создано работающее приложение, состоящее из четырех форм, что произвело неизгладимое впечатление на Клиента. PowerBuilderПо другому пути пошли разработчики ERwin при генерации кода для PowerBuilder. Одна из основных задач построения модели данных - генерация структуры базы данных. Резонно предположить, что правильнее всего в клиентском приложении формировать ту часть, которая отвечает за работу с базой данных. Эта часть в PowerBuilder реализована в виде объекта DataWindow, который отвечает за взаимодействие приложения с БД через сформированные запросы. И именно он создается ERwin при генерации кода для PowerBuilder.
В отличие от Visual Basic ERwin для PowerBuilder все делает сам без загрузки последнего. Единственное условие - в AUTUEXEC.BAT должен быть прописан путь к каталогу PowerBuilder, т.к. ERwin при генерации использует динамические библиотеки PowerBuilder. Описанным выше способом установите в качестве средства разработки PowerBuilder. ERwin работает с тремя версиями PowerBuilder - 4.0, 5.0 и 6.0. Установите нужную версию. В поле PBL File надо указать путь и имя файла (библиотеки Power Builder), в котором будут создаваться DataWindow. При работе с PowerBuilder ERwin имеет одну важную особенность: в структуре БД создаются служебные таблицы для работы с PowerBuilder, называемые PB Catalog. В них прописываются все элементы модели, а так же стили, форматы. и начальные значения. Для правильной работы с таблицами в поле PB Catalog Owner надо указать имя пользователя БД, под которым они были созданы. Если таблицы в БД не созданы, не надо расстраиваться: ERwin будет нормально работать с Power Builder и без них. Правда, при синхронизации структуры БД ERwin будет формировать запросы по изменению данных в данных таблицах, а значит будут выдаваться сообщения об ошибках. Но эти ошибки не мешают нормальной генерации структуры, т.к. вышеуказанные запросы будут созданы в конце скрипта. Принцип работы с клиентской частью ERwin аналогичен работе с Visual Basic. Надо также создать словари стилей, Процесс генерации DataWindow начинается выполнением пункта меню Client - Create DW. Для генерации надо выбрать таблицы из модели данных и перенести их в список выбранных таблиц. За один сеанс ERwin может создать несколько DataWindow. Необходимо отметить тот факт, что нельзя создать DataWindow из двух и более таблиц (организовать JOIN). Еще одной особенностью является задание стиля отображения DataWindow. ERwin позволяет создать три стиля:
Второй вариант создания DataWindow - это использовать закладку Power Builder редактора таблиц.
DelphiПо сравнению с предыдущими средствами разработки Delphi не может напрямую работать с ERwin. Посредником между ними выступил продукт фирмы gs-soft MetaBase. На момент написания данной статьи MetaBase версии 3.0 может работать только с ERwin 3.0 (пока нет поддержки ERwin 3.5).
Как взаимодействуют эти три продукта? Созданная с помощью ERwin модель данных сохраняется в файле с расширением ERX (по умолчанию ERwin создает файлы с расширением ER1). Формат ERX стандартизован и описывает модель данных в текстовом формате. Применяется он для переноса моделей между разными CASE-средствами и для организации доступа к моделям из пользовательских приложений. Чтобы понять дальнейший процесс проектирования давайте определим последовательность преобразования модели данных. Модель преобразуется в метамодель MetaBase, которая хранится в файле специального формата. В метамодели описываются свойства сущностей и атрибутов модели данных. Кроме того, MetaBase содержит библиотеку компонент, которые помимо работы с базой умеют читать метамодель. При построении проекта на Delphi с использованием данных компонент не требуется настройка свойств, т. к. они описаны уже в метамодели. В чем преимущество подобного подхода к проектированию. При изменении модели данных потребуется только прочитать ее в MetaBase и изменить метамодель, настроив свойства новых или измененных сущностей и атрибутов. Но сначала надо сделать обратное проектирование метамодели в модель данных (чтобы в модели данных сохранились все описанные в метамодели свойства). При запуске проекта на Delphi все новые колонки или поля появятся в экранной форме. Пожалуй, потребуется только изменить размер формы (если будут дополнительные поля). Для работы с MetaBase необходимо запустить программу MetaGen.
Далее надо перейти на закладку Transfer. Нажатием кнопки Import модель преобразуется в метамодель MetaBase. Чтобы иметь возможность редактировать метамодель надо нажать кнопку Check Out. Для редактирования нажимается кнопка MetaBase Editor. Для открытия доступа к метамодели надо нажать кнопку Check In. Кнопкой Export выполняется процесс создания из метамодели модели данных в формате ERX.
В редакторе можно выполнить команды Check In и Check Out. Следующим этапом надо создать новый проект в Delphi. Если создается первый проект, предварительно надо установить компоненты MetaBase.
*) - использование необязательно Для связи компонент в цепочку устанавливаются соответствующие свойства. При установке свойства MetaBaseName в компоненте MetaSourceGS (надо установить имя метамодели) для остальных компонент становятся доступными соответствующие параметры и свойства метамодели. Например в компоненте TableGS для свойства MetaEntityName появляется возможность выбора из списка сущностей метамодели. После выбора сущности автоматически устанавливается свойство TableName, т.к. в метамодели прописана связь имен сущностей и таблиц. Преимуществами использования MetaBase является полное согласование модели данных и кода приложения (при посредничестве метамодели), что значительно упрощает процесс внесения изменений в процесс разработки информационных систем. Можно отметить наличие индивидуальных настроек свойств для пользователей, приводящее к повышению гибкости приложения К недостаткам можно отнести более длительный процесс проектирования на начальной стадии и более сложную структуру компонент для работы с базой данных. Пожалуй, есть еще один неприятный момент: иногда возникают ошибки при чтении ERwin файла ERX, созданного MetaBase, что практически сводит на нет весь круговорот разработки приложения. ЗаключениеВ заключение, подводя итоги, можно сказать, что CASE-средства не может полностью создать приложение на основе модели данных, т.е. заменить программиста, но оно может оказать большую помощь по ускорению процесса разработки приложений. Использование CASE-средств для генерации кода приложений очень удобно на начальном этапе создания приложения, этапе прототипирования, от которого во многом зависит будет ли продолжена разработка информационной системы. При этом создается основа приложения, содержащая значительную часть такого сложного этапа, как разработка запросов для работы с БД. Поэтому доработка приложения потребует меньше времени, чем разработка с нуля.
Ссылки по теме
|
|