Está en la página 1de 32

El Lenguaje de Modelado Unificado

A lo largo de esta seccin vamos a intentar introducir la notacin que emplearemos como vehculo de comunicacin entre los participantes del desarrollo de nuestras aplicaciones software, y que ser un elemento de vital importancia en la descripcin del proceso de desarrollo. La notacin puede ser presentada desde 3 diferentes perspectivas:

La que proporcionan los elementos que la constituyen. Los elementos se clasifican en estructurales, de comportamiento, de agrupamiento y de documentacin. La que introducen las relaciones entre los elementos de la notacin. Los diagramas en los que se organi!an los elementos. "#isten nueve tipos de diagramas con los que modelar las distintas vistas de una aplicacin:

$. &. 3. ). *. +. ,. -. 9.

%iagramas %iagramas %iagramas %iagramas %iagramas %iagramas %iagramas %iagramas %iagramas

de de de de de de de de de

casos de uso. clases. o'(etos. secuencia. cola'oracin. estado. actividad. componentes. implantacin.

"sta .ltima suele ser la preferida para introducir la notacin, ya que permite presentar los elementos en un orden seme(ante al de su utili!acin durante el proceso de desarrollo. %urante las pr#imas secciones presentaremos los diagramas y con ellos los elementos que constituyen la notacin. La mayor parte de los diagramas, e(emplos y comentarios proceden de Pablo Figueroa y son relativos a la versin $.$ de /0L, los originales se pueden encontrar A1/2.

Conceptos de un diagrama de Casos de Uso

/n diagrama de 3asos de /so muestra las distintas operaciones que se esperan de una aplicacin o sistema y cmo se relaciona con su entorno 4usuarios u otras aplicaciones5. 6e muestra como ilustracin los casos de uso de la mquina de caf7.

Caso de uso
6e representa en el diagrama por una elipse, denota un requerimiento solucionado por el sistema. 3ada caso de uso es una operacin completa desarrollada por los actores y por el sistema en un dilogo. "l con(unto de casos de uso representa la totalidad de operaciones desarrolladas por el sistema. 8a a compa9ado de un nom're significativo. "n el caso del e(emplo se tienen como casos de uso de la cafetera RecibirDinero, PedirAzucar, PedirProducto, DarVueltas y Cancelar.

Actor
"s un usuario 4en el sentido amplio de la pala'ra: ser humano, o aplicacin5 del sistema, que necesita o usa algunos de los casos

de uso. 6e representa mediante un

, acompa9ado de un nom're significativo, si es necesario.

Relaciones en un diagrama de casos de uso


"ntre los elementos de un diagrama de 3asos de uso se pueden presentar tres tipos de relaciones, representadas por lineas dirigidas entre ellos 4del elemento dependiente al independiente5: Communica 4communicates5. :elacin entre un actor y un caso de uso, denota la participacin del actor en un caso de uso determinado. "n el diagrama anterior todas las lineas que salen del actor denotan este tipo de relacin. "s la relacin por defecto. Usa 4uses5. :elacin entre dos casos de uso, denota la inclusin del comportamiento de un escenario en otro. "n el e(emplo el caso de uso Cancelar incluye en su comportamiento DarVueltas; y PedirProducto incluye tam'i7n el comportamiento de DarVueltas. Extiende 4extends5. :elacin entre dos casos de uso, se utili!a cuando un caso de uso es una especiali!acin de otro. <or e(emplo, podra tenerse un caso de uso que e#tienda la forma de pedir a!.car, para que permita escoger el tipo de a!ucar 4normal, diet7tico, moreno5 y adems la cantidad en unidades adecuadas para cada caso 4cucharaditas, 'olsitas o cucharaditas, respectivamente5. /n posi'le diagrama para denotar esta situacin sera:

Al comienzo

Elementos bsicos en un diagrama de estructura esttica


/n diagrama de estructura esttica muestra el con(unto de clases y o'(etos importantes que conforman un sistema, (unto con las relaciones e#istentes entre los mismos. "stos diagramas reci'en su denominacin por presentar de una manera esttica la estructura de informacin del sistema y la visi'ilidad que tiene cada una de las clases. "sta viene e#presada por sus relaciones con el resto de clases que se han identificado en el modelo que desarrollado. 6iguiendo con la construccin del modelo para el caso de estudio de la mquina de cafe. /n diagrama de estructura esttica inicial podra ser:

Clase
:epresentada por un rectngulo 4por lo general con con tres divisiones internas5, son los elementos fundamentales del diagrama. /na clase descri'e un con(unto de o'(etos con caracteristicas y comportamiento id7ntico. "n el caso de estudio nos encontramos con las clases: Ingrediente, Producto, Maquina, DepositoMonedas y DepositoMonedasIguales. Los tres compartimientos estndares del rectngulo se utili!an 4de arri'a a a'a(o5 para identificar la clase normalmente con el nom're de la clase, mostrar la estructura del estado de los o'(etos que representan mediante declaracin de sus atri'utos, y del interfa! de comunicacin de dichos o'(etos a trav7s de la declaracin de los m7todos que podrn ser utili!ados en el paso de mensa(es.

Atributo

2dentifica las caractersticas propias del estado de los o'(etos de cada clase. Los nomn'res empleados hacen referencia por lo general a tipos simples, ya que los atri'utos de tipos compuestos se suelen representar mediante asociaciones de composicin con otras clases. La sint#is de un atri'uto es: visibility name : type-expression = initial-value { property-string } %onde visibilityes uno de los siguientes: + public visibility # protected visibility private visibility type-expression es el tipo del atri'uto con nom're name. 3omo se aprecia, el atri'uto puede especificarse dotado de un valor inicial y de un con(unto de propiedades. "n el caso del e(emplo, la clase Ingrediente tiene dos atri'utos: uno denominado cantidad, de tipo float y con valor inicial =; y el atri'uto nombre de tipo string sin valor inicial. "n este caso, la herramienta utili!ada ha particulari!ado la representacin de visi'ilidad, utili!ando los sm'olos: para indicar visi'ilidad privada, para visi'ilidad protegida, y para indicar visi'ilidad p.'lica.

Operacion
"l con(unto de operaciones 4m7todos5 descri'en el comportamiento de los o'(etos de una clase. La snta#is de una operacin en /0L es: visibility name ( parameter-list ) : return-type-expression { property-string } 3ada uno de los parmetros en parameter-list se denota igual que un atri'uto. Los dems elementos son los mismos encontrados en la notacin de un atri'uto.

Asociaci n !rol" multiplicidad#


/na asociacin en general es una lnea que une dos o ms sm'olos. <ueden tener varios tipos de adornos, que definen su semntica y caractersticas. Los tipos de asociaciones entre clases presentes en un diagrama esttico son: o o o o o Asociacin 'inaria Asociacin n>aria 3omposicin ?enerali!acin :efinamiento

3ada asociacin puede presentar algunos elementos adicionales que dan detalle a la relacin, como son: o o :ol: 2dentificado como un nom'res al los finales de la linea, descri'e la semntica de la relacin en el sentido. indicado. <or e(emplo, la asociacin de composicin entre Maquina e Ingrediente reci'e el nom're de existencias, como rol en ese sentido. 0ultiplicidad: %escri'e la cardinalidad de la relacin. "n el e(emplo anterior se utili!an $, $ %%&, ', &, como indicadores de multiplicidad.

Asociaci n binaria 6e identifica como una lnea slida que une dos clases. :epresenta una relacin de alg.n tipo entre las dos clases, no muy fuerte 4 es decir, no se e#ige dependencia e#istencial, ni encapsulamiento5. /n posi'le e(emplo es la relacin entre una compa9a y sus empleados

en este caso la relacin reci'e el nom're gen7rico Trabaja Para, la compa9a tiene una o ms instancias de la clase Persona denominadas empleadoy cada empleado conoce su empleador 4en este caso .nico5.

Composici n
"s una asociacin fuerte, que implica tres cosas: %ependiencia e#istencial. "l elemento dependiente desaparece al destruirse el que lo contiene y, si es de cardinalidad $, es creado al mismo tiempo. @ay una pertenencia fuerte. 6e puede decir que el o'(eto contenido es parte constitutiva y vital del que lo contiene Los o'(etos contenidos no son compartidos; esto es, no forman parte del estado de otro o'(eto.

6e denota di'u(ando un rom'o relleno del lado de la clase que contiene a la otra en la relacin. "n el caso de estudio se presentan varios e(emplos de relaciones de composicin entre Maquina y Producto, Maquina y DepositoMonedas y Maquina y DepositoMonedasIguales. "#iste tam'ien una relacin de composicin menos fuerte 4no se e#ige dependencia e#istencial y permite comparticin5 que es denotada por una un rom'o sin rellenar en uno de los e#tremos. /n e(emplo puede encontrarse entre Producto e Ingrediente.

(eneralizaci n

La relacin de generali!acin denota una relacin de herencia entre clases. 6e representa di'u(ando un tringulo sin rellenar en el lado de la superclase. La su'clase hereda todos los atri'utos y mensa(es descritos en la superclase. "n el e(emplo se encuentra una generali!acin entre DepositoMonedas 4superclase5 y DepositoMonedasIguales 4su'clase5.

Clase param)trica
/na clase param7trica representa el concepto de clase gen7rica en los conceptos 'sicos AA o de template en 3BB. 6e di'u(a como una clase acompa9ada de un rectngulo en la esquina superior derecha, con los parmetros del caso. <or e(emplo, la clase Lista que utili!a un parmetro formal Tipose vera de la siguiente manera

*a+uete
/n paquete es una forma de agrupar clases 4u otros elementos en otro tipo de diagramas5 en modelos grandes. <ueden tener asociaciones de dependencia o de generali!acin entre ellos. /n e(emplo puede ser el siguiente

"n este caso e#isten tres paquetes 4que se muestran vacios en este caso, con su contenido encapsulado5, con dos de ellos dependiendo del 0odelo del 0undo.

,ependencia
%enota una relacin semntica entre dos elementos 4clases o paquetes, por el momento5 del modelo. 2ndica que cam'iar el elemento independiente puede requerir cam'ios en los dependientes. 6e muestra como una linea punteada direccional, indicando el sentido de la dependencia. <uede tener asociados ciertos estereotipos que den una e#plicacin del tipo de dependencia presentada. "n el e(emplo anterior pueden verse dos relaciones de dependencia hacia el paquete 0odelo del 0undo.

-ota
"s un comentario dentro de un diagrama. <uede estar relacionado con uno o ms elementos en el diagrama mediante lineas punteadas. 6uele representar aclaraciones al diagrama o restricciones so're los elementos relacionados 4en este caso el te#to se encuentra entre C[C y C]C5. 6e representa mediante un rectngulo con su 'orde superior derecho do'lado. "n el e(emplo inicial de esta ho(a se encuentran dos notas: /na relacionada con la clase mquina y otra con el depsito de monedas iguales.

Al comienzo

Conceptos a.anzados en un diagrama de estructura esttica


Los conceptos que a continuacin se presentan muestran posi'ilidades adicionales de descripcin en un modelo orientado por o'(etos. Aunque los conceptos fundamentales y ms frecuentemente usados se descri'ieron en los conceptos 'sicos, 7stos completan el poder de e#presin.

Estereotipo
Las clases 4y dems elementos notacionales en los diagramas5 pueden estar clasificados de acuerdo a varios criterios, como por e(emplo su o'(etivo dentro de un programa. "sta clasificacin adicional se e#presa mediante un estereotipo.

"n el e(emplo anterior Auto3D est clasificado con el estereotipo Mundo, y la clase indo! con el de interfa!. Dtese que las relaciones pueden tener esta clasificacin tam'i7n. "n este caso la relacin se identifica como "bserver.

/nterfaz
/na interfa! es un protocolo e#igi'le a una clase. La representacin de este concepto es por medio de una lnea terminada en un crculo

"n el e(emplo anterior, la clase tring!se utili!a dentro de un hasta'le, gracias a que implementa la interfa! "as#able!4el m7todo #as#5 y la interfa! Comparable 4el m7todo is$qual%.

Asociaci n or
"n algunas ocasiones es necesario descri'ir que una clase esta relacionada con un o'(eto de una u otra clase. "sto se denota por medio de una relacin or e#clusiva. 6u representacin es una linea punteada que une dos asociaciones, (unto con la aclaracin 4por medio de una propiedad5 del tipo de asociacin.

"n el e(emplo anterior un automovil puede tener como due9o una persona natural o una empresa 4pero no am'os5.

Clase de asociaci n
/na clase de asociacin es informacin de detalle. 6e denota como una clase relacionada por una linea punteada a una asociacin.

"n este caso e#iste una relacin entre 0uro y 8entana, la cual tiene como detalle un o'(eto de la clase <osicin. 3a'e notar que este o'(eto no podra tomarse como atri'uto de 0uro o 8entana, ya que el conte#to de su e#istencia est dado precisamente por la relacin entre las dos clases.

Asociaci n n0aria
"s una forma de e#presar una relacin entre tres o ms clases. 6e representa como un diamante del cual salen lineas de asociacin a las clases.

"n este caso se tiene una relacion ternaria entre las clases Eear, Feam y <layer. A cada terna de o'(etos Ga9o, equipo, (ugadorH corresponde un o'(eto de tipo :ecord 4clase de asociacin5.

Otros conceptos
Aunque la metodologa los incluye, se de(an fuera del alcance de este resumen los siguientes conceptos de /0L: 3alificador, 3ompartimiento de Dom're y de Lista, <ropiedad, "#presin de Fipo, "lemento acotado, Fipo, /tilidad, 0etaclase, 3aminos de composicin de clases, :elacin de refinamiento, "lemento derivado y "#presin de navegacin.

,iagramas de 1ecuencia
/n diagrama de secuencia muestra la interaccin de un con(unto de o'(etos en una aplicacin a trav7s del tiempo. "sta descripcin es importante porque puede dar detalle a los casos de uso, aclarndolos al nivel de mensa(es de los o'(etos e#istentes, como tam'i7n muestra el uso de los mensa(es de las clases dise9adas en el conte#to de una operacin. A continuacin se muestra un e(emplo de diagrama de secuencia, que da detalle al caso de uso <edir<roducto del e(emplo de la cafetera.

Linea de .ida de un objeto


/n o'(eto se representa como una lnea vertical punteada con un rectngulo de enca'e!ado y con rectngulos a trav7s de la linea principal que denotan la e(ecucin de m7todos 4v7ase activacin5. "l rectngulo de enca'e!ado contiene el nom're del o'(eto y el de su clase, en un formato nombreObjeto: nombreClase. <or e(emplo, el o'(eto m& instancia de la clase MaquinaCa'e!enva dos mensa(es seguidos para dar respuesta a la operacin PedirProducto: er(ir!al o'(eto p!de la clase Producto y DarVueltas a s mismo.

Acti.aci n
0uestra el periodo de tiempo en el cual el o'(eto se encuentra desarrollando alguna operacin, 'ien sea por s mismo o por medio de delegacin a alguno de sus atri'utos. 6e denota como un rectngulo delgado so're la lnea de vida del o'(eto. "n el e(emplo anterior el o'(eto 2ingredientes se encuentra activado mientras e(ecuta el m7todo correspondiente al mensa(e 6ervir; el o'(eto

p se encuentra activo mientras se e(ecuta su m7todo mientras se e(ecuta p. er(ir y DarVueltas.

er(ir!4que e(ecuta )ingredientes. er(ir5 y el o'(eto m se encuentra activo

Mensaje
"l envo de mensa(es entre o'(etos se denota mediante una lnea slida dirigida, desde el o'(eto que emite el mensa(e hacia el o'(eto que lo e(ecuta. "n el e(emplo anterior el o'(eto m enva el mensa(e 6ervir al o'(eto p y un poco ms adelante en el tiempo el o'(eto m se enva a s mismo el mensa(e %ar8ueltas.

3iempos de transici n
"n un am'iente de o'(etos concurrentes o de demoras en la recepcin de mensa(es, es .til agregar nom'res a los tiempos de salida y llegada de mensa(es. Anali!ando la recepcin de una llamada telefnica puede tenerse un diagrama como el siguiente:

"n este diagrama se tienen tres o'(etos concurrentes, el que hace la llamada, la central telefnica y el que reci'e la llamada. se nom'ran los tiempos de los mensa(es que enva o reci'e el caller 4a para descolgar, b para el tono de la llamada, c para la marcacin, d para el inicio del enrutamiento de la llamada, d4 para la finali!acin del enrutamiento5. "stos nom'res o tiempos de transicin permiten descri'ir restricciones de tiempo 4 por e(emplo '>a G $sec. 5 o demoras entre el envo y la recepcin 4entre d y dC5.

Condiciones caminos alternati.os de ejecuci n% Concurrencia


"n algunos casos sencillos pueden e#presarse en un diagrama de secuencia alternativas de e(ecucin. "stas alternativas pueden representar condiciones en la e(ecucin o diferentes hilos de e(ecucin 4threads5.

"n el diagrama anterior se muestran dos casos. ob$ muestra una condicin al enviar un mensa(e a ob5 o a ob6, dependiendo de si x78 o x98. "stas dos lneas de e(ecucin se vuelven a unir ms adelante, indicando el fin del condicional. <or otra parte ob: muestra dos posi'les operaciones dependiendo de si se sigui la condicin x78 o x98. Ea que se presentan en el mismo instante de tiempo, se requiere dividir la linea del o'(eto en dos 4esta misma representacin se utili!a para el caso de dos hilos de e(ecucin5.

,estrucci n de un objeto
6e representa como una I al final de la lnea de e(ecucin del o'(eto. <or e(emplo, en el diagrama anterior se muestra el final de ob6 y de ob$.

M)todos recursi.os

/n e(emplo de un m7todo recursivo es el m7todo more en ob$. "s un rectngulo un poco salido de la activacin principal y con lneas de llamado de mensa(es, que indican la entrada y salida de la recursin.

,iagramas de Colaboraci n
/n diagrama de cola'oracin es una forma de representar interaccin entre o'(etos, alterna al diagrama de secuencia. A diferencia de los diagramas de secuencia, pueden mostrar el conte#to de la operacin 4cules o'(etos son atri'utos, cules temporales, ... 5 y ciclos en la e(ecucin. 6e toma como e(emplo el caso de uso <edir<roducto ya descrito como diagrama de secuencia.

Objeto
/n o'(eto se representa con un rectngulo, que contiene el nom're y la clase del o'(eto en un formato nombre"b#eto: nombre$lase.

Enlaces
/n enlace es una instancia de una asociacin en un diagrama de clases. 6e representa como una linea contnua que une a dos o'(etos. "sta acompa9ada por un n.mero que indica el orden dentro de la interaccin y por un estereotipo que indica que tipo de

o'(eto reci'e el mensa(e. <ueden darse varios niveles de su'indices para indicar anidamiento de operaciones. Los estereotipos indican si el o'(eto que reci'e el mensa(e es un atri'uto 4association y se asume por defecto5, un parmetro de un mensa(e anterior, si es un o'(eto local o glo'al.

;lujo de mensajes
"#presa el envo de un mensa(e. 6e representa mediante una flecha dirigida cercana a un enlace.

Marcadores de creaci n < destrucci n de objetos


<uede mostrarse en la grfica cules o'(etos son creados y destruidos, agregando una restriccin con la pala'ra ne! o delete, respectivamente, cercana al rectngulo del o'(eto

Objeto compuesto
"s una representacin alternativa de un o'(eto y sus atri'utos. "n esta representacin se muestran los o'(etos contenidos dentro del rectngulo que representa al o'(eto que los contiene. /n e(emplo es el siguiente o'(eto ventana:

*atr n de dise=o
/n diagrama de cola'oracin puede especificar un contrato entre o'(etos, parte esencial para la descripcin de un patrn de dise9o. "ste diagrama contiene todos los elementos citados de un diagrama de cola'oracin, de(ndo li'res posi'lemente los tipos

e#actos de algunos o'(etos o con nom'res gen7ricos para los mensa(es. /na JinstanciacinJ del patrn se representa como una elipse unida mediante flechas puenteadas a los o'(etos o clases que participan realmente en el patrn. "stas flechas pueden tener roles, indicando cul es el papel de cada elemento dentro del patrn. <or e(emplo, una instanciacin del patrn de o'servador puede verse como:

Contexto
/n conte#to es una vista de uno o ms elementos dentro del modelo que cola'oran en el desarrollo de una accin. 6e usa para separar los dems elementos en el modelo de este pro'lema en particular y darle 7nfasis. <uede mostrar solo los detalles relevantes de las clases u o'(etos que contiene, para resaltar su utilidad. /n e(emplo es la definicin del siguiente tipo:

6e representa como un conte#to un tipo :egistro de %inero y se muestran los detalles relevantes de <roducto, 2tem y 8enta para este tipo. Las relaciones de las clases con otras no visi'les dentro del conte#to pueden omitirse o conectarse al 'orde del conte#to.

Objeto acti.o
/n o'(eto activo es el que contiene su propio flu(o de control, a diferencia de un o'(eto pasivo que encapsula datos y solo reacciona al enviarle mensa(es. /n o'(eto activo se representa con un rectngulo de 'ordes gruesos. <uede contener otros o'(etos pasivos o activos. 6e presenta a continuacin un e(emplo en el conte#to de una produccin en lnea ro'oti!ada. 6e tiene un ente administrador, un ro'ot y un horno 4tres o'(etos activos5 que interact.an para desarrollar su tarea.

Los mensa(es entre o'(etos pasivos se denotan mediante una flecha completa, mientras que los mensa(es entre o'(etos activos se denotan con una media flecha. Los trheads de e(ecucin se denotan con las letras A y > antes del n.mero de orden del mensa(e. La sincroni!acin entre threads se muestra mediante un C? C y el nuevo n.moer de orden. <or e(emplo en A&, K& L &: completed4 (o' 5.

Conceptos bsicos en un ,iagrama de Estados

0uestra el con(unto de estados por los cuales pasa un o'(eto durante su vida en una aplicacin, (unto con los cam'ios que permiten pasar de un estado a otro./n e(emplo en el caso de la cafetera son los estados posi'les para la clase 0aquina3afe:

Estado

2dentifica un periodo de tiempo del o'(eto 4no instantneo5 en el cual el o'(eto esta esperando alguna operacin, tiene cierto estado caracterstico o puede reci'ir cierto tipo de estmulos. 6e representa mediante un rectngulo con los 'ordes redondeados, que puede tener tres compartimientos: uno para el nom're, otro para el valor caracterstico de los atri'utos del o'(eto en ese estado y otro para las acciones que se reali!an al entrar, salir o estar en un estado 4entry, e#it o do, respectivamente5. "n el caso del e(emplo anterior, se tienen cuatro estados 4"nMuncionamiento, 6in3am'io, 6in2ngredientes, 0alMuncionamiento5 , en los cuales se desarrollan ciertas acciones al entrar; por e(emplo, al entrar al estado 6in2ngredientes se de'e reali!ar la accion J2ndicador 6in2ngredientes en AnJ.

6e marcan tam'i7n los estados iniciales y finales mediante los sm'olos

, respectivamente.

E.entos
"s una ocurrencia que puede causar la transicin de un estado a otro de un o'(eto. "sta ocurrencia puede ser una de varias cosas:

o o o o

3ondicin que toma el valor de verdadero o falso :ecepcin de una se9al de otro o'(eto en el modelo :ecepcin de un mensa(e <aso de cierto perodo de tiempo, despu7s de entrar al estado o de cierta hora y fecha particular

"l nom're de un evento tiene alcance dentro del paquete en el cual est definido, no es local a la clase que lo nom're. "n el caso del e(emplo anterior se encuentra nom'rado en varias transiciones el evento user/nput, que reci'e como parmetro un >utton, para indicar el 'otn que ha sido presionado por el usuario de la mquina de caf7.

En.@o de mensajes
Adems de mostrar y transicin de estados por medio de eventos, puede representarse el momento en el cual se envan mensa(es a otros o'(etos. "sto se reali!a mediante una lnea punteada dirigida al diagrama de estados del o'(eto receptor del mensa(e. 6i tomamos como e(emplo un control remoto que puede enviar rdenes de encender o apagar al televisor o a la videogra'adora se puede o'tener un diagrama de estados como el siguiente:

Los tres aparatos tienen diagramas de estados separados y algunas de las transiciones del control remoto causan el envo de mensa(es 4togglePo!er5 a los otros aparatos.

3ransici n simple
/na transicin simple es una relacin entre dos estados que indica que un o'(eto en el primer estado puede entrar al segundo estado y e(ecutar ciertas operaciones, cuando un evento ocurre y si ciertas condiciones son satisfechas. 6e representa como una lnea slida entre dos estados, que puede venir acompa9ada de un te#to con el siguiente formato: event>signature es la descripcin del evento que da a lugar la transicin, guard>condition son las condiciones adicionales al evento necesarias para que la transicin ocurra, action>e#pression es un mensa(e al o'(eto o a otro o'(eto que se e(ecuta como resultado de la transicin y el cam'io de estado y send>clause son acciones adicionales que se e(cutan con el cam'io de estado, por e(emplo, el envio de eventos a otros paquetes o clases. "n el caso del e(emplo inicial de esta ho(a se tiene una transicin entre los estados IntroduciendoMoneda!y eleccionadoAzucar*Producto que tiene una transicin con el siguiente detalle: "l evento que dispara el cam'io de estado es user2nput4 +utton5. 6e requiere como condicin adicional que no se haya detectado ninguna falla 4,odo-.!/!true5 y se e(ecuta Mostrar0i(elAzucar y MostrarProducto, que de'eran ser e(ecuta'les por el o'(eto al cual pertenece el diagrama.
user2nput4 Kutton 5 Q NFodoARStrueT L 0ostrarDivelA!ucar, 0ostrar<roducto event>signature N guard>conditionO L action>e#pression P send>clause

3ransici n interna
"s una transicin que permanece en el mismo estado, en ve! de involucrar dos estados distintos. :epresenta un evento que no causa cam'io de estado. 6e denota como una cadena adicional en el compartimiento de acciones del estado. 6upongamos el estado de una interfa! pidiendo password al usuario. "n este caso puede tenerse una transicin interna que muestre una ayuda al usuario. "sta transicin se muestra en el siguiente diagrama con la cadena JAelp ? displa< Aelp J dentro del cuerpo del estado.

1ubestados
/n estado puede descomponerse en su'estados, con transiciones entre ellos y cone#iones al nivel superior. Las cone#iones se ven al nivel inferior como estados de inicio o fin, los cuales se suponen conectados a las entradas y salidas del nivel inmediatamente superior. /n e(emplo es el estado mar%ando de un tel7fono puede descomponerse en &ni%io y mar%ado par%ial, como lo muestra la siguiente figura.

3ransici n compleja
/na transicin comple(a relaciona tres o ms estados en una transicin de m.ltiples fuentes yLo m.ltiples destinos. :epresenta la su'divisin en threads del control del o'(eto o una sincroni!acin. 6e representa como una lnea vertical del cual salen o entran varias lneas de transicin de estado. "n el e(emplo que sigue se muestra una transicin a dos threads concurrentes que luego se sincroni!an.

3ransici n a estados anidados


/na transicin de hacia un estado comple(o 4descrito mediante estados anidados5 significa la entrada al estado inicial del su'diagrama. Las transiciones que salen del estado comple(o se entienden como transiciones desde cada uno de los su'estados hacia afuera 4a cualquier nivel de profundidad5. Al comien!o de la seccion dedicada a los diagramas de secuencias se encuentran como primer e(emplo los dos casos nom'rados: %esde el estado inicial se pasa al estado KuenMuncionamiento 4a su estado inicial5 y de este estado salen transiciones hacia 0alMuncionamiento y hacia el estado final, que de'en comprenderse como transiciones de cada uno de los estados internos hacias estos ultimos.

Conceptos de un ,iagrama de Acti.idades


/n diagrama de actividades es un caso especial de un diagrama de estados en el cual casi todos los estados son estados de accin 4identifican que accin se e(ecuta al estar en 7l5 y casi todas las transiciones son enviadas al terminar la accion e(ecutada en el estado anterior. <uede dar detalle a un caso de uso, un o'(eto o un mensa(e en un o'(eto. 6irven para representar transiciones internas, sin hacer mucho 7nfasis en transiciones o eventos e#ternos. 6e presenta a continuacin un e(emplo de diagrama de actividades para un mensa(e de un o'(eto. ?eneralmente modelan los pasos de un algoritmo.

Estado de acci n
:epresenta un estado con accin interna, con por lo menos una transicin que identifica la culminacin de la accin 4por medio de un evento implcito5. Do de'en tener transiciones internas ni transiciones 'asadas en eventos 46i este es el caso, repres7ntelo en un diagrama de estados5. <ermite modelar un paso dentro del algoritmo. 6e representan por un rectngulo con 'ordes redondeados.

3ransiciones
Las flechas entre estados representan transiciones con evento implcito. <ueden tener una condicin en el caso de decisiones.

,ecisiones
6e representa mediante una transicin m.ltiple que sale de un estado, donde cada camino tiene un la'el distinto. 6e representa mediante un diamante al cual llega la transicin del estado inicial y del cual salen las m.ltiples transiciones de los estados finales. /n e(emplo se ve en la figura cuando no 'ay %afe y se toma una decisin entre 'ay %ola o no 'ay %ola.

,iagramas de /mplementaci n
/n diagrama de implementacin muestra la estructura del cdigo 4%iagrama de componentes5 y la estructura del sistema en e(ecucin 4%iagrama de e(ecucin5.

,iagrama de Componentes
/n diagrama de componentes muestra las dependencias lgicas entre componentes software, sean 7stos componentes fuentes, 'inarios o e(ecuta'les. Los componentes software tienen tipo, que indica si son .tiles en tiempo de compilacin, enlace o e(ecucin. 6e consideran en este tipo de diagramas solo tipos de componentes. 2nstancias especficas se encuentran en el diagrama de e(ecucin. 6e representa como un grafo de componentes software unidos por medio de relaciones de dependencia 4generalmente de compilacin5. <uede mostrar tam'i7n contenencia de entre componentes software e interfaces soportadas. /n e(emplo es el siguiente:

"n este caso tenemos tres componentes, ?/2 dependiendo de la interfa! update provista por Planner, Planner dependiendo de la interfa! reservations provista por (%'eduler.

,iagrama de /mplantaci n
/n diagrama de implantacin muestra la configuracin de los elementos de procesamiento en tiempo de e(ecucin y los componentes software, procesos y o'(etos que se e(ecutan en ellos. 2nstancias de los componentes software representan manifestaciones en tiempo de e(ecucin del cdigo. 3omponentes que solo sean utili!ados en tiempo de compilacin de'en mostrarse en el diagrama de componentes. /n diagrama de implanatacin es un grafo de nodos conectados por asociaciones de comunicacin. /n nodo puede contener instancias de componentes software, o'(etos, procesos 4un caso particular de un o'(eto5. Las instancias de componentes software pueden estar unidos por relaciones de dependencia, posi'lemente a interfaces. /n e(emplo de diagrama de implantacin es el siguiente:

"n este caso se tienen dos nodos, )dmin(erver y *oe+sMa%'ine. )dmin(erver contiene la instancia del componente (%'eduler y un o'(eto activo 4proceso5 denominado meetings,-. "n *oe+sMa%'ine se encuentra la instancia del componente software Planner, que depende de la interfa! reservations, definida por (%'eduler.

-odos
/n nodo es un o'(eto fsico en tiempo de e(ecucin que representa un recurso computacional, generalmente con memoria y capacidad de procesamiento. <ueden representarse instancias o tipos de nodos. 6e representa como un cu'o 3% en los diagramas de implementacin.

Componentes
/n componente representa una unidad de cdigo 4fuente, 'inario o e(ecuta'le5 que permite mostrar las dependencias en tiempo de compilacin y e(ecucin. Las instancias de componentes de software muestran unidades de software en tiempo de e(ecucin y generalmente ayudan a identificar sus dependencias y su locali!acin en nodos. <ueden mostrar tam'i7n que interfaces implementan y qu7 o'(etos contienen. 6u representacin es un rectngulo atravesado por una elipse y dos rectngulos ms peque9os. /n e(emplo de componente que implementa dos interfaces es

M+uina de Caf)
6upongamos que se requiere desarrollar una aplicacin de control para una mquina de entrega de caf7 automtica. La mquina de'e permitir a una persona entregar una cantidad de dinero en monedas de$==, &== o *== <ts. "scoger uno de los productos de acuerdo a su precio 4caf7 slo, cortado, descafenado5. "scoger 4si es pertinente5 un nivel de a!.car "ntregar el producto y las vueltas. "l dinero que los usuarios introducen se guarda en un recipiente diferente al utili!ado para proporcionar las vueltas. "ste .ltimo se encuentra ordenado seg.n el valor de las monedas. "#isten estados de error de la mquina:

o o

0al funcionamiento. Do e#istencia de vueltas

o Do e#istencia de ingredientes. "l usuario puede, antes de escoger el a!.car, cancelar la operacin en cualquier momento. <ara ello, utili!ar un 'otn e#istente en el frontal de la mquina y cuyo .nico o'(etivo ser este.

"l archivo :ose con la solucin propuesta se encuentra A1/2 41ugerenciaB %espues de descargarlo renom're el archivo como maqcafe=$.mdl5