Beruflich Dokumente
Kultur Dokumente
UML 2
Modelado de la dinmica
A. Introduccin
El objetivo del presente captulo es explicar de qu manera UML representa las interacciones entre objetos. En el captulo 3, vimos que los objetos de un sistema poseen su propio comportamiento e interactan entre s para dotar al sistema de una dinmica global. En el captulo 4, estudiamos la forma en que los casos de uso representan las acciones y reacciones entre un actor externo y el sistema. Desde el punto de vista del modelado, esos dos tipos de interacciones se distinguen por la diferencia interna/externa, pero no por su naturaleza. Para responder a la necesidad de representacin de las interacciones entre objetos, UML propone dos tipos de diagramas:
- El diagrama de secuencia se centra en aspectos temporales. - El diagrama de comunicacin se centra en la representacin espacial.
En el presente captulo estudiaremos ambos tipos de diagramas. Ms tarde examinaremos cmo descubrir progresivamente los objetos que componen un sistema. Dicho descubrimiento se basar en las interacciones entre objetos que intervienen en los casos de uso del sistema. Para representar las interacciones nos decantaremos por el diagrama de secuencia, ya que suele ser la opcin preferida por las personas que se encargan de modelar los proyectos. El diagrama de comunicacin se conoce con ese nombre desde UML 2. En UML 1 se denominaba diagrama de colaboracin.
B. Diagrama de secuencia
1. Definicin
El diagrama de secuencia describe la dinmica del sistema. A modele un sistema muy pequeo, resulta difcil representar toda la sistema en un nico diagrama. Por tanto, la dinmica completa mediante un conjunto de diagramas de secuencia, cada uno de generalmente a una subfuncin del sistema. menos que se dinmica de un se representar ellos vinculado
59
Captulo 5
El diagrama de secuencia describe las interacciones entre un grupo de objetos mostrando de forma secuencial los envos de mensajes entre objetos. El diagrama puede asimismo mostrar los flujos de datos intercambiados durante el envo de mensajes. Para interactuar entre s, los objetos se envan mensajes. Durante la recepcin de un mensaje, los objetos se vuelven activos y ejecutan el mtodo del mismo nombre. Un envo de mensaje es, por tanto, una llamada a un mtodo.
60
UML 2
Modelado de la dinmica
La notacin "funcion: Clase" representa la funcin de una instancia seguida del nombre de su clase. Para simplificar, en esta obra consideraremos que la funcin de la instancia corresponde a su nombre, al igual que ocurra en UML 1. Si slo una instancia de la clase participa en el diagrama de secuencia, la funcin de la instancia es opcional. El nombre de la clase puede tambin omitirse en las etapas preliminares del modelado, pero debe especificarse lo antes posible. Los diagramas de secuencia contienen varias lneas de vida, ya que tratan de las interacciones entre varios objetos.
3. Envo de mensajes
Los envos de mensajes se representan mediante flechas horizontales que unen la lnea de vida del objeto emisor con la lnea de vida del objeto destinatario (ver figura 5.2).
En la figura 5.2, el objeto de la izquierda enva un mensaje al objeto de la derecha. El mensaje da lugar a la ejecucin del mtodo mensaje del objeto de la derecha, lo que provoca su activacin. Los mensajes se numeran secuencialmente a partir de uno. Si un mensaje se enva antes de que concluya el tratamiento del precedente, es posible utilizar una numeracin compuesta (ver figura 5.3) en la que el envo del mensaje 2 se produzca durante la ejecucin del mensaje 1.
61
Captulo 5
Figura 5.3 - Numeracin de los mensajes La numeracin de los mensajes no es obligatoria. No obstante, resulta prctica para mostrar las activaciones anidadas. Tambin es posible transmitir informacin; sta se representa mediante parmetros transmitidos con el mensaje (ver figura 5.4).
62
UML 2
Modelado de la dinmica
Existen diferentes tipos de envos de mensajes. En la figura 5.5 ofrecemos una explicacin grfica.
Figura 5.5 Diferentes tipos de mensajes El mensaje sincrnico es el utilizado con mayor frecuencia. Su uso significa que el expedidor del mensaje espera que la activacin del mtodo mencionado por el destinatario finalice antes de continuar su actividad. En los mensajes asincrnicos, el expedidor no espera el trmino de la activacin invocada por el destinatario. Esto se produce al modelar sistemas en los que los objetos pueden funcionar en paralelo (es el caso de los sistemas multi-thread, donde los tratamientos se efectan en paralelo). Ejemplo Un jinete da una orden a su caballo, luego le da una segunda orden sin esperar a que concluya la ejecucin de la primera. La primera orden constituye un ejemplo de envo de mensaje asincrnico. En UML 1 la representacin de un mensaje asincrnico se realizaba con media flecha superior. En UML 2 se emplea una flecha completa. El mensaje de retorno a la llamada a un mtodo no es sistemtico, ya que no todos los mtodos devuelven un resultado.
63
Captulo 5
Los objetos pueden enviarse mensajes a s mismos. La representacin de tales mensajes se ilustra en la figura 5.6.
64
UML 2
Ediciones ENI
Practique la modelizacin
UML 2
Coleccin Prcticas Tcnicas
29
Requisitos previos
Para comprobar los requisitos previos necesarios antes de empezar con la prctica, conteste las preguntas siguientes: 1. Qu es la clave de una clase? a. Una referencia de las instancias de esta clase hacia las instancias de otra clase. b. Uno o varios atributos cuyo valor o valores son nicos para cada instancia de la clase. c. Un identificador nico de la clase. 2. Qu se puede describir en un diagrama de estructura composite? a. Las actividades de las partes de un objeto. b. Las colaboraciones relacionadas a un patrn de diseo. c. Las partes de un objeto y sus conectores. d. Las partes de un caso de utilizacin. 3. Cul es el principal inters de un diagrama de estructura composite con respeto a un diagrama de clases? 4. Qu significa la cardinalidad de una parte? 5. Qu es un papel asociado a una parte?
30
6. Cul es la diferencia entre un conector y una asociacin? a. No hay ninguna diferencia. b. Un conector es el extremo de una asociacin. c. Un conector relaciona dos partes mientras una asociacin relaciona dos clases. 7. Qu es una colaboracin en un diagrama de estructura composite? 8. Describe una aplicacin de una colaboracin la utilizacin de un patrn en un caso preciso al especificar el papel de cada clase que interviene en el patrn? a. S. b. No. 9. Qu es un parmetro de template de una clase? 10. Qu significa restringir un parmetro de template? a. Indica que una clase concreta debe sustituir al parmetro. b. Indica que el parmetro se debe sustituir con una clase especificada en la exigencia o una de sus sobreclases. c. Indica que el parmetro debe ser sustituido por una clase especificada en la restriccin o una de sus subclases. Respuestas pg. 139
31
Se representa cada unidad bsica (metro, kilogramo, hora, etc.) por una instancia nica de la clase de las unidades. 1. Trace este diagrama de las clases sin representar en l una nocin de orden en las unidades de la medida, es decir, por ejemplo, sin introducir en l distincin entre m.s-1 y s-1.m. En cuanto a las potencias asociadas a las unidades, nos limitaremos a la utilizacin directa de la unidad (o potencia uno) y al inverso (potencia -1). Utilice dos asociaciones de agregacin hacia los objetos que representan las unidades. 2. Suprima la limitacin sobre las potencias al utilizar una clase-asociacin. 3. Trace este diagrama de clases introduciendo en l una nocin de orden en las unidades de la medida, es decir, por ejemplo, al distinguir la representacin de m.s-1 y s-1.m. Respuestas pg. 140
32
La raz posee dos claves y tres hijos. Las hojas poseen tres o cuatro claves. Los objetos de datos asociados a las claves no estn representados. Trace el diagrama de las clases que describe un rbol B.
33
Trace la aplicacin de esta colaboracin para un documento XML. Respuestas pg. 145
34
Tal diagrama es sencillo: describe completamente los diferentes posibles estatus de una persona. Sin embargo, no es necesariamente sencillo de poner en marcha: - En primer lugar, introduce una jerarqua sobre las personas en relacin con su estatus, pero pueden existir otros criterios de jerarqua sobre las personas (por ejemplo, con respeto a su estatus matrimonial, sus competencias profesionales o tambin una clasificacin hombre, mujer, chico, chica, etc.). El hecho de multiplicar las jerarquas de especializacin de un objeto puede convertir el diagrama de las clases en algo muy complejo. - En segundo lugar, supone una implementacin que incluye un mecanismo de cambio de clase de una instancia: una persona en paro que encuentra un empleo debe convertirse en una instancia de clase Empleado cuando antes era una instancia de clase Parado. Tales mecanismos no son frecuentes. Existe otra solucin que consiste en pasar de la especializacin a la composicin: el estatus de una persona no est ya relacionado con su clase, sino que se convierte en un vnculo de composicin hacia una instancia de la clase que describe el estatus actual de la persona. Como se ha visto anteriormente, se introduce una clase especfica para cada estatus. Ilustre esta solucin basada en la composicin con la ayuda de un diagrama de clases. Respuestas pg. 146
35