Sequenzdiagramm: Sind Schauspieler Objekte?

11

Die wahrscheinlichste Antwort ist nein, aber ich bin mit diesem Zweifel gekommen. Kann ein Schauspieler als Klasse auftreten?

Ich weiß, dass Schauspieler Ereignisse auslösen und Eingabeaufforderungen haben können, aber wenn eine Klasse einen Schauspieler modelliert (z. B. eine Benutzerklasse), können wir Methoden über sie aufrufen? Oder ist dies ein völliges Missverständnis der Schauspieler-Rolle, die sich mit der repräsentativen Klasse vermischt?

Als richtig angenommen:

Angeblich korrektes Beispiel

Zweifel, ob richtig:

Geben Sie hier die Bildbeschreibung ein

Tiago Duque
quelle

Antworten:

8

In UML ist ein Akteur immer etwas (ein System oder eine Person), das außerhalb des Bereichs des von Ihnen erstellten Systems / der Software liegt. Es wäre völlig falsch, einen Akteur mit einer Instanz / einem Objekt einer Klasse gleichzusetzen, die bzw. die bestimmte Aspekte des Akteurs in Ihrem System modelliert.

In den gezeigten UML-Diagrammen repräsentiert der Akteur "Benutzer" (mit seinem Strichmännchensymbol) den realen Menschen, der Ihr System bedient. Die Klasse Userstellt ein Modell dieser Person dar, das die für Sie relevanten Merkmale erfasst. Diese Klasse existiert nur in Ihrem System.
Dies bedeutet, dass die Klasse und der Akteur zwei unterschiedliche Einheiten sind und auch in Ihren Diagrammen als solche dargestellt werden sollten.

Bart van Ingen Schenau
quelle
"Schauspieler ist immer etwas außerhalb des Bereichs des Systems / der Software, die Sie erstellen." Trotzdem interagiert der Akteur direkt mit dem Objekt einer Klasse, indem er den Aufrufstapel initiiert. Deshalb er irgendwie ist ein Teil des Systems (er von einer anderen beliebigen Klasse aus einer UI - Ebene dargestellt wird, die höchstwahrscheinlich nicht von der Klassendiagramm modellierte). Dies scheint zunächst wirklich nicht intuitiv zu sein und ist wahrscheinlich die Quelle der Verwirrung für einige Leute.
dvdblk
Der Akteur ist eine separate Einheit. Der Akteur existiert auch dann, wenn das System dies nicht tut. Der Akteur initiiert, schließt und liefert sogar Eingaben an das System, sitzt jedoch nicht im Softwaresystem, um eine Aufgabe des Systems auszuführen. Das System arbeitet unabhängig vom Akteur. Objekte können reale Akteure simulieren, sind jedoch immer noch auf menschliche Akteure angewiesen, um direkt oder indirekt gestartet, beendet und eingegeben zu werden.
user2994783