х методах і засобах моделювання. Ці концепції необхідні в більшості прикладних завдань, хоча не кожна концепція необхідна в кожній частині кожної програми. Користувачам мови надані можливості:
будувати моделі на основі засобів ядра, без використання механізмів розширення для більшості типових додатків;
додавати при необхідності нові елементи і умовні позначення, якщо вони не входять в ядро, або спеціалізувати компоненти, систему умовних позначень (нотацію) і обмеження для конкретних предметних областей.
1.5.1 Види діаграм
У UML виділяють дев'ять типів діаграм:
діаграми класів (Class Diagrams);
діаграми об'єктів (Object Diagrams);
діаграми прецедентів/варіантів використання (Use Case Diagrams);
діаграми послідовностей (Sequence Diagrams);
діаграми кооперації/співробітництва (Collaboration Diagrams);
діаграми станів (Statechart Diagrams);
діаграми діяльності (Activity Diagrams);
діаграми компонентів (Component Diagrams);
діаграми розгортання/розміщення (Deployment Diagrams).
Розглянемо деякі з них.
. 5.2 Діаграми варіантів використання
Діаграми використання описують функціональність ІС, яка буде видно користувачам системи. «Кожна функціональність» зображується у вигляді «прецедентів використання» або просто прецедентів. Прецедент - це типове взаємодія користувача з системою, яке при цьому:
описує видиму користувачем функцію,
може представляти різні рівні деталізації,
забезпечує досягнення конкретної мети, важливої ??для користувача.
Прецедент позначається на діаграмі овалом, пов'язаним з користувачами, яких прийнято називати дійовими особами (акторами, actors). Дійові особи використовують систему (або використовуються системою) в даному прецеденті. Дійова особа виконує деяку роль в даному прецеденті. Реальних користувачів, що виступають у цій ролі по відношенню до ІС, може бути багато. Список всіх прецедентів фактично визначає функціональні вимоги до ІС, які лежать в основі розробки технічного завдання на створення системи.
На діаграмах прецедентів, крім зв'язків між дійовими особами й прецедентами, можливе використання ще двох видів зв'язків між прецедентами: «використання» і «розширення» (рис. 4). Зв'язок типу «розширення» застосовується, коли один прецедент подібний до іншого, але несе кілька велике функціональне навантаження. Її слід застосовувати при описі змін в нормальному поведінці системи. Зв'язок типу «використання» дозволяє виділити якийсь фрагмент поведінки системи і включати його в різні прецеденти без повторного опису.
На рис. 4 показано, що при виконанні прецеденту «формування замовлення» можливе використання інформації з попереднього замовлення, що дозволить не вводити всі необхідні дані. А при виконанні прецедентів «оцінити ризик угоди» і «узгодити ціну» необхідно виконати одну і ту ж дію - розрахувати вартість замовлення.
Малюнок 4 - Зв'язки на діаграмах прецедентів.
На відміну від деяких підходів об'єктного моделювання, коли і стан, і поведінка системи відображаються на діаграмах класів, UML відокремлює опис поведінки в діаграми взаємодії. У UML діаграми класів не містять повідомлень, які ускладнюють їх читання. Потік повідомлень між об'єктами виноситься на діаграми взаємодії. Як правило, діаграма взаємодії охоплює поведінку об'єктів в рамках одного варіанта використання.
.5.3 Діаграми класів
Перш ніж розглядати діаграми класів уніфікованої мови моделювання, необхідно визначити поняття класу. Класи - це базові елементи будь об'єктно-орієнтованої системи. Класи являють собою опис сукупностей однорідних об'єктів з притаманними їм властивостями - атрибутами, операціями, відносинами і семантикою.
У рамках моделі кожному класу привласнюється унікальне ім'я, що відрізняє його від інших класів. Якщо використовується складене ім'я (на початку імені додається ім'я пакету, куди входить клас), то ім'я класу повинно бути унікальним в пакеті.
Атрибут - це властивість класу, яке може приймати безліч значень. Безліч допустимих значень атрибуту утворює домен. Атрибут має ім'я і відбиває деяке властивість модельованої сутності, загальне для всіх об'єктів даного класу. Клас може мати довільну кількість атрибутів.
Операція - реалізація функції, яку можна запросити у будь-якого об'єкта класу. Операція показує, що можна зробити з об'єктом. Виконання операції часто пов'язано з обробкою і зміною значень атрибутів об'єкта, а так...