- •3.6 Заключение 59
- •Глава 1. Определение и виды информационных систем
- •Виды ис
- •Функциональность информационных систем, ориентированных на данные
- •Глава 2. Технология real-it
- •Моделирование схемы данных
- •Описание ограничений целостности
- •Описание экземпляров
- •Создание представлений
- •Расширение uml для моделирования представлений
- •Создание экранов
- •Генерация
- •База данных
- •Программный интерфейс базы данных
- •Экранные формы
- •Заключение
- •Глава 3. Язык описания расширенных ограничений ссылочной целостности
- •Пример диаграммы классов с ограничениями
- •Альтернативные подходы
- •Контекстные ограничения
- •Нотация
- •Семантика
- •Базовая модель Определение 1
- •Модель с отрицаниями Определение 7
- •Модель с ограничениями на отдельные объекты Определение 11
- •3.6 Заключение
- •Глава 4. Разработка пользовательского интерфейса
- •Модельно-ориентированные подходы к разработке пользовательского интерфейса
- •Визуальное моделирование при разработке web-приложений
- •Моделирование интерфейса в real-гг
- •Порядок использования модели интерфейса
- •Диаграммы классов uml
- •Шаблоны экранных форм
- •Разработка отдельных типов экранных форм
- •4.3.1 Список
- •Определение набора столбцов
- •Моделирование фильтров
- •Карточка
- •Форма - отношение
- •Заключение
- •Глава 5. Поддержка итеративной разработки
- •Альтернативные подходы
- •Поддержка «ручных» изменений кода
- •Возможные решения
- •Анализ возможных решений
- •Предлагаемое решение
- •Программный интерфейс базы данных
- •Изменение расположения и размеров элементов управления
- •Изменение поведении элементов интерфейса
- •Изменение визуального представления (замена и добавление элементов управления)
- •Составление сложной формы из нескольких сгенерированных
- •Сохранение содержимого базы данных при обновлении ее схемы
- •Заключение
- •Глава 6. Реализация
- •База данных
- •Архитектура приложения
- •Оптимизация выборки данных
- •Учет зависимостей между полями
- •Отложенная инициализация закладок
- •Передача дополнительной информации между формами
- •Генераторы
- •Заключение
- •Глава 7. Направления дальнейших исследований
- •Моделирование расширенных ограничений ссылочной целостности
- •Моделирование пользовательского интерфейса
- •Распределение прав доступа в терминах модели системы
- •Разработка семейств информационных систем
- •Использование модели бизнес-процессов для реализации системы
- •0. Для профессионалов: Пер. С англ. — сПб: Питер, 2000. — 864 с.
Предлагаемое решение
Рассмотрим последовательно компоненты системы, при создании которых используются генераторы, и возможность применения в них тех или иных способов поддержки итеративного процесса разработки, перечисленных в п.5.2.1.
Программный интерфейс базы данных
Программный интерфейс базы данных П|х:дназначен для предоставления обьектно-ориентированного интерфейса к реляционной базе данных [14]. Классы программного интерфейса содержат, главным образом, методы для доступа к атрибутам объектов базы данных. Основное назначение этих методов
обеспечить статический контроль за использованием атрибутов.
При использовании набор» записей «напрямую», через стандартную библиотеку доступа к базе данных (например, Microsoft DAO, Microsoft ADO), указываются названия атрибутов в виде строковых консташг, поскольку транслятор во время компиляции не имеет информации о том, какие атрибуты существуют у объектов данных. Эю приводит к ошибкам периода исполнения.
Особенпо велика вероятность таких ошибок при изменении схемы (например, при переименовании или удалении атрибута) - старый код, который работает с базой данных, будет по-прежнему транслироваться, но перестанет корректно работать. При доступе к данным через программный интерфейс ошибки такого рода будут выявлены во время компиляции. Таким образом, существование программного интерфейса поддерживает итеративный процесс разработки.
Потребность в изменении поведения классов программного интерфейса возникает очень редко, поскольку основное их предназначение — служить «оберткой» для данных. Однако, иногда такая потребность все-таки по нижает, поскольку эти классы могут содержать некоторые элементы бизнес-.км икн.
В таких случаях можно описывать методы классов непосредственно в схеме базы данных — эти методы добавляются при генерации программного интерфейса.
Пользовательский интерфейс
Как уже говорилось выше, интерфейс генерируется в интерактивном режиме, т.с. информацией для генерации служит не только модель н CASE-пакете, но и настройки, которые выбирает разработчик в процессе генерации того или иного элемента интерфейса (экранной формы). Для обеспечения возможности перегенерации эти настройки сохраняются в модели системы.
Однако, несмотря на то, «по многое свойства интерфейса разработчик может настроить в процессе генерации, из всех генерируемых элементов системы именно интерфейс наиболее чзсто требует последующего внесения изменений. Перечислим основные типы «ручных») изменений в порядке убывания частоты их использования, выявленные нами по результатам выполнения ряда промышленных проектов с использованием REAL-IT:
Изменение расположения и размеров элементов управления.
Изменение поведение элементов интерфейса.
Добавление новых элементов интерфейса и замена элементов интерфейса на нестандартные.
Составление сложной формы из нескольких сгенерированных.
Изменение расположения и размеров элементов управления
1 енерзтор по умолчанию располагает элементы управления на форме по некоторому строго определенному алгоритму. Порядок расположения некоторых элементов управления можно настроить в процессе генерации, но эти настройки не включают в себя возможность полного задания расположения элементов управления. Такое решение было принято в связи с тем, чю управлять расположением элементов управления гораздо удобнее в визуальном режиме, который обеспечивается целевой средой разработки (например, редактором форм Microsoft Visual Basic). С точки зрения реализации генераторов было бы несложно дать возможность разработчику указывать в диалоге точное расположение и размеры элементов управления, но подобное решение было бы неудобным — скорее всего, генерация одной формы требовала бы в таком случае несколько итераций — указать размеры, посмотреть, что получилось, исправить размеры и т.д. Другой вариант - дать возможность пользователю указывать параметры элементов управления во время генерации визуально - но для этою потребовалось бы включить в генераторы собственный визуальный редактор форм - г.е. продублировать те возможности, которые уже есть в среде разработки. В REAL-ГГ было принято другое решение - использовать для настройки расположения элементов управления саму среду разработки. Настройка осуществляется после генерации, а при последующей перегенерации пользователю предлагается сохранить расположение элементов управления предыдущей версии формы, т.е. используется пятый способ из п.5.2.1.