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


12

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

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

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

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

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

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

Відповіді:


8

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

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


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

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