Schemat sekwencji: czy aktorzy są przedmiotami?


12

Najbardziej prawdopodobna odpowiedź brzmi „nie”, ale mam wątpliwości. Czy aktor może działać jak klasa?

Wiem, że aktorzy wyzwalają zdarzenia i mogą mieć podpowiedzi, ale jeśli istnieje klasa modelująca aktora (na przykład klasę użytkownika), czy możemy wywoływać metody nad nimi? Czy jest to całkowite niezrozumienie roli aktora, która miesza się z klasą reprezentatywną?

Zakładając, że jest poprawny:

Przypuszczalny prawidłowy przykład

Wątpliwości, jeśli są poprawne:

wprowadź opis zdjęcia tutaj

Odpowiedzi:


8

W UML Aktor jest zawsze czymś (systemem lub osobą), który jest poza zakresem budowanego systemu / oprogramowania. Zupełnie błędne byłoby utożsamianie aktora z instancją / obiektem klasy, która zdarza się modelować pewne aspekty aktora w twoim systemie.

Na pokazanych diagramach UML aktor „Użytkownik” (z ikoną kreskową) reprezentuje człowieka w świecie rzeczywistym, który obsługuje twój system. Klasa Userreprezentuje model tej osoby, który przechwytuje cechy, które są dla ciebie istotne. Ta klasa istnieje tylko w twoim systemie.
To sprawia, że ​​klasa i aktor są dwoma odrębnymi bytami i powinny być pokazane jako takie na twoich diagramach.


„Aktor jest zawsze czymś poza zakresem tworzonego systemu / oprogramowania”. Niemniej jednak aktor wchodzi w interakcję bezpośrednio z obiektem jakiejś klasy, inicjując stos wywołań. Dlatego w jakiś sposób jest on częścią systemu (jest reprezentowany przez inną arbitralną klasę z warstwy interfejsu użytkownika, która najprawdopodobniej nie jest modelowana przez diagram klas). Z początku wydaje się to sprzeczne z intuicją i może być źródłem zamieszania dla niektórych osób.
dvdblk

Aktor jest odrębną jednostką. Aktor istnieje, nawet jeśli system nie. Aktor inicjuje, zamyka, a nawet zapewnia dane wejściowe do systemu, ale nie siedzi w systemie oprogramowania, aby wykonać jakiekolwiek zadanie systemu. System działa niezależnie od aktora. Obiekty mogą symulować aktorów świata rzeczywistego, ale nadal zależą od aktorów ludzkich w zakresie uruchamiania, wychodzenia i wprowadzania danych bezpośrednio lub pośrednio.
user2994783
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.