CASE-система SILVERRUN американской фирмы Сomputer Systems Advisers, Inc. (CSA) используется для
инструментального обеспечения анализа и проектирования информационных систем бизнес-класса. Она
применима для поддержки любой методологии, основанной на раздельном построении функциональной и
информационной моделей (диаграмм потоков данных и диаграмм "сущность-связь").
Настройка на конкретную методологию обеспечивается выбором требуемого графического изображения
символов моделей и набора правил проверки проектных спецификаций. В системе имеются готовые
настройки для наиболее распространенных методологий: Gane/Sarson, Yourdon/DeMarco, Merise,
Ward/Mellor, Information Engineering. Для каждого проектного понятия имеется возможность добавления
собственных описателей.
Централизованное управление распределенными серверами
Центральная административная консоль SQL Server 6.0 заменила собой набор утилит, которые
существовали в предыдущей версии сервера. Из этой консоли, называемой Microsoft SQL
Enterprise Manager, администратор способен выполнять любые действия по администрированию
системы, как бы велика она ни была. На рис. 2 хорошо видны
несколько групп серверов.
Что можно ожидать от следующей версии SQL Server
В настоящее время проходит бета-тестирование SQL Server 6.5 - следующая версия сервера баз
данных Microsoft. Несмотря на то что обсуждение бета-версий дело неблагодарное, давайте
посмотрим на некоторые основные нововведения, которые планируется включить в продукт,
запланированный к выходу во втором квартале текущего года.
Следуя линии поддержки работы с большими объемами данных в SQL Server 6.5 планируется
включить поддержку "хранилищ данных".
Будут добавлены следующие возможности: аналитическая обработка данных в реальном времени
(online analytical processing - OLAP) при запросах, тиражирование в базы данных, производимые
другими компаниями, и поддержка программируемых устойчивых представлений и операций по
группировке данных на нескольких серверах.
Цикл разработки в S-Designor
При проектировании в S-Designor используется двухуровневый подход . Первый уровень - концептуальная модель данных (ER-диаграмма). Второй уровень -
физическая модель данных. При переходе на второй уровень S-Designor автоматически
генерирует соответствующую физическую модель данных для заданной СУБД, учитывая специфику
последней.
Концепция S-Designor - реализация классической теории информационного моделирования,
включающей четкое разделение между концептуальной моделью данных (представление объектов
реального мира и их взаимосвязи) и физической (отображение этих объектов в терминах, близких к
физическому представлению). Например, связи многие ко многим. Согласно теории информационного
моделирования и проектирования баз данных, такая связь при реализации должна быть
детализирована добавлением третьей уточняющей таблицы. S-Designor позволяет
представлять такие связи на концептуальном уровне модели. При генерации физической модели
S-Designor автоматически добавляет промежуточную таблицу, таким образом детализируя эту связь.
Cобственная репликация данных SQL Remote
SQL Remote - это система репликации (тиражирования данных) между базами данных SQL
Anywhere, основанная на передаче сообщений. Эта система администрируется из единого центра и
наиболее подходит для обмена данными с laptop-компьютерами и другими пользователями, связь с
которыми есть от случая к случаю. Система SQL Remote может использовать для репликации
средства электронной почты (MAPI, VIM, SMTP), файловый обмен и готовящийся к выходу
механизм Sybase Messaging Services.
SQL Remote реплицирует данные между "консолидированной" БД и одной или несколькими
"удаленными" БД. В качестве удаленных могут выступать как сетевые серверы SQL Anywhere, так
и локальные однопользовательские БД. SQL Anywhere поддерживает иерархическую модель
репликации (рис.12).
Консолидированная БД содержит все данные. Удаленные БД могут содержать часть данных или
все данные (удаленные БД, разумеется, могут содержать любые другие таблицы, не участвующие в
репликации).
Изменения, проведенные в консолидированной БД, тиражируются в удаленные БД. Изменения,
проведенные в одной из удаленных БД, попадают в консолидированную БД и затем в другие
удаленные БД.
Для обмена данными SQL Remote использует сообщения. Поэтому необязательно иметь прямое
сетевое соединение с удаленными БД. Достаточно организовать обмен сообщениями, например, по
электронной почте.
Приложения в архитектуре клиент-сервер, работающие в режиме сессии, используют тот или иной
сетевой транспорт (TCP/IP, IPX/SPX и др.) Точно так же приложения, работающие с сообщениями,
используют службы сообщений, такие как Microsoft Messaging API (MAPI), Lotus Vendor
Independent Messaging (VIM), Internet Simple Mail Transfer Protocol (SMTP) или даже простой
обмен файлами.
Схема репликации в SQL Anywhere
репликации">
Детальная система моделей организации.
Главными целями создания детальной системы моделей является построение концептуальной
модели данных и функциональной модели организации. Для достижения этих целей проводится
детализация описания деятельности организации от уровня описания реализации общих бизнес-
процессов в организации и списковых моделей в подразделениях до уровня детальных моделей
подразделений, позволяющих выделить все функции подразделений, обрабатываемые
документы, основные данные, описать регламент работы персонала и создать в итоге
функциональную модель организации и концептуальную модель данных.
Выявленные в процессе обследования подразделения функции распределяются по бизнес-
процессам этого подразделения, наполняя их конкретными работами данного подразделения.
При этом описания бизнес-процессов могут дополняться и уточняться. В моделях описываются и
детализируются бизнес-процессы, функции, информационные потоки, входные и выходные
документы, взаимодействие внутри организации и с внешними объектами, данные, бизнес-
правила, роли персонала и регламент, их взаимосвязи, временные и прочие характеристики.
Описание деятельности организации с помощью бизнес-процессов и бизнес-правил позволяет
определить где, когда и кем выполняется каждая функция, какие данные, информационные и
функциональные взаимосвязи для этого нужны, и откуда эти данные поступают.
Построенная системы моделей организации может использоваться для трех целей. Во-первых,
построенные модели могут быть использованы для формирования требований к ИС. Во-вторых,
система моделей может быть использована для анализа деятельности организации с целью ее
улучшения, путем проведения инжиниринга или реинжиниринга организации в зависимости от
результатов анализа. И, наконец, на основании анализа построенных систем моделей, а также
существующих в организации ИС, формируется стратегический план создания, развертывания,
сопровождения и развития информационной системы.
Документация
В состав JAM входит полный комплект документации в электронном виде. При этом используется
гипертекстовая система Dyna Text фирмы Electronic Book Technologies. Dyna Text доступна на
многих платформах, поддерживаемых пакетом JAM. Печатный вариант документации
поставляется за дополнительную плату. Если на какой-либо платформе Dyna Text система
недоступна, то печатная документация поставляется бесплатно. Вся документация представлена на
английском языке.
Домены
Часто используемые комбинации свойств можно поименовать. Такая комбинация свойств,
называемая доменом, может наследоваться. Например, можно определить домен "Дата" для
отображения всех колонок с датами в приложении в одном стиле, домен "Дата рождения ребенка"
наследует все атрибуты от домена "Дата" и вносит дополнительный атрибут - цвет отображения.
Пример определения домена показан на рис.11.
Достоинства реляционного и объектного подхода к построению информационных систем
При разработке базы данных объекты предметной области должны быть описаны в терминах
предоставляемой СУБД модели данных. Чем лучше природа данных соответствует
предоставляемой модели, тем проще и эффективнее будет схема данных. В случае же
несоответствия схема не будет отражать семантики предметной области, что делает ее сложной и
неэффективной.
Классическая реляционная модель данных идеально подходила для создания баз данных
сравнительно простой структуры и содержащих данные простых типов. Схема типичной
экономической или административной базы данных времен разработки DB2 удобно описывается
при помощи реляционной модели, так как необходимые данные естественно представляются в виде
отношений. При возрастании возможностей аппаратуры реляционные СУБД позволяют увеличить
объем хранимых данных и скорость их обработки, но мало применимы для работы с данными
новых типов и сложной структуры, так как такие данные сложно моделировать при помощи
имеющихся в реляционной модели абстракций.
Для решения таких задач эффективны объектно-ориентированные информационные системы
(ООИС), в которых сущности реального мира представляются как объекты данных
href="#lit">[2]. Состояние объектов описывается как значения их атрибутов, а их поведение
(применимые к ним операции) определяется реализацией их методов. Это позволяет представлять
объекты предметной области в естественном для них и семантически значимом виде, что
существенно упрощает разработку и модификацию схемы данных. Реляционная модель данных
может рассматриваться как подмножество объектно-ориентированной, что накладывает серьезные
ограничения на использование реляционных СУБД при построении ООИС. Однако это именно то
подмножество, которое на протяжении последних лет используется в большинстве работающих
реляционных систем, что привело к детальной разработке этой модели. В результате современные
РСУБД отличает совершенство реализаций, обеспечивающее высокую надежность и
производительность, в отличие от объектно-ориентированных баз данных, находящихся сегодня
на ранней стадии своего развития. Более того, существуют задачи , для
которых объектный подход не дает преимуществ.
Доступ к распределенной базе данных (интеграция/репликация данных)
Среда распределенных баз данных в рамках проектов корпоративных систем предполагает
возможность синхронизации изменений, производимых в отдельных фрагментах таких баз данных,
путем автоматического распространения транзакций изменений по узлам сети ( репликация
данных).
SOFTWARE AG включила XA-интерфейс (спецификация X/Open XO/CAE/91/300) в продукт
ADABAS версии 2.2 для ряда платформ UNIX и операционных систем IBM mainframe.
Продукт ENTIRE TRANSACTION PROPAGATOR поддерживает репликацию данных,
предоставляя возможность распространения транзакций изменений в среде баз данных
ADABAS.
В отличие от схем с двухфазовой фиксацией транзакции, требующей постоянной доступности всех
вовлеченных в транзакцию ядер СУБД (узлов), репликаторы данных требуют доступности только
одного ядра, называемого главным (рис. 8). Изменение файлов,
на главном узле выполняется синхронно с обработкой.
Доступ к удаленной базе данных (серверы баз данных)
Доступ к удаленным базам данных (серверу базы данных) предполагает, что приложение,
взаимодействующее с базой данных не должно меняться в зависимости от того, в каком узле сети
находится сервер базы данных.
При этом, существенную роль начинает играть язык, на котором приложение взаимодействует с
СУБД. За последние годы развитие получил язык SQL, ставший фактически промышленным
стандартом в мире открытых систем.
Реализация принципа независимости приложений от источников (серверов) данных, нашло
решение в виде уже упоминавшегося выше продукта ENTIRE NET-WORK, обеспечивающего
универсальный транспорт запросов от приложения до серверов баз данных.
Установка этого продукта на каждом из узлов сети как на платформах серверных ЭВМ, так и
рабочих станций клиентов, обеспечивает доставку запросов и данных между серверами баз данных
ADABAS и их клиентами.
На следующих схемах изображены варианты доступа к базам данных ADABAS, расположенных на
различных серверных платформах из приложений-клиентов на рабочих станциях.
Изображенные на рис. 5 конфигурации являются стандартными для
доступа к серверам баз данных ADABAS со стороны клиентов на рабочих станциях под
Windows.
Платформа клиентов (MS Windows)
Embedded SQL
Sybase Embedded SQL прекомпилятор позволяет программисту использовать ANSI-операторы
SQL в тексте программы на Си и Коболе. Для оптимизации статических запросов SQL
прекомпилятор может генерировать хранимые процедуры. Прекомпилятор интегрирован с XA-
интерфейсом для работы с мониторами транзакций.
Фирма-производитель
Американская фирма Computer Systems Advisers, Inc. (CSA) является поставщиком средств
проектирования и создания информационных систем архитектуры "клиент-сервер", а также занимается
консалтингом в области информационных технологий. Продукты фирмы используются в более 5000 мест
по всему миру. Среди пользователей - известнейшие представители компьютерного бизнеса (Apple, Cray,
Data General, IBM, Intel, Lotus Development, Texas Instruments), финансовой сферы (American Express,
Citibank, Morgan Guarantee Trust, World Bank), производители массовых товаров и услуг (General
Electric, Pepsicola, Pizza Hut, Polaroid), университеты (Harvard, Stanford, Yale), кинокомпании (MCI,
Walt Disney).
Фрагментация приложений
Поставляемая с Informix-NewEra библиотека классов прикладного сервера (Application Server Class
Library) предназначена для создания распределенных многозвенных приложений. В таком
приложении на машине-клиенте обслуживается только интерфейс с пользователем, а прикладная
бизнес-логика реализуется при помощи одной или нескольких серверных компонентов.
Предполагается, что поддержка серверных компонентов приложений NewEra будет обеспечена для
всех платформ, на которых могут работать серверы СУБД Informix.
В последующих версиях NewEra планируется реализация расширенного инструментария
распределенного программирования. В него войдут средства для автоматического создания
коммуникационного кода, обеспечивающего взаимодействие удаленных компонентов, а также
распределенный отладчик. При необходимости, фрагментация приложения может быть
переопределена без перепрограммирования содержательного кода, что чрезвычайно важно в
условиях постоянно изменяющихся потребностей.
Функции, определяемые пользователем
Функции, определяемые пользователем, позволяют скрывать внутреннее представление данных от
приложения, обеспечивая некоторую инкапсуляцию данных. Они также позволяют определять
новые операции как для базовых типов данных, так и для типов, определяемых пользователем.
Функции, определяемые пользователем, позволяют достичь многократного использования кода за
счет того, что операции, общие для различных приложений, хранятся на сервере, а не включаются
в каждое отдельное приложение.
Для реализации этих функций используются языки программирования, а для их регистрации в
СУБД - введенный в язык определения данных оператор CREATE FUNCTION. Фактически этот
оператор связывает пользовательскую функцию с конкретной программой, выполняемой при
вызове этой функции. Использование пользовательских функций вместо непосредственного
доступа к данным может обеспечить некоторую инкапсуляцию данных, что можно использовать
для того, чтобы скрыть от пользователя их внутреннюю структуру.
Кроме того, DB2 поддерживает механизм перегрузки имен пользовательских функций,
аналогичный применяемому в ООБД, однако не позволяет связывать функции с конкретными
элементами данных, как связаны методы и объекты при объектном подходе.
Дополнительную гибкость функциям, определяемым пользователем, придает способность
одновременно работать как с данными DB2, так и другими данными, как, например, файлами,
электронной почтой и др.
Возможны два варианта взаимодействия функций, определяемых пользователем, с сервером DB2.
Первый заключается в том, что функция имеет прямой доступ к БД, что позволяет достичь
максимальной производительности, но представляет собой потенциальную угрозу
работоспособности сервера и целостности данных.
Во втором варианте функция выполняется как отдельный от сервера БД процесс, что обеспечивает
защиту данных и СУБД, но снижает производительность.
Пользователь может выбирать оптимальный для своей задачи подход в зависимости от ее
специфики.
Генерация кода - эксперты
В процессе развития и, в том числе, визуализации средств разработки приложений, на фоне
стандартизации пользовательского интерфейса в различных областях применения конечных
систем, неотъемлемой частью таких инструментов стали генераторы кода и форм представления и
ввода информации - эксперты.
Кроме того, что Delphi включает ряд уже готовых к использованию экспертов (например, DataBase
Form Expert, генерирующий формы и соответствующий код для простых приложений обработки
баз данных с использованием запросов), эта среда программирования предоставляет
разработчикам интерфейс для создания собственных экспертов, встраиваемых в IDE.
Необходимо отметить, что функциональность таких экспертов может не ограничиваться на
генерации кода, в силу того, что интерфейс экспертов дает возможность получения информации о
внутренних объектах IDE, таких как палитра компонент. Вследствие этого, под общим названием
"эксперты" могут фигурировать программные модули, позволяющие управлять повелением IDE,
окна дизайнера и ее редактора исходных текстов, а также генерировать отчетную информацию о
создаваемом проекте. (На приведенном выше рисунке вы можете увидеть эксперт, разработанный
в Delphi и встроенный в IDE; функциональность этого эксперта заключается в предоставлении
разработчику информации об иерархии наследования зарегистрированных компонент без
компиляции; в данном случае доступ осуществляется через меню "Help", хотя возможна
регистрация и в "галерее" шаблонов Delphi).
Генерация отчетов
По завершении работы над информационной моделью, как правило, распечатываются логический и
физический уровни диаграммы, а также отчет по соответствиям сущность-таблица, атрибут-имя
колонки, сущность-атрибуты. Диаграмма физической модели является необходимым, почти
достаточным и очень удобным материалом для разработчиков программ. Дополнительная
информация для группы разработчиков прикладных программ содержится в отчете "имена таблиц и
колонок", который может быть легко построен с помощью ERwin. Выбор режима построения отчета
показан на рис.12.
Генерация приложений
Современная версия S-Designor позволяет автоматически генерировать приложения.
Приложения генерируются в интерфейсе MDI (многодокументный интерфейс). Обеспечивается
возможностью генерации связанных окон данных (master-detail). Приложения генерируются на основе
template, который поставляется с S-Designor. Окна данных в приложении генерируются
согласно выбранным таблицам модели данных. Для генерации приложения достаточно указать только
ряд необходимых параметров, таких как имя библиотеки в которой будет сохранено приложение,
источник данных в терминах ODBC, с которым будет работать приложение, имя библиотеки,
содержащей template, а также некоторые другие параметры.
Имеется возможность автоматически генерировать запросы (Query) как объекты в терминах целевых
средств разработки на основе представлений (View).
Генерация приложений и схем баз данных
Спецификации схемы (или подсхемы) можно перенести через соответствующий мост в среду разработки
приложений или сгенерировать схему базы данных для СУБД.
SILVERRUN не подменяет среду разработки и не содержит средств моделирования видов экранов или
форматов отчетов. Эти функции специфичны для каждого языка разработки. SILVERRUN передает
данные о форматах ввода, правилах редактирования, формах представления прямо в репозиторий среды
разработки. Программисту остается расставить поля на экранах, подправить, если нужно, генерируемые
большинством языков четвертого поколения автоматически SQL-запросы для этих экранов, определить
систему меню - и основа работающего приложения создана.
Генерация схемы базы данных происходит путем создания файла с SQL-операторами, в которые
переводятся конструкции модели данных. Этот файл используется для физического создания базы данных
на сервере. На рис. 6 приведен фрагмент схемы для СУБД Informix OnLine, полученной из модели,
изображенной на рис. 4.
--
================================================
===
-- table: Order
--
================================================
===
create table Order
(
OrderNum INTEGER not null,
OrderDate DATE default TODAY not null,
OrderCost MONEY not null,
CustomerName CHAR not null,
primary key (OrderNum)
)
;
--
================================================
===
-- referential integrity triggers section
--
================================================
===
-- =======================================
-- Procedure raise_exception for errors messages
-- =======================================
create procedure
messages_errors(errno INTEGER, isam INTEGER, errmsg char(255))
raise exception errno, isam, errmsg;
end procedure;
--
================================================
===
-- Controls the INSERT action on table Order.
-- Rule : CHILD INSERT RESTRICT
-- Parent : Customer
-- Child : Order
-- Direction : Order_Customer
--
================================================
===
create trigger tr_ins_Order insert on Order
referencing NEW as inserted
for each row
when
(
(select count(*) from Customer
where
inserted.CustomerName = Customer.CustomerName
) = 0
)
(
execute procedure messages_errors
(
-746,
0,
'Insert of "Order" denied: corresponding "Customer" does not
exist.'
)
)
;
--
================================================
===
-- Controls the DELETE action on table Customer.
-- Rule : PARENT DELETE RESTRICT
-- Parent : Customer
-- Child : Order
-- Direction : Customer_Order
--
================================================
===
create trigger tr_del_Customer delete on Customer
referencing OLD as deleted
for each row
when
(
exists
(
select * from Order
where
Order.CustomerName = deleted.CustomerName
)
)
(
execute procedure messages_errors
(
-746,
0,
'Delete of "Customer" denied: referencing "Order" exists.'
)
)
;
Рис. 6. Фрагмент схемы базы данных для СУБД Informix
OnLine
Генератор окон - Window Painter
Генератор окон NewEra - инструмент, который позволяет в графическом режиме создавать новые
классы окон и визуальных объектов. Под визуальным объектом понимается группа
взаимосвязанных органов управления окна, например, группа радиокнопок или супертаблица
(орган управления для взаимодействия с таблицами БД) в комплекте с управляющими
кнопками.
Генератор отчетов - JAM/RW
Одним из дополнительных модулей JAM является Генератор Отчетов. Компоновка отчета
осуществляется в Редакторе Экранов JAM. Описание работы отчета осуществляется с помощью
специального языка.
Генератор отчетов позволяет определить:
Данные, выводимые в отчет. Источниками информации для отчетов
могут быть результаты исполнения SQL-запросов (в том числе и
сгенерированные Менеджером Транзакций), внешние источники, информация,
введенная конечным пользователем и т.д;
Группировку выводимой информации. Уровни вложенности подотчетов и
детализации не ограничены;
Динамическое управление исполнением отчета;
Форматирование вывода, включая интеллектуальное разбиение на
страницы;
Заголовки и подвалы страниц и групп; использование в них внешних
данных;
Дополнительную обработку с помощью JPL-процедур или внешних
функций, написанных на языках 3-го поколения;
Динамическое управление исполнением отчета;
Устройство вывода.
Генератор Отчетов (Report Builder)
Это графическое средство, которое позволяет пользователю определять внешний вид и содержание
генерируемых отчетов. С его помощью можно создавать множество разнообразных отчетов, в том
числе:
отчеты в табличном виде
рулонные отчеты
отчеты, состоящие из нескольких разделов
только итоговые (суммарные) отчеты
Генератор Отчетов позволяет просмотреть на экране дисплея вид будущего отчета и при
необходимости внести требуемые коррективы. Текст отчета может содержать такие атрибуты
текста, как курсив, подчеркивание, плотность печати, а также выравнивание текста, цвет и тип
шрифта.
Кроме построения самостоятельных отчетов, Генератор может быть использован для генерации
отчетов для конечного пользователя следующим образом. Вы создаете основную логику отчета по
отбору данных и разметку страниц. Затем вы передаете конечному пользователю этот отчет вместе
с Генератором Отчетов Report Builder или утилитой Results, при помощи которых он может в
соответствии с собственными нуждами изменить формат отчета и отбираемые данные. Подобные
возможности по созданию шаблонов в значительной степени увеличивают возможности
пользователей, а также освобождают разработчиков от необходимости затрачивать чрезмерные
усилия на создание новых отчетов.
Генератор приложений
Генератор приложений (Application Builder) - графический инструмент для построения
приложений, состоящих из нескольких файлов. Разработчик описывает структуру приложений в
терминах проектов, программ, файлов. Проект может состоять из одной или нескольких
программ, каждая программа собирается из одного или нескольких исходных файлов (рис. 3).
Описания проектов сохраняются в системной базе данных.
Генератор позволяет собирать как интерпретируемый, так и выполняемый вариант приложения.
Выполняемое приложение создается в виде EXE-файла и, возможно, нескольких динамически
загружаемых библиотек (DLL).
Генераторы приложений
Входящие в состав DESIGNER/2000 генераторы разбиваются на две группы:
генератор сервера
генераторы клиентской части
Генератор серверной части автоматически строит по спецификациям базы данных тексты
программ на языке SQL, используя все средства определения баз данных, включая триггеры,
хранимые процедуры и т.д.
Генераторы клиентской части обеспечивают автоматическое формирование текстов программных
модулей по их спецификациям, записанным в репозитарии. Все модули приложения
классифицируются по типам, основными из которых являются экранные формы, отчеты,
процедуры. Для каждого типа имеется свой генератор, результатом работы которого является
программа, написанная на языке, соответствующем этому типу: генератор форм создает
приложения для ORACLE/Forms, генератор отчетов позволяет получать процедуры на PL/SQL
либо приложения для ORACLE/Report.
Исходной информацией для работы любого генератора служат спецификации таблиц базы данных
и спецификации модулей. В спецификации модуля указываются такие его параметры, как
наименование, тип, некоторые характеристики внешнего представления (заголовки, параметры).
Кроме того, перечисляются используемые таблицы базы данных и для каждой из них
специфицируется, какие операции к ней могут применяться (выборка, ввод записей,
корректировка, удаление), какие ее столбцы и каким образом участвуют в работе модуля.
Каждый используемый столбец может описываться разнообразными описателями, включая
форматы вывода, способы упорядочения, основные типы операций над данными, возможность
автоматической генерации значений при вводе новых записей и др. В простейших же случаях
можно использовать их стандартные значения, задаваемые по умолчанию, что существенно
сокращает время на получение первоначальной версии работающей программы.
Кроме этой информации об особенностях модуля генератор использует спецификации таблиц базы
данных и взаимосвязей между ними. Это позволяет при описании в репозитарии собственно
модуля не заботится об указании, каким образом связаны используемые таблицы, из каких
таблиц берутся данные для заполнения того или иного столбца, какие дополнительные действия
необходимо выполнить при изменении содержимого данной таблицы, чтобы не нарушить
целостность всей базы данных (так, при удалении записи из таблицы может потребоваться
проверка, не ссылаются ли на нее записи из других таблиц) и т.п.
Например, если мы хотим создать экранную форму для таблицы СОТРУДНИКИ, то нет
необходимости включать в число используемых таблиц ОТДЕЛЫ в качестве источника для
заполнения столбца ОТДЕЛ в таблице СОТРУДНИКИ. Генератор, анализируя структуру базы
данных, автоматически создаст правильный список возможных значений и включит в текст
программы все необходимые проверки на правильность вводимых данных. Такой принцип
работы генераторов особенно существенен для поддержки прикладной системы: при
необходимости изменения схемы базы данных (добавилась новая таблица, логически связанная с
уже существующими, или изменился тип некоторой взаимосвязи между базовыми таблицами и
т.п.) можно не вносить никаких изменений в старые спецификации модулей, а лишь
перегенерировать их и все необходимые изменения в тексты программ будут внесены
автоматически.
Несмотря на то, что спецификации модуля в репозитарии описывают его лишь в самом общем
виде без уточнения различных деталей внешнего представления форм и отчетов, особенностей
функционирования, существует возможность дополнительной "настройки" с помощью
многообразных параметров, управляющих работой генераторов. Более четырехсот таких
параметров, тщательно классифицированных, позволяют получать по одной и той же
спецификации работающие программы, различающиеся внешними представлениями,
особенностями функционирования, стилем оформления исходного текста и т.д.
При необходимости сгенерированный текст программы можно дополнительно доработать и
дополнить, пользуясь непосредственно соответствующими инструментальными средствами
разработки "нижнего уровня", входящими в состав DEVELOPER/2000.
В этом случае появляется
некоторая опасность несоответствия конечной версии программы спецификациям проекта, что
особенно неудобно при возможных изменениях проекта, например схемы базы данных. Такое
изменение требует перегенерации модулей с учетом новых таблиц и взаимосвязей, а с другой
стороны выполнение повторной генерации "уничтожит" старую версию программы со всеми
введенными "вручную" дополнительными фрагментами. Для такой ситуации в DESIGNER/2000
предусмотрен специальный режим работы генераторов - регенерация. При регенерации
происходит не замена старого программного текста на новый, а его "редактирование", когда по
возможности вносятся лишь необходимые изменения и не корректируются отдельные
фрагменты. При этом можно управлять уровнем изменений и запретить модифицировать
определенные фрагменты программы (например, все, относящееся к описанию расположения
полей или триггеры заданного типа и т.п.).
Из дополнительных средств, входящих в состав генераторов, особый интерес представляют
утилиты, позволяющие использовать DESIGNER/2000 не только для новых разработок,
начинающихся с этапа постановки задачи, но и для готовых прикладных систем, которые были
спроектированы и реализованы без использования CASE-средств. Для такой ситуации
предусмотрена возможность реинженигинга системы - автоматического создания по работающей
версии приложения его описания в репозитарии, т.е. спецификаций структуры базы данных,
программных модулей типа экранных форм и отчетов, ER-модели. Полученные описания могут
быть использованы для анализа возможностей и выявления недостатков существующей версии
приложения, а впоследствии модифицированы в соответствии с новыми требованиями и
условиями функционирования системы. На основе отредактированных спецификаций
производится генерация новой версии системы.