Контекстная интерпретация OCL- ограничений Парамонов В.В., Черкашин Е.А., Федоров Р.К. slv@icc.ru, eugeneai@icc.ru, fedorov@icc.ru Институт динамики систем.

Презентация:



Advertisements
Похожие презентации
Интерпретатор модели, не зависящей от платформы Парамонов В.В. Институт динамики систем и теории управления СО РАН, Иркутск Екатеринбург, 2006.
Advertisements

PL/SQL Триггер блок PL/SQL, выполняемый неявно каждый раз, когда происходит конкретное событие.
Создание таблицы CREATE TABLE имя_таблицы (имя_столбца тип_данных [NULL | NOT NULL ] [,...n])
База данных База данных – это конкретная предметная область, описанная с помощью таблиц.
Лекция 3 Домены Ограничения на значения столбцов Создание, изменение и удаление таблиц Ключи и ссылочная целостность Защита таблиц.
Обеспечение целостности данных Процедурное. Хранимые процедуры Хранимые процедуры пишутся на специальном встроенном языке программирования, они могут.
1 Генерация контекстных ограничений для баз данных Выполнил: Жолудев В. Научный руководитель: Терехов А.Н. Рецензент: Иванов А.Н.
БАЗЫ ДАННЫХ ЛЕКЦИЯ 12. тема: ОСНОВЫ ЯЗЫКА SQL Общие сведения SQL структурированный язык запросов (Structured Query Language)
Задачи проектирования ИПС: Анализ предметной области Определение структуры ИПС Определение видов поиска документов в ИПС Разработка структуры БД для ИПС.
Лекция 16 Лекция 16 Основы SQL. Описание отношений, доменов, ограничений целостности, представлений данных. Реализация операций реляционной алгебры в SQL.
Разработка телекоммуникационной и информационной системы для прогнозирования аварий и катастроф на НПЗ.
Model/View-архитектура CASE-пакета REAL-MV Тимофей Брыксин, гр. 545 Научный руководитель: А.Н.Терехов Рецензент: Д.В.Кознов.
SQL. Создание базы данных CREATE DATABASE ALTER DATABASE DROP DATABASE.
Реляционные базы данных N-арное отношение – подмножество декартова произведения N множеств возможных значений (доменов, типов данных, атрибутов) Изображение.
Введение в SQL (НЕ select) Затрагиваемые темы Роль языка SQL. Части SQL Роль языка SQL. Части SQL Администрирование БД: привилегии (DCL) Администрирование.
1 Диаграммы реализации (implementation diagrams).
PL/SQL Курсоры. Курсор – специальный элемент, связанный с SQL-оператором SELECT. Объявление курсора происходит в секции объявления базового блока. Работа.
1 TRANSACT-SQL. Лекция 3. © Куркурин Николай Дмитриевич. (906) Microsoft SQL Server 2000.
Презентация дисциплины по выбору Для студентов, обучающихся по направлению «Прикладная информатика» (магистерская программа «Прикладная информатика.
Задание для выполнения контрольной работы по дисциплине «Проектный практикум» Преподаватель: Романова Елена Владимировна mesi.ru Кафедра: Прикладная.
Транксрипт:

Контекстная интерпретация OCL- ограничений Парамонов В.В., Черкашин Е.А., Федоров Р.К. Институт динамики систем и теории управления СО РАН

Постановка задачи В последнее время актуален вопрос сокращения сроков разработки информационных систем (ИС), возможность внесения изменений в результаты ранних этапов разработки ИС. Основу документации разработчика должна формировать модель ИС, из которой она реально получена.

Подход к созданию ИС Перспективным подходом к разработке ИС является методика на основе архитектуры MDA – Model Driven Architecture. В основе подхода лежат понятия модели, не зависимой от платформы – Platform Independent Model (PIM), модели, зависимой от платформы – Platform Specific Model (PSM).

Этапы создания PSM-модели ИС: генерация ядра ИС Построение UML диаграммы ИС (PIM), в т.ч. –Формализация дополнительной информации, связанной со спецификой предметной области. Преобразование в платформо-зависимую модель. Дополнительна я информация (модель платформы реализации) Преобразование PIM PSM

PIM-модель ИС

CREATE DATABASE IF NOT EXISTS DATABASE ; CONNECT DATABASE ; CREATE TABLE PERSON ( OID CHAR(128), BIRTHDAY DATE, DOCTYPE VARCHAR(255), FLAT INTEGER, NUMBER VARCHAR(255), PERSONNAME_FIRST VARCHAR(255), PERSONNAME_MIDDLE VARCHAR(255), PERSONNAME_LAST VARCHAR(255), PROFESSION_OID CHAR(128) NOT NULL REFERENCES PROFESSION (OID), SEX ENUM( "unknown", "male", "female" ) NOT NULL… Структура базы данных

class Object: # table: OBJECT pass class Person: # table: PERSON pass def getAllDocuments(self): rc=self.Document.select_basic(PATIENT_OID=self.OID) return rc def locateDocument(self, located_OID, default=_local_mark): rc=self.Document.select_basic(PATIENT_OID=self.OID, OID=located_OID) if rc: return rc elif default==_local_mark: raise KeyError, 'object not found' else: return default Объекты приложения

Пользовательский интерфейс

Схема реализации генератора

Дополнительная информация: ограничения Ограничения PIM являются важной частью ИС. Они определяют часть модели автоматизируемого объекта. Задание ограничений Естественный язык Формально

OCL OCL - формальный язык ограничений содержит необходимую строгость высказывания и может быть достаточно легко проинтерпретирован как человеком, так и вычислительной системой. OCL является частью спецификации UML.

Использование OCL Язык запросов. Ограничение диапазона значений для числовых переменных и типов данных. Пре- и пост- условия алгоритмов (подпрограмм). Задавать инварианты циклов. Язык задания атрибутов и выражений в UML.

Использование OCL в MDA OCL Язык Модули преобразования Модель Правила преобразования

Интерпретация OCL OCL-выражение: context Person inv: self.reg_time < self.dep_time Возможно проинтерпретировать как: ограничение для баз данных: ALTER TABLE PERSON ADD CONSTRAINT REG_TIME < DEP_TIME код для элемента пользовательского интерфейса: if (!this.reg_time

Интерпретация OCL Contex Price post: --Условие максимальной цены до выполнения операции self.highPrice < self.price implies self ^ updateHighPrice(self.price) inv: self.highPrice>=self.price CREATE TRIGGER stockhigh NO CASCADE BEFORE UPDATE ON stocks REFERENCING NEW AS newrow FOR EACH ROW MODE DB2SQL WHEN (newrow.highprice IS NULL OR newrow.price > newrow.highprice) SET newrow.highprice = newrow.price; По следующему OCL-выражению: Генератор создает триггер БД:

Роль OCL в разрабатываемой системе Транслятор языка OCL Контекст (Интерпретация PIM) Преобразование дерева, зависящее от контекста Дерево разбора Генерирование исходного кода OCL- выражение Исходный код Модифицированное дерево как часть PSM

Выводы Разрабатывается программная технология интерпретации PIM- моделей ИС. Создаются методики анализа формализованных ограничений в контексте интерпретации ИС. Программные технологии тестируются на реальных примерах.

Апробация программной технологии Информационная система «Канц-регистр» Диаграмма, состоящая из 101 класса привела к –91 таблице; –8000 строк программного кода методов классов. Цикл генерации – 3 минуты. Бюджет руб. Время настройки пользовательского интерфейса 6 чел/мес. Общее время разработки 12 чел/мес.