VantageTeam Builder и GRINDERY как средства разработки приложений для NewEra и SuperNOVA
Получив такие результаты в части генерации 4GL приложений мы задумались над тем, нельзя ли
приспособить кодогенератор к разработке приложений с использованием других средств разработки,
прежде всего NewEra и SuperNOVA. Дело в том, что эти средства являются объектно-
ориентированными и поддерживающими графический интерфейс. Теоретически разработка
приложений для средств такого класса (также, как и приложений на С++) должна вестись с помощью
CASE-средств, поддерживающие объектно-ориентированный подход, например, с помощью
VantageTeam OO Builder той же фирмы CADRE. Однако такие средства разработки пока не
пользуются в России заметной популярностью, что связано, видимо, с относительной новизной
подхода и меньшей наглядностью проектов, выполненных с помощью какой-либо из объектно-
ориентированных методологий. Фактически многие разработчики предпочли бы выполнять анализ и
проектирование на основе структурного подхода, а разработку интерфейса и генерацию приложения
вести с помощью объектно-ориентированных инструментов. И, как показал наш анализ, VantageTeam
Builder вполне может справиться с этой задачей. Для этого его достаточно оснастить соответствующей
версией нашего генератора GRINDERY NewEra/Yourdon или GRINDERY SuperNOVA /Yourdon
Описанный выше подход, использовавшийся нами при разработке генератора 4GL приложений,
оказался достаточно близок к объектному. Фактически, для каждой таблицы создается объект,
состоящий из ее (видимых и невидимых) полей, импортированных полей и строковых представлений
словарей. А выбранный эталон программной реализации по сути близок к стандартному набору
методов для работы с построенным объектом. Это позволяло надеяться на относительную простоту
переноса основных решений, используемых для процедурного языка Informix-4GL, на объектные языки
NewEra и SuperNOVA.
Тем не менее, при построении генераторов для NewEra и SuperNOVA нам пришлось решать весьма
сложный принципиальный вопрос: как осуществить переход между богатыми возможностями
графического интерфейса и значительно более ограниченными возможностями алфавитно-цифрового?
В отличие от многих универсальных (позволяющих для одного приложения создавать и такой, и
другой интерфейсы) средств разработки (к которым, кстати, относится и SuperNOVA) мы пошли не по
пути копирования экрана, а по пути реализации аналогичного по функциональным возможностям
набора методов. Выбор такого подхода во многом перенес тяжесть разработки на создание
необходимой библиотеки классов, оставив задачей кодогенератора создание файлов прототипов
экранных форм (WIF-файлы для NewEra и LGC-файлы для SuperNOVA). В результате кодогенератор,
создающий необходимые WIF-файлы на основе все того же проекта, разработанного с помощью
VantageTeam Builder, был написан еще быстрее, чем генератор для разработки 4GL приложений.