Продолжается подписка на наши издания! Вы не забыли подписаться?

Семейство GRINDERY™ — инструменты и технология

Алексей Закис, Николай Приезжий, Игорь Щербаков

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

При всех отличиях в подходах к разработке программного обеспечения вряд ли можно оспаривать утверждение о приоритете развития и использовании в проектах CASE-инструментов, которые поддерживают полный цикл разработки — от формирования замысла до сопровождения готового изделия. В большинстве CASE-инструментов, независимо от фирмы-производителя и реализованной методологии (структурной или объектной), можно выделить рабочие места (фазы) Аналитика, Архитектора, Конструктора и Программиста. Первые две фазы обеспечивают детальное проектирование замысла информационной системы, последние две — ее реализацию.

Инструменты GRINDERY предназначены для выполнения проектов с использованием промышленных СУБД. Они расширяют возможности реализации и модернизации системы, могут использоваться автономно, а также на рабочих местах Конструктора и Программиста. Продуктивность инструментов обусловлена, в первую очередь, сокращением объема рутинных процедур ручного кодирования, возможностью качественного реинжиниринга баз данных и повторного использования программного кода. 

Инструменты семейства GRINDERY

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

Все инструменты GRINDERY имеют одну архитектуру, единый интерфейс и одинаковые принципы работы. Автоматическое формирование программного кода обеспечивается общим кодогенератором и библиотеками шаблонов, определяющими стиль пользовательского интерфейса. Инструменты GRINDERY позволяют использовать наиболее мощные СУБД, средства разработки и программно-аппаратные платформы. Так, сегодня доступны следующие варианты конфигурации поставляемых инструментов: 

Язык среды разработки

СУБД

Платформа

SuperNova

INFORMIX-4GL

INFORMIX-NewEra

Delphi

Informix

Oracle

Ingres

Sybase

MS SQL

ОС UNIX

(коммерческие версии),

а также

MS Windows NT, 95

Семейство GRINDERY обеспечивает:

(в октябре 1998г. компания Sterling Software приобрела Cayenne Software и с 4.11.98 поставляет на рынок продукт ObjectTeam под названием COOL: Jex).

В настоящее время функциональные возможности семейства GRINDERY расширяются за счет добавления кодогенераторов и других инструментальных средств для двух новых целевых языков программирования — Informix Dynamic 4GL и Tool Command Language/Tool Kit (Tcl/Tk).

Технологии сквозного проектирования

Поясним роль и место инструментов семейства GRINDERY в сравнении с таким инструментарием для промышленного программирования, как CASE-средства, СУБД, средства быстрой разработки (RAD, Rapid Application Development или RDS, Rapid Development System).

Программные продукты семейства GRINDERY представляют собой некоторое “технологическое” ПО промежуточного слоя (middleware). Это ПО объединяет в одной среде разработки, в рамках одной технологии лидирующие продукты различных компаний, позволяя реализовать все функционально-необходимые “горизонтальные” связи. Сказанное можно пояснить рисунком 1.

Рис. 1. Взаимосвязь инструментальных средств разработки

Здесь сплошными стрелами на периферии показаны “традиционные” связи между различными средствами разработки. Инструменты семейства GRINDERY поддерживают, в первую очередь, “перекрестные” связи за счет решения задач:

  1. проектирования, модернизации и реинжиниринга данных
  2. восстановления логической модели данных по содержанию SQL-скрипта
  3. экспорта/импорта моделей между CASE-инструментами и инструментами GRINDERY
  4. синхронизации логической и физической моделей при выполнении проекта
  5. автоматической генерации программного кода приложений
  6. циклической разработки приложений и баз данных (Iterative Design)
  7. миграции баз данных, включая физические объекты и сами данные.

Структура "технологического ПО промежуточного слоя" GRINDERY поясняется рисунком 2.

Результатом практического применения инструментов GRINDERY в различных проектах явилось становление технологий сквозного (straight-through) проектирования информационных систем, которые сегодня поставляются на рынок компанией DataX/FLORIN.

Рис. 2. Взаимосвязь инструментов семейства GRINDERY

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

Назначение и возможности инструментов GRINDERY

GRINDERY Grabber™ — это центральный продукт семейства GRINDERY™, он представляет собой среду быстрой разработки информационных систем, которая позволяет решать как задачи создания систем “с нуля”, так и задачи модернизации существующих систем.

В состав GRINDERY Grabber входят модули:

Разработка информационной системы с использованием GRINDERY Grabber, как правило, включает два этапа:

  1. создание прототипа системы с использованием стандартных шаблонов
  2. циклическая “доводка” структуры базы данных и приложения (проектирование — кодогенерация — ручная доработка — перепроектирование — повторная кодогенерация с воспроизведением ручных доработок и т.д.).

В модуль Конструктор БД входят модуль Grabber, средства работы с SQL-скриптами, редактор объектов (базы данных), модуль Access.

Модуль Grabber обеспечивает формирование логической структуры базы данных, используя в качестве источника информации:

Логическая модель базы данных практически не зависит от используемой СУБД, что в частности, позволяет использовать GRINDERY Grabber для решения задачи миграции (смены СУБД и среды реализации приложений).

Средства работы с SQL-скриптами позволяют:

Редактор объектов поддерживает логическое проектирование объектов базы данных. Работа в Редакторе объектов может вестись в режимах немедленного или отложенного исполнения.

Важной особенностью модуля Конструктор БД является возможность синтаксического анализа диалекта языка описания данных и последующая настройка GRINDERY Grabber практически на любой диалект SQL. Работа синтаксического анализатора поддерживается открытой библиотекой шаблонов для диалектов SQL промышленных СУБД.

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

В состав модуля GRINDERY входят редактор объектов (приложения), средства конфигурационного управления разработкой, средства взаимодействия с целевой средой разработки.

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

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

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

С помощью кодогенератора GUSLI можно создавать приложения с типовым интерфейсом. В таком приложении для каждой предметной таблицы базы данных создается рабочее место, позволяющее выполнять основные операции (INSERT, UPDATE, DELETE, QBE) с данными, содержащимися в этой таблице. Рабочее место позволяет работать не только с главной таблицей, но и с другими (вспомогательными для данного рабочего места) таблицами базы данных. Вспомогательными являются таблицы-словари, таблицы-потомки и таблицы-партнеры.

Код приложения создается кодогенератором на основе файла-шаблона и логической модели. Шаблоны состоят из фрагментов кода на целевом языке и команд языка подстановок. Фрагменты кода переписываются кодогенератором из файла-образца в создаваемый файл. При этом в них могут подставляться значения необходимых атрибутов модели. Команды языка подстановок управляют такими подстановками, а именно, указывают, какие атрибуты (имя колонки, список ключевых полей таблицы) каких объектов модели (таблиц, колонок) надо использовать. Кодогенератор представляет собой программу, написанную на Tcl. Соответственно, синтаксис команд языка подстановок близок стандартному синтаксису языка Tcl.

Модуль Вернисаж позволяет:

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

Одной из важных всех инструментов GRINDERY является поддержка циклической разработки приложений. Так, пользователь может внести в сформированный код произвольные изменения “вручную”. Если в дальнейшем ему потребуется изменить значения атрибутов модели приложения, то при повторной кодогенерации ручные изменения, сделанные раньше, будут воспроизведены. Они будут воспроизведены и в том случае, если пользователю потребуется внести изменения в модель базы данных (добавить или убрать колонку из таблицы, изменить связи между таблицами).

GRINDERY for VantageTeam™ и GRINDERY for ObjectTeam™ предназначены для пользователей CASE-инструментов компании Cayenne Software (ныне Sterling Software) и обеспечивают:

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

Возможные сценарии выполнения проектов

Порядок работы с GRINDERY Grabber. В зависимости от задач конкретного проекта, выполняется следующее:

Использование GRINDERY Grabber для миграции приложений между различными типами СУБД предполагает выполнение следующих действий:

Для успешной миграции разработаны специальные библиотеки хранимых процедур, реализующих недостающие по сравнению с другими СУБД стандартные функции. Модуль GRINDERY позволяет получить для восстановленной логической модели код пользовательских приложений на других языках программирования.

Использование GRINDERY Grabber для реинжиниринга существующих баз данных. Возможности модуля GRABBER позволяют преодолеть некоторые ограничения CASE-инструментов на реинжиниринг баз данных. В этом случае выполняются следующие шаги:

Порядок работы с GRINDERY for VantageTeam и GRINDERY ObjectTeam. После инсталляции инструментов GRINDERY они становятся доступными из меню соответствующего CASE-инструмента. В CASE-инструментах также становятся доступными атрибуты, управляющие кодогенерацией, и дополнительные шаблоны для генерации SQL.

Для создания приложения с использованием инструментов GRINDERY предусмотрен следующий порядок действий:

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

Вместо заключения

Из последних проектов, выполненных с использованием инструментов GRINDERY, следует отметить развертывание торговой системы для казахстанской компании “Астана/Холдинг” и разработку информационной системы для унитарного государственного предприятия “Госзагрансобственность”.

О первом проекте уже упоминалось на страницах Informix Magazine/RE, №1/1997. Проект выполнялся с использованием двух типов СУБД — Informix Dynamic Server и Microsoft SQL-Server. Одним из результатов этого проекта стало появление нового программного продукта компании DataX/FLORIN–торговой системы Prodromus, которая реализует все основные функции учета движения товарных и денежных средств.

Второй проект выполнялся с использованием только СУБД Informix Dynamic Server. Реализованы обработка информации по зарубежным регионам, ведение технических паспортов и договоров аренды недвижимости, учет кадров для обслуживающего персонала, расчет по ремонту, экономического учет и архив документов.

Оба проекта реализованы с помощью среды разработки от компании SuperNova и одноименного языка программирования четвертого поколения. Время выполнения каждого проекта не превысило 10 месяцев. Количество участников проекта менялось от трех до пяти человек. При этом на первом этапе, который занимал 1-2 месяца, уже создавался работающий прототип, во многом заменяющий длинный перечень детальных технических требований и исходных данных на разработку.

Если, на примере только этих проектов, проводить какие-либо сравнения с альтернативными средствами разработки, например ErWin + Delphi, SILVERRUN и др., то, на наш взгляд, было бы проблематичным получить с их помощью масштабируемое решение за указанное время с привлечением довольно ограниченных сил. Более подробно отличия инструментов и технологий GRINDERY от широко распространенного на отечественном рынке “легкого” инструментария обсуждались на конференции “Корпоративные базы данных’97”

Содержание краткой заметки, конечно, не может вместить в себя все аспекты проекта GRINDERY. По этой же причине здесь отсутствует и детальное техническое описание инструментов. За дополнительной информацией можно обратиться на www.florin.ru или по адресу info@florin.ru.

по материалам Informix Magazine/RE


Copyright © 1994-2016 ООО "К-Пресс"