BOLD - инструмент реализации MDA в Delphi


Часть 6. Объектное пространство и OCL


Константин Грибачев

Развитие модели

Создание приложения

Формирование OCL-запросов к Object Space

Использование цепочек описателей

В предыдущей части статьи мы остановились на иерархии внешних классов объектного пространства Borland MDA, а именно на описателях (handles), при практическом использовании которых активно задействуется язык объектных ограничений Object Constraint Language (OCL).

Язык OCL был разработан как средство описания дополнительных условий и ограничений, налагаемых на элементы диаграммы классов UML, и в этом плане является частью UML. OCL — продукт корпорации IBM, а в 1997 году вышла спецификация языка версии 1.1, в разработке и согласовании которой приняли участие такие компании, как Rational, Microsoft, Oracle, Hewlett-Packard и ряд других (полный текст спецификации на английском языке содержится на прилагаемом к журналу CD-ROM). Язык OCL представляет собой формальный язык, основанный на выражениях. Любое выражение OCL возвращает некоторое значение, при этом средствами OCL невозможно изменять ни диаграммы классов UML, ни значения атрибутов классов. OCL не является языком программирования в обычном смысле и не предназначен для управления логикой функционирования модели.

В Borland MDA язык OCL играет чрезвычайно важную роль, выполняя следующие основные функции:

• навигация по элементам модели (классам, атрибутам, ассоциациям);

• задание условий и ограничений на элементы модели.

Навигация по модели, обеспечиваемая в Borland MDA посредством OCL, позволяет использовать гибкий и мощный механизм запросов к объектному пространству приложения. Такие OCL-запросы, как мы увидим в этой и последующих частях статьи, в принципе, способны полностью заменить привычный разработчикам приложений баз данных язык SQL, обладая при этом несопоставимой с последним наглядностью, лаконичностью и мощностью. Кроме того, с учетом платформенной независимости OCL, эти запросы являются универсальными и не привязаны ни к какой конкретной СУБД, используемой в приложении.

Развитие модели
Создание приложения
Формирование OCL-запросов к Object Space
Использование цепочек описателей



- Начало -