Está en la página 1de 33

DIAGRAMAS DE SECUENCIA A pesar de que a partir de los diagramas de casos de uso y de los diagramas de robustez ya tenemos entre un 75 y 80 por

ciento de atributos de nuestras clases identificados, es hasta el diagrama de secuencia donde se empiezan a ver que mtodos llevaran las clases de nuestro sistema. El diagrama de secuencias es el ncleo de nuestro modelo dinmico, y muestra todos los cursos alternos que pueden tomar todos nuestros casos de uso. Los diagramas de secuencias se componen de 4 elementos que son: el curso de accin, los objetos, los mensajes y los mtodos (operaciones). Los 4 pasos a seguir: A continuacin se dar una muy breve descripcin de los 4 pasos que se deben de seguir para dibujar correctamente diagramas de secuencia de ICONIX: Paso 1: Copia el texto de la especificacin de tu caso de uso y pgalo en la parte superior de tu diagrama de secuencia. Con esto siempre se tendr en cuenta que es lo que debe de hacer el diagrama de secuencia. Paso 2: Cada uno de los objetos entidad de tu diagrama de robustez es una instancia de la clase que debe de ser agregada a tu diagrama de secuencias ya que representa tu modelo esttico. Hay que ser muy meticuloso con este paso, ya que representa el ltimo de tu modelo esttico antes de codificar. Paso 3: Agrega las interfaces del diagrama de robustez. Con esto ya tenemos el diagrama de secuencias construido. Ahora, el cuarto paso es para decidir cuales mtodos iran en cuales clases, lo cual es la esencia del modelo de iteraciones. Paso 4: Pon los mtodos en las clases, lo cual significa convertir los controles uno por uno de tu diagrama de robustez en mtodos y mensajes. Verifica que para cada control dibujado le pertenecen los mensajes correctos dentro del diagrama de secuencias. Diagramas de Actividad El Diagrama de Actividad es un diagrama de flujo del proceso multipropsito que se usa para modelar el comportamiento del sistema. Los diagramas de actividad se pueden usar para modelar un Caso de Uso, o una clase, o un mtodo complicado. Un diagrama de actividad es parecido a un diagrama de flujo; la diferencia clave es que los diagramas de actividad pueden mostrar

procesado paralelo (parallel processing). Esto es importante cuando se usan diagramas de actividad para modelar procesos 'bussiness' algunos de los cuales pueden actuar en paralelo, y para modelar varios hilos en los programas concurrentes. Usando Diagramas de Actividad para modelar Casos de Uso Los Diagramas de Actividad ofrecen una herramienta grfica para modelar el proceso de un Caso de Uso. Se pueden usar como un aadido a una descripcin textual del caso de uso, o para listar los pasos del caso de uso. Una descripcin textual, cdigo, u otros diagramas de actividad pueden detallar ms la actividad. Usando Diagramas de Actividad para modelar Clases Cuando se modela el comportamiento de una clase, un diagrama de estado de UML se suele usar normalmente para modelar situaciones donde ocurren eventos asincrnicos. El diagrama de actividad se usa contado todos o la mayora de los elementos representan el desarrollo de los pasos dados por las acciones generadas internamente. Deberas asignar actividades a las clases antes de terminar con el diagrama de actividad. Los mensajes se muestran como flechas entre lneas de vida. Un diagrama de secuencia puede mostrar un escenario, es decir, una historia individual de transaccin. Un uso de un diagrama de secuencia es mostrar la secuencia del comportamiento de un caso de uso. Un dilogo de secuencia posee dos dimensiones: la vertical representa el tiempo, la horizontal representa los objetos que participan en la interaccin. En general, el tiempo avanza hacia abajo dentro de la pgina (se pueden invertir los ejes si se desea). Con frecuencia slo son importantes las secuencias de mensajes pero en aplicaciones de tiempo real el eje temporal puede ser una mtrica. La ordenacin horizontal de los objetos no tiene ningn significado.

Diagrama de Actividad Diagrama de Secuencia

Ejemplo de Diagrama de Secuencia

Diagrama que muestra las interacciones entre los objetos organizadas en una secuencia temporal. En particular muestra los objetos participantes en la interaccin y la secuencia de mensajes intercambiados. Representa una interaccin, un conjunto de comunicaciones entre objetos organizadas visualmente por orden temporal. A diferencia de los diagramas de colaboracin, los diagramas de secuencia incluyen secuencias temporales pero no incluyen las relaciones entre objetos. Pueden existir de forma de descriptor (describiendo todos los posibles escenarios) y en forma de instancia (describiendo un escenario real). Dentro del conjunto de mensajes representados dispuestos en una secuencia temporal, cada rol en la secuencia se muestra como una lnea de vida, es decir, una lnea vertical que representa el rol durante cierto plazo de tiempo, con la interaccin completa. Los mensajes se muestran como flechas entre lneas de vida. Un diagrama de secuencia puede mostrar un escenario, es decir, una historia individual de transaccin. Un uso de un diagrama de secuencia es mostrar la secuencia del comportamiento de un caso de uso. Un dilogo de secuencia posee dos dimensiones: la vertical representa el tiempo, la horizontal representa los objetos que participan en la interaccin. En general, el tiempo avanza hacia abajo dentro de la pgina (se pueden invertir los ejes si se desea). Con frecuencia slo son importantes las secuencias de mensajes pero en aplicaciones de tiempo real el eje temporal puede ser una mtrica. La ordenacin horizontal de los objetos no tiene ningn significado. Un dilogo de secuencia posee dos dimensiones: la vertical representa el tiempo, la horizontal representa los objetos que participan en la interaccin. En general, el tiempo avanza hacia abajo dentro de la pgina (se pueden invertir los ejes si se desea). Con frecuencia slo son importantes las secuencias de mensajes pero en aplicaciones de tiempo real el eje temporal puede ser una mtrica. La ordenacin horizontal de los objetos no tiene ningn significado. Cada objeto representa una columna distinta, se pone un smbolo de objeto al final de la flecha que representa el mensaje que ha creado el objeto; est situada en el punto vertical que denota el instante en que se crea el objeto. Esta se conoce como lnea de vide del objeto. Se pone una X grande en el punto en que deja de existir el objeto o en el punto en que el objeto se destruye a s mismo. Para el periodo durante el cual est activo

el objeto, la lnea de vida se ampla para ser una lnea doble continua. Si el objeto se llama a s mismo, entonces se superpone otra copia de la doble lnea para mostrar la doble activacin. El orden relativo de los objetos no tiene significado an cuando resulta til organizarlos de modo que se minimice la distancia de las flechas. Cada mensaje se representa mediante una flecha horizontal que va desde la lnea de vida del objeto que envi el mensaje hasta la lnea de vida del objeto que ha recibido el mensaje. Si un mensaje requiere un cierto tiempo para llegar a su destino, entonces la flecha del mensaje se dibuja diagonalmente hacia abajo. Para un flujo de objeto asncrono entre objetos activos, los objetos se representan mediante lneas dobles continuas y los mensajes se representan como flechas. Se pueden enviar simultneamente dos mensajes pero no se pueden recibir simultneamente porque no se puede garantizar una recepcin simultnea. Las bifurcaciones se muestran partiendo la lnea de vida del objeto. Cada bifurcacin puede enviar y recibir mensajes. Eventualmente las lneas de vida del objeto tienen que fusionarse de nuevo. Un diagrama de secuencia tambin se puede mostrar en forma de descriptor, en el cual los constituyentes son roles en lugar de objetos. Este diagrama muestra en el caso general, no una sola ejecucin del mismo. Los diagramas del nivel de descriptores se dibujan sin subrayados porque los smbolos denotan roles y no objetos individuales. Diagrama de Estado

Ejemplo de Diagrama de Estado

Un Diagrama es una representacin grfica de una coleccin de elementos de modelado, a menudo dibujada como un grafo conexo de arcos (relaciones) y vrtices (otros elementos del modelo). Un

diagrama no es un elemento semntico, un diagrama muestra representaciones de elementos semnticos del modelo, pero su significado no se ve afectado por la forma en que son representados. Un diagrama est contenido dentro de un paquete. La mayora de los diagramas de UML y algunos smbolos complejos son grafos que contienen formas conectadas por rutas. La informacin est sobre todo en la topologa, no en el tamao o la colocacin de los smbolos (hay algunas excepciones como el diagrama de secuencia con un eje mtrico de tiempo). Hay tres clases importantes de relaciones visuales: conexin (generalmente de lneas a formas de dos dimensiones), contencin (de smbolos por formas cerradas de dos dimensiones), y adhesin visual (un smbolo que est "cerca" de otro en un diagrama). Estas relaciones geomtricas se reasignan a conexiones entre nodos en un grfico en la forma analizada de la notacin. La notacin de UML est pensada para ser dibujada en superficies bidimensionales. Algunas formas bidimensionales son proyecciones de formas tridimensionales tales como cubos, pero todava se representan como conos en una superficie bidimensional. Hay cuatro clases de construcciones grficas que se usan en la notacin de UML: conos, smbolos bidimensionales, rutas y cadenas. Un cono es una figura grfica con un tamao y forma fijos. No se ampla para contener a su contenido. Los iconos pueden aparecer dentro de smbolos de rea, como terminadores en las rutas o como smbolos independientes que puedan o no conectar con las rutas. Los smbolos de dos dimensiones tienen altura y anchura variables, y pueden ampliarse para permitir otras cosas tales como listas de cadenas o de otros smbolos. Muchos de ellos estn divididos en compartimientos similares o de tipos diferentes. Las rutas se conectan con los smbolos, el arrastrar o suprimir uno de ellos afecta a su contenido y las rutas conectadas. Una ruta es una secuencia de segmentos de recta o de curva que se unen en sus puntos finales. Conceptualmente una ruta es una sola entidad topolgica, aunque sus segmentos se pueden manipular grficamente. Las cadenas presentan varias clases de informacin en una forma "no analizada", UML asume que cada uso de una cadena en la

notacin tiene una sintaxis por la cual pueda ser analizada la informacin del modelo subyacente. Las cadenas pueden existir como el contenido de un compartimiento, como elementos en las listas, como etiquetas unidas a los smbolos o a las rutas, o como elementos independientes en un diagrama.

UML est compuesto por los siguientes diagramas:

rea

Vista

Diagramas

Conceptos Principales

Clase, asociacin, generalizacin, Diagrama de Vista Esttica dependencia, Clases realizacin, interfaz.

Caso de Uso, Diagramas Vista de Casos Actor, asociacin, de Casos de de Uso extensin, Uso generalizacin. Estructural Diagramas Vista de de Implementaci Componente n s Componente, interfaz, dependencia, realizacin.

Vista de Despliegue

Diagramas de Despliegue

Nodo, componente, dependencia, localizacin.

Dinmica

Vista de Estados de mquina

Diagramas de Estados

Estado, evento, transicin, accin.

Vista de

Diagramas

Estado, actividad,

actividad

de Actividad

transicin, determinacin, divisin, unin.

Diagramas de Secuencia Vista de interaccin

Interaccin, objeto, mensaje, activacin.

Colaboracin, Diagramas interaccin, rol de de colaboracin, Colaboracin mensaje.

Administracin o Gestin de modelo

Vista de Gestin de modelo

Diagramas de Clases

Paquete, subsistema, modelo.

Extensin de UML

Todas

Todos

Restriccin, estereotipo, valores, etiquetados.

Diagramas de Objetos Objeto es una entidad discreta con lmites bien definidos y con identidad, es una unidad atmica que encapsula estado y comportamiento. La encapsulacin en un objeto permite una alta cohesin y un bajo acoplamiento. El Objeto es reconocido tambin como una instancia de la clase a la cual pertenece. La encapsulacin presenta tres ventajas bsicas: 1. Se protegen los datos de accesos indebidos 2. El acoplamiento entre las clases se disminuye 3. Favorece la modularidad y el mantenimiento Un objeto se puede ver desde dos perspectivas relacionadas: como una entidad de un determinado instante de tiempo que posee un valor especfico (Un objeto puede caracterizar una entidad fsica -coche-) y como un poseedor de identidad que tiene distintos valores

a lo largo del tiempo (abstracta -ecuacin matemtica-). Cada objeto posee su propia identidad exclusiva y se puede hacer referencia a l mediante una denominacin exclusiva que permite accederle. El Modelado de Objetos permite representar el ciclo de vida de los objetos a travs de sus interacciones. En UML, un objeto se representa por un rectngulo con un nombre subrayado.

Objeto = Identidad + Estado + Comportamiento El estado est representado por los valores de los atributos. Un atributo toma un valor en un dominio concreto.

La regla general para la notacin de instancias consiste en utilizar el mismo smbolo geomtrico que el descriptor. En la instancia se muestran los posibles valores pero las propiedades compartidas slo se pone de manifiesto en el descriptor. La notacin cannica es un rectngulo con tres compartimientos. En el primero va el nombre del objeto, en el segundo sus atributos y en el tercero sus operaciones. Este ltimo puede ser omitido si as se prefiere. Oid (Object Identifier) Cada objeto posee un oid. El oid establece la identidad del objeto y tiene las siguientes caractersticas:

Constituye un identificador nico y global para cada objeto dentro del sistema. Es determinado en el momento de la creacin del objeto. Es independiente de la localizacin fsica del objeto, es decir, provee completa independencia de localizacin. Es independiente de las propiedades del objeto, lo cual implica independencia de valor y de estructura. No cambia durante toda la vida del objeto. Adems, un oid no se reutiliza aunque el objeto deje de existir.

No se tiene ningn control sobre los oids y su manipulacin resulta transparente. Sin embargo, es preciso contar con algn medio para hacer referencia a un objeto utilizando referencias del dominio (valores de atributos). Tipos de flujo de control: 1. 2. 3. 4. 5. 6. Llamada a procedimiento o flujo de control anidado Flujo de control plano Retorno de una llamada a procedimiento Otras variaciones Esperado (balking) Cronometrado (time-out)

Diagrama de Objetos

Diagramas de Clases El Diagrama de Clases es el diagrama principal para el anlisis y diseo. Un diagrama de clases presenta las clases del sistema con sus relaciones estructurales y de herencia. La definicin de clase incluye definiciones para atributos y operaciones. El modelo de casos de uso aporta informacin para establecer las clases, objetos, atributos y operaciones. El mundo real puede ser visto desde abstracciones diferentes (subjetividad) Mecanismos de abstraccin: 1. 2. 3. 4. Clasificacin / Instanciacin Composicin / Descomposicin Agrupacin / Individualizacin Especializacin / Generalizacin

La clasificacin es uno de los mecanismos de abstraccin ms utilizados. La clase define el mbito de definicin de un conjunto de objetos, y cada objeto pertenece a una clase, Los objetos se crean por instanciacin de las clases. Cada clase se representa en un rectngulo con tres compartimientos:

nombre de la clase atributos de la clase operaciones de la clase

Los atributos de una clase no deberan ser manipulables directamente por el resto de objetos. Por esta razn se crearon niveles de visibilidad para los elementos que son:

(-) Privado: es el ms fuerte. Esta parte es totalmente invisible (excepto para clases friends en terminologa C++) (#) Los atributos/operaciones protegidos estn visibles para las clases friends y para las clases derivadas de la original. (+) Los atributos/operaciones pblicos son visibles a otras clases (cuando se trata de atributos se est transgrediendo el principio de encapsulacin)

Relaciones entre clases: Los enlaces entre objetos pueden representarse entre las respectivas clases y sus formas de relacin son:

Asociacin y Agregacin (vista como un caso particular de asociacin) Generalizacin/Especializacin.

Las relaciones de Agregacin y Generalizacin forman jerarquas de clases. Asociacin: La asociacin expresa una conexin bidireccional entre objetos. Una asociacin es una abstraccin de la relacin existente en los enlaces entre los objetos. Puede determinarse por la especificacin de multiplicidad (mnima...mxima)

Uno y slo uno 0..1 Cero o uno M..N Desde M hasta N (enteros naturales) * Cero o muchos 0..* Cero o muchos 1..* Uno o muchos (al menos uno)

Agregacin: La agregacin representa una relacin parte de entre objetos. En UML se proporciona una escasa caracterizacin de la agregacin. Esta relacin puede ser caracterizada con precisin determinando las relaciones de comportamiento y estructura que existen entre el objeto agregado y cada uno de sus objetos componentes. Una agregacin se podra caracterizar segn: Puede el objeto parte comunicarse directamente con objetos externos al objeto agregado? No => inclusiva

Si

=>

no

inclusiva

Puede cambiar La composicin del objeto agregado?

Si No esttica

=> =>

dinmica

Diagrama de Clases y Diagramas de Objetos pertenecen a dos vistas complementarias del modelo. Un Diagrama de Clases muestra la abstraccin de una parte del dominio. Un Diagrama de Objetos representa una situacin concreta del dominio. Las clases abstractas no son instanciadas. Generalizacin: Permite gestionar la complejidad mediante un ordenamiento taxonmico de clases, se obtiene usando los mecanismos de abstraccin de Generalizacin y/o Especializacin. La Generalizacin consiste en factorizar las propiedades comunes de un conjunto de clases en una clase ms general. Los nombres usados: clase padre clase hija. Otros nombres: superclase - subclase, clase base - clase derivada. Las subclases heredan propiedades de sus clases padre, es decir, atributos y operaciones (y asociaciones) de la clase padre estn disponibles en sus clases hijas. La Generalizacin y Especializacin son equivalentes en cuanto al resultado: la jerarqua y herencia establecidas. Generalizacin y Especializacin no son operaciones reflexivas ni simtricas pero s transitivas. La especializacin es una tcnica muy eficaz para la extensin y reutilizacin. La nocin de clase est prxima a la de conjunto. Dada una clase, podemos ver el conjunto relativo a las instancias que posee o bien relativo a las propiedades de la clase. Generalizacin y especializacin expresan relaciones de inclusin entre conjuntos Diagrama de Clases

Ejemplo de Diagrama de Clases

Diagramas de Caso de Uso Casos de Uso es una tcnica para capturar informacin de cmo un sistema o negocio trabaja, o de cmo se desea que trabaje. No pertenece estrictamente al enfoque orientado a objeto, es una tcnica para captura de requisitos. Los Casos de Uso (Ivar Jacobson) describen bajo la forma de acciones y reacciones el comportamiento de un sistema desde el p.d.v. del usuario. Permiten definir los lmites del sistema y las relaciones entre el sistema y el entorno. Los Casos de Uso son descripciones de la funcionalidad del sistema independientes de la implementacin. Comparacin con respecto a los Diagramas de Flujo de Datos del Enfoque Estructurado. Los Casos de Uso cubren la carencia existente en mtodos previos (OMT, Booch) en cuanto a la determinacin de requisitos.

Los Casos de Uso particionan el conjunto de necesidades atendiendo a la categora de usuarios que participan en el mismo. Estn basados en el lenguaje natural, es decir, es accesible por los usuarios.

Actores Principales: personas que usan el sistema. Secundarios: personas que mantienen o administran el sistema. Material externo: dispositivos materiales imprescindibles que forman parte del mbito de la aplicacin y deben ser utilizados. Otros sistemas: sistemas con los que el sistema interacta. La misma persona fsica puede interpretar varios papeles como actores distintos, el nombre del actor describe el papel desempeado. Los Casos de Uso se determinan observando y precisando, actor por actor, las secuencias de interaccin, los escenarios, desde el punto de vista del usuario. Los casos de uso intervienen durante todo el ciclo de vida. El proceso de desarrollo estar dirigido por los casos de uso. Un escenario es una instancia de un caso de uso. UML define cuatro tipos de relacin en los Diagramas de Casos de Uso: Comunicacin Inclusin: una instancia del Caso de Uso origen incluye tambin el comportamiento descrito por el Caso de Uso destino. include reemplaz al denominado uses Extensin: el Caso de Uso origen extiende el comportamiento del Caso de Uso destino. extend Herencia: el Caso de Uso origen hereda la especificacin del Caso de Uso destino y posiblemente la modifica y/o ampla. Parmetros para la construccin de un caso de uso: Un caso de uso debe ser simple, inteligible, claro y conciso. Generalmente hay pocos actores asociados a cada Caso de Uso. Preguntas clave: Cules son las tareas del actor?

Qu informacin crea, guarda, modifica, destruye o lee el actor? Debe el actor notificar al sistema los cambios externos? Debe el sistema informar al actor de los cambios internos? La descripcin del Caso de Uso comprende: El inicio: cundo y qu actor lo produce? El fin: cundo se produce y qu valor devuelve? La interaccin actor-caso de uso: qu mensajes intercambian ambos? Objetivo del caso de uso: qu lleva a cabo o intenta? Cronologa y origen de las interacciones Repeticiones de comportamiento: qu operaciones son iteradas? Situaciones opcionales: qu ejecuciones alternativas se presentan en el caso de uso?

Diagrama de Caso de Uso

Diagrama de Actividades El Diagrama de Actividad es una especializacin del Diagrama de Estado, organizado respecto de las acciones y usado para especificar: Un mtodo Un caso de uso

Un estado de actividad representa una actividad: un paso en el flujo de trabajo o la ejecucin de una operacin. Un grafo de actividades describe grupos secuenciales y concurrentes de actividades. Los grafos de actividades se muestran en diagramas de actividades. Las actividades se enlazan por transiciones automticas. Cuando una actividad termina se desencadena el paso a la siguiente actividad. Un diagrama de actividades es provechoso para entender el comportamiento de alto nivel de la ejecucin de un sistema, sin profundizar en los detalles internos de los mensajes. Los parmetros de entrada y salida de una accin se pueden mostrar usando las relaciones de flujo que conectan la accin y un estado de flujo de objeto. Un proceso de negocio (Workflow)

Un grafo de actividades contiene estados de actividad que representa la ejecucin de una secuencia en un procedimiento, o el funcionamiento de una actividad en un flujo de trabajo. En vez de esperar un evento, como en un estado de espera normal, un estado de actividad espera la terminacin de su cmputo. Cuando la actividad termina, entonces la ejecucin procede al siguiente estado de actividad dentro del diagrama. Una transicin de terminacin es activada en un diagrama de actividades cuando se completa la actividad precedente. Los estados de actividad no tienen transiciones con eventos explcitos, peor pueden ser abortados por transiciones en estados que los incluyen. Un grafo de actividades puede contener tambin estados de accin, que son similares a los de actividad pero son atmicos y no permiten transiciones mientras estn activos. Los estados de accin se deben utilizar para las operaciones cortas de mantenimiento. Un diagrama de actividades puede contener bifurcaciones, as como divisiones de control en hilos concurrentes. Los hilos concurrentes representan actividades que se pueden realizar concurrentemente por los diversos objetos o personas. La concurrencia se representa a partir de la agregacin, en la cual cada objeto tiene su propio hilo. Las actividades concurrentes se pueden realizar simultneamente o en cualquier orden. Un diagrama de actividades es como un organigrama tradicional, excepto que permite el control de concurrencia adems del control secuencial. Notacin:

Un estado de actividad se representa como una caja con los extremos redondeados que contiene una descripcin de actividad. Las transacciones simples de terminacin se muestran como flechas. Las ramas se muestran como condiciones de guarda en transiciones o como diamantes con mltiples flechas de salida etiquetadas. Una divisin o una unin de control se representan con mltiples flechas que entran o salen de la barra gruesa de sincronizacin. Cuando es necesario incluir eventos externos, la recepcin de un evento se puede mostrar como un disparador en una transicin, o como un smbolo especial que denota la espera de una seal. A menudo es til organizar las actividades en un modelo segn su responsabilidad. Esta clase de asignacin puede mostrarse organizando las actividades en regiones distintas separadas por lneas en el diagrama. Debido a su aspecto, esto es conocido como Calles. Un diagrama de actividades puede mostrar el flujo de objetos como valores. Para un valor de salida, se dibuja una flecha con lnea discontinua desde la actividad al objeto. Para un valor de entrada, se dibuja una flecha con lnea discontinua desde el objeto a una actividad. Diagrama de Actividades

Ejemplo de Diagrama de Actividades

Diagramas de Estado Muestra el conjunto de estados por los cuales pasa un objeto durante su vida en una aplicacin, junto con los cambios que permiten pasar de un estado a otro. Los Diagramas de Estado representan autmatas de estados finitos, desde el p.d.v. de los estados y las transiciones. Son tiles slo para los objetos con un comportamiento significativo. Cada objeto est en un estado en cierto instante. El estado est caracterizado parcialmente por los valores algunos de los atributos del objeto. El estado en el que se encuentra un objeto determina su comportamiento. Cada objeto sigue el comportamiento descrito en el Diagrama de Estados asociado a su clase. Los Diagramas de Estados y escenarios son complementarios, los Diagramas de Estados son autmatas jerrquicos que permiten expresar concurrencia, sincronizacin y jerarquas de objetos, son grafos dirigidos y deterministas. La transicin entre estados es instantnea y se debe a la ocurrencia de un evento. Estado

Identifica un periodo de tiempo del objeto (no instantneo) en el cual el objeto est esperando alguna operacin, tiene cierto estado caracterstico o puede recibir cierto tipo de estmulos. Se representa mediante un rectngulo con los bordes redondeados, que puede tener tres compartimientos: uno para el nombre, otro para el valor caracterstico de los atributos del objeto en ese estado y otro para las acciones que se realizan al entrar, salir o estar en un estado entry, exit o do, respectivamente Eventos Es una ocurrencia que puede causar la transicin de un estado a otro de un objeto. Esta ocurrencia puede ser una de varias cosas: o de Condicin que toma el valor de verdadero o falso Recepcin de una seal de otro objeto en el modelo Recepcin de un mensaje Paso de cierto perodo de tiempo, despus de entrar al estado cierta hora y fecha particular

El nombre de un evento tiene alcance dentro del paquete en el cual est definido, no es local a la clase que lo nombre. Envo de mensajes Adems de mostrar y transicin de estados por medio de eventos, puede representarse el momento en el cual se envan mensajes a otros objetos. Esto se realiza mediante una lnea punteada dirigida al diagrama de estados del objeto receptor del mensaje. Transicin simple Una transicin simple es una relacin entre dos estados que indica que un objeto en el primer estado puede entrar al segundo estado y ejecutar ciertas operaciones, cuando un evento ocurre y si ciertas condiciones son satisfechas. Se representa como una lnea slida entre dos estados, que puede venir acompaada de un texto con el siguiente formato: event-signature "^"send-clause "[" guard-condition] "/" action-expression

event-signature es la descripcin del evento que da lugar la transicin, guard-condition son las condiciones adicionales al evento necesarias para que la transicin ocurra, action-expression es un mensaje al objeto o a otro objeto que se ejecuta como resultado de la transicin y el cambio de estado y send-clause son acciones adicionales que se ejecutan con el cambio de estado, por ejemplo, el envo de eventos a otros paquetes o clases.

Transicin interna Es una transicin que permanece en el mismo estado, en vez de involucrar dos estados distintos. Representa un evento que no causa cambio de estado. Se denota como una cadena adicional en el compartimiento de acciones del estado. Acciones: Podemos especificar la solicitud de un servicio a otro objeto como consecuencia de la transicin. Se puede especificar el ejecutar una accin como consecuencia de entrar, salir, estar en un estado, o por la ocurrencia de un evento Generalizacin de Estados: Podemos reducir la complejidad de estos diagramas usando la generalizacin de estados. Distinguimos as entre superestado y subestados. Un estado puede contener varios subestados disjuntos. Los subestados heredan las variables de estado y las transiciones externas. La agregacin de estados es la composicin de un estado a partir de varios estados independientes. La composicin es concurrente por lo que el objeto estar en alguno de los estados de cada uno de los subestados concurrentes. La destruccin de un objeto es efectiva cuando el flujo de control del autmata alcanza un estado final no anidado. La llegada a un estado final anidado implica la subida al superestado asociado, no el fin del objeto. Subestados Un estado puede descomponerse en subestados, con transiciones entre ellos y conexiones al nivel superior. Las conexiones 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. Transaccin Compleja Una transicin compleja relaciona tres o ms estados en una transicin de mltiples fuentes y/o mltiples destinos. Representa la subdivisin en threads del control del objeto o una sincronizacin. Se representa como una lnea vertical de la cual salen o entran varias lneas de transicin de estado. Transicin a estados anidados

Una transicin de hacia un estado complejo (descrito mediante estados anidados) significa la entrada al estado inicial del subdiagrama. Las transiciones que salen del estado complejo se entienden como transiciones desde cada uno de los subestados hacia afuera (a cualquier nivel de profundidad). Transiciones temporizadas Las esperas son actividades que tienen asociada cierta duracin. La actividad de espera se interrumpe cuando el evento esperado tiene lugar. Este evento desencadena una transicin que permite salir del estado que alberga la actividad de espera. El flujo de control se transmite entonces a otro estado. Diagrama de Estado

Ejemplo de Diagrama de Estado

Diagramas de interaccin. Diagramas de secuencia colaboracin La vista de interaccin describe secuencias de intercambios de mensajes entre los roles que implementan el comportamiento de un sistema. Un rol clasificador, o simplemente "un rol", es la descripcin de un objeto, que desempea un determinado papel dentro de una interaccin, distinto de los otros objetos de la misma clase. Esta visin proporciona una vista integral del comportamiento del sistema, es decir, muestra el flujo de control a travs de muchos objetos. La vista de interaccin se exhibe en dos diagramas centrados en distintos aspectos pero complementarios: centrados en los objetos individuales y centrados en objetos cooperantes. Los objetos interactan para realizar colectivamente los servicios ofrecidos por las aplicaciones. Los diagramas de interaccin muestran cmo se comunican los objetos en una interaccin. Existen dos tipos de diagramas de interaccin: el Diagrama de Colaboracin y el Diagrama de Secuencia. El Diagrama de Secuencia es ms adecuado para observar la perspectiva cronolgica de las interacciones, muestra la secuencia explcita de mensajes y son mejores para especificaciones de tiempo real y para escenarios complejos. El Diagrama de Colaboracin ofrece una mejor visin espacial mostrando los enlaces de comunicacin

entre objetos, muestra las relaciones entre objetos y son mejores para comprender todos los efectos que tiene un objeto y para el diseo de procedimientos. El diagrama de Colaboracin puede obtenerse automticamente a partir del correspondiente diagrama de Secuencia (o viceversa). Diagramas de Secuencia: 1. Muestra la secuencia de mensajes entre objetos durante un escenario concreto 2. Cada objeto viene dado por una barra vertical 3. El tiempo transcurre de arriba abajo 4. Cuando existe demora entre el envo y la atencin se puede indicar usando una lnea oblicua Diagramas de Colaboracin: 1. Muestra la secuencia de mensajes entre objetos durante un escenario concreto 2. Cada objeto viene dado por una barra vertical 3. El tiempo transcurre de arriba abajo 4. Cuando existe demora entre el envo y la atencin se puede indicar usando una lnea oblicua Diagramas de Colaboracin: 1. Son tiles en la fase exploratoria para identificar objetos. 2. La distribucin de los objetos en el diagrama permite observar adecuadamente la interaccin de un objeto con respecto de los dems 3. La estructura esttica viene dada por los enlaces; la dinmica por el envo de mensajes por los enlaces Qu es una Colaboracin? Es una descripcin de una coleccin de objetos que interactan para implementar un cierto comportamiento dentro de un contexto. Describe una sociedad de objetos cooperantes unidos para realizar un cierto propsito. Una colaboracin contiene ranuras que son rellenadas por los objetos y enlaces en tiempo de ejecucin. Una ranura de colaboracin se llama Rol porque describe el propsito de un objeto o un enlace dentro de la colaboracin. Un rol clasificador representa una descripcin de los objetos que pueden participar en una ejecucin de la colaboracin, un rol de asociacin representa una descripcin de los enlaces que pueden participar en una ejecucin de colaboracin. Un rol de clasificador es una asociacin que est limitada por tomar parte en la colaboracin. Las relaciones entre roles de clasificador y asociacin dentro de una

colaboracin slo tienen sentido en ese contexto. En general fuera de ese contexto no se aplican las mismas relaciones. Una Colaboracin tiene un aspecto estructural y un aspecto de comportamiento. El aspecto estructural es similar a una vista esttica: contiene un conjunto de roles y relaciones que definen el contexto para su comportamiento. El comportamiento es el conjunto de mensajes intercambiados por los objetos ligados a los roles. Tal conjunto de mensajes en una colaboracin se llama Interaccin. Una colaboracin puede incluir una o ms interacciones. Qu es una Interaccin? Es el conjunto de mensajes intercambiados por los roles de clasificador a travs de los roles de asociacin. Un mensaje es una comunicacin unidireccional entre dos objetos, un flujo de objeto con la informacin de un remitente a un receptor. Un mensaje puede tener parmetros que transporten valores entre objetos. Un mensaje puede ser una seal (comunicacin explcita entre objetos, con nombre y asncrona) o una llamada (la invocacin sncrona de una operacin con un mecanismo para el control, que retorna posteriormente al remitente). Un patrn de intercambios de mensajes que se realizan para lograr un propsito especfico es lo que se denomina una interaccin. Qu es Patrn? Un patrn es una colaboracin parame trizada, junto con las pautas sobre cundo utilizarlo. Un parmetro se puede sustituir por diversos valores, para producir distintas colaboraciones. Los parmetros sealan generalmente las ranuras para las clases. El uso de un patrn se representa como una elipse de lnea discontinua conectada con cada una de las clases por una lnea discontinua, que se etiqueta con el nombre del rol.

Diagramas de Despliegue

Los Diagramas de Despliegue muestran la disposicin fsica de los distintos nodos que componen un sistema y el reparto de los componentes sobre dichos nodos. La vista de despliegue representa la disposicin de las instancias de componentes de ejecucin en instancias de nodos conectados por enlaces de comunicacin. Un nodo es un recurso de ejecucin tal como un computador, un dispositivo o memoria. Los estereotipos permiten precisar la naturaleza del equipo: Dispositivos Procesadores Memoria Los nodos se interconectan mediante soportes bidireccionales que pueden a su vez estereotiparse. Esta vista permite determinar las consecuencias de la distribucin y la asignacin de recursos. Las instancias de los nodos pueden contener instancias de ejecucin, como instancias de componentes y objetos. El modelo puede mostrar dependencias entre las instancias y sus interfaces, y tambin modelar la migracin de entidades entre nodos u otros contenedores. Esta vista tiene una forma de descriptor y otra de instancia. La forma de instancia muestra la localizacin de las instancias de los componentes especficos en instancias especficas del nodo como parte de una configuracin del sistema. La forma de descriptor muestra qu tipo de componentes pueden subsistir en qu tipos de nodos y qu tipo de nodos se pueden conectar, de forma similar a una diagrama de clases, esta forma es menos comn que la primera. Diagramas de Componentes Los diagramas de componentes describen los elementos fsicos del sistema y sus relaciones. Muestran las opciones de realizacin incluyendo cdigo fuente, binario y ejecutable. Los componentes representan todos los tipos de elementos software que entran en la fabricacin de aplicaciones informticas. Pueden ser simples archivos, paquetes de Ada, bibliotecas cargadas dinmicamente, etc. Las relaciones de dependencia se utilizan en los diagramas de componentes para indicar que un componente utiliza los servicios ofrecidos por otro componente. Un diagrama de componentes representa las dependencias entre componentes software, incluyendo componentes de cdigo fuente, componentes del cdigo binario, y componentes ejecutables. Un mdulo de software se puede representar como componente. Algunos componentes existen en tiempo de compilacin, algunos en tiempo de enlace y algunos en tiempo de ejecucin, otros en varias de stas. Un componente de slo compilacin es aquel que es significativo

nicamente en tiempo de compilacin. Un componente ejecutable es un programa ejecutable. Un diagrama de componentes tiene slo una versin con descriptores, no tiene versin con instancias. Para mostrar las instancias de los componentes se debe usar un diagrama de despliegue. Un diagrama de componentes muestra clasificadores de componentes, las clases definidas en ellos, y las relaciones entre ellas. Los clasificadores de componentes tambin se pueden anidar dentro de otros clasificadores de componentes para mostrar relaciones de definicin. Un diagrama que contiene clasificadores de componentes y de nodo se puede utilizar para mostrar las dependencias del compilador, que se representa como flechas con lneas discontinuas (dependencias) de un componente cliente a un componente proveedor del que depende. Los tipos de dependencias son especficos del lenguaje y se pueden representar como estereotipos de las dependencias. El diagrama tambin puede usarse para mostrar interfaces y las dependencias de llamada entre componentes, usando flechas con lneas discontinuas desde los componentes a las interfaces de otros componentes. El diagrama de componente hace parte de la vista fsica de un sistema, la cual modela la estructura de implementacin de la aplicacin por s misma, su organizacin en componentes y su despliegue en nodos de ejecucin. Esta vista proporciona la oportunidad de establecer correspondencias entre las clases y los componentes de implementacin y nodos. La vista de implementacin se representa con los diagramas de componentes. Diagrama de Componentes

Qu es Componente? Es una parte fsica reemplazable de un sistema que empaqueta su implementacin y es conforme a un conjunto de interfaces a las que proporciona su realizacin. Algunos componentes tienen identidad y pueden poseer entidades fsicas, que incluyen objetos en tiempo de ejecucin, documentos, bases de datos, etc. Los componentes existentes en el dominio de la implementacin son unidades fsicas en los computadores que se pueden conectar con otros componentes, sustituir, trasladar, archivar, etc. Los componentes tienen dos caractersticas: Empaquetan el cdigo que implementa la funcionalidad de un sistema, y algunas de sus propias instancias de objetos que constituyen el estado del sistema. Los llamados ltimos componentes de la identidad, porque sus instancias poseen identidad y estado. Cdigo: Un componente contiene el cdigo para las clases de implementacin y otros elementos. Un componente de cdigo fuente es un paquete para el cdigo fuente de las clases de implementacin. Algunos lenguajes de programacin distinguen archivos de declaracin de los archivos de mtodo, pero todos son componentes. Un componente de cdigo binario es un paquete para el cdigo compilado. Una biblioteca del cdigo binario es un componente. Cada tipo de componente contiene el cdigo para las clases de implementacin que realizan algunas clases e interfaces lgicas. La relacin de realizacin asocia un componente con las clases y las

interfaces lgicas que implementan sus clases de implementacin. Las interfaces de un componente describen la funcionalidad que aporta. Cada operacin de la interfaz debe hacer referencia eventualmente a un elemento de la implementacin disponible en el componente. La estructura esttica, ejecutable de una implementacin de un sistema se puede representar como un conjunto interconectado de componentes. Las dependencias entre componentes significan que los elementos de la implementacin en un componente requieren los servicios de los elementos de implementacin en otros componentes. Tal uso requiere que dichos elementos sean de visibilidad pblica. Identidad: Un componente de identidad tiene identidad y estado. Posee los objetos fsicos que estn situados en l. Puede tener atributos, relaciones de composicin con los objetos posedos, y asociaciones con otros componentes. Desde este punto de vista es una clase. Sin embargo la totalidad de su estado debe hacer referencia a las instancias que contiene. Estructura: Un componente ofrece un conjunto de elementos de implementacin, esto significa que el componente proporciona el cdigo para los elementos. Un componente puede tener operaciones e interfaces. Un componente de identidad es un contenedor fsico para las entidades fsicas como bases de datos. Para proporcionar manejadores para sus elementos contenidos, puede tener atributos y asociaciones salientes, que deben ser implementadas por sus elementos de implementacin. Este componente se representa con un rectngulo con dos rectngulos ms pequeos que sobresalen en su lado izquierdo. Las operaciones e interfaces disponibles para los objetos exteriores se pueden representar directamente en el smbolo de clase. Estos son su comportamiento como clase. Los contenidos del subsistema se representan en un diagrama separado. Las dependencias de un componente con otros componentes o elementos del modelo se representan usando lneas discontinuas con la punta de flecha hacia los elementos del proveedor. S un componente es la realizacin de una interfaz, se representa con un crculo unido al smbolo del componente por un segmento de lnea.

Paquetes Cualquier sistema grande se debe dividir en unidades ms pequeas, de modo que las personas puedan trabajar con una cantidad de informacin limitada, a la vez y de modo que los equipos de trabajo no interfieran con el trabajo de los otros. Un paquete es una parte de un modelo. Cada parte del modelo debe pertenecer a un paquete. Pero para ser funcional, la asignacin debe seguir un cierto principio racional, tal como funcionalidad comn, implementacin relacionada y punto de vista comn. UML no impone una regla para componer los paquetes. Los paquetes ofrecen un mecanismo general para la organizacin de los modelos/subsistemas agrupando elementos de modelado. Cada paquete corresponde a un submodelo (subsistema) del modelo (sistema). Los paquetes son unidades de organizacin jerrquica de uso general de los modelos de UML. Pueden ser utilizados para el almacenamiento, el control de acceso, la gestin de la configuracin y la construccin de bibliotecas que contengan fragmentos reutilizables del modelo. Un paquete puede contener otros paquetes, sin lmite de anidamiento pero cada elemento pertenece a (est definido en) slo un paquete. Los paquetes contienen elementos del modelo al ms alto nivel, tales

como clases y sus relaciones, mquinas de estado, diagramas de casos de uso, interacciones y colaboraciones; atributos, operaciones, estados, lneas de vida y mensajes estn contenidos en otros elementos y no aparecen como contenido directo de los paquetes. Dependencias en los paquetes Las dependencias que se presentan entre elementos individuales, pero en un sistema de cualquier tamao, deben ser vistas en un nivel ms alto. Las dependencias entre paquetes resumen dependencias entre los elementos internos a ellos, es decir, las dependencias del paquete son derivables a partir de las dependencias entre los elementos individuales. La presencia de una dependencia entre paquetes implica que existe en un enfoque ascendente (una declaracin de existencia), o que se permite que exista ms adelante en un enfoque descendente (una restriccin que limita cualquier otra relacin), por lo menos un elemento de relacin con el tipo de dependencia indicado entre elementos individuales dentro de los paquetes correspondientes. Las dependencias mltiples del mismo tipo entre elementos individuales se agregan a una sola dependencia entre los paquetes que contienen los elementos. Si las dependencias entre elementos contienen estereotipos, ste puede ser omitido en la dependencia del paquete, para dar una sola dependencia de alto nivel.