Діаграма послідовності: чи є актори предметами?


12

Найімовірніша відповідь - ні, але я прийшов із цим сумнівом. Чи може актор виступати як клас?

Я знаю, що актори викликають події і можуть мати підказки, але якщо є клас, який моделює актора (наприклад, клас користувача), чи можемо ми викликати методи над ними? Або це повне нерозуміння акторської ролі, яка змішується з представницьким класом?

Припустимо, як правильно:

Припустимий правильний приклад

Сумнівайтеся, якщо правильно:

введіть тут опис зображення

Відповіді:


8

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

На показаних діаграмах UML актор "Користувач" (з його значком-фігуркою) представляє людину реального світу, яка управляє вашою системою. Клас Userпредставляє модель тієї людини, яка фіксує відповідні для вас характеристики. Цей клас існує лише у вашій системі.
Це означає, що клас та актор є двома окремими сутностями, і їх також слід відображати на своїх діаграмах.


"Актор - це завжди щось поза сферою системи / програмного забезпечення, яке ви будуєте." Проте актор взаємодіє безпосередньо з об'єктом якогось Класу, ініціюючи стек викликів. Тому він якось є частиною системи (він представлений іншим довільним класом із шару інтерфейсу, який, швидше за все, не моделюється діаграмою класів). Спочатку це здається насправді контрінтуїтивним і, мабуть, є джерелом плутанини для деяких людей.
— dvdblk

Актор - це окрема сутність. Актор існує, навіть якщо система цього не робить. Актор ініціює, закриває і навіть надає вхід в систему, але не сидить всередині програмного забезпечення для виконання будь-яких завдань Системи. Система працює незалежно від актора. Об'єкти можуть імітувати реальних акторів, але все ще залежать від людських акторів для запуску, виходу та введення прямо чи опосередковано.
— user2994783
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.