You are on page 1of 5

Лабораторна робота 4.

Процес аналізу та проектування програмних систем на основі мови


UML

Мета роботи: отримати навички аналізу та проектування


програмних систем на основі мови UML.

2.1 Ви навчитесь:
По завершенні цього розділу Ви будете вміти:
 користуватись термінологією UML
 будувати найпростіші діаграми класів

2.2 Теоретичні відомості


Безперечно, розробка сучасних програмних продуктів неможлива без
попереднього моделювання. Накопичений досвід засвідчує: чим більшим і
складнішим є проект, тим важливішим стає моделювання майбутньої системи.
Не варто сподіватися на успішність проекту, якщо не приділено достатньої
уваги попередньому моделюванню системи.
Моделі наочно демонструють бажану структуру та поведінку системи,
відображають її архітектуру та допомагають уточнити деталі проекту з
замовником для мінімізації майбутніх ризиків.
Модель – це спрощене представлення реальності, своєрідне “креслення”
системи. Кожну систему можна описати по-різному, використовуючи різні
моделі, кожна з яких є семантично замкнутою абстракцією системи.
Моделювання дає змогу розв’язати такі задачі:
 візуалізація системи – візуальне відображення програмної
системи у її поточному чи бажаному стані;
 специфікація системи – визначення структури і/або поведінки
системи;
 конструювання системи – отримання шаблону, який допоможе
сконструювати систему;
 документування системи – фіксація прийнятих рішень на основі
отриманих моделей.

Уніфікована мова моделювання (Unified Modeling Language,UML) – це


графічна мова для специфікації, візуалізації, конструювання і документування
програмних систем. За допомогою UML можна розробити детальний план такої
системи, який відображатиме і концептуальні елементи системи (системні
функції та бізнес-процеси), і особливості її реалізації (класи, схеми баз даних,
програмні компоненти багаторазового використання тощо).
Авторами мови є Грейді Буч (Grady Booch), Джеймс Рамбо (James
Rumbaugh) і Айвар Якобсон (Ivar Jacobson).
Сьогодні UML є загальновизнаним стандартом, який використовує
більшість розробників системного та прикладного програмного забезпечення.
Знань UML вимагають не лише від системних аналітиків та проектувальників,
але й від звичайних програмістів і тестувальників програмного забезпечення.
Постійно збільшується ринок UML-орієнтованих інструментальних засобів,
призначених для автоматизації процесу розробки програм.
UML призначено для моделювання програмних систем. Самі автори UML
визначають її як графічну мову моделювання загального призначення, яку
використовують для специфікації, візуаліації, конструювання і документування
усіх артефактів1, які створюються під час розробки програмних систем.
Найбільш важливим засобом UML є набір різних видів діаграм. Діаграми
класів ілюструють відносини між різними класами, діаграми об'єктів – між
окремими об'єктами, діаграми зв'язків відображають зв'язки між об'єктами у
часі і т.д. Усі ці діаграми, по суті, відображають погляди на структуру програми
і її функціонування з різних точок зору.
Окрім ілюстрації структури коду програми, UML має немало інших
корисних можливостей. Фактично UML можна використовувати на всіх етапах
реалізації проекту – від усвідомлення та аналізу завдання, розроблення та
відлагодження програми до документування, тестування і підтримки.
Проте не варто розглядати мову UML як засіб розроблення програмного
продукту. Середовище UML є тільки засобом для ілюстрації структури проекту,
який розробляється. Незважаючи на можливість застосування середовища UML
до будь-якої мови програмування, однак вона є найбільш корисною під час
застосування об'єктно-орієнтованого програмування мовою С++.
ООП є способом організації коду програми. Основну увагу під час його
вивчення приділено організації програми, а не питанням написання коду
програми. Головним компонентом об'єктно-орієнтованого коду програми є
об'єкт, який містить глобальні дані та функції для роботи з ними. Клас є
формою або зразком для визначення множини схожих між собою об'єктів.
Універсальна мова моделювання UML є стандартизованим засобом
візуалізації структури і функціонування коду програми за допомогою діаграм.
Архітектурний базис UML визначає базові поняття, якими оперує мова:
сутності, відношення та діаграми.

1 Будь-який створений і відчужений матеріал проекту (модель, програм-ний код, документація тощо).
Сутності – це певні абстракції, які є базовими елементами моделей. В
UML є чотири типи сутностей: структурні (актори, класи, інтерфейси,
компоненти, вузли), поведінки (преценденти, діяльності, стани і
повідомлення), групування та анотаційні.
Структурні сутності – це статичні поняття, які відповідають
концептуальним, логічним чи фізичним елементам системи. Структурні
сутності, зазвичай, позначають іменниками. Розрізняють п’ять головних
структурних сутностей: актори, класи, інтерфейси, компоненти, вузли. Кожна з
сутностей може мати свої підвиди2.
Актор (Actor) – це суб’єкт, який перебуває поза системою, що
моделюється, і безпосередньо з нею взаємодіє. Графічно акторів зображають
значком “худа людина”, під яким вказують ім’я актора (рис. 2.1).

Рис. 2.1 Зображення актора

Клас (Class) – це сукупність однотипних сутностей предметної області


(об’єктів) зі спільними атрибутами, операціями, відношеннями та семантикою.
В UML класи зображають прямокутником, розділеним на три секції, в
яких записують назву класу, атрибути та операції, відповідно (рис. 2.2). Назву
абстрактного класу позначають курсивом. Атрибути та операції мають чітко
визначені формати запису, які відображають їхні найважливіші характеристики
(назви, типи тощо). За необхідності секції атрибутів і/або операцій опускають.
Об’єкти (Objects) – це екземпляри класів з конкретними значеннями
атрибутів. Об’єкт має зображення, подібне до зображення класу, проте назву
об’єкта підкреслюють і записують у вигляді:<назва об’єкта>:<назва класу>.
Якщо ідентифікація об’єкта неважлива, то вказують лише назву класу, до якого
належить об’єкт::<назва класу>. При зображенні об’єктів секції атрибутів та
операцій, здебільшого, опускають.

Рис. 2.2. Зображення класу

2 Поділ на головні сутності та їхні підвиди строго не фіксується, отож у літературі трапляється й дещо
інша класифікація сутностей.
Анотаційна сутність – це коментар для пояснення чи зауваження до будь-
якого елемента моделі. Є тільки один тип анотаційної сутності– примітка (note).
Графічно примітку зображають прямокутником із загнутим правим верхнім
кутом [2].
Діаграма UML – це графічне зображення елементів cистеми у формі
зв’язаного графа з вершинами (сутностями) і ребрами (відношеннями).
Детальніше можна ознайомитись в матеріалах лекцій та додатковій літературі

2.3 Порядок виконання


1 Ознайомитись із типами діаграм в UML [2].
2 Побудувати діаграму класів (у відповідності до варіанту), використавши
спеціалізований редактор, з врахуванням необхідності приховання даних,
передбачити методи класу:
Варіант1: Клас “учасник”: прізвище, телефон, адреса.
Варіант 2: Клас “фігура”: координати на шахівниці, колір. Метод – “хід”
на одну позицію в одному з чотирьох напрямків.
Варіант 3: Клас “фігура”: координати на шахівниці, колір. Метод – “хід”
в одному з двох напрямків.
Варіант 4: Клас “прямокутник”: координати верхнього лівого і нижнього
правого кутів, порядковий номер.
Варіант 5: Клас “нота”: назва, октава, тривалість звучання.
Варіант 6: Клас “іграшка”: ціна, назва, кількість на складі.
Варіант 7: Клас “годинник”: стиль відображення (військовий формат – 24
години чи стандартний – 12), години, хвилини, секунди. Метод “плюс секунда”
– збільшити поточне значення часу на 1 с.
Варіант 8: Клас “Товар”: назва, порядковий номер, постачальник, ціна,
кількість одиниць.
Варіант 9: Клас “Точка на площині”: координати, значення.
Варіант 10: Клас “Точка на площині екрана дисплея”: координати,
порядковий номер.
Варіант 11: Клас “учасник змагань”: країна, вид спорту, назва учасника.
Варіант 12: Клас “довге число”: значення, кількість знаків, основа
системи числення.
Варіант 13: Клас “Станція”: координати, назва .
Варіант 14: Клас “ істота ”: координати, вік, назва. Метод move –
збільшення кожної координати на одиницю.
Варіант 15: Клас “кліматичні умови”: температура. освітленість.
вологість, кислотність грунту.
Варіант 16: Клас “давач” (sensor): поточне значення, максимально і
мінімально допустимі, тип (t - температурний, p - тиску, І - освітленості, pH –
рівня кислотності), сигнал тривоги.
Варіант 17: Клас “товар на складі”: назва, кількість, розміщення .
Варіант 18: Клас “фраза”: вміст, кількість слів, кількість символів,
кількість різних символів алфавіту.
Варіант 19: Клас “число”: вміст, кількість цифр, основа системи
числення .
Варіант 20: Клас “коло”: x, y, R, ознака візуалізації (чи відображати на
екрані).
Варіант 21: Клас “книга”: код УДК, назва, автор, рік видання, кількість
сторінок.
Варіант 22: Клас “обладнання”: назва, вартість, дата виготовлення, група
(5, 15, 25 – амортизація) і клас “модернізація обладнання” (дата ремонту,
вартість ремонту).
Варіант 23: Клас “товар”: назва, виробник.
Варіант 24: Клас “банківський рахунок”: назва банку, номер рахунку,
МФО, вміст.
Варіант 25: Клас “підключення”: назва мережі, наявність пільги.

2.4 Порядок захисту


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

2.5 Контрольні запитання


1. Як визначається об’єкт у предметній області, у програмній реалізації? Чи
розрізняються поняття об’єкт, клас, екземпляр класу?
2. Що таке повідомлення, метод, поведінка об’єкта? Наведіть приклад опису
класу, визначення об’єкта і передачі повідомлення об’єкту в С++.
3. Для чого призначена діаграма класів (class diagram)? Назвіть її основні
елементи.
4. Дайте визначення класу. Які типи класів ви знаєте?
5. Що таке атрибути класу? Які типи атрибутів ви знаєте?
6. Що таке операції класу? Які типи операцій ви знаєте?

You might also like