Modelo Dinamico UML

download Modelo Dinamico UML

If you can't read please download the document

Transcript of Modelo Dinamico UML

Universidad Nacional de Ingeniera

{

Administracin de Sistemas de Informacin

Objetivos:

Establecer una base solida referente a los distintos diagramas a implementar con la notacin UML

IntroduccinUML quiere decir Unified Modeling Language, es un lenguaje standard para visualizar, especificar, construir y documentar los artefactos de un sistema de software. Puede usarse en las diferentes etapas del ciclo de vida del desarrollo y en diferentes tecnologas de implementacin pues es independiente del proceso de desarrollo de software. Vistas de UML Una vista es un subconjunto de construcciones de modelado que se enfocan en un aspecto en particular del sistema. Las vistas pueden dividirse en tres reas: clasificacin estructural, comportamiento dinmico, y gestin del modelo.

IntroduccinDe forma mas sintetizada podemos decir que: UML es una notacin, no un mtodo. No pre escribe un proceso para modelar un sistema. No obstante, como UML incluye los diagramas de casos de uso, se le considera estar dotado de una aproximacin al diseo centrada en el problema, dichos diagramas nos dan el punto de entrada para analizar los requisitos del sistema, y el problema que necesitamos solucionar. Nosotros estudiaremos las vista

Modelo DinmicoEl modelo dinmico describe el comportamiento del sistema a travs del tiempo. El comportamiento puede ser descripto como una serie de cambios a fotos del sistema tomadas desde la vista esttica.

Las vistas de comportamiento dinmico incluyen: Vista de la Mquina de Estados

Diagrama de Estados (ciclo de vida de objeto)

Vista de Actividades

Diagrama de ActividadesDiagrama de Secuencia Diagrama de Colaboracin

Vista de Interaccin

Modelo Dinmico

InteraccinUna interaccin es un conjunto de mensajes que se intercambian dentro del contexto de una colaboracin por roles de clasificadores (objetos) a travs de enlaces (instancias de asociacin). Cuando una colaboracin existe en tiempo de ejecucin, objetos ocupan los roles de clasificadores e intercambian instancias de mensajes a travs de enlaces (links). Un mensaje es una comunicacin unidireccional entre objetos, un flujo de control con informacin desde un emisor a un receptor. Un mensaje puede tener parmetros. Puede ser una seal (asncrono) o una llamada (sncrono).

InteraccinLos mensajes pueden agruparse en hilos de control secuenciales. Hilos separados representan conjuntos de mensajes concurrentes. La sincronizacin entre hilos es modelada por restricciones entre mensajes en diferentes hilos. Una construccin de sincronizacin puede modelar una bifurcacin (fork) del control, una reunin (join) del control, una ramificacin del control. La secuencia de mensajes puede representarse en dos tipos de diagramas: diagramas de secuencia (se enfocan en la relacin de tiempo) y diagramas de colaboracin (se enfocan en las relaciones entre objetos).

ColaboracinUna colaboracin es una descripcin de una coleccin de objetos que interactan para implementar un comportamiento en un contexto dado. Describe una sociedad de objetos cooperantes ensamblados para llevar adelante algn propsito. Cada colaboracin contiene ranuras que son ocupadas por objetos y links en tiempo de ejecucin. Cada objeto y/o link cumple un rol dentro de una colaboracin. Un objeto puede participar en ms de una colaboracin.

ColaboracinUna colaboracin implementa la funcionalidad de un caso de uso dado a travs de una dependencia de realizacin.

El flujo de mensajes dentro de una colaboracin puede opcionalmente se especificado por una mquina de estados, la cual especifica las secuencias de eventos legales. Los eventos en la mquina de estados representan los mensajes intercambiados entre los roles dentro de la colaboracin.

ColaboracinUna colaboracin tiene un aspecto esttico y un aspecto dinmico. El aspecto esttico es similar a la vista esttica, contiene un conjunto de roles y sus relaciones que definen el contexto para el aspecto dinmico. El aspecto dinmico es el conjunto de mensajes intercambiados entre los objetos que ocupan los roles. Tal intercambio de mensajes en una colaboracin es llamada una interaccin. Una colaboracin puede incluir una o ms interacciones. Las interacciones son representadas por diagramas de secuencia o diagramas de colaboracin

Diagramas de SecuenciaEs un grfico bidimensional. La dimensin vertical es el eje de tiempo. La dimensin horizontal muestra los roles de clasificadores que representan objetos individuales en la colaboracin. Cada rol de clasificador es representada por una lnea vertical que representa su lnea de vida. Una lnea punteada representa el perodo de existencia del objeto. Una lnea doble representa una activacin del objeto.

Un mensaje es representado por una flecha desde la lnea de vida de un objeto hacia la lnea de vida de otro objeto. La secuencia de mensajes est ordenada en forma descendente en el diagrama.

ActivacinUna activacin es la ejecucin de una operacin. Es representada por una lnea de doble trazo sobre la lnea de vida del objeto que recibe el mensaje. Un objeto activo es un objeto que mantiene la pila de activaciones. Cada objeto activo tiene su propio hilo de control que se ejecuta en paralelo con otros objetos. Los objetos que son llamados por los objetos activos se denominan objetos pasivos. Estos reciben el control solo cuando reciben un mensaje solicitando una operacin.

Diagramas de ActividadUn grafo de actividades es una forma especial de mquina de estados, prevista para modelar cmputos y flujo de trabajos. Los estados del grafo de actividades representan los estados de ejecucin del cmputo, no los estados de un objeto.

Estado de actividad Transiciones simples Division/Union del control Eventos externos Calles Flujo de objetos

Actividades y otras vistasUn grafo de actividades no es completo. Muestra una vista parcial de un cmputo o proceso. Debe ser ampliado en una colaboracin donde se muestren todas las operaciones atmicas y las clases que las implementan.

Diagramas de EstadoLa vista de la mquina de estados describe el comportamiento dinmico de los objetos, en un cierto plazo, modelando los ciclos de vida de los objetos de cada clase. Cada objeto se trata como una entidad aislada que se comunica con el resto del mundo detectando eventos y respondiendo a ellos. Mquina de estados Una mquina de estados se representa por un diagrama de estados y de transiciones. Una mquina de estados se une a una clase y describe la respuesta de una instancia de la clase a los eventos que recibe.

Mquina de estadosUna mquina de estados es una vista localizada de un objeto, una vista que lo separa del resto del mundo. Es una buena manera de especificar un comportamiento exacto de los objetos de una clase, pero no es una buena manera de entender el funcionamiento total de un sistema. Para una idea ms amplia de los efectos del comportamiento de un sistema, son ms tiles las vistas de interaccin.

EventoUn evento es una ocurrencia significativa que tiene una localizacin en tiempo y espacio. Ocurre en un punto del tiempo y no tiene duracin. Cuando utilizamos la palabra evento por s mismo, queremos decir generalmente que es una descripcin de todas las ocurrencias individuales del evento que tienen la misma forma general, del mismo modo que la palabra clase expresa todos los objetos individuales, que tienen la misma estructura. Una ocurrencia especfica de un evento se llama instancia del evento. Los eventos pueden tener parmetros que caracterizan cada instancia del evento. Los eventos se pueden organizar en jerarquas de generalizacin para compartir la estructura comn.

Los eventos se clasifican en varios tipos explcitos e implcitos:

Evento de seal: Una seal es una entidad con nombre, que se piensa explcitamente como vehculo de comunicacin entre dos objetos. La recepcin de una seal es un evento para el objeto receptor. Las seales incorporan la comunicacin unidireccional asncrona. Las seales se pueden modelar en diagramas de clases como clasificadores utilizando el estereotipo . Los parmetros de la seal se declaran como atributos.

Eventos

Evento de llamada: Un evento de llamada es la recepcin de una llamada por un objeto que elige poner una operacin en ejecucin, como transicin de la mquina de estados. Para el objeto llamador, un evento de llamada es indistinto de una llamada a mtodo ordinaria. Evento de cambio: Un evento de cambio es la satisfaccin de una expresin booleana que dependa de ciertos valores de un atributo. Es una manera declarativa de esperar a que una condicin est satisfecha. La diferencia entre una condicin de guarda y un evento de cambio es que una condicin de guarda se evala una vez cuando ocurre el evento disparador de la transicin. Evento de tiempo: Los eventos de tiempo representan el paso del tiempo. Un evento de tiempo se puede especificar de modo absoluto (hora) o de modo relativo (tiempo transcurrido desde).

EstadoUn estado describe un perodo de tiempo durante la vida de un objeto de una clase. Puede ser caracterizado de tres formas:Conjunto de valores de objeto cualitativamente similares (atributos, relaciones) Perodo de tiempo durante el cual el objeto espera que ocurra un evento Perodo de tiempo durante el cual el objeto realiza alguna actividad

Evento disparadorEl disparador es un evento cuya ocurrencia permite la transicin. El evento puede tener parmetros que estarn disponibles para una accin en la transicin. Si una seal tiene descendientes, cualquier descendiente de la seal permite la transicin. Los eventos se manejan uno solo a la vez.

Condicin de guardaEs una condicin booleana referida a los atributos del objeto o a los parmetros del evento disparador, que se evala cuando ocurre el evento disparador. Si la expresin se evala como cierta entonces se dispara la transicin.

Transicin de finalizacinEs una transicin que carece de evento disparador explcito. Es accionada por la terminacin de la actividad del estado del que sale. Puede tener una condicin de guarda que se evala en el momento en que termina la actividad.

AccinCuando se dispara una transicin, su accin (si la hay) es ejecutada. Una accin es un cmputo atmico y breve. A menudo es:

Una sentencia de asignacin Una operacin aritmtica El envo de una seal a otro objeto La invocacin de una operacin propia Asignacin de valores de retorno Creacin o destruccin de objetos Una secuencia de acciones simples

Cambio de estadoCuando se completa la ejecucin de la accin, el estado destino de la transicin pasa a ser el estado activo.

Estados anidadosLos estados se pueden anidar dentro de otros estados compuestos. Una transicin que deja el estado ms externo es aplicable a todos los estados internos.

Acciones de entrada y salidaUn estado puede tener acciones que se realicen siempre que se entre o se salga del estado. Si la transicin sale del estado original, entonces su accin de salida se ejecuta antes de la accin de la transicin y de la accin de entrada en el estado nuevo.

Transicin internaUna transicin interna tiene un estado origen pero ningn estado destino. Si una transicin interna tiene accin, se ejecuta pero no existe cambio de estado.

Estados Compuestos

Un estado compuesto es un estado que se ha descompuesto en sub estados secuenciales o concurrentes.

Diagramas de Colaboracin y MensajesUn diagrama de colaboracin es un diagrama de clases que contiene roles de clasificador y roles de asociacin (instancias de clases). Los roles de clasificacin y los roles de asociacin describen la configuracin de objetos y links que ocurren cuando una instancia de colaboracin es ejecutada.Cuando una colaboracin es instanciada, los objetos son ligados a roles de clasificador y los links son ligados a roles de asociacin.

Diagramas de Colaboracin y Mensajes

Diagramas de Colaboracin y Mensajes

Diagramas de Colaboracin y MensajesEs til agrupar los objetos en una de cuatro categoras:

Objetos que existe durante toda la interaccin Objetos creados durante la interaccin (constrain{new}) Objetos destruidos durante la interaccin (constrain{destroyed}) Objetos creados y destruidos durante la interaccin (constrain{transient})

Durante el diseo esto ayuda a determinar como debe fluir el flujo de control dentro de la interaccin

MensajesLos mensajes son representados con flechas etiquetadas vinculadas a los links. Cada mensaje tiene: Un nmero de secuencia Un nombre y una lista de argumentos Una lista de mensajes predecesores (opcional) Una condicin de guarda (opcional) Un nombre de valor de retorno (opcional)

El nmero de secuencia tiene opcionalmente el nmero de hilo de ejecucin. Todos los mensajes dentro del mismo hilo de ejecucin estn numerados secuencialmente. Pueden agregarse detalles como ser tipo de mensajes (sincrnicos o asincrnicos).

FlujosGeneralmente en un diagrama de colaboracin un objeto se representa una sola vez. Sin embargo, si un objeto tiene distintos estados que se deban hacer explicitos (cambio de localizacin, o cambio de asociaciones) el objeto se puede representar mas de una vez vinculando los diferentes smbolos con un flujo etiquetado o . Un flujo es una transicin de un estado a otro de un objeto. Se dibuja como una flecha con linea discontinua con el estereotipo . Tambien se puede utilizar el estereotipo o que representa una copia de un objeto que a partir de dicho momento es independiente.

Flujos

Diagramas de Secuencia Vs. Diagramas de ColaboracinLos diagramas de secuencia y de colaboracin muestran las mismas interacciones pero enfatizan distintos aspectos. Los diagramas de secuencia enfatizan la secuencia en el tiempo de los mensajes intercambiados pero no ponen de relieve las relaciones entre los objetos. Los diagramas de colaboracin muestran claramente las relaciones, pero la secuencia de tiempo debe tomarse de los diagramas de secuencia.

PatronesUn 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. El uso de un patrn se representa como una elipse de lnea discontinua conectada con cada una de sus clases por una lnea discontinua, que se etiqueta con el nombre de rol.

Patrones

ConclusinUML provee un buen soporte para el modelado dinmico de los sistemas de software, desde la fase de anlisis preliminar (diagramas de actividades y modelado de los procesos de negocio) a travs de la funcionalidad de los Casos de Uso (Diagramas de Secuencia) hasta el comportamiento de las clases (Cartas de Estados). Cada tipo de diagrama ayuda a capturar la informacin sobre el sistema como un todo y refinar en profundidad los detalles del diseo y la implementacin necesarios para completar el sistema de software