Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемgisnews.icc.ru
1 Контекстная интерпретация OCL- ограничений Парамонов В.В., Черкашин Е.А., Федоров Р.К. Институт динамики систем и теории управления СО РАН
2 Постановка задачи В последнее время актуален вопрос сокращения сроков разработки информационных систем (ИС), возможность внесения изменений в результаты ранних этапов разработки ИС. Основу документации разработчика должна формировать модель ИС, из которой она реально получена.
3 Подход к созданию ИС Перспективным подходом к разработке ИС является методика на основе архитектуры MDA – Model Driven Architecture. В основе подхода лежат понятия модели, не зависимой от платформы – Platform Independent Model (PIM), модели, зависимой от платформы – Platform Specific Model (PSM).
4 Этапы создания PSM-модели ИС: генерация ядра ИС Построение UML диаграммы ИС (PIM), в т.ч. –Формализация дополнительной информации, связанной со спецификой предметной области. Преобразование в платформо-зависимую модель. Дополнительна я информация (модель платформы реализации) Преобразование PIM PSM
5 PIM-модель ИС
6 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… Структура базы данных
7 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 Объекты приложения
8 Пользовательский интерфейс
9 Схема реализации генератора
10 Дополнительная информация: ограничения Ограничения PIM являются важной частью ИС. Они определяют часть модели автоматизируемого объекта. Задание ограничений Естественный язык Формально
11 OCL OCL - формальный язык ограничений содержит необходимую строгость высказывания и может быть достаточно легко проинтерпретирован как человеком, так и вычислительной системой. OCL является частью спецификации UML.
12 Использование OCL Язык запросов. Ограничение диапазона значений для числовых переменных и типов данных. Пре- и пост- условия алгоритмов (подпрограмм). Задавать инварианты циклов. Язык задания атрибутов и выражений в UML.
13 Использование OCL в MDA OCL Язык Модули преобразования Модель Правила преобразования
14 Интерпретация OCL OCL-выражение: context Person inv: self.reg_time < self.dep_time Возможно проинтерпретировать как: ограничение для баз данных: ALTER TABLE PERSON ADD CONSTRAINT REG_TIME < DEP_TIME код для элемента пользовательского интерфейса: if (!this.reg_time
15 Интерпретация 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-выражению: Генератор создает триггер БД:
16 Роль OCL в разрабатываемой системе Транслятор языка OCL Контекст (Интерпретация PIM) Преобразование дерева, зависящее от контекста Дерево разбора Генерирование исходного кода OCL- выражение Исходный код Модифицированное дерево как часть PSM
17 Выводы Разрабатывается программная технология интерпретации PIM- моделей ИС. Создаются методики анализа формализованных ограничений в контексте интерпретации ИС. Программные технологии тестируются на реальных примерах.
18 Апробация программной технологии Информационная система «Канц-регистр» Диаграмма, состоящая из 101 класса привела к –91 таблице; –8000 строк программного кода методов классов. Цикл генерации – 3 минуты. Бюджет руб. Время настройки пользовательского интерфейса 6 чел/мес. Общее время разработки 12 чел/мес.
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.