Об'єктне моделювання за допомогою OCL
461.00K

Lec_1

1. Об'єктне моделювання за допомогою OCL

Обгрунтування застосування OCL
Метамодель для сімейства мов
обмежень UML

2.

•Мова обмежень об'єктів (OCL) – це мова для вираження обмежень у моделях
UML. Останнім часом були зроблені значні зусилля для більш точного опису OCL.
Наприклад, було запропоновано метамодель для абстрактного синтаксису OCL.
Була розроблена загальна метамодель його семантики також було розроблено
формальні описи семантики OCL.
•Загалом UML розглядається як єдина, хоч і велика, мова моделювання. Однак з
появою UML 2.0 логічно, що UML стане сімейством мов. У UML 2.0
передбачається, що семантика кожного члена сімейства інкапсулюється в один
профіль UML. Кожен профіль буде адаптувати UML до певної сфери
застосування. Наприклад, можна мати UML для моделювання в реальному часі,
моделювання електронного бізнесу або моделювання бізнес-процесів. Вплив цих
змін вплине не лише на діаграмні компоненти UML.
•Проблема, з якою стикаються розробники профілів, полягає в тому, щоб уникнути
завдання перевинаходу метамоделей для родин родинних мов. Ми хочемо
показати, як семантика сімейства мов OCL може бути зафіксована в метамоделі.
При цьому вона прагне виділити два ключові механізми, які можуть допомогти у
повторному використанні метамоделей мови обмежень: шаблони визначення
мови та розширення та імпорт пакетів.
•Курс структуровано таким чином: спочатку дається огляд MMF та основних
шаблонів та архітектури, що використовуються для опису метамоделей. Далі
представлена ​основна метамодель MML (типова UML-подібна основна
метамодель). Далі основна модель розширюється за допомогою функцій мови
статичних обмежень та обговорюються деякі загальні підходи щодо побудови
профілів.

3.

Мета-моделювання (MMF)
•Meta-Modelling Facility (MMF) націлений на надання модульного та розширюваного
методу для визначення та використання мов моделювання. MMF включає мову
(MML), що використовується для написання визначень мови, інструмент (MMT), що
використовується для інтерпретації цих визначень, і метод (MMM), який надає
керівні принципи та шаблони для належної практики визначення мови.
•MML — це мова метамоделювання, яка включає підмножину UML. Сама мова
визначається за допомогою точного підходу метамоделювання, в якому
визначаються відображення між його концепціями моделювання та концепціями
його семантичної області. Розробка мови продовжується та підтримується IBM.
•Основні функції моделювання MML – це пакети, класи, атрибути та мова
обмежень.
•Пакет – це контейнер класів та/або інших пакетів. Це знайомий UML. Можливо,
більш незнайомою є можливість спеціалізувати та імпортувати пакети, яка була
запозичена з Catalysis та покращена. Пакети, а також імпорт та спеціалізація
пакетів - це ключові конструкції в MML, які підтримують модульні, що
розширюються визначення мов на основі набору фундаментальних шаблонів.
•Імпорт пакета відображається шляхом розміщення стрілки залежно від UML між
пакетами. Дочірній пакет копіює всі (і, отже, містить усі) вміст батьківського пакета.
Клас, пакет, атрибут або метод дії пакета можуть бути перейменовані за допомогою
спеціалізації. Так, якщо пакет B імпортує A, копіюючи клас C і спеціалізуючи його на
D і копіюючи атрибут a C і спеціалізуючи його на b, можна було б анотувати стрілку
як [D<C[b<a]]. Це вкладений синтаксис, який відображає ідею у тому, що є ієрархія
стримування елементів моделювання.

4.

Приклад імпорту пакета показано на рис. 1. Елементи (світліший колір)
представляють ті елементи, які з'являються в дочірньому пакеті в силу імпорту з
батьківського пакету. Елементи (темніший колір) були додані окремо. Вони були
увімкнені, щоб допомогти прояснити значення імпорту пакета. Вони можуть бути
згенеровані автоматично з відношення імпорту та анотацій перейменування, MMT
це робить безпосередньо.

5.

При імпорті атрибуту його множинність може змінитися, наприклад, з «*» (нуль чи
багато) на «1» (рівно один). Це можна включити в інструкцію перейменування, так
що якщо в попередньому прикладі множинність атрибуту a також була
спеціалізована до 1, інструкція перейменування буде [D<C[b<a[1<*]].
Стрілка узагальнення між пакетами означає узагальнення пакета. Узагальнення
пакета призводить до того, що вміст пакету специфікується вмістом пакета
дочірнього класу. Список перейменування може бути приєднаний до стрілки
узагальнення, аналогічно тому, як це використовується при імпорті.
Архітектура та шаблони MML
Метамодель MML спеціально структурована для надання фреймворку, який може
бути легко використаний для побудови точних визначень сімейства мов
моделювання. Для підтримки цього прийнято модульну архітектуру, в якій точки
варіації розділені на пакети. Наприклад, MML включає пакети для типів даних,
механізмів розширення та обмежень, всі з яких розширені з одного основного
пакета (див. рис. 2). Ціль полягає в тому, щоб нові мови могли бути швидко
створені шляхом зміни або розширення певних пакетів. Наприклад, можна було б
легко адаптувати типи даних, які використовуються певною мовою моделювання,
розширивши пакет типів даних. При необхідності певні частини метамоделі можуть
бути позначені як обов'язкові, забезпечуючи тим самим крос-мовну сумісність.
MML використовує узагальнення пакетів для полегшення побудови багаторівневої
структури компонентів визначення мови.

6.

MML також має на меті виявлення шаблонів мовних елементів. Вони охоплюють
наскрізні структури та відносини, що виникають у всіх метамоделях. Вони
включають шаблони визначення мови та набір шаблонів мовних елементів.
Шаблон визначення мови використовується для структурування конкретного
синтаксису, абстрактного синтаксису та семантичних елементів мов, а також
визначення відображень між ними. Цей шаблон показано на рис. 3.

7.

Шаблони елементів мови
Шаблони мовних елементів фіксують структурні відношення між мовними
елементами. Шість основних шаблонів показано на рис. 4. Короткий опис кожного
шаблону наведено нижче:
•Примірник: цей шаблон фіксує семантичний зв'язок, виявлений між типами та їх
«примірниками». Наприклад, екземпляри класів є об'єктами. Зверніть увагу, що в
цьому шаблоні абстрактні синтаксичні концепції та семантичної концепції розділені
на різні пакети. Типи розглядаються як абстрактні синтаксичні концепції, тоді як
екземпляри належать до семантичного домену.
•Зміст: елементи можуть містити інші елементи. Приклад тут є клас, що містить
свої атрибути, або пакет, що містить свої класи.
•Відповідність: елементи відповідають іншим елементам; наприклад, класи можуть
відповідати своїм батькам.

8.

•Зв'язок: багато елементів пов'язані з іншими елементами.
•Сумісність: елементи можна порівняти. Наприклад, пакет можна порівняти з іншим
пакетом або об'єкт з іншим об'єктом. Елемент може бути субеквівалентним іншому
елементу, якщо вони мають підмножину властивостей, необхідні еквівалентності.
Якщо два елементи є субеквівалентними один одному, вони еквівалентні.
•Спадкування: елементи можуть успадковувати особливості своїх батьків. Усі
батьки є транзитивним замиканням всіх батьків елементів. Ця модель не допускає
циклічного наслідування.
Композитні шаблони
Шаблони основних мовних елементів можна комбінувати для більш складних
шаблонів. Перший показаний на рис. 5. Він описує зв'язок між контейнерами та їх
екземплярами. Контейнер має екземпляри, елементи яких є екземплярами
елементів контейнера. Обмеження OCL гарантує, що зв'язок є комутативним.

9.

10.

11.

Інший корисний шаблон відноситься до відповідності. Відповідність – це загальна
властивість, яка пов'язує мовні елементи одного типу. Багато мовних елементів
можна порівнювати, щоб вирішити, чи вони властивостям своїх батьків.
Відповідність контейнера, як показано на рис. 6 є одним з багатьох можливих
різних видів шаблону відповідності. Він говорить, що два контейнери є
відповідними, якщо елементи, що містяться в них, є відповідними. Як приклад
розглянемо обробку класу контейнера його операцій. Результатом застосування
цього шаблону буде правило для включення класу, яке вимагає, щоб для кожної
операції, що належить батьківському класу, була операція, що належить
дочірньому класу, якому вона відповідає.
Нарешті, можлива статична семантика відповідності контейнера описується
шаблоном, показаним на рис. 7. Він говорить, що для того, щоб елемент був
відповідним, його екземпляри повинні відповідати екземплярам його батька. Тут
відповідність має на увазі структурну відповідність, тобто як елемент, так і його
екземпляри повинні мати ту ж структуру, що й у їхніх батьків.
English     Русский Правила