Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
+ООП_Навч_посібник.doc
Скачиваний:
8
Добавлен:
01.07.2025
Размер:
6.58 Mб
Скачать

24.4.5. Використання діаграм дій uml

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

Дії показуються на діаграмах ромбоподібними контурами. Лінії, що з'єднують дії, є переходи від одних дій до інших. Розгалуження показане за допомогою ромбів з одним входом і двома або більш виходами. Як і на діаграмі станів, можна поставити елементи, призначені для вибору одного з рішень. Так само, як і там, можна задати початковий і кінцевий стани, що позначаються, відповідно, кружечком і кружечком у кільці.

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

Рис. 24.5. Діаграма дій UML

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

24.5. Перехід від варіантів використання до класів

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

24.5.1. Аналіз переліку іменників з опису варіантів використання

Розглянемо перелік усіх іменників, які візьмемо з опису варіантів використання:

1. Вікно інтерфейсу користувача.

2. Мешканець.

3. Вікно введення мешканців.

4. Ім'я мешканця.

5. Номер кімнати.

6. Рядок мешканця.

7. Перелік мешканців.

8. Орендна плата.

9. Вікно введення орендної плати.

10. Місяць.

11. Сума орендної плати.

12. Таблиця доходів від оренди.

13. Рядок орендної плати.

14. Витрата.

15. Вікно введення витрат.

16. Отримувач.

17. Розмір платежу.

18. День.

19. Бюджетна категорія.

20. Рядок у таблиці витрат.

21. Таблиця витрат.

22. Річний звіт.

23. Загальна орендна плата.

24. Загальні витрати за категоріями.

25. Баланс.

24.5.2. Уточнення переліку іменників

З різних причин багато іменників не зможуть стати класами. Давайте проведемо відбір тільки тих іменників, які можуть претендувати на високе звання класів.

Ми виписали назви рядків різних таблиць: рядок мешканців, рядок орендної плати, рядок витрат. Іноді з рядків можуть виходити чудові класи, якщо вони складені або містять складні дані. Але кожен рядок таблиці мешканців містить дані тільки про одного мешканця, кожен рядок у таблиці витрат – тільки про один платіж. Класи мешканців і витрат вже існують, тому ми наважимося припустити, що нам не потрібні два класи з однаковими даними, тобто ми не розглядатимемо рядки мешканців і витрат як претенденти на класи. Рядок орендної плати, з іншого боку, містить відомості про номер кімнати і масив з 12 платежів за оренду по місяцях. Вона відсутня в таблиці до тих пір, поки не буде зроблений перший внесок у поточному році. Подальші платежі вносяться у вже наявні рядки. Це ситуація складніша, ніж з мешканцями і витратами, тому, так і бути, зробимо рядок орендної плати класом. Тоді клас орендної плати як такий не міститиме нічого, окрім суми платежу, тому цей іменник перетворювати на клас ми не станемо.

Програма може породжувати значення в річному звіті з таблиці орендної плати і таблиці витрат, тому, напевно, не варто суму орендних платежів, а також загальні витрати за категоріями і баланс робити окремими класами. Вони є просто результатами обчислень.

Отже, складемо перелік класів, які було тільки що уточнено:

1. Вікно інтерфейсу користувача.

2. Мешканець.

3. Вікно введення мешканців.

4. Перелік мешканців.

5. Вікно введення орендної плати.

6. Таблиця доходів від оренди.

7. Рядок таблиці доходів від оренди.

8. Витрата.

9. Вікно введення витрат.

10. Таблиця витрат.

11. Річний звіт.