You are on page 1of 30

Графічна нотація

UML.
Документування за
допомогою JavaDoc.
Лекція 4
Agenda

1. Призначення мови UML


2. Коротка характеристика діаграм UML
3. Елементи діаграми класів та відношення між ними
4. Використання засобів автоматизації UML-моделювання
5. Призначення JavaDoc. Синтаксис JavaDoc-коментарів
UML (Unified Modeling Language) – уніфікована мова
моделювання, яка використовується в інженерії програмного
забезпечення та проектуванні систем для створення діаграм, що
представляють різні аспекти програмної системи або бізнес-
процесу.

Призначення UML :
1. Моделювання програмних систем
2. Документація
3. Комунікація
4. Аналіз систем
5. Варіанти використання і сценарії
6. Моделювання бізнес-процесів
7. Тестування і валідація
Use case diagram (діаграма варіантів
використання)

Призначені для моделювання функціональності системи та


взаємодії між системою та її користувачами.

1. Актори (Actors) – це зовнішні сутності, які взаємодіють


з системою.
2. Варіанти використання (Use Cases) – це конкретні
функціональні вимоги до системи.
3. Відносини між акторами і варіантами
використання. Найпоширеніші відносини:
- Відношення «включає» (Include)
- Відношення «розширює» (Extend)
- Асоціації (Associations)
4. Системний межа (System Boundary): Це обмеження, яке
виділяє систему і визначає її межі.
Діаграми послідовностей (Sequence
Diagrams)

Використовуються для моделювання


взаємодії між об'єктами або
компонентами системи в часі.

1. Об'єкти (Objects) – конкретні екземпляри


класів або компоненти системи, які беруть
участь у взаємодії.
2. Лінія життя (Lifeline) – це вертикальна
лінія, що представляє один об'єкт і показує,
як довго цей об'єкт існує в часі на діаграмі.
3. Повідомлення (Message) показують
передачу інформації або виклик методів
між об'єктами.
Діаграма діяльності (Activity
Diagram)
Використовується для моделювання потоку дій, Дія Розгалудження
процесів і алгоритмів в програмних системах,
бізнес-процесах та інших сценаріях.

1. Дії (Actions) – конкретні операції, які виконуються Рішення


в процесі.
2. Сигнали (Signals) вказують на входи або виходи з
діаграми діяльності та можуть позначати
сповіщення або обмін даними між діями.
3. Рішення (Decisions) – точки в процесі, де система
приймає рішення на підставі умови (приклад:
"Якщо умова X, то...").
4. Паралельність, коли кілька дій відбуваються
одночасно. Об’єднання
5. Об'єднання та розгалуження (Forks and Joins).
Розгалуження показує, що процес розгалужується
на кілька паралельних шляхів, тоді як об'єднання
показує, що паралельні шляхи об'єднуються.
Діаграма комунікацій

Ця діаграма показує, як частини системи


взаємодіють або, в даному випадку, спілкуються
одна з одною.

1. Прямокутник – цей символ


представляє об’єкти в програмі.
2. Лінії – цей елемент діаграми
зв’язку спрямовує потік
повідомлень у системі.
3. Стрілки – цей компонент показує
напрямок, у якому йде
повідомлення.
4. Номер – порядок, у якому
надсилаються повідомлення.
Діаграми класів
Діаграма класів описує класи, які складають
систему, і зв’язки між ними. Класи визначаються з
точки зору їх імені, атрибутів (або даних) і
поведінки (або методів).
Статичними зв’язками є асоціація, агрегація та
узагальнення.
Зазвичай ми використовуємо нотацію UML для
діаграм класів.

1. Класи (Classes) представляють об'єкти або компоненти системи. Кожен клас має ім'я та визначає
структуру та поведінку об'єктів цього класу.
2. Відносини (Relationships) вказують на взаємозв'язки між класами.
3. Коментарі (Comments) використовуються для надання пояснень та докладного опису елементів діаграми
класів.
4. Інтерфейси (Interfaces) визначають набір методів, які мають бути реалізовані в класах, які реалізують
цей інтерфейс.
Найпоширеніші типи відносин:
- Спадкування (Inheritance): Показує, що
один клас успадковує атрибути та методи
іншого класу.
- Агрегація (Aggregation): Показує частину-
ціле відношення між класами. Наприклад,
клас "автомобіль" може агрегувати клас
"двигун".
- Композиція: Показує на те, що один об'єкт
(частину) складається з інших об'єктів
(частин), і ці частини існують тільки в межах
цього об'єкта.
- Асоціація (Association): Вказує на зв'язок
між класами, але не обов'язково частина-ціле
відношення. Наприклад, класи "студент" і
"викладач" можуть бути асоційовані через
"курс".
- Залежність (Dependency) вказує на те, що
зміни в одному елементі можуть вплинути на
інший елемент.
Dependency (Залежність)
Залежність вказує на те, що один елемент // Клас, який є залежним
(наприклад, клас або об'єкт) в системі залежить class КласA {
від іншого елемента, і зміни в залежному public void методA() {
елементі можуть вплинути на залежний // Використовуємо функціональність іншого
елемент. класу
КласB об'єктB = new КласB();
об'єктB.методB();
}
}
У цьому прикладі КласA залежить від КласуB,
оскільки він створює об'єкт КласуB та // Інший клас, на якому залежить КласA
використовує його метод. class КласB {
public void методB() {
// Логіка методу B
}
}
Association (Асоціація)
// Клас, який асоціюється з іншим класом
Асоціація вказує на те, що існує зв'язок або class Client{
відношення між двома або більше private String ім'я;
елементами (наприклад, класами або
об'єктами), і це відношення може бути більш public void createOrder(Order order) {
сильним, ніж зв'язок залежності. // Логіка розміщення замовлення клієнтом
}
}

// Інший клас, який асоціюється з Клієнтом


У цьому прикладі Клієнт асоціюється з
class Order {
Замовленням, що показує, що клієнт може
private int id;
розміщувати замовлення. Відмінність від
private double sum;
залежності полягає в тому, що в асоціації ми
не створюємо об'єкт Замовлення всередині
public void add(Goods goods) {
Клієнта, а лише вказуємо на можливість
// Логіка додавання товару до замовлення
взаємодії між ними.
}
}
Асоціація — це зв’язок між двома окремими класами, які створюються через їхні
об’єкти. Асоціація може мати one-to-one, one-to-many, and many-to-many зв’язки.

One to One: Особа може мати лише одне посвідчення


виборця, а посвідчення виборця може бути прив’язане
лише до однієї особи. Це стосунки «один до одного».

One to many: Банк може мати багато співробітників,


тому це стосунки «один до багатьох».

Many to Many: Банк може мати кілька клієнтів, а


клієнт може мати кілька банківських рахунків.
Узагальнення (Is-a)
Відносини успадкування в UML дуже тісно збігаються з успадкуванням.

Узагальнення: клас розширює інший клас. Наприклад, клас Book може розширити клас Document,
який також може включати клас Email. Класи Book і Email успадковують поля та методи класу
Document (можливо, змінюючи методи), але можуть додавати додаткові поля та методи.
Реалізація

Клас реалізує інтерфейс. Наприклад, інтерфейс власника може визначати методи придбання
власності та розпорядження нею. Класи Person і Corporation повинні реалізувати ці методи.
Композиція

У композиції тривалість життя об’єкта повністю


контролюється тривалістю життя іншого об’єкта.
Керований об’єкт посилається як атрибут класу в
контролері.
Агрегація

При агрегації час життя об’єктів не залежить один


від одного. Агрегація є мінімальним рівнем
асоціації атрибутів класу.
Агрегація vs Композиція
Агрегація відрізняється від звичайної композиції тим, що вона не передбачає власності. У
композиції, коли об'єкт знищується, знищуються і об'єкти, що містяться в ньому. У агрегації
це не обов’язково правильно. Наприклад, університет має різні факультети (наприклад,
ФІОТ), і на кожному факультеті є кілька професорів. Якщо університет закриється, кафедри
перестануть існувати, але професори на цих кафедрах залишаться. Таким чином, університет
можна розглядати як склад кафедр, тоді як кафедри мають сукупність професорів. Крім того,
професор міг працювати на кількох кафедрах, але кафедра не могла бути частиною більш ніж
одного університету.
class Professor
{}

class Department {
public Department(String title) {Title = title;}

// Aggregation: Professors may outlive the Department.


private ArrayList<Professor> members;
String Title;
}

class University {
public University(){}

// Composition: Departments exist only as long as the faculty exists.


private ArrayList<Department> faculty = {
Department("chemistry"),
Department("physics"),
Department("arts"),
}
}
Засоби автоматизації UML-моделювання

CASE-інструменти (Computer-Aided Software


Engineering): такі як IBM Rational Rose, дозволяють
створювати, редагувати і аналізувати UML-діаграми
на графічному інтерфейсі.
Плагіни для IDE: Деякі інтегровані середовища
розробки, такі як IntelliJ IDEA, Eclipse та Visual Studio,
мають плагіни для UML-моделювання.
UML-генератори коду: Деякі інструменти для
генерації коду, такі як CodeSmith, можуть автоматично
створювати класи та структури даних на основі UML-
діаграм.
UML-фреймворки: Деякі фреймворки, такі як Spring,
Hibernate, надають можливість автоматично
створювати UML-діаграми на основі конфігурації та
коду програми.
Засоби автоматизації UML-моделювання

PlantUML – це інструмент для створення


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

Генерація UML діаграми


UMLet – це безкоштовний інструмент для моделювання UML, призначений для створення
різних видів UML-діаграм. UMLet спрощує процес створення і редагування діаграм, дозволяючи
користувачам малювати їх за допомогою миші та графічного інтерфейсу або за допомогою
текстового опису.
Генерація UML діаграми
Java doc
JavaDoc – це інструмент для автоматичної генерації документації для програмного коду, написаного на
мові програмування Java. JavaDoc дозволяє розробникам створювати докладні описи класів, методів,
полів і інших складових програмного коду, що допомагає іншим розробникам зрозуміти, як
використовувати інтерфейси, які вони створюють або використовують.

/** Основні особливості JavaDoc


* Цей метод додає два числа разом. включають:
*
1. Коментарі до документації
* @param a Перше число для додавання.
* @param b Друге число для додавання. 2. Підтримка різних тегів
* @return Результат додавання a і b.
3. Генерація HTML-документації
*/
public int add(int a, int b) { 4. Відображення в інтегрованому
return a + b; середовищі розробки (IDE)
}

Після генерації документації ви отримаєте HTML-


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

/** /**
* Цей клас представляє об'єкт "Книга". * Додає два цілих числа разом і повертає
* Він містить інформацію про назву, результат.
автора та рік видання книги. *
*/ * @param a Перше число для додавання.
public class Book { * @param b Друге число для додавання.
// Код класу Book тут * @return Результат додавання a і b.
} */
public int add(int a, int b) {
return a + b;
Документація для }
поля
/**
* Це поле представляє назву книги.
*/
private String title;
Теги JavaDoc:

•@param: Використовується для опису параметрів методу.


•@return: Вказує, яке значення повертає метод.
•@throws: Використовується для опису винятків, які можуть бути викинуті методом.
•@see: Вказує на посилання на інші елементи документації.
•@author: Використовується для вказання автора або авторів коду, який документується.
•@since: Вказує версію, починаючи з якої цей метод або клас був введений.
•@deprecated: Використовується для позначення застарілих методів або класів.

/** /**
* Див. також {@link * @deprecated Використовуйте {@link #newMethod()} замість цього
OtherClass}. методу.
*/ */
public void someMethod() { @Deprecated
// Код методу public void oldMethod() {
} // Код методу
}
Генерація документації
Для генерації документації з JavaDoc коментарів ви можете використовувати інструмент javadoc, який поставляється з JDK.
Виконайте наступну команду в командному рядку:
javadoc -d директорія_для_документації ваш_пакет

Для генерації JavaDoc за допомогою Eclipse та збереження документації у


каталозі проекту слід виконати наступні кроки:
1.Оберіть проект: Клікніть правою кнопкою миші на самому проекті.
2.Оберіть «Export»
3.Оберіть «Java» і «Javadoc»
4.Виберіть проекти, для яких ви хочете створити JavaDoc документацію.
5.Вкажіть каталог для документації: Виберіть каталог у вашому проекті,
де ви хочете зберегти JavaDoc документацію. Наприклад, це може бути
папка з назвою "doc" у кореневому каталозі вашого проекту.
6.Налаштуйте параметри генерації JavaDoc за вашими потребами. Ви
можете вказати різні налаштування, такі як включення/виключення певних
елементів, джерело коду, допоміжні файли і багато інших параметрів.
7.Натисніть "Finish"
Після завершення цих кроків ви зможете знайти згенеровані HTML-файли
документації у вказаному каталозі в вашому проекті.
Для створення JavaDoc коментарів в IntelliJ IDEA
потрібно виконати:

1. Виберіть Tools.
2. Оберіть "Generate JavaDoc". Це відкриє вікно для
створення JavaDoc коментарів.
3. Заповніть вікно JavaDoc коментаря відповідно до
ваших потреб. Ви можете додавати опис класу,
методу або поля, опис параметрів, поверненого
значення, винятків та інших аспектів коду.
4. Натисніть "OK", щоб зберегти JavaDoc коментар.

You might also like