Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Проектування інформаційних систем.doc
Скачиваний:
98
Добавлен:
21.09.2019
Размер:
28.77 Mб
Скачать

17.2. Загальна структура мови uml

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

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

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

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

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

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

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

  • Мета-Мета-модель

  • Мета-модель

  • Модель

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

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

Примітка

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

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

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

Конкретизація понять моделі відбувається на рівні об'єктів. У справжньому контексті об'єкт є екземпляром моделі, оскільки містить конкретну інформацію про те, чому в дійсності відповідають ті або інші поняття моделі. Прикладом об'єкта може служити наступний запис у проектованій базі даних: "Любомира Лугова, 25 років, викладач, вул. Сихівська, 10- 20, 100-0000".

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

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

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

Примітка

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