Diagramme de séquence: les acteurs sont-ils des objets?

11

La réponse la plus probable est non, mais je suis venu avec ce doute. Un acteur peut-il agir en classe?

Je sais que les acteurs déclenchent des événements et peuvent avoir des invites, mais s'il y a une classe qui modélise un acteur (comme une classe d'utilisateurs), pouvons-nous appeler des méthodes sur eux? Ou s'agit-il d'une incompréhension totale du rôle d'acteur, qui se mélange avec la classe représentative?

Supposé comme correct:

Exemple correct supposé

Doute si correct:

entrez la description de l'image ici

Tiago Duque
la source

Réponses:

8

En UML, un acteur est toujours quelque chose (un système ou une personne) qui sort du cadre du système / logiciel que vous construisez. Il serait complètement faux d'assimiler un acteur à une instance / un objet d'une classe qui arrive à modéliser certains aspects de l'acteur dans votre système.

Dans les diagrammes UML montrés, l'acteur "Utilisateur" (avec son icône en forme de bâton) représente l'être humain du monde réel qui exploite votre système. La classe Userreprésente un modèle de cette personne qui capture les caractéristiques pertinentes pour vous. Cette classe n'existe que dans votre système.
Cela fait que la classe et l'acteur sont deux entités distinctes et doivent également apparaître comme tels dans vos diagrammes.

Bart van Ingen Schenau
la source
"L'acteur est toujours quelque chose en dehors de la portée du système / logiciel que vous construisez." Néanmoins, l'acteur interagit directement avec l'objet d'une classe en initiant la pile d'appels. Il en quelque sorte donc est une partie du système (il est représenté par une autre classe arbitraire d'une couche d'interface utilisateur qui est très probablement pas modélisé par le diagramme de classes). Cela semble vraiment contre-intuitif au premier abord et est probablement la source de confusion pour certaines personnes.
dvdblk
L'acteur est une entité distincte. L'acteur existe même si le système n'existe pas. L'acteur initie, ferme et fournit même une entrée au système mais ne s'assoit pas à l'intérieur du système logiciel pour effectuer une tâche du système. Le système fonctionne indépendamment de l'acteur. Les objets peuvent simuler des acteurs du monde réel mais dépendent toujours d'acteurs humains pour le démarrage, la sortie et l'entrée directement ou indirectement.
user2994783