- Лекція 5
- Візуальне моделювання інформаційних систем
- Знак
- Ключове слово
- Видимість
- Значення
- Кратність
- 5.3 Нотація UML. Сутності
- 5.4 Відносини
- 5.5 Структурні діаграми
- 5.6 Діаграми поведінки
Лекція 5
Візуальне моделювання інформаційних систем
5.1 Візуальні моделі
Використання UML у проектах
5.2 Unified Modeling Language (UML)
Unified Modeling Language – уніфікована мова моделювання для опису, візуалізації та документування об'єктно-орієнтованих систем в процесі їх аналізу и проектування
5.2.1 Принципи моделювання в UML:
-
абстрагування
-
багатомодельність
-
ієрархічність.
UML невід'ємною частиною уніфікованого процесу розробки програмного забезпечення (RUP). UML є мовою широкого профілю, це відкритий стандарт, що використовує графічні позначення для створення абстрактної моделі системи, називаної UML-моделлю. UML був створений для визначення, візуалізації, проектування й документування в основному програмних систем.
5.2.2 Розробники UML
-
Grady Booch
-
Джеймс Рамбо
-
Айвар Джекобсон
З'явилась у 1995 р. З 1997р. розробник - консорціум OMG (Object Management Group, omg.org), для розробки індустріальних стандартів на процеси створення масштабованих неоднорідних розподілених об'єктних середовищ
5.2.3 Версії UML
Найновіша версія UML 2.5.1 - грудень 2017 [1]
- UML 2.4.1 (серпень 2011) - міжнародний стандарт ISO 19505:2012 Information technology:
- ISO 19505-1:2012 Information technology - Object Management Group Unified Modeling Language (OMG UML) -- Part 1: Infrastructure
- ISO 19505-2:2012 Information technology - Object Management Group Unified Modeling Language (OMG UML) -- Part 2: Superstructure
UML Infrastructure - опис базових механізмів, а також архітектури, профілів, стереотипів
UML Superstructure - опис статичних і динамічних елементів мови
UML Diagram interchange - опис формату обміну додатковими даними про діаграмах (форматування, розташування елементів і т.д.) між різними інструментами
OCL Specifications - опис об'єктного мови обмежень OCL (Object Constraint Language)
5.2.4 Базові визначення
Класифікатор (classifier) – опис загальних властивостей множини однотипних об'єктів, їх структури та поведінки.
Класифікатори мають імена в певному простанстві імен, екземпляри (примірники instance), екземпляри можут бути прямими (direct instance) та непрямими . Класифікатори бувають абстрактними (abstract, не мають прямих екземплярів) та конкретними (concrete).
Екземпляр (instance) – примірник класифікатору у певному просторі імен
Опис поведінки класифікатора
Операція (operation) – реалізація сервісу, який викликається будь-яким екземпляром класифікатора для реалізації його поведінки
Опис структури класифікатора
Атрибут (attribute) – властивість класифікатора, набір значень, які можуть приймати екземпляри
5.2.5 Характеристики:
видимість (visibility)
область дії (scope)
кратність (multiplicity)
5.2.6 Видимість (visibility)
#
protected
захищений
~
package
пакетний
Знак |
Ключове слово |
Видимість |
+ |
public |
відкритий |
- |
private |
закритий |
Кратність (multiplicity)
1
один екземпляр (singleton)
Значення |
Кратність |
0 |
без екземплярів (utility) |
* |
багато екземплярів |
Класифікатори їх примірники та інші складові елементи моделей мають видимість (visibility).
Класифікатори мають кратність (multiplicity).
Класифікатор із кратністю 0 (без екземплярів) – служба (utility)
Класифікатор із кратністю 1 – singleton
5.2.7 Групи класифікаторів
Сутніcть (entity) – абстракція, що є основним об’єкто-орієнтованим елементом мови UML
Відносина (relationship) – зв'язок сутностей
Діаграма (diagram) – графичне представлення сукупності элементів моделі у формі зв’язаного графу, вершинам та ребрам якого приписується визначена семантика
-
Сутності (entities)
-
Структурні (Class, Interface, Collaboration, Active class, Component, Node)
-
Поведінкові (Use case, Interaction, State)
-
Групування (Package)
-
Примітки (Note)
-
-
Відносини (relationships)
-
Залежності (dependency)
-
Асоціація (association)
-
Узагальнення (generalization)
-
Реалізація (realization)
-
-
Діаграми (diagrams)
-
Структурні (Structure Diagrams)
-
Поведінки (Behavior Diagrams)
-
5.2.8 Метамодель класифікатора
5.3 Нотація UML. Сутності
-
Структурні сутності – статичні частини моделей;
-
Поведінкові сутності – динамічні складові моделі UML, які описують поведінку моделі;
-
Сутності групування – організуючі частини моделі UML;
-
Сутності-примітки – пояснювальні частини моделі UML.
5.3.1 Структурні сутності
Об'єкт (object) – унікальна сутність, що інкапсулює в собі стан і поведінку.
Клас (class) - опис множини об'єктів із загальними атрибутами, які визначають стан, і операціями, які визначають поведінку.
Інтерфейс (interface) - іменована множина операцій, що визначає набір послуг, які може запитати споживач і які надаються постачальником послуг.
Кооперація (collaboration) - сукупність об'єктів, які взаємодіють для досягнення певної мети
Актор/Дійова особа (actor) - сутність, яка перебуває поза модельованою системою, і безпосередньо взаємодіє з нею для отримання значущого результату.
Компонент (component) - модульна частина системи з чітко визначеним набором необхідних і наданих інтерфейсів
Артефакт (artifact) – елемент інформації, який використовується або породжується в процесі розробки ПЗ.
Вузол (node) - обчислювальний ресурс, на якому розміщуються і при необхідності виконуються артефакти.
5.3.2 Поведінкові сутності
Стан/Автомат (state) - період в життєвому циклі об'єкта, перебуваючи в якому об'єкт задовольняє умову і здійснює власну діяльність або очікує настання події.
Діяльність (activity) - окремий випадок стану, який характеризується тривалими (за часом) НЕ атомарними обчисленнями.
Дія (action) - примітивне атомарне обчислення.
Варіант використання / прецедент (use case) – безліч сценаріїв, об'єднаних за деяким критерієм, які описують послідовності виконуваних системою дій, що надають значимий для деякого актора результат.
Сутності
5.3.3 Сутності групування – організуючі частини моделі UML.
5.3.4 Сутності-примітки – пояснювальні частини моделі UML
5.4 Відносини
Асоціація (association) – відношення, що описує сукупність змістовних або логічних зв'язків між об'єктами.
типи:
-
агрегація (aggregation) - асоціація між класом-частиною A і класом-цілим B (1), яка означає, що екземпляри (один або кілька) класу A входять до складу екземпляра класу B.
-
композиція (composition) - асоціація між класом-частиною A і класом-цілим B (1), яка накладає обмеження: частина A може входити тільки в одне ціле B, частина існує, тільки поки існує ціле і припиняє своє існування разом з цілим
Залежність (dependency) – відношення (1), при якому зміна однієї сутності (незалежної) (3) може вплинути на семантику іншої (залежної) (2).
Узагальнення (generalization) – відношення (1), при якому об'єкт-нащадок (child) (2) може бути підставлений замість об'єкта-батька (parent).
Реалізація (realization) – відношення (1), при якому один класифікатор визначає зобов'язання (3), а інший гарантує його виконання (2).
Між варіантами викристання (UC) залежність включення (include)
-
показує, як UC розбивається на дрібніші кроки. вказує, що включаючий UC (початок зв’язку) викликає включений UC (кінець зв’язку зі стрілкою)
залежність розширення (extend)
-
вказує, що розширюючий UC (початок зв’язку) додає дії у розширюваний UC (кінець зв’язку зі стрілкою). Розширюючий UC виконується лише за певних умов
5.5 Структурні діаграми
Структурні діаграми (Structure Diagrams) – моделі, призначені для опису статичної структури сутностей або елементів системи, включаючи їх класи, інтерфейси, атрибути та відношення.
Внутрішньої структури (Composite structure diagram) - тип статичної структурної схеми, яка показує внутрішню структуру класу і взаємодії, які ця структура робить можливим.
5.6 Діаграми поведінки
Діаграми поведінки (Behavior Diagrams) – моделі, призначені для опису процесу функціонування елементів системи, включаючи їх методи та взаємодію між ними, а також процес зміни станів окремих елементів та системи в цілому.
5.6.1 Діаграма варіантів використання (Use case diagram)
Діаграма варіантів використання показує дієвих осіб (акторів/актантів), варіанти використання (прецеденти) системи та їх взаємодію.
Приклад use case діаграми.
Вимоги.
Завдання: Програмний додаток визначення медичної дезінформації в онлайн-спільнотах
Вимоги користувачів:
-
Публікації на форумі мають проходити перевірку щодо дезинформації на основі даних платформи Monant.
-
Оцінку дезинформації має виконувати нейромережа.
-
Адміністратор підтверджує чи відхилює публікацію за результатами оцінки.
Актори
-
Користувач – користувач форуму, створює публікацію.
-
Адміністратор – адміністратор форуму, переглядає результат перевірки публікації та підтверджує/відхилює публікацію.
-
Python – інтерпритатор та бібліотеки Python для обробки даних та побудови нейромереж.
-
Monant – платформа, розроблена для моніторингу сайтів та витягу з них публікацій.
Варіанти використання
-
Створення публікації (включається у Визначення статусу публікації) – актор Користувач створює пост на форумі.
-
Визначення статусу публікації – Користувач створює пост, твердження якого додаток класифікує щодо наявності дезінформації. Адміністратор на основі даних про дезінформацію приймає рішення щодо публікації (статус посту «Публікація») або відхилення (статус посту «Відхилений»).
-
Визначення дезінформації (включається у Визначення статусу публікації) – додаток класифікує твердження посту щодо наявності дезінформації, використовуючи функціонал Python та визначення дезінформації із Monant.
Високорівнева діаграма
Деталізована діаграма
Приклад діаграми варіантів використання. Bank ATM
- Діаграма діяльності (Activity diagram)
- Діаграма автомата (State Machine diagram)
- Діаграма послідовності (Sequence diagram)
Діаграма діяльності показує послідовність виконання системою певної дії;
Діаграма автомата показує стани, зміну станів і події у об’єкті або частині системи;
Діаграма послідовності показує об’єкти і послідовність методів, якими ці об’єкти викликають інші об’єкти;
Діаграма класів (Class diagram), діаграма компонентів (Component diagram)
Клас визначає атрибути і методи набору об’єктів:
-
-
Атрибут визначається назвою [, типом, початковим значенням і ін. властивостями].
-
Операція (метод) визначається назвою, [ параметрами і типами значень, які будуть повернуті].
-
Діаграма класів показує класи, що складають систему, та їх взаємодію;
Діаграма компонентів показує програмні компоненти високого рівня.
Використання діаграм UML на прикладі процесів RUP
Протиріччя та адекватність моделей в нотації UML
-
Модель, що відповідає правилам нотації або семантики мови UML називається непротирічною (well-formed model)
-
Модель, що достатньо повно та правильно відображує предметну область або проблему називається адекватною