Diagrama de secuencia: ¿Son los actores objetos?

11

La respuesta más probable es no, pero he venido con esta duda. ¿Puede un actor actuar como una clase?

Sé que los actores desencadenan eventos y pueden tener mensajes, pero si hay una clase que modela a un actor (como una clase de usuario) ¿podemos invocar métodos sobre ellos? ¿O es un completo malentendido sobre el papel del actor, que se está mezclando con la clase representativa?

Supuesto como correcto:

Supuesto ejemplo correcto

Duda si es correcto:

ingrese la descripción de la imagen aquí

Tiago Duque
fuente

Respuestas:

8

En UML, un actor es siempre algo (un sistema o persona) que está fuera del alcance del sistema / software que está creando. Sería completamente incorrecto equiparar a un actor con una instancia / objeto de una clase que modela ciertos aspectos del actor en su sistema.

En los diagramas UML mostrados, el actor "Usuario" (con su icono de figura de palo) representa al ser humano del mundo real que opera su sistema. La clase Userrepresenta un modelo de esa persona que captura las características que son relevantes para usted. Esta clase solo existe dentro de su sistema.
Esto hace que la clase y el actor sean dos entidades distintas y también deberían mostrarse como tales en sus diagramas.

Bart van Ingen Schenau
fuente
"El actor siempre es algo que está fuera del alcance del sistema / software que está creando". Sin embargo, el actor interactúa directamente con el objeto de alguna clase al iniciar la pila de llamadas. Por lo tanto, de alguna manera es parte del sistema (está representado por otra clase arbitraria de una capa de interfaz de usuario que probablemente no esté modelada por el diagrama de clase). Esto parece realmente contradictorio al principio y es probablemente la fuente de confusión para algunas personas.
dvdblk
El actor es una entidad separada. El actor existe incluso si el sistema no. El actor inicia, cierra e incluso proporciona información al sistema, pero no se sienta dentro del sistema de software para realizar ninguna tarea del sistema. El sistema funciona independientemente del actor. Los objetos pueden simular actores del mundo real, pero aún dependen de los actores humanos para su puesta en marcha, salida y entrada directa o indirectamente.
user2994783