Вы находитесь на странице: 1из 6

secciones técnicas Tecnologías de Objetos

Gonzalo Génova Fúster, Naturaleza de las relaciones


Juan Llorens Morillo
Depto. de Informática, Universidad Carlos
III de Madrid
entre actores y casos de uso
<{ggenova, llorens}@inf.uc3m.es>

Nota del Editor: este artículo estaba destina-


do a la monografía “UML e Ingeniería de Mode- Resumen: los diagramas de casos de uso son uno de los conceptos clave en el Lenguaje Unificado de
los” (Novática 168, marzo-abril de 2004) pero Modelado (Unified Modeling Language, UML), pero su semántica y notación presentan lagunas que llevan
no pudo publicarse por falta de espacio. a frecuentes malentendidos entre los profesionales, incluso acerca de cuestiones muy básicas. En este
artículo tratamos algunos temas referentes a las relaciones en las que pueden participar actores y casos
de uso, actualmente definidas en UML como asociaciones: la multiplicidad de estas asociaciones, las
1. Introducción
ambigüedades que aparecen al asociar un caso de uso con varios actores, y finalmente la naturaleza
Los casos de uso y los diagramas de casos de misma de estas relaciones, para las cuales proponemos un enfoque diferente del aceptado actualmente.
uso son uno de los conceptos clave en el
Lenguaje Unificado de Modelado (Unified Palabras clave: casos de uso, diagramas de casos de uso, relaciones de casos de uso, UML.
Modeling Language, UML), dentro del cual
tienen la finalidad de ayudar a los ingenieros
desafiaremos la noción actualmente acepta- entre instancias por medio de mensajes, de
en el modelado de los requisitos de usuario.
da de que estas relaciones pueden modelarse modo análogo a otras asociaciones entre
Un diagrama de casos de uso contiene casos
correctamente como asociaciones. Finalmen- clasificadores1: “Puede haber asociaciones
de uso y actores: un caso de uso representa
te, en la sección 5 resumimos nuestras prin- entre casos de uso y los actores de los casos
básicamente un uso típico del sistema reque-
cipales conclusiones. de uso. Una asociación de este tipo define
rido por los usuarios, mientras que un actor
que una instancia del caso de uso y un
representa un rol desempeñado por agentes
Como ésta es una investigación conceptual usuario que desempeñe uno de los roles del
externos que interactúan con el sistema. A
acerca de la naturaleza de las relaciones actor se comunican” [19, pp. 2-132]. Esta
pesar de su aparente simplicidad, los
actor-caso de uso y su definición oficial, relación de comunicación significa “partici-
diagramas de casos de uso presentan algu-
nuestra fuente principal ha sido el estándar pación de un actor en un caso de uso ” [19,
nas dificultades semánticas que han sido
de UML promulgado por el Object pp. 3-97], es decir, la instancia del actor
estudiadas por varios autores [4] [2] [14]
Management Group (OMG) [19], denomi- toma parte en la ejecución del caso de uso.
[15] [17] [10] [5] [11] [8]. Estas dificultades
habitualmente se refieren a los casos de uso nado de manera abreviada “El Estándar”
mismos, o a sus relaciones. (versión actual 1.5, marzo de 2003). Este Ahora bien, podemos tener varios actores
documento es propiamente el único que se que participen en un caso de uso: “Puede
Los casos de uso pueden participar en dos puede llamar “definición oficial”; no obs- haber asociaciones entre casos de uso y
tipos de relaciones en un diagrama: relacio- tante, como hay muchas cuestiones actores, lo que significa que las instancias
semánticas que están pobremente explica- del caso de uso y del actor se comunican
nes entre dos casos de uso, y relaciones entre
das en el Estándar, hemos acudido a las entre sí. Un actor puede comunicarse con
un caso de uso y un actor. Los autores hemos
obras de los autores originales de UML en varios casos de uso de una entidad; es decir,
dedicado un trabajo anterior al análisis de
busca de clarificaciones: el Manual de Refe- el actor puede requerir varios servicios de la
las relaciones Include y Extend entre dos
casos de uso [5], que en UML 1 presentan rencia [12], que parece una opción obvia, y entidad, y un caso de uso se comunica con
varios problemas de semántica y notación. la Guía del Usuario [18]. Por otra parte, uno o varios actores al proporcionar su ser-
citamos la Guía del Usuario no porque la vicio ” [19, pp. 2-137]. Así pues, puede haber
De hecho, hemos observado una cierta ten-
consideremos una fuente particularmente varias instancias de actor2 conectadas a una
dencia general a malinterpretar las relacio-
fiable, sino porque posiblemente se trata de misma instancia de caso de uso: instancias
nes entre casos de uso como relaciones de
la fuente más importante para muchos de actor del mismo tipo (que desempeñan el
flujo de control entre procesos, lo que lleva a
modeladores, de modo que pensamos que es mismo rol), o bien instancias de actor de
la confusión entre diagramas de casos de
importante mostrar sus virtudes y deficien- distinto tipo (desempeñando roles distin-
uso y diagramas de actividad. En nuestra
cias. Citamos la versión 1.5 del Estándar, y tos). En el primer caso, explorado en esta
opinión, por tanto, los casos de uso auxilia-
hemos comprobado que no ha habido cam- sección, tenemos un caso de uso-instancia
res empleados como inclusión o extensión
bios significativos desde las versiones 1.3 y conectado a distintos actores-instancia del
de un caso de uso base no son verdaderos
1.4 en relación con estos temas. Se espera mismo actor-clasificador a través de una
casos de uso.
que terminen en 2004 los trabajos para la única asociación con multiplicidad mayor
nueva versión 2 de UML. El último borrador que uno. En el segundo caso, examinado en
En este artículo vamos a concentrarnos en
publicado (agosto de 2003) [20], que es ya detalle en la siguiente Sección, tenemos un
las relaciones entre casos de uso y actores,
prácticamente la versión final, muestra abun- caso de uso-instancia conectado a diferentes
que actualmente están definidas como aso-
dantes modificaciones y mejoras, pero no se actores-instancia de diferentes actores-cla-
ciaciones. En la sección 2 tratamos el pro-
han hecho cambios en las relaciones actor- sificador por medio de diferentes asociacio-
blema de cuántos actores pueden estar im-
caso de uso, por tanto los problemas anali- nes.
plicados en un caso de uso (es decir, cuántas
instancias de actor, y cuántas clases de acto- zados aquí están todavía sin resolver.
De acuerdo con el Estándar, “una asocia-
res). En la sección 3 estudiamos en detalle el
desconcertante significado de conectar un 2. La multiplicidad en las asocia- ción entre un actor y un caso de uso se
ciones con actores muestra como una línea continua entre el
caso de uso a dos o más actores diferentes.
Las relaciones entre actores y casos de uso se actor y el caso de uso. Puede tener adornos
La sección 4 está dedicada a una cuestión
definen como asociaciones binarias [19, pp. en los extremos, tales como la multiplicidad”
más fundamental acerca de la naturaleza de
2-133, 2-134] que soportan la comunicación [19, pp. 3-98]. El único ejemplo de multipli-
las relaciones actor-caso de uso: en ella

56 novática nº 169 mayo-junio 2004 secciones técnicas


Tecnologías de Objetos secciones técnicas

“ Los casos de uso y los diagramas de casos de


uso son uno de los conceptos clave en el Lengua-
je Unificado de Modelado (UML)

Vendedor
1 *
Servir pedido

Corredor
2..4 1
” Conducir coche

Figura 1. Ejemplo de asociación actor-caso de uso Figura 2. Una asociación actor-caso de uso con
con multiplicidades, extraído del Estándar de UML multiplicidad mayor que uno para el actor.
v1.5, pp. 3-99.

cidad en asociaciones con actores dado en la diferenciar entre “Primer corredor”, “Segun- un único caso de uso, como si dijéramos: “he
documentación se muestra en la figura 11, do corredor”, etc., ya que realmente desem- aquí dos actores que pueden obtener inde-
con multiplicidad “uno” en el lado del actor, peñan un rol ligeramente diferente con res- pendientemente el mismo servicio del siste-
y “muchos” (o “ilimitado”) en el lado del pecto al caso de uso (tal vez sólo uno de ellos ma” (figura
figura 3b
3b)3.
caso de uso. La multiplicidad en el extremo pueda empezar la carrera, etc.). No obstan-
del actor podría ser mayor que uno. Supon- te, tienen tanto en común que probablemen- Ahora supongamos que la habitación se
gamos, por ejemplo, un juego de carreras te estaremos tentados de generalizar todos reserva por medio de algún tipo de interacción
por ordenador con dos, tres o cuatro partici- los actores jugadores en un único super- conjunta del huésped y del recepcionista con
figura 22).
pantes (figura actor común, como se muestra en la figura 22. el sistema de reservas. Por ejemplo, el hués-
El ejemplo de los corredores de bolsa es aún ped introduce sus datos personales a través
Puesto que no hay ninguna restricción en la más difícil de formalizar sin multiplicidades de un terminal, mientras que el recepcionista
multiplicidad de las asociaciones con acto- mayores que uno en el extremo del actor. asigna la tarifa en otro terminal. Aquí tene-
res, el número de instancias de un cierto mos una única interacción en la que los dos
actor que se comuniquen con una instancia Puede plantearse otra cuestión: estas instan- actores participan, de modo que ambos es-
dada de un caso de uso podría ser incluso cias múltiples de los actores, ¿se ignoran tán asociados con el caso de uso y se comu-
ilimitado: imaginemos un aplicación de bol- mutuamente, o cooperan en la ejecución del nican con él. La representación natural de
sa con un número ilimitado de usuarios que caso de uso? La siguiente sección puede esto también es un caso de uso unido a dos
desempeñan el rol representado por el actor arrojar algo de luz sobre este problema. actores. ¿Cómo distinguimos
Corredor de Bolsa en el caso de uso Vender notacionalmente esta situación (actores co-
acciones
acciones. 3. Actores cooperativos versus operativos) de la anterior (actores indepen-
actores independientes dientes), en la que había dos actores que se
Menos obvia es una multiplicidad mayor Podemos tener un caso de uso conectado a comunicaban independientemente con el
que uno en el extremo del caso de uso, diferentes actores en un diagrama de casos caso de uso?
aunque sea éste el caso en el único ejemplo de uso. La documentación de UML propor-
figura 11). Su-
dado en la documentación (figura ciona varios ejemplos [18, pp. 234, 237] [12, Aparentemente, pues, existe una ambigüe-
puestamente significa que una instancia de p. 64] --repetido en [12, p. 492] y en [19, pp. dad en la interpretación de las asociaciones
actor puede participar (simultáneamente) 3–95]--, aunque no explica claramente su con actores: un caso de uso conectado a dos
en más de una instancia del caso de uso, es significado. Específicamente, ¿pueden estos actores podría significar tanto un servicio
decir, en más de una ejecución simultánea diferentes actores desempeñar el mismo rol que es requerido independientemente por
del sistema. Esto tal vez pueda aplicarse con en el caso de uso? cada uno, o un servicio que es requerido
un significado válido en sistemas concurren- conjuntamente por ambos. En la primera
tes. Supongamos, por ejemplo, un vendedor En otras palabras, ¿puede estar un caso de interpretación, las dos asociaciones tienen el
que simultáneamente sirve varios pedidos a uso asociado con dos actores diferentes te- mismo significado (un servicio es requeri-
figura 11).
través de diferentes ventanas (figura niendo ambas asociaciones el mismo signi- do); en la segunda interpretación, cada aso-
ficado? Supongamos un sistema de reserva ciación tiene un significado ligeramente dis-
Algunos autores piensan que es difícil imagi- de habitaciones en un hotel donde definimos tinto, ya que conectan el caso de uso con dos
nar un ejemplo donde varias instancias de un un actor Huésped y un actor Recepcionista
Recepcionista: roles que participan de forma diferente.
tipo de actor se comuniquen con la misma tanto el huésped como el recepcionista pue-
instancia de un caso de uso: dicen que si hay den reservar una habitación en el hotel. ¿De- Consideremos ahora el ejemplo de la figura
dos instancias de actor distintas, entonces beríamos modelar esta situación como un 4, tomado del Estándar (el mismo ejemplo
casi por definición desempeñan roles dife- único caso de uso asociado con ambos acto- aparece también en el Manual de Referencia
rentes en el caso de uso, y por tanto deberían res, o como dos casos de uso diferentes, uno [12]).
ser modeladas como instancias de diferentes para cada actor? Si la interacción fuera muy
tipos de actores; lo cual debería ser reforza- distinta desde los respectivos puntos de vista El caso de uso Servir pedido está asociado
do en UML restringiendo la multiplicidad de Huésped y Recepcionista
Recepcionista, parece que con los actores Cliente y Vendedor
Vendedor. De acuer-
del actor a “0..1” o “1..1” [17]. No estamos deberíamos modelarlo como dos casos de do con las consideraciones precedentes, po-
completamente de acuerdo con esta opi- figura 3a
uso distintos (figura 3a). Pero si la interacción demos interpretar estas asociaciones de dos
nión. En el ejemplo precedente del juego de fuera la misma para ambos actores, estaría- maneras diferentes:
carreras por ordenador, puede tener sentido mos tentados de conectarlos directamente a „ Actores independientes. Servir pedido es

secciones técnicas novática nº 169 mayo-junio 2004 57


secciones técnicas Tecnologías de Objetos

construidos por los usuarios de UML. ¿Cuál


de las dos es la verdadera interpretación
Reservar habitación pretendida en UML? La documentación ofi-
desde el exterior cial no da respuesta directa a esta pregunta,
aunque ofrece algunas indicaciones a favor
Huésped de la segunda interpretación. En el Manual
de Referencia encontramos que “un caso de
uso puede implicar uno o más actores” [12,
Reservar habitación p. 144], y que “un caso de uso puede comu-
desde el interior nicarse con uno o más actores cuando pro-
porciona su servicio” [12, p. 489].
Recepcionista

Figura 3. Actores independientes: a) en el primer diagrama los actores Huésped y Recepcionis- Esto no es suficientemente explícito, ya que
ta ejecutan comportamientos distintos con el fin de reservar una habitación, que son modela- “uno o más actores” puede referirse a acto-
dos como dos casos de uso diferentes; b) en el segundo diagrama los actores Huésped y res-instancia del mismo actor-clasificador
Recepcionista ejecutan independientemente el mismo comportamiento, modelado como un (ver la sección precedente sobre la multipli-
único caso de uso conectado directamente con los dos actores. cidad en asociaciones con actores), o acto-
un servicio que el sistema Catálogo Telefó- servicio del sistema para Cliente y para Ven- res-instancia de diferentes actores-clasifica-
nico ofrece por igual y de forma indepen- dedor, entonces estos dos actores deberían
dedor dor. El Estándar repite estas mismas ideas,
diente a instancias de los dos actores. fundirse en uno solo cuando están asociados añadiendo que al realizar una secuencia de
„ Actores cooperativos. Servir pedido es con el caso de uso, porque estarían desempe- acciones tal como especifica el caso de uso,
un servicio ofrecido por el sistema que re- ñando el mismo rol. la instancia del caso de uso puede comuni-
quiere la participación de instancias de am- carse con varias instancias de actor, “no sólo
bas clases de actores para ejecutarse. Esta interpretación se ajusta mejor a la defi- con la inicial” [19, pp. 2-137] y que “cada
nición de actor como “un conjunto coheren- caso de uso debe producir algún tipo de
Ni el Estándar ni el Manual de Referencia te de roles que los usuarios de una entidad resultado observable y provechoso para (al
[12] resuelven esta ambigüedad. En favor de pueden desempeñar cuando interaccionan menos) uno de sus actores” [19, pp. 2-140].
la primera interpretación, “actores indepen- con la entidad” [19, pp. 2-135]5. En UML Esto tampoco puede considerarse definiti-
dientes”, podemos argumentar que si las puede considerarse que un actor desempeña vo, por las mismas razones.
distintas asociaciones entre los actores y el un rol distinto con respecto a cada caso de
caso de uso tuvieran que tener diferentes uso con el que se comunica. Si un actor Algunos autores piensan que el lenguaje es
significados, entonces tendrían que tener representa un rol particular que el usuario verdaderamente ambiguo al respecto: un
nombres diferentes; puesto que estas asocia- desempeña en un caso de uso determinado, diagrama como el de la figura 4 podría
ciones habitualmente son anónimas4, inferi- entonces parece que un rol dado debería ser significar tanto actores cooperativos como
mos que todas ellas son iguales: una asocia- desempeñado siempre por el mismo actor. actores independientes. Lo denominan “se-
ción entre un actor y un caso de uso simple- Consecuentemente, dos actores significan mántica AND/OR de la conexión de actores
mente permite al actor ejecutar el caso de dos roles diferentes desempeñados en un a casos de uso” [7]. Otros autores asumen
uso, y todos los actores conectados a un caso caso de uso, es decir, cooperación. implícitamente la noción de “actores coope-
de uso ven y ejecutan “el mismo” caso de rativos” [3][9][16], o incluso la noción de
uso. Así pues, el caso de uso Servir pedido Las dos interpretaciones, “actores indepen- “actores independientes” [1], pero sin nin-
mostrado en el ejemplo anterior representa dientes” y “actores cooperativos”, no pue- guna explicación profunda de la cuestión.
el mismo comportamiento (o secuencia de den ser verdaderas simultáneamente, ya que Nosotros pensamos que los autores de UML
acciones) para Cliente y Vendedor
Vendedor. Esta esto llevaría a ambigüedades en los modelos apoyarían la interpretación de “actores co-
interpretación se ajusta mejor a la definición
de caso de uso como algo que “especifica un
servicio que la entidad proporciona a sus
usuarios; es decir, un modo específico de
usar la entidad” [19 pp. 2-136]. Un caso de
uso es un modo específico de usar la entidad
desde el punto de vista de algún actor, y
todos los actores conectados al caso de uso
ven el mismo modo específico de usar la
entidad, es decir, son actores independien-
tes.

En favor de la segunda interpretación, “ac-


tores cooperativos”, podríamos decir en cam-
bio que si dos usuarios ven el sistema desde
el mismo punto de vista, y reciben el mismo
servicio, entonces tienen que ser clasificados
bajo el mismo tipo de actor. En otras pala-
bras, partiendo de la definición misma de
“actor”, está implícito que dos actores-ins-
tancia pertenecientes a dos actores-clasifi-
cador conectados al mismo caso de uso ven Figura 4. Ejemplo de un diagrama de casos de uso con
actores diferentes unidos al mismo caso de uso, extraído
y usan el sistema desde puntos de vista del Estándar de UML v1.5, p. 3-95 (ver también Manual
diferentes. Si Servir pedido fuera el mismo de Referencia, pp. 64 y 492[12]).

58 novática nº 169 mayo-junio 2004 secciones técnicas



Tecnologías de Objetos secciones técnicas

Un caso de uso representa también algún tipo de


funcionalidad o servicio requerido por el actor aso-
ciado

cuanto asociación: debe ser una asociación
binaria, no puede tener indicador de agrega-
ción, etc.

En el sentido general, una asociación es una


relación entre (dos o más) clasificadores que
especifica un conjunto de conexiones entre
instancias de los correspondientes clasifica-
dores; las instancias de la asociación se de-
nominan enlaces [19, pp. 2-19]. El tipo más
común de clasificador es la clase, pero los
actores y casos de uso también son clasifica-
dores en el metamodelo de UML. Así pues,
se supone que una asociación actor-caso de
uso especifica un conjunto de enlaces entre
Figura 5. Actores cooperativos: a) en el primer diagrama, los dos actores desempeñan el mismo instancias de actor e instancias de caso de
rol, heredado del actor Gestor de reservas, y pueden reservar una habitación independiente-
mente, ejecutando el mismo comportamiento; b) en el segundo diagrama, los actores Huésped
uso. Como hemos visto, un actor representa
y Recepcionista cooperan en la ejecución del caso de uso Reservar habitación. algún tipo de agente externo que desempeña
un cierto rol cuando interacciona con el
operativos”, pero sería de desear una defini- tencia de ambas interpretaciones y expresar sistema: un actor-clasificador especifica una
ción más clara en el Estándar, ya que a gráficamente la diferencia entre ellas, evitan- clase de agentes externos6, y un actor-instan-
menudo hemos observado a los profesiona- do la ambigüedad, es el uso de la notación cia es un agente externo concreto. Es decir,
les desconcertados en este tema. que proponemos en la figura 66. un actor representa algún tipo de entidad.

Volviendo ahora al ejemplo precedente de la 4. La naturaleza de la relación Por otra parte, un caso de uso representa
reserva de habitaciones, y aplicándole la inter- En esta sección vamos a tratar una cuestión algún tipo de funcionalidad o servicio reque-
pretación de los actores cooperativos, si real- más fundamental. Todos estamos acostum- rido por el actor asociado [19, pp. 2-136, 3-
mente queremos que los dos actores Huésped brados a la representación familiar de rela- 96]. Un caso de uso-clasificador especifica
y Recepcionista se comuniquen con el caso de ciones entre casos de uso y actores en los un comportamiento [19, pp. 2-132], y un
uso Reservar habitación de la misma manera e diagramas de casos de uso, como el de la caso de uso-instancia es la ejecución de ese
independientemente, es decir, si queremos que figura 77. Interpretamos con naturalidad la comportamiento para proporcionar la
un huésped y un recepcionista desempeñen el línea que conecta el actor Cliente con el caso funcionalidad requerida [19, pp. 2-133]. Es
mismo rol al reservar una habitación, entonces de uso Retirar dinero como que “el cliente decir, una instancia de caso de uso no es una
no podemos conectar los dos actores directa- requiere que el sistema de cajero automático entidad, sino una ejecución del sistema. ¡Un
mente al caso de uso; en cambio, tenemos que proporcione un servicio o función para reti- extraño tipo de instancia, verdaderamente!
crear un nuevo actor Gestor de reservas
reservas, que rar dinero”. Esta relación se representa como [8]. En consecuencia, un enlace entre una
sea un supertipo de Huésped y Recepcionista
Recepcionista, una línea continua, que es el símbolo gráfico instancia de caso de uso y una instancia de
y asociar este nuevo actor con Reservar habita- habitual en UML para una asociación. De actor no es un enlace entre dos entidades,
ción (figura
figura 5a
5a). hecho, el Estándar nos dice que formalmen- sino un enlace entre una entidad y la ejecu-
te es una asociación [19, pp. 2-132, 3-97], ción de otra entidad (el sistema). Esto debe-
Aunque la interacción sea idéntica, no pode- que puede tener algunos de los adornos ría ser más que suficiente para sospechar que
mos asociar dos actores con el mismo caso habituales de las asociaciones, tales como los casos de uso no son verdaderos clasifica-
de uso, porque expresaríamos involunta- indicadores de multiplicidad o navegabilidad. dores, y que las relaciones actor-caso de uso
riamente comportamiento cooperativo (fi- fi- No obstante, tiene algunas restricciones en no son asociaciones; pero hay otros argu-
gura 5b
5b).

Cada una de las interpretaciones tiene sus


propios inconvenientes. En la interpretación
de actores cooperativos el modelo puede satu-
rarse con super-actores cuyo único propósito
es ser supertipos de los “verdaderos” actores
del sistema; además, si los diferentes actores
asociados con un caso de uso dado se mues-
tran en diagramas diferentes, el aspecto coope-
rativo del caso de uso quedará escondido,
aunque exista. En la interpretación de actores
independientes, por otro lado, simplemente no
hay forma de expresar el comportamiento co- Figura 6. Notación propuesta para la semántica AND/OR de las asociaciones actor-
operativo, aunque exista. caso de uso. Las restricciones se usan para resolver la ambigüedad: {and} significa
Una posible solución para permitir la coexis- actores cooperativos, {or} significa actores independientes.

secciones técnicas novática nº 169 mayo-junio 2004 59


secciones técnicas Tecnologías de Objetos

Sistema Cajero Automático


: Sistema Cajero Automático
retirarDinero(cuenta, cantidad)
: Cliente
Retirar dinero
Figura 8. Sencillo diagrama de colaboración que muestra una retirada de dinero.
Cliente
porta el mensaje retirarDinero(cuenta, canti- [8]; el actor interacciona con el sistema, y la
dad), es una instancia de la asociación de la
dad) representación de esta interacción es lo que
Figura 7. Sencillo diagrama de casos de uso
figura 7 entre el actor Cliente y el caso de uso llamamos un caso de uso. Es decir, ¡el con-
para un sistema de cajero automático. Retirar dinero,
dinero ¡pero nada de eso! Por el con- cepto de caso de uso incluye tanto el sistema
trario, se trata de una instancia de una asocia- como el actor! Así pues, un diagrama de
mentos más fuertes en favor de nuestra po- ción entre el actor Cliente y la clase Sistema casos de uso no debería mostrar casos de
sición, como vamos a ver. Cajero Automático
Automático. En UML no tenemos una uso relacionados con actores, sino más bien
forma adecuada de representar un enlace entre un sistema relacionado con actores a través
Además de especificar un conjunto de enla- un caso de uso y un actor, probablemente de casos de uso.
ces, una asociación especifica también una porque estos enlaces no existen en absoluto7.
posibilidad de comunicación [6]: es decir, En este sentido, puede pensarse que un caso
las instancias enlazadas se conocen y pue- ¿Qué mensajes pueden enviarse a través de de uso es algún tipo de propiedad de una
den comunicarse, de acuerdo con las propie- una asociación actor-caso de uso? Ninguno. asociación entre el actor y el sistema, tal
dades especificadas por la asociación, Una instancia de caso de uso no es una como una interfaz del sistema, si no la mis-
enviándose mensajes a través de los enlaces. entidad que proporcione servicios, no es una ma asociación actor-sistema (ver figura 99).
Un mensaje es la forma que tienen los obje- entidad que responda mensajes: es mera- Esta notación pone de manifiesto que un
tos para requerir y proporcionar servicios mente la ejecución de un comportamiento caso de uso representa una interacción, an-
unos de otros, es decir, para comunicarse. (de otra entidad). No tiene sentido decir que tes que una entidad. Y las interacciones se
Así pues, un enlace entre una instancia de “una entidad se comunica con una ejecu- representan adecuadamente mediante aso-
caso de uso y una instancia de actor les ción”. En su lugar, deberíamos decir: “una
una ciaciones [6], como ya argumentó Rumbaugh
permite comunicarse e interaccionar [19, entidad en ejecución se comunica con otra hace años [13].
pp. 2-137, 3-96]. entidad en ejecución, y esto es un comporta-
miento
miento”. 5. Conclusiones
Las interacciones se representan en UML En nuestra experiencia en el uso y enseñanza
por medio de los diagramas de interacción, Más aún, el receptor del mensaje no puede de UML hemos aprendido que, contra lo
que representan instancias y mensajes ser la instancia del caso de uso. Si la instan- que pudiera parecer a primera vista, no es
intercambiados a través de enlaces a lo largo cia del caso de uso se define como “la ejecu- tan fácil representar la funcionalidad de un
del tiempo. Los diagramas de interacción ción de un caso de uso, iniciada por una sistema mediante los diagramas de casos de
son ampliamente usados para describir los instancia de mensaje enviada por una ins- uso. Hay algunas cuestiones muy básicas
escenarios (instancias de casos de uso) que tancia de actor” [19, pp. 2-137], está claro acerca del significado de los símbolos en el
pertenecen a un caso de uso dado. que no existe antes de la recepción del men- diagrama que no tienen una respuesta senci-
saje, por tanto no puede ser la receptora del lla, tales como cuál es el significado de un
Consideremos el diagrama simple de mensaje. Las cosas son mucho más simples: caso de uso que no está directamente conec-
interacción de la figura 88, donde una instancia el mensaje no es enviado a la instancia del tado a un actor (es decir, casos de uso em-
del actor Cliente se comunica con una instan- caso de uso, sino al sistema mismo, y el pleados como inclusión o extensión), cuál es
cia de la clase Sistema Cajero Automático (la comportamiento iniciado es lo que llama- el significado de conectar varios actores a un
cual, en un cierto nivel de abstracción, es una mos instancia de caso de uso. caso de uso, etc.
abstracción perfectamente legítima del siste-
ma entero): la comunicación consiste en retirar Todo esto manifiesta una severa confusión Se ha revelado que las relaciones entre acto-
una cantidad de dinero de una determinada en la definición de los casos de uso como res y casos de uso están insuficientemente
cuenta. A primera vista, podría parecer que el clasificadores y las relaciones actor-caso de definidas y son ambiguas. La multiplicidad
enlace entre la instancia del Cliente y la instan- uso como asociaciones: el actor no de estas asociaciones, aunque más bien des-
cia del Sistema Cajero Automático,
Automático que so- interacciona realmente con el caso de uso cuidada en la documentación oficial, real-
mente no plantea problemas fundamenta-
les. En cambio, el significado de un caso de
uso asociado con distintos tipos de actores
Sistema Cajero Automático es verdaderamente oscuro en la definición
del lenguaje: ¿cooperan los actores en la
ejecución del caso de uso, o interaccionan de
modo independiente con el sistema?
Retirar dinero
Hemos mostrado algunos argumentos que
Cliente justifican nuestra preferencia por la inter-
pretación cooperativa, pero a la vez hemos
propuesto una notación que podría servir
para distinguir fácilmente los actores coope-
Figura 9. Notación propuesta para el diagrama de casos de uso, que muestra
un actor asociado con un sistema a través de un caso de uso: el caso de uso rativos de los actores independientes, si fue-
se hace equivalente a una asociación. ra necesario conservar ambas interpretacio-

60 novática nº 169 mayo-junio 2004 secciones técnicas


Tecnologías de Objetos secciones técnicas

nes. Hemos señalado también que el

W
Referencias Held as Part of the Joint European Conferences on Theory
metamodelo carece de una metaclase and Practice of Software, ETAPS 2001, Genova, Italy,
ActorInstance
ActorInstance. [1] Jim Arlow, Ila Neustadt. UML and the Unified April 2-6, 2001. Springer Verlag, Lecture Notes in Computer
Process. Practical Object-Oriented Analysis & Design. Science 2029, pp. 140-155.
Addison-Wesley, 2002. [18] Grady Booch, James Rumbaugh, Ivar Jacobson.
Si admitimos que los casos de uso y los [2] Klaas van der Berg, Anthony J.H. Simons. "Control-
diagramas de casos de uso son útiles para The Unified Modeling Language User Guide. Addison-
Flow Semantics of Use Cases in UML". Information and Wesley, 1998.
extraer los requisitos, entonces las relacio- Software Technology, 41(10): 651-659, July, 1999. [19] Object Management Group. Unified Modeling
nes actor-caso de uso son necesarias y útiles, [3] Martin Fowler, Kendall Scott. UML Distilled, A Brief Language Specification, Version 1.5, March 2003 (Version
pero no deberían modelarse como asocia- Guide to the Standard Object Modeling Language. 1.3, June 1999. Version 1.4, September 2001).
ciones, ya que no especifican verdaderamen- Addison-Wesley, 2000. First edition published as: UML [20] Object Management Group. Unified Modeling
te un conjunto de enlaces entre instancias Distilled, Applying the Standard Object Modeling Language Superstructure Specification, August 2003,
Language. Addison-Wesley, 1997. ptc/03-08-02. Unified Modeling Language Infrastructure
que se comunican: esto es una confusión con
[4] Martin Fowler, Alistair Cockburn, Ivan Jacobson, Specification, September 2003, ptc/03-09-15.
las asociaciones actor-sistema. Al menos, Bruce Anderson, Ian Graham. "Question Time! Abount
debería reconocerse que las asociaciones Use Cases", Proceeding of the 13th ACM Conference on

W
actor-caso de uso, y las comunes asociacio- Notas
Object-Oriented Programming, Systems, Languages and
nes clase-clase, son dos tipos muy diferentes Applications-OOPSLA’98, October 18-22, 1998,
1
de relaciones, demasiado diferentes para Vancouver, British Columbia, Canada. ACM SIGPLAN Las asociaciones se definen, en general, entre clasifica-
Notices, 33(10): 226-229. dores. El término "clasificador" denota un concepto
decir con utilidad que ambas son “asociacio-
[5] Gonzalo Génova, Juan Llorens, Víctor Quintana. genérico en UML que se presenta en diversas formas
nes”. específicas tales como clase, tipo, interfaz, tipo de datos,
"Digging into use case relationships". The 5th International
ConferenceontheUnifiedModelingLanguage-UML’2002, componente, etc., e incluso actores y casos de uso; la
La raíz de este problema probablemente September 30-October 4 2002, Dresden, Germany. clase es la forma de clasificador que aparece más
debe encontrarse en la intención de reutilizar Published in Lecture Notes in Computer Science 2460, frecuentemente en los modelos concretos. Como la
el concepto general de clasificador y adap- mayor parte de los clasificadores, los actores y los casos
Springer 2002, pp. 115-127.
de uso pueden tener instancias, de modo que los térmi-
tarlo para representar casos de uso. Pero los [6] Gonzalo Génova. Entrelazamiento de los aspectos
nos "actor" y "caso de uso" pueden referirse, con cierta
casos de uso no se modelan adecuadamente estático y dinámico en las asociaciones UML. PhD
ambigüedad, tanto al nivel de clasificadores como al de
como clasificadores, ya que las instancias de Thesis, Universidad Carlos III de Madrid, 2003.
instancias. Usaremos los términos "actor-clasificador",
casos de uso no son entidades. El concepto [7] Martin Hitz, Gerti Kappel. UML@Work, Von der
"tipo de actor" o simplemente "actor" para el nivel de
Analyse zur Realisierung, Dpunkt Verlag, 1999. clasificadores, y "actor-instancia" o "instancia de actor"
mismo de instancia de caso de uso es realmente
[8] Sadahiro Isoda. "A Critique of UML’s Definition of the para el nivel de instancias; y lo mismo para los casos de
problemático. Las relaciones actor-caso de Use Case Class". The Sixth International Conference on
uso no especifican un conjunto de enlaces uso.
the Unified Modeling Language-UML’2003, October 20- 2
Extrañamente, el Estándar de UML no contiene la
entre instancias. Más bien, una relación actor- 24, 2003, San Francisco, California, U.S.A. Published in metaclase ActorInstance, aunque el concepto de "instan-
caso de uso especifica un servicio del sistema, Lecture Notes in Computer Science 2863, Springer cia de actor" se usa para explicar la semántica de los
representado como un caso de uso, que es 2003, pp. 280-294. actores y casos de uso [19, pp. 2-140 y ss.]; más aún,
requerido por un actor: así pues, es más conve- [9] Ivar Jacobson, M. Christerson, P. Jonsson, G. esta metaclase es requerida por la notación, ya que las
niente modelar un caso de uso como una Övergaard. Object-Oriented Software Engineering: a instancias de actor aparecen en los diagramas de se-
Use Case Driven Approach, Addison Wesley, 1992. cuencia y colaboración [19, pp. 3-105, 3-117]. La
interfaz proporcionada por el sistema en la
[10] Pierre Metz. "Against Use Case Interleaving". The multiplicidad en las asociaciones con actores implica
asociación actor-sistema, o como la misma Fourth International Conference on the Unified Modeling también que existen instancias de actores. La metaclase
asociación actor-sistema, como queda refleja- Language-UML’2001, October 1-5, 2001, Toronto, Instance es abstracta [19, pp. 2-97] y tiene subclases
do en la notación que hemos propuesto. Resu- Ontario, Canada. Published in Lecture Notes in Computer concretas tales como Object [19, pp. 2-97] o
miendo: las relaciones actor-caso de uso no Science 2185, Springer 2001, pp. 472-486. UseCaseInstance [19, pp. 2-135], pero no hay ninguna
deberían ser asociaciones, sino otro tipo de [11] Pierre Metz, John O’Brien, Wolfgang Weber. metaclase ActorInstance. Pensamos que se trata de un
relación o elemento de modelado. "Specifying Use Case Interaction: Types of Alternative error en el metamodelo de UML. En UML 2, la metaclase
Courses". Journal of Object Technology, vol.2, no.2, Instance es sustituida por InstanceSpecification, que ya
March-April 2003, pp. 111-131, <http://www.jot.fm/ no es abstracta [20, p. 57], y las metaclases concretas
issues/issue_2003_03/article1>. Object y UseCaseInstance desaparecen.
3
[12] James Rumbaugh, Ivar Jacobson, Grady Booch. En este ejemplo suponemos que Huésped y Recepcio-
The Unified Modeling Language Reference Manual. nista son actores diferentes porque estarán conectados
Addison-Wesley, 1998. a dos conjuntos diferentes de casos de uso, no mostra-
[13] James Rumbaugh. "Relations as Semantic dos en la figura 3. Si éste no fuera el caso, tampoco habría
Constructs in an Object-Oriented Language", Proceedings razón para distinguirlos.
4
of the ACM Conference on Object-Oriented Programming: A veces esta asociación lleva el estereotipo
"communicate", como en el perfil que UML pone de
Systems, Languages and Applications, pp. 466-481,
ejemplo para Procesos de Desarrollo de Software [19, pp.
Orlando, Florida, 1987.
4-8].
[14] Anthony J.H. Simons. "Use cases considered 5
En UML el término "rol" tiende a ser usado para denotar
harmful", Proceedings of the 29th Conference on
lo que un objeto o un actor hace en una determinada
Technology of Object-Oriented Languages and Systems-
colaboración: de modo que técnicamente una instancia
TOOLS Europe’99, June 7-10, 1999, Nancy, France. IEEE de actor desempeña un rol diferente en cada caso de uso
Computer Society Press, 1999, pp. 194-203. con el que se comunica, y por tanto un actor-clasificador
[15] Anthony J.H. Simons, Ian Graham. "30 Things that se define más propiamente como un conjunto coherente
go wrong in object modelling with UML 1.3", chapter 17 de roles [16].
in Kilov, H., Rumpe, B., Simmonds, I. (eds.): Behavioral 6
Un actor-instancia puede pertenecer a más de un actor-
Specifications of Businesses and Systems. Kluwer clasificador, lo que se conoce como multiclasificación.
Academic Publishers, 1999, 237-257. 7
Un diagrama de casos de uso es una forma especiali-
[16] Perdita Stevens, Rob Pooley. Using UML: Soft- zada de diagrama de clases, que permite sólo dos tipos
ware Engineering with Objects and Components. Addison- de clasificadores: actores y casos de uso. Por tanto,
Wesley, 2000. parece que necesitamos una forma especializada de
[17] Perdita Stevens. "On Use Cases and Their diagrama de objetos que permita sólo dos tipos de
Relationships in the Unified Modelling Language". Heinrich instancias. ¿Cuál es el diagrama de instancias que
Hußmann (Ed.): Fundamental Approaches to Software corresponde a un diagrama de casos de uso? Este
Engineering, 4th International Conference, FASE 2001. diagrama especial no está reconocido en UML.

secciones técnicas novática nº 169 mayo-junio 2004 61

Вам также может понравиться