Приклади діаграм класів

Як перший приклад на рис. 11.17 показана діаграма класів системи управління польотом літального апарату.

Приклади діаграм класів

Мал. 11.17. Діаграма класів системи управління польотом

Тут представлений клас ПрограммаПолета, який має властивість ТраекторіяПолета, операцію-модифікатор ВиполнятьПрограмму () і операцію-селектор ПрогнозОкончУправленія (). Є асоціація між цим класом і класом Контролер СУ - екземпляри програми задають параметри руху, які повинні забезпечувати екземпляри контролера.

Клас Контролер СУ - агрегат, чиї екземпляри включають по одному примірнику класів Регулятор швидкості і Регулятор кутів, а також по шість екземплярів класу Датчик. Примірники Регулятора швидкості і Регулятора кутів включені в агрегат фізично (за допомогою відносини композиція), а екземпляри датчика - за посиланням, тобто екземпляр Контролера СУ включає лише покажчики на об'єкти-датчики. Регулятор швидкості і регулятор кутів - це підкласи абстрактного суперкласу Регулятор, який передає їм у спадок абстрактні операції Включити () і Вимкнути (). У свою чергу, клас Регулятор використовує конкретний клас Порт.

Як бачимо, асоціація має ім'я (Визначає політ), ролі учасників асоціації чітко зазначених у них (Сервер, Клієнт). Відносини композиції також мають імена (Включати), причому на ці відносини накладено обмеження - контролер не може включати Регулятор швидкості і Регулятор кутів одночасно.

Для класу Контролер СУ задано обмеження на множинність - допускається не більше трьох реалізації відповідного класу. Клас Регулятор швидкості має обмеження іншого типу - повторне включення його примірника дозволяється не раніше, ніж через 64 ​​мс.

Як другий приклад на рис. 11.18 приведена діаграма класів для інформаційної системи театру. Цю систему утворює 6 класів.

Класи-агрегати Театр і Трупа мають операції додавання і видалення своїх частин, які включаються в агрегати по посиланню. Частинами Театру є Глядачі і Трупи, а частинами Трупи - Актори. Відносини агрегації між класом Театр і класами Трупа і Глядач злегка відмінні. Театр може складатися з однієї або декількох труп, але кожна трупа перебуває в одному і тільки одному театрі. З іншого боку, в театр може ходити будь-яку кількість глядачів (включаючи нульову кількість), причому глядач може відвідувати один або кілька театрів.

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

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

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

І нарешті, на діаграмі відображені два відносини спадкування, які стверджують, що і в глядачах, і в акторів є людське начало.

Приклади діаграм класів

Мал. 11.18. Діаграма класів інформаційної системи театру

1. Поясніть призначення статичних моделей об'єктно-орієнтованих програмних систем.

2. Що є основним засобом для подання статичних моделей?

3. Як використовуються статичні моделі?

4. Які секції входять в графічне позначення класу?

5. Які секції класу годі й показувати?

6. Які є різновиди області дії властивості (операції)?

7. Поясніть загальний синтаксис уявлення властивості.

8. Які рівні видимості ви знаєте? Їх сенс?

9. Які характеристики властивостей вам відомі?

10. Поясніть загальний синтаксис уявлення операції.

11. Який вигляд має форма представлення параметра операції?

12. Які характеристики операцій вам відомі?

13. Що означають три точки в списку властивостей (операцій)?

14. Як організовується угруповання властивостей (операцій)?

15. Як обмежити кількість примірників класу?

16. Перерахуйте відомі вам «прикраси» відносини асоціації.

17. Чи може статична модель програмної системи не мати відносин асоціації?

18. Який сенс має кваліфікатор? До чого він відноситься?

19. Які відносини можуть мати позначки видимості і що ці позначки позначають?

20. Який сенс має клас-асоціація?

21. Чим відрізняється агрегація від композиції? Різновидами якого відносини (в UML) вони є?

22. Що означає в UML проста залежність?

23. Який сенс має відношення узагальнення?

24. Які недоліки у множинного успадкування?

25. Перерахуйте недоліки ромбовидної решітки успадкування.

26. У чому сенс відносини реалізації?

27. Що означає потужність «багато-до-багатьох» і в яких стосунках вона застосовується?

28. Що таке абстрактний клас (операція) і як він (вона) відображається?

29. Як заборонити поліморфізм операції?

30. Як позначити кореневої клас?

Схожі статті