Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Самовчитель по UML.doc
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

7. Інтегрувати в себе новітні і якнайкращі досягнення практики ооап.

Язик UML безперервно удосконалюється розробниками, і основою цієї роботи є його подальша інтеграція з сучасними модельними технологіями. При цьому різні методи системного моделювання одержують своє прикладне осмислення в рамках ООАП. В подальшому ці методи можуть бути включені до складу язика UML у формі додаткових базових понять, найбільш адекватно і повно практики ООАП, що відображають якнайкращі досягнення.

Щоб вирішити вказані вище задачі, за свою недовгу історію язик UML зазнав певну еволюцію. В результаті опис самого язика UML став нетривіальним, оскільки семантика базових понять включає цілий ряд перехресних зв'язків з іншими поняттями і конструкціями язика. У зв'язку з цим так званий лінійний або послідовний розгляд основних конструкцій язика UML став практично неможливим, т.  до. одні і ті ж поняття можуть використовуватися при побудові різних діаграм або уявлень. В той же час кожне з представлень моделі володіє власними семантичними особливостями, які накладають відбиток на семантику базових понять язика в цілому.

Примітка

Відзначаючи складність опису язика UML, слід зазначити властиву всім формальним язикам складність їх строгого завдання, яка витікає з необхідності в тому або іншому ступені використовувати природний язик для специфікації базових примітивів. В цьому випадку природний язик виступає в ролі метамови, т.  е. язика для опису формального язика. Оскільки природний язик не є формальним, то і його вживання для опису формальних язиків в тому або іншому ступені страждає неточністю. Хоча в задачі язика UML не входить аналіз відповідних логико‑ лінгвістичних деталей, проте ці особливості відобразилися на структурі опису язика UML, зокрема, роблячи стиль опису всіх його основних понять напівформальним.

Враховуючи ці особливості, прийнята в книзі послідовність вивчення язика UML грунтується на розгляді основних графічних засобів моделювання, а саме – канонічних діаграм. Всі потрібні для побудови діаграм поняття вводяться в міру необхідності. Проте в цьому розділі слід зупинитися на загальних особливостях язика UML, які в тому або іншому ступені впливають на розуміння його базових конструкцій.

3.2. Загальна структура язика uml

З найзагальнішої точки зору опис язика UML складається з двох взаємодіючих частин, таких як:

Семантика язика UML. Є деякою метамоделлю, яка визначає абстрактний синтаксис і семантику понять об'єктного моделювання на язиці UML.

Нотація язика UML. Є графічною нотацією для візуального представлення семантики язика UML.

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

Семантика визначається для двох видів об'єктних моделей: структурних моделей і моделей поведінки. Структурні моделі, відомі також як статичні моделі, описують структуру єств або компонентів деякої системи, включаючи їх класи, інтерфейси, атрибути і відносини. Моделі поведінки, звані іноді динамічними моделями, описують поведінку або функціонування об'єктів системи, включаючи їх методи, взаємодію і співпрацю між ними, а також процес зміни станів окремих компонентів і системи в цілому.

Для вирішення такого широкого діапазону задач моделювання розроблена достатньо повна семантика для всіх компонентів графічної нотації. Вимоги семантики язика UML конкретизуються при побудові окремих видів діаграм, послідовний розгляд яких служить темою другій частині книги. Нотація язика UML включає опис окремих семантичних елементів, які можуть застосовуватися при побудові діаграм.

Формальний опис самого язика UML грунтується на деякій загальній ієрархічній структурі модельних уявлень, що складається з чотирьох рівнів:

Мета‑ метамодель

Метамодель

Модель

Об'єкти користувача

Рівень мета‑ метамоделі утворює початкову основу для всіх метамодель‑ ных уявлень. Головне призначення цього рівня полягає в тому, щоб визначити язик для специфікації метамоделі. Мета‑ метамодель визначає модель язика UML на найвищому рівні абстракції і є найкомпактнішим її описом. З другого боку, мета‑ метамодель може специфікувати декілька метамоделей, чим досягається потенційна гнучкість включення додаткових понять. Хоча в книзі цей рівень не розглядається, він найбільш тісно пов'язаний з теорією формальних язиків. Прикладами понять цього рівня служать метакласс, метаатрибут, метаоперация.

Примітка

Слід зазначити, що семантика мета‑ метамоделі не входить в опис язика UML. З одного боку, це робить язик UML більш простим для вивчення, оскільки не вимагає знання загальної теорії формальних язиків і формальної логіки. З другого боку, наявність мета‑ метамоделі додає язику UML статус науковості, який необхідний йому для того, щоб бути несуперечливим формальним язиком. Якщо ці особливості можуть представлятися мало цікавими для багатьох програмістів, то розробники інструментальних засобів ніяк не можуть їх ігнорувати.

Метамодель є екземпляром або конкретизацією мета‑ метамоделі. Головна задача цього рівня – визначити язик для специфікації моделей. Даний рівень є більш конструктивним, ніж попередній, оскільки володіє більш розвиненою семантикою базових понять. Всі основні поняття язика UML – це поняття рівня метамоделі. Приклади таких понять – клас, атрибут, операція, компонент, асоціація і багато інших. Саме розгляду семантики і графічній нотації понять рівня метамоделі присвячена дана книга.

Модель в контексті язика UML є екземпляром метамоделі в тому значенні, що будь-яка конкретна модель системи повинна використовувати тільки поняття метамоделі, конкретизувавши їх стосовно даної ситуації. Це рівень для опису інформації про конкретну наочну область. Проте якщо для побудови моделі використовуються поняття язика

UML, то необхідна повна узгодженість понять рівня моделі з базовими поняттями язика UML рівня метамоделі. Прикладами понять рівня моделі можуть служити, наприклад, імена полів проектованої бази даних, такі як ім'я і прізвище співробітника, вік, посада, адреса, телефон. При цьому дані поняття використовуються лише як імена відповідних інформаційних атрибутів.

Конкретизація понять моделі відбувається на рівні об'єктів. В справжньому контексті об'єкт є екземпляром моделі, оскільки містить конкретну інформацію щодо того, чому насправді відповідають ті або інші поняття моделі. Прикладом об'єкту може служити наступний запис в проектованій базі даних: «Ілля Петров, 30 років, ілюзіоніст, вул. невидима, 10–20, 100‑ 0000».

Опис семантики язика UML припускає розгляд базових понять тільки рівня метамоделі, який є лише прикладом або окремим випадком рівня мета‑ метамоделі. Метамодель UML є за своєю суттю швидше логічною моделлю, ніж фізичної або моделлю реалізації. Особливість логічної моделі полягає в тому, що вона концентрує увагу на декларативній або концептуальній семантиці, опускаючи деталі конкретної фізичної реалізації моделей. При цьому окремі реалізації, що використовують дану логічну метамодель, повинні бути злагоджені з її семантикою, а також підтримувати можливості імпорту і експорту окремих логічних моделей.

В той же час, логічна метамодель може бути реалізована різними способами для забезпечення необхідного рівня продуктивності і надійності відповідних інструментальних засобів. В цьому полягає недолік логічної моделі, яка не містить на рівні семантики вимог, обов'язкових для її ефективної подальшої реалізації. Проте узгодженість метамоделі з конкретними "моделями реалізації є обов'язковою для всіх розробників програмних засобів, що забезпечують підтримку язика UML.

Метамодель язика UML має досить складну структуру, яка включає порядка 90 метаклассов, більше 100 метаассоциаций і майже 50 стереотипів, число яких зростає з появою нових версій язика. Щоб справитися з цією складністю язика UML, всі його елементи організовані в логічні пакети. Тому розгляд язика UML на метамо‑ діловому рівні полягає в описі трьох його самих загальних логічних блоків або пакетів: основні елементи, елементи поведінки і загальні механізми.

Примітка

Кажучи про пакети в контексті загального опису язика, ми, по суті справи, приступаємо до розгляду графічної нотації язика UML. Річ у тому, що для опису язика UML використовуються засоби самого язика, і одним з таких засобів є пакет. В загальному випадку пакет служить для угрупування елементів моделі. При цьому самі елементи моделі, якими можуть бути довільні єства, віднесені до одного пакету, виступають в ролі єдиного цілого. Пакети, так само як і інші елементи моделі, можуть бути вкладені в інші пакети. Важливою особливістю язика UML є той факт, що всі види елементів моделі UML можуть бути організовані в пакети.