Академический Документы
Профессиональный Документы
Культура Документы
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
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.
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).
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.