Definimos Actor como…

En teatro, un actor representa un papel según las indicaciones de un guión. Nosotros tomamos esa metáfora para indicar que un agente externo realiza una acción sobre el sistema, acción esta que puede ser capturada como un guión que sea parte de un caso de uso.

Es interesante observar que llamamos actor a toda entidad externa que demanda funcionalidad del sistema, ya sea un ser humano o un sistema de software; por lo cual el término usuario puede ser un poco limitado.

Normalmente representamos a los actores de nuestro sistema por medio de la simple imagen de una figura humana de rayas. pero dada la flexibilidad del UML es posible representarlo también como una clase estereotipada o bien, con una imagen provista por nosotros según algún criterio artístico.

La siguiente imagen ilustra las tres formas que he mencionado:

Fig. 1 – Tres formas de representar un Actor en un diagrama de UML

La especificación UML lidía con el lenguaje visual pero como en otras ocasiones esta no es más que una fracción de lo que queremos decir sobre nuestros modelos, en este caso, es de interes capturar información adicional de nuestros actores, para lo cual podemos pensar en tener una tabla como la siguiente para cada uno de ellos:

Nombre: Actor
Representado por: Nombre y datos de contacto del stakeholder que puede responder preguntas sobre este actor
Facilidades de comunicación: Protocolos o estilos de comunicación que el actor entiende.
Relación con otros actores: Relaciones de herencia o dependencia entre actores

Tabla 1 – Definición de un Actor

La definición anterior la podemos llevar en el cuerpo de comentarios de nuestro modelador UML y exportarlo a un documento de texto cada vez que sea necesario.

Los actores nos sirven para capturar a los usuarios del sistema pero también, son la forma en la que podemos expresar el contexto del mismo. Es decir, que los actores toman el lugar de cualquier entidad de interes con la que nuestro sistema interactua.

Pese a lo anterior, ciertas cosas generalmente vistas como externas al sistema no son considerados buenos actores. Los sistemas de persistencia como las bases de datos o los archivos, si bien externos, no son actores. Entre otras cosas, debido a que estos no demandan funcionalidad del sistema (son pasivos respecto a él) además, es de interes que estos elementos estén bajo la definición del diseño de nuestro sistema, por lo que puede resultar de más provecho considerarlos parte del mismo.

, , , , , , ,

  1. #1 por oscar mm el 17-10-08 - 3:05 am

    hola, tengo una duda sobre el modelo de base de datos como actores en uml, no he encontrado que en algun libro mencione que no se pueda modelar una base de datos como actor, lo que hice: puse como actor una base de datos en un modelo de casos de uso (el sistema) que interactuan a su vez con otros actores como son un administrador y usuarios, asi que mi duda es que es realmente imposible evitar modelar una bases de datos como un actor como parte del modelado de casos de uso?, es decir me gustaria modelar la base de datos asi como parte del sistema o es una restriccion o una prohibicion hacerlo, gracias por su atencion, saludos desde mexico.

  2. #2 por Iván Garcerant el 17-10-08 - 10:25 pm

    Saludos Oscar.

    Primero que nada gracias por tu comentario.

    No alcanzo a comprender plenamente lo que planteas. Las bases de datos no suelen ser representadas como actores, principalmente como digo en el post, por ser pasivas con respecto a él y por ser de interés que su diseño sea parte del diseño del sistema.

    Ahora que decir que hay prohibición de modelar algo… pues claro que no. Es posible que representes a una base de datos como actor, pero surge la pregunta de como vas a lidiar con los problemas que te he mencionado.

    ¿Habrá algún caso de uso que no incluya alguna operación de datos? Posiblemente no. Por lo tanto quizás el actor “Base de Datos” va a estar constantemente involucrado en los casos de uso, casi sin importar cual sea el actor principal.

    ¿Será posible que la base de datos demande funcionalidad al sistema? Es decir, ¿hay casos de uso que sean activados por el actor “Base de Datos” pero no por nadie más?

    Generalmente la respuesta a estas preguntas es no. Por eso se sugiere que no agotemos nuestra paciencia modelando constantemente lo que ya sabemos: que las bases de datos se usan intensamente en un sistema de información moderno y que dichas bases de datos son pasivas respecto al sistema.

    Claro que si la abstracción que utilizas te hace pensar en que debes indicar los puntos en que se almacena información en la base de datos, entonces te sugiero que investigues la posibilidad de utilizar alguna otra notación. Quizás un diagrama de secuencia o incluso algún tipo de diagrama que no sea UML, te va a poder ayudar en expresar lo que quieres decir sin caer en terreno poco claro.

    Si lo que quieres indicar no puede ser modelado elegantemente en un caso de uso entonces la respuesta es simple: no uses un caso de uso.

    Hay otras formas de capturar requisitos, por lo que si tienes un montón de cosas que especificar en relación a tu base de datos entonces puedes intentar alguna otra aproximación.

    No sé si te he aclarado la pregunta. Espero sí. Cualquier cosa no dudes en preguntar.

  3. #3 por Martin el 23-04-09 - 6:20 pm

    Hola en que sentido se dice que el actor es una entidad, que sentido tiene la palabra entidad en la definición…es como decir es algo que se encuentra fuera del sistema y le requiere algo a dicho sistema? o es entidad en sentido mas técnico que desconozco. Gracias. Saludos.

  4. #4 por Iván Garcerant el 23-04-09 - 10:50 pm

    Saludos Martín.

    Al menos en los límites de este artículo, la palabra entidad no tiene mayor significado técnico. Aquí, la redacción que te ha llamado la atención “llamamos actor a toda entidad externa que demanda funcionalidad del sistema” lo que quiere decir es que el nombre de “actor” se lo damos a cualquier cosa -entidad- que pueda en un momento dado ser diferente al sistema y sin embargo, demandar funcionalidad a este.

    La palabra entidad en verdad es muy elegante. Si te he confundido por un momento te pido disculpas. Puedes leer “cualquier cosa” en su lugar y entender perfectamente lo que he querido decir.

  5. #5 por Javier el 20-09-09 - 7:39 pm

    Hola … Quisiera saber un ejemplo en donde una maquina pueda desempeñarse como actor.

    • #6 por Iván Garcerant el 21-09-09 - 11:45 am

      Saludos Javier.

      Es una muy buena pregunta. Sin duda un ejemplo sería apropiado.

      Recordando la definición, un actor es una entidad externa al sistema que demanda funcionalidad a este. Es decir, digamos un sistema de correo electrónico que recibe correo y avisa por medio de una interfaz apropiada a nuestro sistema.

      En ese sentido, si optamos por modelar al sistema de correo como un ente externo, lo tendríamos que poner como actor.

      En esa misma línea, los sistemas corporativos de otras empresas serían actores de nuestros sistemas en aquellos casos en que deban cooperar y comunicarse.

      Es decir, cuando tenemos un sistema maquina externo, que dispare cierta funcionalidad en nuestro sistema, podemos optar por poner un actor que lo represente.

      Por ultimo te recuerdo que el modelar es una actividad subjetiva, por lo que depende del punto de vista del analista cuando recurrir a un técnica u optar por otra manera de expresar lo que se necesita.

  6. #7 por jose carlos el 14-03-11 - 11:49 pm

    weno entoces tomamos a la bd o no como actor ? y si es si porque si es no porque

    • #8 por Iván Garcerant el 5-01-12 - 12:06 pm

      En general, salvo ejemplos puntuales, no se toma a la base de datos como actor.

  1. Casos de Uso Avanzados: El Tiempo como Actor « Tecnología y Synergix
  2. Ejemplo de caso de uso « Tecnología y Synergix
  3. Modelado de Casos de Uso « Tecnología y Synergix
  4. Definimos Caso de Uso como… « Tecnología y Synergix
  5. Casos de Uso Avanzados: Relación de Inclusión « Tecnología y Synergix
  6. El flujo de eventos del día feliz « Tecnología y Synergix
  7. Aqui les dejo un sencillo ejemplo de los casos de uso..!! | mayerlincon

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: