SlideShare uma empresa Scribd logo
1 de 15
Baixar para ler offline
CAPIS                                                    REPORTES TECNICOS



        MODELO DINAMICO EN ORIENTACION A OBJETOS

                       Maestrando: Ing. Alejandro Hossian


1. INTRODUCCIÓN

Este artículo tiene como objetivo presentar una breve introducción acerca del
modelado de los aspectos dinámicos de un sistema bajo el paradigma de la
Orientación a Objetos para el Análisis y el Diseño, proporcionando un caso
práctico a tal efecto.
Es importante destacar el papel fundamental que juega el modelo dinámico en el
desarrollo de sistemas, ya que a través del mismo podemos examinar aquellos
aspectos de comportamiento de un sistema que cambian con el tiempo.
El presente artículo, tratará de proporcionar un marco general sobre los conceptos
fundamentales que nos servirán de guía en el modelado de los aspectos
dinámicos de un sistema.
Los temas que abordaremos en éste artículo son los siguientes:

En el ítem 2 comenzaremos con una breve introducción acerca del modelo
dinámico y su relación con el modelo de objetos, que es el modelo sobre el cuál
operará el modelo dinámico.
Luego se hará una breve mención sobre las ventajas que ofrece el modelo
dinámico (ítem 2.1) para después abordar en forma general aquellos conceptos que
nos permitirán la construcción del modelo dinámico, cómo ser los sucesos y
estados (ítem 2.2), escenarios (ítem 2.3) y diagramas de estado (ítem 2.4) .
Luego en el ítem 3 trataremos de aplicar éstos conceptos para la construcción del
modelo dinámico a un caso práctico.
Comenzamos por la construcción del modelo de objetos (ítem 3.1), siguiendo con la
realización de los diagramas de escenarios (ítem 3.2) y los diagramas de estado
(ítem 3.3). Luego se refinarán aquellos diagramas de estado que se consideren
relevantes en el dominio de la aplicación, realizando los diagramas de estados
anidados correspondientes (ítem 3.4).
También haremos mención a la concurrencia y sincronización de estados dentro
de un objeto (ítem 3.5)
En el ítem 3.6, trataremos de explicar tres elementos que contribuyen al
enriquecimiento del modelo dinámico, aportando detalles adicionales a los
diagramas de estado.
En el ítem 4, presentamos las conclusiones del artículo y en el ítem 5 la
bibliografía consultada.


2. MODELO DINÁMICO Y MODELO DE OBJETOS

Algunos principios fundamentales del modelado son los siguientes:

-   Un modelo constituye una abstracción de la realidad.
-   Dado que los modelos omiten los detalles no esenciales, resulta más sencillo
    manipularlos a ellos que a la entidad original.
-   Un modelo puede expresarse a diferentes niveles de precisión.
CAPIS                                                       REPORTES TECNICOS



A partir de éstas consideraciones, se desprende que al Modelo Dinámico no le
resultan ajenos los requisitos expuestos, cabiéndole la importante responsabilidad
de describir aquellos aspectos de un sistema que cambian con el tiempo. Es
decir, que el Modelo Dinámico se utiliza para especificar e implementar los
aspectos del control del    sistema, colaborando de ésta manera en describir las
secuencias de operaciones que se producen, sin tener en cuenta lo que hagan
éstas operaciones, aquello a lo que afecten o la forma en que las mismas estén
implementadas.

Cabe aclarar, que el modelado del aspecto dinámico de un sistema no constituye
una característica exclusiva del paradigma orientado a objetos, dado que también
puede ser abordado a través del enfoque del Análisis Estructurado.

En el caso que nos ocupa, nuestro Modelo Dinámico operará sobre el Modelo de
Objetos que resulta ser el más importante, dado que bajo el enfoque de
orientación a objetos, la construcción de nuestro sistema se hará en torno a ellos
y no a la funcionalidad del mismo.
Y será precisamente la identificación de los objetos procedentes del dominio de la
aplicación, el principal centro de atención del analista, para luego ajustarle a dichos
objetos los procedimientos.

Tales afirmaciones, están sustentadas en principios fundamentales del modelado
orientado a objetos, como ser la expresa necesidad del Modelo de Objetos para
poder describir “QUE” está cambiando o transformándose, antes de describir
“CUANDO” y “COMO” cambia. Así cómo también el mejor soporte de la evolución
de los requisitos que provee el enfoque orientado a objetos, dado que está
basado en el entorno subyacente del dominio de la aplicación en sí, más que en
los requisitos funcionales de un único problema.

El Modelo de Objetos cumple la función primordial de capturar la estructura
estática (de datos), de los objetos del sistema (identidad, atributos y operaciones),
así cómo también sus relaciones.

La metodología OMT (Técnica de Modelado de Objetos), cuyo creador es James
Rumbaugh, incorpora el llamado Modelo Funcional después de haber modelado la
estructura estática (Modelo de Objetos) y la estructura dinámica (Modelo Dinámico).
Este modelo funcional describe las transformaciones de valores de datos que
ocurren dentro del sistema es decir, que es responsable de capturar lo que hace
el sistema independientemente de cuándo se haga o de la forma en qué se haga.

OMT emplea tres clases de modelos para describir el sistema, a saber:

                                   DESCRIBE “QUE” ESTÁ CAMBIANDO
EL MODELO DE OBJETOS
                                   CONTIENE DIAGRAMAS DE OBJETOS

                                   DESCRIBE “CUANDO” CAMBIA
EL MODELO DINAMICO
                                   CONTIENE DIAGRAMAS DE ESTADO

                                   DESCRIBE “COMO” CAMBIA
EL MODELO FUNCIONAL
                                  CONTIENE DIAGRAMAS DE FLUJOS DE DATOS
CAPIS                                                    REPORTES TECNICOS



2.1 Ventajas del Modelo Dinámico

Las relaciones dinámicas no resultan sencillas de comprender en muchas
aplicaciones, por lo que la fase de análisis dinámico es una etapa importante en
lo que se refiere a los cambios de los objetos y sus relaciones en el tiempo, en
ella se pretende describir:

- Las relaciones temporales y de eventos entre los objetos del sistema.

- Los estados de los objetos, es decir, lo que se refiere a sus cambios
   internos a lo largo del desarrollo de la aplicación .

-   Las acciones efectuadas por los objetos en un cierto contexto.

- Las acciones de los sistemas externos sobre los objetos del sistema en
   estudio, así como las reacciones de dichos objetos .

2.2 Sucesos y Estados

Los conceptos más importantes del Modelo Dinámico son los sucesos, que
representan estímulos externos, y los estados que hacen referencia a los valores
de los objetos.
Más precisamente podemos afirmar, que un suceso es un estímulo individual
proveniente de un objeto y que llega a otro, pudiendo ser éste un objeto del
sistema o externo al mismo.
Sea cual fuera su origen, un evento puede dirigirse hacia uno o más objetos, o
incluso no poseer un destino preciso en el sistema, con lo que ciertos objetos del
sistema pueden captarlo.
La respuesta de un objeto a un suceso que le llega depende del estado del
objeto receptor, el cual reaccionará en función del contexto de la aplicación,
pudiendo ocurrir lo siguiente:

-   Un cambio de estado en el objeto receptor.
-   Desencadenar un mensaje (envío de otro suceso) al remitente ó a un
    tercer objeto .

Un suceso se produce en un instante dado, y si bien podemos afirmar que no
tienen duración (a diferencia de los estados) , decimos que se produce muy
rápidamente en comparación con la granularidad de la escala temporal de un
abstracción determinada .

En cuánto a los estados, decimos que constituyen una abstracción de los valores
de los atributos y de los enlaces de un objeto.
Durante el transcurso del desarrollo de una aplicación y en función de las
opciones elegidas por los usuarios, un objeto puede pasar por varios estados o
mantenerse en un estado inicial.
El estado tiene duración, se corresponde con un intervalo de tiempo entre dos
sucesos recibidos por un objeto y se lo asocia con actividades continuas, como
puede ser el sonido de una alarma o con actividades que demoren un cierto
tiempo en concluir, tal como un viaje en auto entre dos lugares.
El suceso no tiene duración y decimos que representan puntos temporales, como
ser pulsar un botón para desactivar la alarma o encender el auto.
Por lo que podemos concluir que sucesos y estados son duales entre sí, es decir
que un suceso separa a dos estados y un estado separa a dos sucesos.
CAPIS                                                     REPORTES TECNICOS



Esto se puede observar en el diagrama de estados de FIG 1 en página 7, dónde
el suceso conexión separa los dos estados del foco del automóvil (Apagado y
Desconexión), mientras que el estado Encendido, por ejemplo, separa los dos
sucesos de Conexión y Desconexión.

2.3 Escenarios

Un escenario constituye una secuencia de sucesos ordenados en el tiempo que
simulan una ejecución particular del sistema.

Utiliza dos conceptos importantes:

- Objetos que forman parte del sistema (no necesariamente todos se van a
  representar en el diagrama de escenarios) y objetos externos al sistema
  y que interactúan con éste .

- Sucesos emitidos y recibidos por los objetos implicados en el escenario.

Los escenarios permiten experimentar las ejecuciones del sistema, por lo que
resultan muy útiles para las fases de pruebas y mantenimiento.
Posteriormente veremos la aplicación de los diagramas de escenarios en un caso
práctico, los cuáles están referenciados en FIG 5 y FIG.

2.4 Diagramas de Estado

Un diagrama de estados es un grafo cuyos nodos son estados y cuyos arcos
dirigidos son transiciones entre estados causadas por sucesos.
De ésta definición se desprende que una transición constituye un cambio de
estado causado por un suceso, es decir que si un objeto se encuentra en un
cierto estado y se produce un suceso cuyo nombre corresponda al de una de
sus transiciones, entonces el objeto pasa al estado que se encuentra en el
extremo de destino de la transición. Decimos que la transición se dispara.
El Modelo Dinámico consta de múltiples diagramas de estados, con un diagrama
para cada clase que tenga un comportamiento dinámico relevante dentro del
dominio de la aplicación, mostrándonos la trama de actividad de todo el sistema.
Es decir, que debemos concentrarnos en clases de objetos que tengan
interacciones importantes, de lo que se desprende que no todas las clases
necesitan un diagrama de estados, así por ejemplo, si el objeto solo posee un
estado inicial y otro final, no será de utilidad su diagrama de estados.
Los estados los representamos por un rectángulo de esquinas redondeadas con el
nombre del estado y las transiciones por medio de flechas desde el estado
receptor hasta el estado destino, dónde el rótulo de la flecha hace referencia al
nombre del suceso que da lugar a la transición, debiéndose destacar que todas
las transiciones que salgan de un estado deben de corresponder a sucesos
distintos.
Por ejemplo, éste podría ser el diagrama de estados de un foco de automóvil,
dónde el suceso conexión – desconexión es la secuencia del suceso conexión
seguido por el suceso desconexión.
CAPIS                                                          REPORTES TECNICOS




                                      Conexión
     Apagado                                                        Encendido
                                   Desconexión

                                          FIG 1

A su vez, los diagramas de estado pueden representar ciclos vitales únicos o bien
bucles continuos.

Los diagramas de un solo uso representan objetos de duración finita y poseen
estados iniciales y finales, entrándose en el estado inicial al crear el objeto y
cuándo se ingresa en el estado final se implica la destrucción del objeto.
El estado inicial se representa mediante un círculo negro, el cuál puede estar
rotulado para indicar diferentes condiciones iniciales.
El estado final se expresa por un círculo blanco con centro negro, cuyo rótulo
también indicaría distintas condiciones finales.
Cómo ejemplo de diagrama de un solo uso, podemos ver el ciclo vital simplificado
de un juego de ajedrez representado en la FIG 2.


   Comienzo                               Jaque Mate               Ganan
                           Piensan las                              las
                            Blancas              Rey Ahogado      Negras


              Mueven las              Mueven las
                Negras                Blancas                      Tablas


                       Piensan las         Rey     Ahogado         Ganan
                          Negras                                   las

                                          Jaque Mate               Blancas

                              FIG 2


Cabe aclarar, que los diagramas de un solo uso los podemos considerar cómo
una subrutina del diagrama de estados, a la cuál se puede hacer alusión desde
diferentes lugares en un diagrama de alto nivel.

En los diagramas que representan bucles continuos, en general se desconoce y
carece de importancia la forma en que comienza el bucle.
Por ejemplo, el diagrama de estados que describe el comportamiento de una línea
telefónica representado en FIG 3 constituye un bucle continuo que muestra la
utilización normal del teléfono.

El diagrama de FIG 3, contiene las secuencias asociadas a llamadas normales así
cómo algunas secuencias anormales, tales cómo que se agotó el tiempo mientras
se marca.
CAPIS                                                         REPORTES TECNICOS



También podemos observar, que el suceso “colgar” da lugar a una transición desde
cualquier estado hasta el estado en reposo , circunstancia ésta que se manifiesta
en el diagrama con una cuantas transiciones que llevan hasta el reposo .

          Colgar                                     Colgar
                                  Libre

                                          Descolgar

                                                        Tiempo Agotado        Tiempo
                               Tono de Marcar                                 Agotado


                                          Dígito n

                                                          Tiempo
                                                          Agotado
             Dígito n                                                          Mensaje
                                  Marcando           Número no Válido         Grabado


                    Número                  Número Válido
         Línea     Ocupado
        Ocupada                                                          Mensaje
                                  Conectado                             Finalizado

        Señal de  Red
        Ocupado Sobrecargada
                                          Encaminando

                                   Sonando

                                          Responde el Teléfono Llamado

                                 Conectado

                                          Cuelga el Teléfono Llamado

                                Desconectado


                                      FIG 3


3. CONSTRUCCIÓN DEL MODELO DINÁMICO

Para ilustrar éstos conceptos básicos acerca del Modelo Dinámico, se desarrollará
un caso práctico simple a partir del modelo de objetos y se avanzará sobre
algunos conceptos       mas avanzados del Modelo Dinámico, como anidamiento de
estados, atributos, centinelas y operaciones.
CAPIS                                                       REPORTES TECNICOS



3.1 Modelo de Objetos

Supongamos un objeto persona que posee un nombre, una dirección y un cargo
y que puede trabajar o no para una empresa y que también podrá ser contactado
por una agencia de colocación para recibir una o mas propuestas de empleos.
Las palabras subrayadas indican las clases de objetos a modelar. Representamos
la asociación “muchos a muchos” entre la clase Persona y la clase Agencia por
un asterisco * en ambos extremos de clase, y la asociación muchos a uno entre
la clase Persona y la clase Empresa por un asterisco * en el extremo Persona y
0..1 en el extremo Empresa (que denota que una persona podrá trabajar para
ninguna o a lo sumo para una empresa).
Construyamos el modelo de objetos para ésta aplicación en FIG 4:


                                           Persona
                      Contactar Para   *   Nombre      *   Trabajar Para
                                           Dirección
                       Propuesta            Cargo
        *                                                                  0..1


            Agencia                                                        Empresa

        Nombre                                                               Nombre
        Dirección                                                           Dirección

                                       FIG 4

Los símbolos * y 0..1 se refieren a las cardinalidades, así es que el símbolo * lo
utilizamos para representar un conjunto de valores potencialmente infinito, es decir
0 o más.
Por ejemplo, en el diagrama de objetos de FIG 4 se indica que una persona
puede ser contactada por 0 o más agencias y que una agencia puede contactar
a 0 más personas. Así como también, que en una empresa pueden trabajar 0
más personas.
El símbolo 0..1 indica que 0 o 1 objetos de la clase a la que le corresponde la
cardinalidad pueden estar relacionados con los objetos de otra clase.
Para el diagrama de objetos en FIG 4 tenemos que una persona puede trabajar
para 0 o una empresa a lo sumo.


3.2 Diagramas de Escenarios o de Secuencia de Sucesos

Este diagrama muestra cada objeto como una línea vertical y cada suceso como
una flecha horizontal que va desde el objeto emisor hasta el objeto receptor,
efectuándose la lectura secuencial en orden descendente.
El tiempo va en aumento desde arriba hacia abajo, aunque debemos aclarar que
el espacio entre las flechas representativas de los sucesos, carece de importancia.
Es decir, que lo único que se visualizan son las secuencias de sucesos sin hacer
referencia a su temporización exacta.
Es de destacar, que los objetos que intervienen en los escenarios son instancias,
por lo que es necesario especificar su nombre y su clase, a partir de lo cual
podemos afirmar que:
CAPIS                                                           REPORTES TECNICOS



“Un escenario es al Modelo Dinámico lo que un diagrama de instancias
 es a un Modelo de Objetos”

En el marco de la aplicación que gestiona la asignación de puestos, cuyo
diagrama de clases es el que se presenta en la FIG 4 el siguiente escenario hace
intervenir a los tres objetos del sistema , a saber : la instancia Costas de la clase
Persona , la instancia Baner de la clase Empresa y la instancia Sima de la clase
Agencia .

El suceso original de éste escenario es la búsqueda de un perfil de desarrollador
en Java efectuada por la empresa Baner a la agencia Sima. Trás la
correspondiente petición, Sima envía la propuesta al señor Costas quien establece
contacto con Baner para solicitar entrevista. Luego de la convocatoria efectuada
por la empresa al señor Costas, éste acude a la entrevista. Posteriormente, la
empresa Baner realiza un balance de dicha entrevista y decide asignar el puesto
al señor Costas, quien lo notifica a la agencia Sima.
La traza de sucesos de FIG 5 representa una asignación de puesto:




                      Buscar desarrollador en Java

            Llegada Propuesta

                                                     Petición de Entrevista

                                                          Convocatoria

                                                     Asistencia a Entrevista


                                                     Perfil del Entrevistado


                                                     Asignación de Puesto

        Notificación de Contratación


  Sima (Agencia)                       Costas (Persona)                  Baner (Empresa)

                                           FIG 5


Supongamos ahora una situación dónde una instancia del objeto Empresa rechaza
la asignación de una instancia del objeto Persona. Dicha situación sería de utilidad
ilustrarla con la implementación de otro modelo de escenario.
En éste caso, la secuencia de sucesos podría ser la siguiente: un suceso
disparador similar al caso anterior, en el cuál la Empresa Soft.SA se dirige a la
agencia Zeta para un puesto de Gerente de Sistemas.
Como respuesta, ésta agencia le envía a Soft.SA el currículum – vitae del señor
Tass.
CAPIS                                                      REPORTES TECNICOS



Entonces la empresa convoca al postulante para una entrevista, tras la cuál Soft
.SA , luego de efectuar un balance de la misma , decide no asignar el puesto al
señor Tass y le comunica su decisión .
Asimismo, la empresa Soft.SA le notifica a la agencia Zeta el rechazo de
asignación.
La traza de sucesos de FIG 6 representa un rechazo de asignación de puesto:

                             Buscar Gerente de Sistemas

                Enviar Curriculum vitae del señor Tass para éste puesto

                                                      Convocatoria

                                                   Asistencia a Entrevista

                                                   Perfil del Entrevistado


                                                    Rechazo de Asignación
                                                    de Puesto

                       Notificación de Rechazo de Asignación


     Zeta (Agencia)                     Tass (Persona)           Soft .SA (Empresa)

                                     FIG 6

Basados en un formalismo claro e intuitivo, los escenarios facilitan la comprensión
del funcionamiento del sistema, y en particular son útiles en la descripción de
los casos de error y casos límite de uso del sistema.

3.3 Diagramas de Estado

Siempre dentro del contexto del modelo de objetos de nuestro ejemplo, nos
interesaremos más acerca de los estados del objeto Persona.
Identificamos tres estados diferentes, dependiendo por una parte del valor del
atributo Cargo y por otra de los enlaces de éste objeto Persona con un objeto
Empresa y con uno o más objetos Agencia.

- Estado CONTRATADO: el objeto persona pasa a éste estado cuándo: el atributo
Cargo tiene un valor distinto de “Sin Cargo” , cómo por ejemplo “administrativo” ,
“gerencial” , “informático” , etc ; y por otra parte cuándo el objeto Persona posee un
enlace Trabajar Para con un objeto Empresa. Además de éstas dos características,
el objeto Persona en el estado Contratado puede poseer un enlace Contactar
Para con uno o más objetos Agencia.
- Estado BUSQUEDA: el objeto Persona pasa a éste estado cuándo: el valor del
atributo Cargo es “sin Cargo” y además el objeto Persona, no tiene ningún enlace
Trabajar Para con un objeto Empresa ni tampoco Contactar Para con uno o más
objetos Agencia.
- Estado SELECCIÓN: el objeto Persona pasa a éste estado cuándo: el valor del
atributo Cargo es “sin Cargo” y no tiene un enlace Trabajar Para con un objeto
Empresa, pero tiene un enlace con uno o más objetos Agencia.
CAPIS                                                     REPORTES TECNICOS



Los sucesos asociados con los cambios de estado son los siguientes:

- El “Despido” efectuado por una Empresa sobre un objeto Persona.
- La llegada de una “Propuesta de Trabajo” desde una agencia (externo).
- La “Asignación de un Puesto” a una Persona por una Empresa.
- El “Rechazo de Asignación” de un puesto por parte de una Empresa.
- La “Dimisión” de una Persona en una Empresa.

La trama de sucesos, estados y transiciones de éstos estados        para el objeto
Persona , se representa en el diagrama de estados de FIG 7 :



                                   Llegada Propuesta

                                      CONTRATADO


         Dimisión                                                  Asignación
                       Despido                                       Puesto

                                   Llegada Propuesta

     BUSQUEDA                     Rechazo Asignación                 SELECCION

                                      FIG 7


3.4 Diagramas de Estados Anidados

A los diagramas de estado como los de FIG 7 en página 13, se los llama
diagramas de estados planos o no estructurados.
Dichos diagramas aportan información general sobre los estados por los que
atraviesa un objeto y puede que dicha información sea suficiente en algunos
casos.
Pero en determinadas circunstancias, puede ser necesario asociarle a un
determinado estado de un objeto diversos subestados, a efectos de poder precisar
con mayor detalle dicho estado. Esta necesidad de obtener mayor información
acerca de un estado, se tratará de satisfacer asociándole diferentes subestados a
cada estado que el         analista considere que le corresponden niveles de
granularidad distintos. Lo que se conoce como anidamiento de diagramas de
estados.

Así es que al estado SELECCIÓN del objeto Persona lo podemos              precisar por
los trés subestados : Candidato a Entrevista, Entrevistado y Evaluado .
Los subestados de un objeto se relacionan entre sí en un diagrama         dinámico, de
igual manera que los estados que precisan o especializan.
El anidamiento unos en otros de los diagramas de estado, facilita una     lectura más
profunda acerca del comportamiento dinámico de los objetos.
El diagrama de estado anidado del estado SELECCIÓN lo podemos             observar en
FIG 8 en página 14:
CAPIS                                                    REPORTES TECNICOS




     Llegada
    Propuesta
                              Convocatoria
     Candidato a Entrevista                                Entrevistado

                  Nueva Propuesta                         Perfil del
                                                          Entrevistado
                      Asignación Puesto
                                                             Evaluado
                     Rechazo Asignación

                                    FIG 8

El estado inicial que se representa en éste diagrama por un disco negro lleno,
indica el punto de entrada en el estado SELECCIÓN. Observando el diagrama de
estado de FIG 7 para el objeto Persona, se ve que el punto de entrada es la
transición Llegada Propuesta del estado BUSQUEDA al estado SELECCIÓN. Y
siguiendo el mismo hilo de razonamiento, se deduce que los estados finales
representados en el diagrama por un disco negro rodeado por un círculo
corresponden a las transiciones Rechazo Asignación y Asignación Puesto, las cuáles
desencadenan los cambios desde el estado SELECCIÓN a los estados BUSQUEDA
y CONTRATADO respectivamente.
En éste último diagrama de FIG 8 en página 14, se puede observar que el
postulante podrá ser citado nuevamente a otra entrevista si la empresa así lo
considera, después que dicho postulante haya asistido a la entrevista y la empresa
haya realizado el correspondiente balance de la misma. Esta circunstancia se
vislumbra en el diagrama a través del suceso           Nueva Propuesta, el cuál
desencadena la transición desde el estado Evaluado al estado Candidato a
Entrevista.
Cabe destacar que previamente, el postulante pasó al estado Evaluado desde el
estado Entrevistado a causa del suceso Perfil del Entrevistado, que es el que
desencadena dicha transición.


3.5 Concurrencia y Sincronización de Estados

Nos referiremos a la concurrencia dentro de un objeto, esto se debe a que en
ciertas situaciones de modelado es preciso especificar subestados concurrentes, los
cuáles a su vez, permiten especificar dos o más estados que se ejecutan en
paralelo en el contexto del objeto que las contiene y en un mismo estado.
Si los subdiagramas están en concurrencia, el primer subdiagrama que permite que
se efectúe la transición del estado englobante hacia otro estado, interrumpe los
demás subdiagramas causando la salida del estado englobante.
Cuándo el objeto Persona está en el estado BUSQUEDA, podemos imaginarla
realizando diversas operaciones en paralelo, cómo ser las gestiones pertinentes en
la Agencia de colocación (supongamos que la persona deba inscribirse en la
agencia y de ser aceptada su inscripción deberá proceder a realizar un curso de
capacitación) y las gestiones individuales que dicha persona realiza en el marco
de su búsqueda de empleo (cómo la búsqueda en periódicos etc).
La FIG 9 nos muestra la concurrencia para el estado BUSQUEDA:
CAPIS                                                    REPORTES TECNICOS




                      BUSQUEDA

   Inscripción en       Inscripción      Realizar    Llegada Propuesta
      Agencia            Aceptada         Curso         por Agencia

-----------------------------------                       Ó          SELECCION

                    Búsqueda en Periódicos
                                                      Llegada Propuesta
                                                      por Periódico




                                        FIG 9

Los subestados Inscripción en Agencia y Realizar Curso son secuenciales, es decir
que en el marco de las gestiones que el postulante realiza en la Agencia, su
estado es de Inscripción ó de Realizar Curso. Ambos estados, a su vez, están en
concurrencia con el subestado Búsqueda en Periódicos, ya que dos tipos de
eventos independientes pueden encontrarse en el origen de la transición hacia el
estado SELECCIÓN: una Llegada de Propuesta por Agencia Ó una Llegada de
Propuesta por Periódico.
Cualquiera de las dos transiciones que se dé primero, hará que concluyan los
subdiagramas concurrentes, ya que ambos forman parte de un mismo estado
compuesto BUSQUEDA y solamente se encuentran activados cuándo el diagrama
de estados de más alto nivel está en ese estado.
Los diagramas de estados concurrentes son útiles si un objeto dado tiene conjuntos
de comportamientos independientes.

Si los subdiagramas están sincronizados, la transición del estado englobante hacia
otro estado solo se efectúa cuándo todos los subdiagramas lo permiten, sin poder
interrumpir ningún subdiagrama.
Llevado a nuestro caso práctico, podemos precisar el estado CONTRATADO del
objeto Persona por dos subestados: Trabajando y Licencia, siendo Trabajando el
estado englobante que contiene dos subdiagramas que están sincronizados: Pedir
Licencia y Ejercer Función.
Es decir, que cuándo un objeto Persona se halla en el subestado Trabajando del
estado CONTRATADO, pueden desarrollarse dos diagramas de estado simples en
paralelo, cómo ser el que gestiona el Pedido de Licencia (Pedir Licencia) y el que
describe sus actividades profesionales (Ejercer Función).
Asumimos como requisito impuesto por la empresa para que una persona entre
en estado de licencia, que se manifiesten dos eventos : el Pedido de Licencia debe
ser aceptado Y además que ciertas funciones que le competen a esa persona,
deben estar concluidas (por ejemplo, si la persona es la encargada de liquidar
sueldos, dicha tarea debe estar terminada antes de que la persona entre en
licencia) .
El orden en que éstos sucesos se manifiesten carece de relevancia, es decir que
los pasos internos de las actividades no están sincronizados, pero dichas
actividades deben estar finalizadas antes de que el objeto pueda avanzar hacia
el estado siguiente.
CAPIS                                                        REPORTES TECNICOS



La FIG 10 nos muestra la sincronización para el subestado Trabajando :




               Trabajando
                                              Aceptación
      Pedir Licencia                           de Licencia
---------------------------                   Y                            Licencia

        Ejercer Función                         Tareas
                                                Terminadas


                                       FIG 10


3.6 Atributos Centinelas y Operaciones

Estos tres elementos enriquecen el modelo dinámico, aportando detalles adicionales
a los diagramas de estado.
Los atributos y centinelas (condiciones) permiten precisar una transición.
Así es que los atributos son los valores de datos aportados por un suceso al
igual que los valores de datos que contienen los objetos. Es decir, que constituyen
la información llevada por los eventos y se representan entre paréntesis después
del nombre de la clase de suceso.
Los centinelas o condiciones son funciones booleanas lógicas que devuelven
verdadero o falso y vendrían a ser cómo protecciones de las transiciones también
llamadas guardias, de tal manera que una transición con protección se dispara
cuándo se produce su suceso y si el guardia se resuelve como “verdadero” . Esta
guardia o protección va entre corchetes después de la lista de atributos del
suceso.
El suceso se podría representar: suceso (atributos)[centinela], por ejemplo en el
subdiagrama del estado CONTRATADO, el suceso Entrada en Licencia puede tener
los atributos número de licencia (que indica la cantidad de licencias que tomó el
empleado en un período determinado) y cantidad de días solicitada y para que la
transición al estado Licencia se dispare, debe cumplirse que éste número esté por
debajo de un cierto valor (4 por ejemplo) y que además, la cantidad de días
solicitada no sea mayor de una cierta cantidad (10 por ejemplo), así es que
podemos tener más de un centinela.
El suceso quedaría: Entrada en Licencia (Nº Licencia, Cantidad de días) [Nº Licencia< 4
&& Cantidad días < 10].

Las operaciones describen la respuesta de un objeto ante un suceso, así es que
las operaciones asociadas a estados o transiciones se efectúan en respuesta a
los correspondientes estados o sucesos.
Las operaciones asociadas a estados son las actividades, que requieren un cierto
tiempo. Podemos citar las operaciones continuas, cómo la actividad “Ejercer
Función” del objeto Persona en el subestado Trabajando del estado
CONTRATADO. Se inscribe dentro del rectángulo del estado, precedido por la
notación “do” .
También están las actividades secuenciales, que terminan por sí mismas después
de un cierto intervalo de tiempo, cómo el cierre de una válvula.
CAPIS                                                          REPORTES TECNICOS



Las acciones son operaciones “instantáneas” y pueden estar asociadas a una
transición o también al estado de un objeto, pudiendo intervenir en la entrada del
estado (prefijo entry/), en la salida del estado (prefijo exit/), en respuesta a un evento
desencadenante (prefijo nombre evento/), o bien en el transcurso de una transición (la
acción figura tras la lista de centinelas precedida por el signo / ).
Supongamos nuestro objeto Persona cuándo ingresa en el estado CONTRATADO,
la misma efectúa su primera acción que es firmar su contrato de trabajo, contrato
éste que se rompe cuándo la persona sale del estado CONTRATADO. Por otra
parte, durante el tiempo de su contrato la persona se encarga de realizar una
actividad consistente en ejercer su función para la que fue contratado.
Además, mientras la persona permanece en éste estado pueden producirse varios
eventos de distinta naturaleza, cómo ser la llegada de una propuesta proveniente
de una agencia de empleo (debiendo responder la persona a ésa solicitud) ó la
notificación de un cambio (la persona cambia de asignación).
Para nuestro caso, tendríamos para el estado CONTRATADO el siguiente diagrama
completo representado en FIG 11 en página 18 :



                                      CONTRATADO
                            entry / firmar contrato de trabajo
                            do : ejercer función
                            llegada propuesta /responder a la propuesta
                            cambio / cambiar de asignación
                            exit / romper contrato de trabajo



                                         FIG 11

Y de una forma más general tendríamos la siguiente situación, que representamos
en la FIG 12


                                   ESTADO 1
                          entry / acción al entrar en estado
                          do : actividad durante el estado
                          evento 1 / acción 1
                          evento 2 / acción 2
                          ....
                          exit / acción al salir del estado




                                                suceso (atributos) [centinelas] /acción

                                       ESTADO 2


                                         FIG 12
CAPIS                                                       REPORTES TECNICOS



4. Conclusiones
El modelo dinámico describe los aspectos de comportamiento de un sistema que
cambia con el tiempo y es de utilidad para implementar los aspectos de control,
es decir aquella parte del sistema que describe las secuencias de operaciones que
se producen en respuesta a estímulos externos.
La importancia del modelo dinámico dependerá de la naturaleza de la aplicación,
así por ejemplo, dicho modelo no será preponderante para un depósito de datos
puramente estático cómo una base datos, adquiriendo mayor importancia para
sistemas interactivos.
Los sucesos que representamos en los diagramas de estado correspondiente a un
objeto, suelen implementarse como operaciones para ése objeto en el modelo de
objetos. Según algunos autores, como James Rumbaugh, los sucesos son más
expresivos que las operaciones, ya que el efecto de un suceso depende tanto de
la clase del objeto cómo de su estado.
El modelo dinámico constituye un soporte muy útil para el paso a la fase de
diseño, ya que permite describir los encadenamientos de los métodos.


5. Bibliografía
Martin Fowler con Kendall Scott - “UML GOTA A GOTA” - Ed Eyrolles
Gestión 2000. 1997

López Nathalie, Migueis Jorge, Pichon Emmanuel - “Integrar UML en los proyectos” -
Ed Eyrolles Gestión 2000 . 1998

Rossi Bibiana, Britos Paola, García Martínez - “Modelado de Objetos”
Revista del Instituto Tecnológico de Buenos Aires Nº 21. 1998

Rumbaugh James , Blaha Michael, Premerlani William , Eddy Frederick , Lorensen
William - “Modelado y diseño orientados a objetos”
Ed Prentice - Hall . 1991

Muller Pierre Alain - “Modelado de objetos con UML” - Ed Eyrolles
Gestión 2000. 1997

Grady Booch, James Rumbaugh, Ivar Jacobson          - “El   Lenguaje   Unificado   de
Modelado” - Ed Addison Wesley. 1999

Piattini Mario G , Calvo - Manzano José A , Cervera Joaquín , Fernández Sanz
Luis - “Análisis y diseño detallado de Aplicaciones Informáticas de Gestión” - Ed
Rama. 1996

Mais conteúdo relacionado

Mais procurados

Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenadosVicente Alberca
 
Ingeniería de software II- Parte 3.2
Ingeniería de software II- Parte 3.2Ingeniería de software II- Parte 3.2
Ingeniería de software II- Parte 3.2Marta Silvia Tabares
 
Requerimientos de un Sistema (usando criterios del swebok)
Requerimientos de un Sistema (usando criterios del swebok)Requerimientos de un Sistema (usando criterios del swebok)
Requerimientos de un Sistema (usando criterios del swebok)Miguel Miranda
 
Analisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A ObjetosAnalisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A Objetosyoiner santiago
 
Cuadro comparativo de enfoque estructurado y enfoque orientado
Cuadro comparativo de enfoque estructurado y enfoque orientadoCuadro comparativo de enfoque estructurado y enfoque orientado
Cuadro comparativo de enfoque estructurado y enfoque orientadoFreddySantiago32
 
Metricas de proceso y proyecto
Metricas de proceso y proyectoMetricas de proceso y proyecto
Metricas de proceso y proyectoEdison Tobar
 
Sistema De Gestión De Base De Datos
Sistema De Gestión De Base De DatosSistema De Gestión De Base De Datos
Sistema De Gestión De Base De DatosGuillermo Chirinos
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicoslandeta_p
 
Requerimientos de un sistema de información
Requerimientos de un sistema de informaciónRequerimientos de un sistema de información
Requerimientos de un sistema de informacióncamilo_flores
 
Proceso unificado de desarrollo de software
Proceso unificado de desarrollo de softwareProceso unificado de desarrollo de software
Proceso unificado de desarrollo de softwareturlahackers
 
Modelo Cascada y Espiral
Modelo Cascada y EspiralModelo Cascada y Espiral
Modelo Cascada y Espiraljuanksi28
 
Enfoque estructurado y Enfoque OO - Ingenieria de software
Enfoque estructurado y Enfoque OO  - Ingenieria de softwareEnfoque estructurado y Enfoque OO  - Ingenieria de software
Enfoque estructurado y Enfoque OO - Ingenieria de softwareKola Real
 
Tipos de modelos de procesos
Tipos de modelos de procesosTipos de modelos de procesos
Tipos de modelos de procesosEIYSC
 
Enfoque estructurado enfoque oo
Enfoque estructurado   enfoque ooEnfoque estructurado   enfoque oo
Enfoque estructurado enfoque ookarlanm07
 
Las siete grandes categorias del software
Las siete grandes categorias del softwareLas siete grandes categorias del software
Las siete grandes categorias del softwareSandyCaceres
 
Bases de Datos para Dispositivos Móviles - Unidad II: Arquitectura de Base de...
Bases de Datos para Dispositivos Móviles - Unidad II: Arquitectura de Base de...Bases de Datos para Dispositivos Móviles - Unidad II: Arquitectura de Base de...
Bases de Datos para Dispositivos Móviles - Unidad II: Arquitectura de Base de...José Antonio Sandoval Acosta
 
Metodologías para el Diseño de Sistemas
Metodologías para el Diseño de SistemasMetodologías para el Diseño de Sistemas
Metodologías para el Diseño de SistemasIsidro Gonzalez
 

Mais procurados (20)

Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenados
 
Ingeniería de software II- Parte 3.2
Ingeniería de software II- Parte 3.2Ingeniería de software II- Parte 3.2
Ingeniería de software II- Parte 3.2
 
Requerimientos de un Sistema (usando criterios del swebok)
Requerimientos de un Sistema (usando criterios del swebok)Requerimientos de un Sistema (usando criterios del swebok)
Requerimientos de un Sistema (usando criterios del swebok)
 
Analisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A ObjetosAnalisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A Objetos
 
Cuadro comparativo de enfoque estructurado y enfoque orientado
Cuadro comparativo de enfoque estructurado y enfoque orientadoCuadro comparativo de enfoque estructurado y enfoque orientado
Cuadro comparativo de enfoque estructurado y enfoque orientado
 
Metricas de proceso y proyecto
Metricas de proceso y proyectoMetricas de proceso y proyecto
Metricas de proceso y proyecto
 
Metodología RUP
Metodología RUPMetodología RUP
Metodología RUP
 
Sistema De Gestión De Base De Datos
Sistema De Gestión De Base De DatosSistema De Gestión De Base De Datos
Sistema De Gestión De Base De Datos
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicos
 
Requerimientos de un sistema de información
Requerimientos de un sistema de informaciónRequerimientos de un sistema de información
Requerimientos de un sistema de información
 
Proceso unificado de desarrollo de software
Proceso unificado de desarrollo de softwareProceso unificado de desarrollo de software
Proceso unificado de desarrollo de software
 
Modelo Cascada y Espiral
Modelo Cascada y EspiralModelo Cascada y Espiral
Modelo Cascada y Espiral
 
Mapa mental de Ing. de requisito y requerimiento
Mapa mental de Ing. de requisito y requerimientoMapa mental de Ing. de requisito y requerimiento
Mapa mental de Ing. de requisito y requerimiento
 
Enfoque estructurado y Enfoque OO - Ingenieria de software
Enfoque estructurado y Enfoque OO  - Ingenieria de softwareEnfoque estructurado y Enfoque OO  - Ingenieria de software
Enfoque estructurado y Enfoque OO - Ingenieria de software
 
Tipos de modelos de procesos
Tipos de modelos de procesosTipos de modelos de procesos
Tipos de modelos de procesos
 
Enfoque estructurado enfoque oo
Enfoque estructurado   enfoque ooEnfoque estructurado   enfoque oo
Enfoque estructurado enfoque oo
 
Las siete grandes categorias del software
Las siete grandes categorias del softwareLas siete grandes categorias del software
Las siete grandes categorias del software
 
Diagrama de Actividades
Diagrama de ActividadesDiagrama de Actividades
Diagrama de Actividades
 
Bases de Datos para Dispositivos Móviles - Unidad II: Arquitectura de Base de...
Bases de Datos para Dispositivos Móviles - Unidad II: Arquitectura de Base de...Bases de Datos para Dispositivos Móviles - Unidad II: Arquitectura de Base de...
Bases de Datos para Dispositivos Móviles - Unidad II: Arquitectura de Base de...
 
Metodologías para el Diseño de Sistemas
Metodologías para el Diseño de SistemasMetodologías para el Diseño de Sistemas
Metodologías para el Diseño de Sistemas
 

Destaque

Diagramas De Estado
Diagramas De EstadoDiagramas De Estado
Diagramas De Estadoguest5ed375
 
Modelado Orientado a Objetos
Modelado Orientado a ObjetosModelado Orientado a Objetos
Modelado Orientado a ObjetosRafael Miranda
 
Presen bdd 3
Presen bdd 3Presen bdd 3
Presen bdd 3ankrn_glz
 
Metodología orientada a objetos (omt). rumbaugh
Metodología orientada a objetos (omt). rumbaughMetodología orientada a objetos (omt). rumbaugh
Metodología orientada a objetos (omt). rumbaughWilfredy Inciarte
 
Fundamentos de Sistemas de Base de Datos (Capítulo 11 y 12)
Fundamentos de Sistemas de Base de Datos (Capítulo 11 y 12)Fundamentos de Sistemas de Base de Datos (Capítulo 11 y 12)
Fundamentos de Sistemas de Base de Datos (Capítulo 11 y 12)Karina Lucio
 
Modelos macroeconomicos
Modelos macroeconomicosModelos macroeconomicos
Modelos macroeconomicosMelissa Lucía
 
La Dinámica económica de la cultura en Venezuela y su contribución al PIB
La Dinámica económica de la cultura en Venezuela y su contribución al PIBLa Dinámica económica de la cultura en Venezuela y su contribución al PIB
La Dinámica económica de la cultura en Venezuela y su contribución al PIBCarlos Enrique Guzmán Cárdenas
 
Metodologã­a orientada-a-objetos-omt.-rumbaugh
Metodologã­a orientada-a-objetos-omt.-rumbaughMetodologã­a orientada-a-objetos-omt.-rumbaugh
Metodologã­a orientada-a-objetos-omt.-rumbaughviisistemas
 
Sistema de Administracion del Mantenimiento
Sistema de Administracion del MantenimientoSistema de Administracion del Mantenimiento
Sistema de Administracion del MantenimientoCris Tenorio
 
Introduccion Investigacion de Operaciones
Introduccion Investigacion de OperacionesIntroduccion Investigacion de Operaciones
Introduccion Investigacion de OperacionesMaria Renee de Leon
 
Clase 1. introducción a investigación de operaciones
Clase 1. introducción a investigación de operacionesClase 1. introducción a investigación de operaciones
Clase 1. introducción a investigación de operacionesLucas Mosquera
 
3.3 modelos macroeconómicos
3.3  modelos macroeconómicos3.3  modelos macroeconómicos
3.3 modelos macroeconómicosCARLOS MASSUH
 
Investigacion de operaciones
Investigacion de operacionesInvestigacion de operaciones
Investigacion de operacionesarongid_PEREIRA
 
Modelo bidimensional
Modelo bidimensionalModelo bidimensional
Modelo bidimensionalucube
 

Destaque (20)

Diagramas De Estado
Diagramas De EstadoDiagramas De Estado
Diagramas De Estado
 
Modelado Orientado a Objetos
Modelado Orientado a ObjetosModelado Orientado a Objetos
Modelado Orientado a Objetos
 
Presen bdd 3
Presen bdd 3Presen bdd 3
Presen bdd 3
 
Metodología orientada a objetos (omt). rumbaugh
Metodología orientada a objetos (omt). rumbaughMetodología orientada a objetos (omt). rumbaugh
Metodología orientada a objetos (omt). rumbaugh
 
Fundamentos de Sistemas de Base de Datos (Capítulo 11 y 12)
Fundamentos de Sistemas de Base de Datos (Capítulo 11 y 12)Fundamentos de Sistemas de Base de Datos (Capítulo 11 y 12)
Fundamentos de Sistemas de Base de Datos (Capítulo 11 y 12)
 
Almacén de datos
Almacén de datosAlmacén de datos
Almacén de datos
 
Modelos macroeconomicos
Modelos macroeconomicosModelos macroeconomicos
Modelos macroeconomicos
 
La Dinámica económica de la cultura en Venezuela y su contribución al PIB
La Dinámica económica de la cultura en Venezuela y su contribución al PIBLa Dinámica económica de la cultura en Venezuela y su contribución al PIB
La Dinámica económica de la cultura en Venezuela y su contribución al PIB
 
Metodologã­a orientada-a-objetos-omt.-rumbaugh
Metodologã­a orientada-a-objetos-omt.-rumbaughMetodologã­a orientada-a-objetos-omt.-rumbaugh
Metodologã­a orientada-a-objetos-omt.-rumbaugh
 
Sistema de Administracion del Mantenimiento
Sistema de Administracion del MantenimientoSistema de Administracion del Mantenimiento
Sistema de Administracion del Mantenimiento
 
Introduccion Investigacion de Operaciones
Introduccion Investigacion de OperacionesIntroduccion Investigacion de Operaciones
Introduccion Investigacion de Operaciones
 
Clase 1. introducción a investigación de operaciones
Clase 1. introducción a investigación de operacionesClase 1. introducción a investigación de operaciones
Clase 1. introducción a investigación de operaciones
 
Resumen java
Resumen javaResumen java
Resumen java
 
3.3 modelos macroeconómicos
3.3  modelos macroeconómicos3.3  modelos macroeconómicos
3.3 modelos macroeconómicos
 
Investigacion de operaciones
Investigacion de operacionesInvestigacion de operaciones
Investigacion de operaciones
 
Modelo bidimensional
Modelo bidimensionalModelo bidimensional
Modelo bidimensional
 
Modelos economicos
Modelos economicosModelos economicos
Modelos economicos
 
Diseño de sistemas
Diseño de sistemasDiseño de sistemas
Diseño de sistemas
 
Enfoque cognitivo nuevo
Enfoque cognitivo nuevoEnfoque cognitivo nuevo
Enfoque cognitivo nuevo
 
El enfoque sistemico
El enfoque sistemicoEl enfoque sistemico
El enfoque sistemico
 

Semelhante a Modelos dinamicos Orientado a Objetos

Semelhante a Modelos dinamicos Orientado a Objetos (20)

Omt
OmtOmt
Omt
 
Manual simulacion h._caselli_g
Manual simulacion h._caselli_gManual simulacion h._caselli_g
Manual simulacion h._caselli_g
 
Manual 2 Software Arena
Manual 2 Software ArenaManual 2 Software Arena
Manual 2 Software Arena
 
Manual simulacion h._caselli_g
Manual simulacion h._caselli_gManual simulacion h._caselli_g
Manual simulacion h._caselli_g
 
Manual unidad4
Manual  unidad4Manual  unidad4
Manual unidad4
 
Manual simulacion para compartir en la nube
Manual simulacion para compartir en la nubeManual simulacion para compartir en la nube
Manual simulacion para compartir en la nube
 
Manual simulacion h._caselli_g
Manual simulacion h._caselli_gManual simulacion h._caselli_g
Manual simulacion h._caselli_g
 
Metologia
MetologiaMetologia
Metologia
 
Darwis gonzalez ci18115710
Darwis gonzalez ci18115710Darwis gonzalez ci18115710
Darwis gonzalez ci18115710
 
Darwis gonzalez ci18115710
Darwis gonzalez ci18115710Darwis gonzalez ci18115710
Darwis gonzalez ci18115710
 
7 analisis
7 analisis7 analisis
7 analisis
 
7 analisis (caso de uso)
7 analisis  (caso de uso)7 analisis  (caso de uso)
7 analisis (caso de uso)
 
Tipos de modelo y metodologias
Tipos de modelo y metodologiasTipos de modelo y metodologias
Tipos de modelo y metodologias
 
Uml
UmlUml
Uml
 
estadina
estadinaestadina
estadina
 
STIS- DIAGRAMAS UML.pptx
STIS- DIAGRAMAS UML.pptxSTIS- DIAGRAMAS UML.pptx
STIS- DIAGRAMAS UML.pptx
 
Diapositiva oscarin
Diapositiva oscarinDiapositiva oscarin
Diapositiva oscarin
 
Dinamica 2
Dinamica 2Dinamica 2
Dinamica 2
 
Elementos de comportamiento
Elementos de comportamientoElementos de comportamiento
Elementos de comportamiento
 
Diagrama de estado
Diagrama de estadoDiagrama de estado
Diagrama de estado
 

Mais de I.U.P. Santiago Mariño (17)

Inteligencia Emocional
Inteligencia  EmocionalInteligencia  Emocional
Inteligencia Emocional
 
Organizaciones inteligentes sociedad del conocimiento
Organizaciones inteligentes   sociedad del conocimientoOrganizaciones inteligentes   sociedad del conocimiento
Organizaciones inteligentes sociedad del conocimiento
 
Gerencia Tecnologica - IV
Gerencia Tecnologica - IVGerencia Tecnologica - IV
Gerencia Tecnologica - IV
 
Gerencia Tecnologica - II
Gerencia Tecnologica - IIGerencia Tecnologica - II
Gerencia Tecnologica - II
 
Gerencia Tecnologica- Unidad I
Gerencia Tecnologica- Unidad IGerencia Tecnologica- Unidad I
Gerencia Tecnologica- Unidad I
 
Sistemas Operativos 2
Sistemas Operativos 2Sistemas Operativos 2
Sistemas Operativos 2
 
Redes y Comunicaciones
Redes y ComunicacionesRedes y Comunicaciones
Redes y Comunicaciones
 
Tendencias Móviles y Social Media
Tendencias Móviles y Social MediaTendencias Móviles y Social Media
Tendencias Móviles y Social Media
 
Manual de teg iupsmpzo
Manual de teg iupsmpzoManual de teg iupsmpzo
Manual de teg iupsmpzo
 
Metodo Watch - Esquemas
Metodo Watch - EsquemasMetodo Watch - Esquemas
Metodo Watch - Esquemas
 
Ingenieria de Requerimientos
Ingenieria de RequerimientosIngenieria de Requerimientos
Ingenieria de Requerimientos
 
Modos de Direccionamiento
Modos de DireccionamientoModos de Direccionamiento
Modos de Direccionamiento
 
GNU/Linux-Debian
GNU/Linux-Debian GNU/Linux-Debian
GNU/Linux-Debian
 
GNU/Linux-Debian
GNU/Linux-Debian GNU/Linux-Debian
GNU/Linux-Debian
 
Libro de UMLen.24.horas. .joseph.schmuller.prentice-hall
Libro de UMLen.24.horas. .joseph.schmuller.prentice-hallLibro de UMLen.24.horas. .joseph.schmuller.prentice-hall
Libro de UMLen.24.horas. .joseph.schmuller.prentice-hall
 
Modelos dinamicos Orientado a Objetos
Modelos dinamicos Orientado a ObjetosModelos dinamicos Orientado a Objetos
Modelos dinamicos Orientado a Objetos
 
Presentacion GNU Linux
Presentacion GNU LinuxPresentacion GNU Linux
Presentacion GNU Linux
 

Modelos dinamicos Orientado a Objetos

  • 1. CAPIS REPORTES TECNICOS MODELO DINAMICO EN ORIENTACION A OBJETOS Maestrando: Ing. Alejandro Hossian 1. INTRODUCCIÓN Este artículo tiene como objetivo presentar una breve introducción acerca del modelado de los aspectos dinámicos de un sistema bajo el paradigma de la Orientación a Objetos para el Análisis y el Diseño, proporcionando un caso práctico a tal efecto. Es importante destacar el papel fundamental que juega el modelo dinámico en el desarrollo de sistemas, ya que a través del mismo podemos examinar aquellos aspectos de comportamiento de un sistema que cambian con el tiempo. El presente artículo, tratará de proporcionar un marco general sobre los conceptos fundamentales que nos servirán de guía en el modelado de los aspectos dinámicos de un sistema. Los temas que abordaremos en éste artículo son los siguientes: En el ítem 2 comenzaremos con una breve introducción acerca del modelo dinámico y su relación con el modelo de objetos, que es el modelo sobre el cuál operará el modelo dinámico. Luego se hará una breve mención sobre las ventajas que ofrece el modelo dinámico (ítem 2.1) para después abordar en forma general aquellos conceptos que nos permitirán la construcción del modelo dinámico, cómo ser los sucesos y estados (ítem 2.2), escenarios (ítem 2.3) y diagramas de estado (ítem 2.4) . Luego en el ítem 3 trataremos de aplicar éstos conceptos para la construcción del modelo dinámico a un caso práctico. Comenzamos por la construcción del modelo de objetos (ítem 3.1), siguiendo con la realización de los diagramas de escenarios (ítem 3.2) y los diagramas de estado (ítem 3.3). Luego se refinarán aquellos diagramas de estado que se consideren relevantes en el dominio de la aplicación, realizando los diagramas de estados anidados correspondientes (ítem 3.4). También haremos mención a la concurrencia y sincronización de estados dentro de un objeto (ítem 3.5) En el ítem 3.6, trataremos de explicar tres elementos que contribuyen al enriquecimiento del modelo dinámico, aportando detalles adicionales a los diagramas de estado. En el ítem 4, presentamos las conclusiones del artículo y en el ítem 5 la bibliografía consultada. 2. MODELO DINÁMICO Y MODELO DE OBJETOS Algunos principios fundamentales del modelado son los siguientes: - Un modelo constituye una abstracción de la realidad. - Dado que los modelos omiten los detalles no esenciales, resulta más sencillo manipularlos a ellos que a la entidad original. - Un modelo puede expresarse a diferentes niveles de precisión.
  • 2. CAPIS REPORTES TECNICOS A partir de éstas consideraciones, se desprende que al Modelo Dinámico no le resultan ajenos los requisitos expuestos, cabiéndole la importante responsabilidad de describir aquellos aspectos de un sistema que cambian con el tiempo. Es decir, que el Modelo Dinámico se utiliza para especificar e implementar los aspectos del control del sistema, colaborando de ésta manera en describir las secuencias de operaciones que se producen, sin tener en cuenta lo que hagan éstas operaciones, aquello a lo que afecten o la forma en que las mismas estén implementadas. Cabe aclarar, que el modelado del aspecto dinámico de un sistema no constituye una característica exclusiva del paradigma orientado a objetos, dado que también puede ser abordado a través del enfoque del Análisis Estructurado. En el caso que nos ocupa, nuestro Modelo Dinámico operará sobre el Modelo de Objetos que resulta ser el más importante, dado que bajo el enfoque de orientación a objetos, la construcción de nuestro sistema se hará en torno a ellos y no a la funcionalidad del mismo. Y será precisamente la identificación de los objetos procedentes del dominio de la aplicación, el principal centro de atención del analista, para luego ajustarle a dichos objetos los procedimientos. Tales afirmaciones, están sustentadas en principios fundamentales del modelado orientado a objetos, como ser la expresa necesidad del Modelo de Objetos para poder describir “QUE” está cambiando o transformándose, antes de describir “CUANDO” y “COMO” cambia. Así cómo también el mejor soporte de la evolución de los requisitos que provee el enfoque orientado a objetos, dado que está basado en el entorno subyacente del dominio de la aplicación en sí, más que en los requisitos funcionales de un único problema. El Modelo de Objetos cumple la función primordial de capturar la estructura estática (de datos), de los objetos del sistema (identidad, atributos y operaciones), así cómo también sus relaciones. La metodología OMT (Técnica de Modelado de Objetos), cuyo creador es James Rumbaugh, incorpora el llamado Modelo Funcional después de haber modelado la estructura estática (Modelo de Objetos) y la estructura dinámica (Modelo Dinámico). Este modelo funcional describe las transformaciones de valores de datos que ocurren dentro del sistema es decir, que es responsable de capturar lo que hace el sistema independientemente de cuándo se haga o de la forma en qué se haga. OMT emplea tres clases de modelos para describir el sistema, a saber: DESCRIBE “QUE” ESTÁ CAMBIANDO EL MODELO DE OBJETOS CONTIENE DIAGRAMAS DE OBJETOS DESCRIBE “CUANDO” CAMBIA EL MODELO DINAMICO CONTIENE DIAGRAMAS DE ESTADO DESCRIBE “COMO” CAMBIA EL MODELO FUNCIONAL CONTIENE DIAGRAMAS DE FLUJOS DE DATOS
  • 3. CAPIS REPORTES TECNICOS 2.1 Ventajas del Modelo Dinámico Las relaciones dinámicas no resultan sencillas de comprender en muchas aplicaciones, por lo que la fase de análisis dinámico es una etapa importante en lo que se refiere a los cambios de los objetos y sus relaciones en el tiempo, en ella se pretende describir: - Las relaciones temporales y de eventos entre los objetos del sistema. - Los estados de los objetos, es decir, lo que se refiere a sus cambios internos a lo largo del desarrollo de la aplicación . - Las acciones efectuadas por los objetos en un cierto contexto. - Las acciones de los sistemas externos sobre los objetos del sistema en estudio, así como las reacciones de dichos objetos . 2.2 Sucesos y Estados Los conceptos más importantes del Modelo Dinámico son los sucesos, que representan estímulos externos, y los estados que hacen referencia a los valores de los objetos. Más precisamente podemos afirmar, que un suceso es un estímulo individual proveniente de un objeto y que llega a otro, pudiendo ser éste un objeto del sistema o externo al mismo. Sea cual fuera su origen, un evento puede dirigirse hacia uno o más objetos, o incluso no poseer un destino preciso en el sistema, con lo que ciertos objetos del sistema pueden captarlo. La respuesta de un objeto a un suceso que le llega depende del estado del objeto receptor, el cual reaccionará en función del contexto de la aplicación, pudiendo ocurrir lo siguiente: - Un cambio de estado en el objeto receptor. - Desencadenar un mensaje (envío de otro suceso) al remitente ó a un tercer objeto . Un suceso se produce en un instante dado, y si bien podemos afirmar que no tienen duración (a diferencia de los estados) , decimos que se produce muy rápidamente en comparación con la granularidad de la escala temporal de un abstracción determinada . En cuánto a los estados, decimos que constituyen una abstracción de los valores de los atributos y de los enlaces de un objeto. Durante el transcurso del desarrollo de una aplicación y en función de las opciones elegidas por los usuarios, un objeto puede pasar por varios estados o mantenerse en un estado inicial. El estado tiene duración, se corresponde con un intervalo de tiempo entre dos sucesos recibidos por un objeto y se lo asocia con actividades continuas, como puede ser el sonido de una alarma o con actividades que demoren un cierto tiempo en concluir, tal como un viaje en auto entre dos lugares. El suceso no tiene duración y decimos que representan puntos temporales, como ser pulsar un botón para desactivar la alarma o encender el auto. Por lo que podemos concluir que sucesos y estados son duales entre sí, es decir que un suceso separa a dos estados y un estado separa a dos sucesos.
  • 4. CAPIS REPORTES TECNICOS Esto se puede observar en el diagrama de estados de FIG 1 en página 7, dónde el suceso conexión separa los dos estados del foco del automóvil (Apagado y Desconexión), mientras que el estado Encendido, por ejemplo, separa los dos sucesos de Conexión y Desconexión. 2.3 Escenarios Un escenario constituye una secuencia de sucesos ordenados en el tiempo que simulan una ejecución particular del sistema. Utiliza dos conceptos importantes: - Objetos que forman parte del sistema (no necesariamente todos se van a representar en el diagrama de escenarios) y objetos externos al sistema y que interactúan con éste . - Sucesos emitidos y recibidos por los objetos implicados en el escenario. Los escenarios permiten experimentar las ejecuciones del sistema, por lo que resultan muy útiles para las fases de pruebas y mantenimiento. Posteriormente veremos la aplicación de los diagramas de escenarios en un caso práctico, los cuáles están referenciados en FIG 5 y FIG. 2.4 Diagramas de Estado Un diagrama de estados es un grafo cuyos nodos son estados y cuyos arcos dirigidos son transiciones entre estados causadas por sucesos. De ésta definición se desprende que una transición constituye un cambio de estado causado por un suceso, es decir que si un objeto se encuentra en un cierto estado y se produce un suceso cuyo nombre corresponda al de una de sus transiciones, entonces el objeto pasa al estado que se encuentra en el extremo de destino de la transición. Decimos que la transición se dispara. El Modelo Dinámico consta de múltiples diagramas de estados, con un diagrama para cada clase que tenga un comportamiento dinámico relevante dentro del dominio de la aplicación, mostrándonos la trama de actividad de todo el sistema. Es decir, que debemos concentrarnos en clases de objetos que tengan interacciones importantes, de lo que se desprende que no todas las clases necesitan un diagrama de estados, así por ejemplo, si el objeto solo posee un estado inicial y otro final, no será de utilidad su diagrama de estados. Los estados los representamos por un rectángulo de esquinas redondeadas con el nombre del estado y las transiciones por medio de flechas desde el estado receptor hasta el estado destino, dónde el rótulo de la flecha hace referencia al nombre del suceso que da lugar a la transición, debiéndose destacar que todas las transiciones que salgan de un estado deben de corresponder a sucesos distintos. Por ejemplo, éste podría ser el diagrama de estados de un foco de automóvil, dónde el suceso conexión – desconexión es la secuencia del suceso conexión seguido por el suceso desconexión.
  • 5. CAPIS REPORTES TECNICOS Conexión Apagado Encendido Desconexión FIG 1 A su vez, los diagramas de estado pueden representar ciclos vitales únicos o bien bucles continuos. Los diagramas de un solo uso representan objetos de duración finita y poseen estados iniciales y finales, entrándose en el estado inicial al crear el objeto y cuándo se ingresa en el estado final se implica la destrucción del objeto. El estado inicial se representa mediante un círculo negro, el cuál puede estar rotulado para indicar diferentes condiciones iniciales. El estado final se expresa por un círculo blanco con centro negro, cuyo rótulo también indicaría distintas condiciones finales. Cómo ejemplo de diagrama de un solo uso, podemos ver el ciclo vital simplificado de un juego de ajedrez representado en la FIG 2. Comienzo Jaque Mate Ganan Piensan las las Blancas Rey Ahogado Negras Mueven las Mueven las Negras Blancas Tablas Piensan las Rey Ahogado Ganan Negras las Jaque Mate Blancas FIG 2 Cabe aclarar, que los diagramas de un solo uso los podemos considerar cómo una subrutina del diagrama de estados, a la cuál se puede hacer alusión desde diferentes lugares en un diagrama de alto nivel. En los diagramas que representan bucles continuos, en general se desconoce y carece de importancia la forma en que comienza el bucle. Por ejemplo, el diagrama de estados que describe el comportamiento de una línea telefónica representado en FIG 3 constituye un bucle continuo que muestra la utilización normal del teléfono. El diagrama de FIG 3, contiene las secuencias asociadas a llamadas normales así cómo algunas secuencias anormales, tales cómo que se agotó el tiempo mientras se marca.
  • 6. CAPIS REPORTES TECNICOS También podemos observar, que el suceso “colgar” da lugar a una transición desde cualquier estado hasta el estado en reposo , circunstancia ésta que se manifiesta en el diagrama con una cuantas transiciones que llevan hasta el reposo . Colgar Colgar Libre Descolgar Tiempo Agotado Tiempo Tono de Marcar Agotado Dígito n Tiempo Agotado Dígito n Mensaje Marcando Número no Válido Grabado Número Número Válido Línea Ocupado Ocupada Mensaje Conectado Finalizado Señal de Red Ocupado Sobrecargada Encaminando Sonando Responde el Teléfono Llamado Conectado Cuelga el Teléfono Llamado Desconectado FIG 3 3. CONSTRUCCIÓN DEL MODELO DINÁMICO Para ilustrar éstos conceptos básicos acerca del Modelo Dinámico, se desarrollará un caso práctico simple a partir del modelo de objetos y se avanzará sobre algunos conceptos mas avanzados del Modelo Dinámico, como anidamiento de estados, atributos, centinelas y operaciones.
  • 7. CAPIS REPORTES TECNICOS 3.1 Modelo de Objetos Supongamos un objeto persona que posee un nombre, una dirección y un cargo y que puede trabajar o no para una empresa y que también podrá ser contactado por una agencia de colocación para recibir una o mas propuestas de empleos. Las palabras subrayadas indican las clases de objetos a modelar. Representamos la asociación “muchos a muchos” entre la clase Persona y la clase Agencia por un asterisco * en ambos extremos de clase, y la asociación muchos a uno entre la clase Persona y la clase Empresa por un asterisco * en el extremo Persona y 0..1 en el extremo Empresa (que denota que una persona podrá trabajar para ninguna o a lo sumo para una empresa). Construyamos el modelo de objetos para ésta aplicación en FIG 4: Persona Contactar Para * Nombre * Trabajar Para Dirección Propuesta Cargo * 0..1 Agencia Empresa Nombre Nombre Dirección Dirección FIG 4 Los símbolos * y 0..1 se refieren a las cardinalidades, así es que el símbolo * lo utilizamos para representar un conjunto de valores potencialmente infinito, es decir 0 o más. Por ejemplo, en el diagrama de objetos de FIG 4 se indica que una persona puede ser contactada por 0 o más agencias y que una agencia puede contactar a 0 más personas. Así como también, que en una empresa pueden trabajar 0 más personas. El símbolo 0..1 indica que 0 o 1 objetos de la clase a la que le corresponde la cardinalidad pueden estar relacionados con los objetos de otra clase. Para el diagrama de objetos en FIG 4 tenemos que una persona puede trabajar para 0 o una empresa a lo sumo. 3.2 Diagramas de Escenarios o de Secuencia de Sucesos Este diagrama muestra cada objeto como una línea vertical y cada suceso como una flecha horizontal que va desde el objeto emisor hasta el objeto receptor, efectuándose la lectura secuencial en orden descendente. El tiempo va en aumento desde arriba hacia abajo, aunque debemos aclarar que el espacio entre las flechas representativas de los sucesos, carece de importancia. Es decir, que lo único que se visualizan son las secuencias de sucesos sin hacer referencia a su temporización exacta. Es de destacar, que los objetos que intervienen en los escenarios son instancias, por lo que es necesario especificar su nombre y su clase, a partir de lo cual podemos afirmar que:
  • 8. CAPIS REPORTES TECNICOS “Un escenario es al Modelo Dinámico lo que un diagrama de instancias es a un Modelo de Objetos” En el marco de la aplicación que gestiona la asignación de puestos, cuyo diagrama de clases es el que se presenta en la FIG 4 el siguiente escenario hace intervenir a los tres objetos del sistema , a saber : la instancia Costas de la clase Persona , la instancia Baner de la clase Empresa y la instancia Sima de la clase Agencia . El suceso original de éste escenario es la búsqueda de un perfil de desarrollador en Java efectuada por la empresa Baner a la agencia Sima. Trás la correspondiente petición, Sima envía la propuesta al señor Costas quien establece contacto con Baner para solicitar entrevista. Luego de la convocatoria efectuada por la empresa al señor Costas, éste acude a la entrevista. Posteriormente, la empresa Baner realiza un balance de dicha entrevista y decide asignar el puesto al señor Costas, quien lo notifica a la agencia Sima. La traza de sucesos de FIG 5 representa una asignación de puesto: Buscar desarrollador en Java Llegada Propuesta Petición de Entrevista Convocatoria Asistencia a Entrevista Perfil del Entrevistado Asignación de Puesto Notificación de Contratación Sima (Agencia) Costas (Persona) Baner (Empresa) FIG 5 Supongamos ahora una situación dónde una instancia del objeto Empresa rechaza la asignación de una instancia del objeto Persona. Dicha situación sería de utilidad ilustrarla con la implementación de otro modelo de escenario. En éste caso, la secuencia de sucesos podría ser la siguiente: un suceso disparador similar al caso anterior, en el cuál la Empresa Soft.SA se dirige a la agencia Zeta para un puesto de Gerente de Sistemas. Como respuesta, ésta agencia le envía a Soft.SA el currículum – vitae del señor Tass.
  • 9. CAPIS REPORTES TECNICOS Entonces la empresa convoca al postulante para una entrevista, tras la cuál Soft .SA , luego de efectuar un balance de la misma , decide no asignar el puesto al señor Tass y le comunica su decisión . Asimismo, la empresa Soft.SA le notifica a la agencia Zeta el rechazo de asignación. La traza de sucesos de FIG 6 representa un rechazo de asignación de puesto: Buscar Gerente de Sistemas Enviar Curriculum vitae del señor Tass para éste puesto Convocatoria Asistencia a Entrevista Perfil del Entrevistado Rechazo de Asignación de Puesto Notificación de Rechazo de Asignación Zeta (Agencia) Tass (Persona) Soft .SA (Empresa) FIG 6 Basados en un formalismo claro e intuitivo, los escenarios facilitan la comprensión del funcionamiento del sistema, y en particular son útiles en la descripción de los casos de error y casos límite de uso del sistema. 3.3 Diagramas de Estado Siempre dentro del contexto del modelo de objetos de nuestro ejemplo, nos interesaremos más acerca de los estados del objeto Persona. Identificamos tres estados diferentes, dependiendo por una parte del valor del atributo Cargo y por otra de los enlaces de éste objeto Persona con un objeto Empresa y con uno o más objetos Agencia. - Estado CONTRATADO: el objeto persona pasa a éste estado cuándo: el atributo Cargo tiene un valor distinto de “Sin Cargo” , cómo por ejemplo “administrativo” , “gerencial” , “informático” , etc ; y por otra parte cuándo el objeto Persona posee un enlace Trabajar Para con un objeto Empresa. Además de éstas dos características, el objeto Persona en el estado Contratado puede poseer un enlace Contactar Para con uno o más objetos Agencia. - Estado BUSQUEDA: el objeto Persona pasa a éste estado cuándo: el valor del atributo Cargo es “sin Cargo” y además el objeto Persona, no tiene ningún enlace Trabajar Para con un objeto Empresa ni tampoco Contactar Para con uno o más objetos Agencia. - Estado SELECCIÓN: el objeto Persona pasa a éste estado cuándo: el valor del atributo Cargo es “sin Cargo” y no tiene un enlace Trabajar Para con un objeto Empresa, pero tiene un enlace con uno o más objetos Agencia.
  • 10. CAPIS REPORTES TECNICOS Los sucesos asociados con los cambios de estado son los siguientes: - El “Despido” efectuado por una Empresa sobre un objeto Persona. - La llegada de una “Propuesta de Trabajo” desde una agencia (externo). - La “Asignación de un Puesto” a una Persona por una Empresa. - El “Rechazo de Asignación” de un puesto por parte de una Empresa. - La “Dimisión” de una Persona en una Empresa. La trama de sucesos, estados y transiciones de éstos estados para el objeto Persona , se representa en el diagrama de estados de FIG 7 : Llegada Propuesta CONTRATADO Dimisión Asignación Despido Puesto Llegada Propuesta BUSQUEDA Rechazo Asignación SELECCION FIG 7 3.4 Diagramas de Estados Anidados A los diagramas de estado como los de FIG 7 en página 13, se los llama diagramas de estados planos o no estructurados. Dichos diagramas aportan información general sobre los estados por los que atraviesa un objeto y puede que dicha información sea suficiente en algunos casos. Pero en determinadas circunstancias, puede ser necesario asociarle a un determinado estado de un objeto diversos subestados, a efectos de poder precisar con mayor detalle dicho estado. Esta necesidad de obtener mayor información acerca de un estado, se tratará de satisfacer asociándole diferentes subestados a cada estado que el analista considere que le corresponden niveles de granularidad distintos. Lo que se conoce como anidamiento de diagramas de estados. Así es que al estado SELECCIÓN del objeto Persona lo podemos precisar por los trés subestados : Candidato a Entrevista, Entrevistado y Evaluado . Los subestados de un objeto se relacionan entre sí en un diagrama dinámico, de igual manera que los estados que precisan o especializan. El anidamiento unos en otros de los diagramas de estado, facilita una lectura más profunda acerca del comportamiento dinámico de los objetos. El diagrama de estado anidado del estado SELECCIÓN lo podemos observar en FIG 8 en página 14:
  • 11. CAPIS REPORTES TECNICOS Llegada Propuesta Convocatoria Candidato a Entrevista Entrevistado Nueva Propuesta Perfil del Entrevistado Asignación Puesto Evaluado Rechazo Asignación FIG 8 El estado inicial que se representa en éste diagrama por un disco negro lleno, indica el punto de entrada en el estado SELECCIÓN. Observando el diagrama de estado de FIG 7 para el objeto Persona, se ve que el punto de entrada es la transición Llegada Propuesta del estado BUSQUEDA al estado SELECCIÓN. Y siguiendo el mismo hilo de razonamiento, se deduce que los estados finales representados en el diagrama por un disco negro rodeado por un círculo corresponden a las transiciones Rechazo Asignación y Asignación Puesto, las cuáles desencadenan los cambios desde el estado SELECCIÓN a los estados BUSQUEDA y CONTRATADO respectivamente. En éste último diagrama de FIG 8 en página 14, se puede observar que el postulante podrá ser citado nuevamente a otra entrevista si la empresa así lo considera, después que dicho postulante haya asistido a la entrevista y la empresa haya realizado el correspondiente balance de la misma. Esta circunstancia se vislumbra en el diagrama a través del suceso Nueva Propuesta, el cuál desencadena la transición desde el estado Evaluado al estado Candidato a Entrevista. Cabe destacar que previamente, el postulante pasó al estado Evaluado desde el estado Entrevistado a causa del suceso Perfil del Entrevistado, que es el que desencadena dicha transición. 3.5 Concurrencia y Sincronización de Estados Nos referiremos a la concurrencia dentro de un objeto, esto se debe a que en ciertas situaciones de modelado es preciso especificar subestados concurrentes, los cuáles a su vez, permiten especificar dos o más estados que se ejecutan en paralelo en el contexto del objeto que las contiene y en un mismo estado. Si los subdiagramas están en concurrencia, el primer subdiagrama que permite que se efectúe la transición del estado englobante hacia otro estado, interrumpe los demás subdiagramas causando la salida del estado englobante. Cuándo el objeto Persona está en el estado BUSQUEDA, podemos imaginarla realizando diversas operaciones en paralelo, cómo ser las gestiones pertinentes en la Agencia de colocación (supongamos que la persona deba inscribirse en la agencia y de ser aceptada su inscripción deberá proceder a realizar un curso de capacitación) y las gestiones individuales que dicha persona realiza en el marco de su búsqueda de empleo (cómo la búsqueda en periódicos etc). La FIG 9 nos muestra la concurrencia para el estado BUSQUEDA:
  • 12. CAPIS REPORTES TECNICOS BUSQUEDA Inscripción en Inscripción Realizar Llegada Propuesta Agencia Aceptada Curso por Agencia ----------------------------------- Ó SELECCION Búsqueda en Periódicos Llegada Propuesta por Periódico FIG 9 Los subestados Inscripción en Agencia y Realizar Curso son secuenciales, es decir que en el marco de las gestiones que el postulante realiza en la Agencia, su estado es de Inscripción ó de Realizar Curso. Ambos estados, a su vez, están en concurrencia con el subestado Búsqueda en Periódicos, ya que dos tipos de eventos independientes pueden encontrarse en el origen de la transición hacia el estado SELECCIÓN: una Llegada de Propuesta por Agencia Ó una Llegada de Propuesta por Periódico. Cualquiera de las dos transiciones que se dé primero, hará que concluyan los subdiagramas concurrentes, ya que ambos forman parte de un mismo estado compuesto BUSQUEDA y solamente se encuentran activados cuándo el diagrama de estados de más alto nivel está en ese estado. Los diagramas de estados concurrentes son útiles si un objeto dado tiene conjuntos de comportamientos independientes. Si los subdiagramas están sincronizados, la transición del estado englobante hacia otro estado solo se efectúa cuándo todos los subdiagramas lo permiten, sin poder interrumpir ningún subdiagrama. Llevado a nuestro caso práctico, podemos precisar el estado CONTRATADO del objeto Persona por dos subestados: Trabajando y Licencia, siendo Trabajando el estado englobante que contiene dos subdiagramas que están sincronizados: Pedir Licencia y Ejercer Función. Es decir, que cuándo un objeto Persona se halla en el subestado Trabajando del estado CONTRATADO, pueden desarrollarse dos diagramas de estado simples en paralelo, cómo ser el que gestiona el Pedido de Licencia (Pedir Licencia) y el que describe sus actividades profesionales (Ejercer Función). Asumimos como requisito impuesto por la empresa para que una persona entre en estado de licencia, que se manifiesten dos eventos : el Pedido de Licencia debe ser aceptado Y además que ciertas funciones que le competen a esa persona, deben estar concluidas (por ejemplo, si la persona es la encargada de liquidar sueldos, dicha tarea debe estar terminada antes de que la persona entre en licencia) . El orden en que éstos sucesos se manifiesten carece de relevancia, es decir que los pasos internos de las actividades no están sincronizados, pero dichas actividades deben estar finalizadas antes de que el objeto pueda avanzar hacia el estado siguiente.
  • 13. CAPIS REPORTES TECNICOS La FIG 10 nos muestra la sincronización para el subestado Trabajando : Trabajando Aceptación Pedir Licencia de Licencia --------------------------- Y Licencia Ejercer Función Tareas Terminadas FIG 10 3.6 Atributos Centinelas y Operaciones Estos tres elementos enriquecen el modelo dinámico, aportando detalles adicionales a los diagramas de estado. Los atributos y centinelas (condiciones) permiten precisar una transición. Así es que los atributos son los valores de datos aportados por un suceso al igual que los valores de datos que contienen los objetos. Es decir, que constituyen la información llevada por los eventos y se representan entre paréntesis después del nombre de la clase de suceso. Los centinelas o condiciones son funciones booleanas lógicas que devuelven verdadero o falso y vendrían a ser cómo protecciones de las transiciones también llamadas guardias, de tal manera que una transición con protección se dispara cuándo se produce su suceso y si el guardia se resuelve como “verdadero” . Esta guardia o protección va entre corchetes después de la lista de atributos del suceso. El suceso se podría representar: suceso (atributos)[centinela], por ejemplo en el subdiagrama del estado CONTRATADO, el suceso Entrada en Licencia puede tener los atributos número de licencia (que indica la cantidad de licencias que tomó el empleado en un período determinado) y cantidad de días solicitada y para que la transición al estado Licencia se dispare, debe cumplirse que éste número esté por debajo de un cierto valor (4 por ejemplo) y que además, la cantidad de días solicitada no sea mayor de una cierta cantidad (10 por ejemplo), así es que podemos tener más de un centinela. El suceso quedaría: Entrada en Licencia (Nº Licencia, Cantidad de días) [Nº Licencia< 4 && Cantidad días < 10]. Las operaciones describen la respuesta de un objeto ante un suceso, así es que las operaciones asociadas a estados o transiciones se efectúan en respuesta a los correspondientes estados o sucesos. Las operaciones asociadas a estados son las actividades, que requieren un cierto tiempo. Podemos citar las operaciones continuas, cómo la actividad “Ejercer Función” del objeto Persona en el subestado Trabajando del estado CONTRATADO. Se inscribe dentro del rectángulo del estado, precedido por la notación “do” . También están las actividades secuenciales, que terminan por sí mismas después de un cierto intervalo de tiempo, cómo el cierre de una válvula.
  • 14. CAPIS REPORTES TECNICOS Las acciones son operaciones “instantáneas” y pueden estar asociadas a una transición o también al estado de un objeto, pudiendo intervenir en la entrada del estado (prefijo entry/), en la salida del estado (prefijo exit/), en respuesta a un evento desencadenante (prefijo nombre evento/), o bien en el transcurso de una transición (la acción figura tras la lista de centinelas precedida por el signo / ). Supongamos nuestro objeto Persona cuándo ingresa en el estado CONTRATADO, la misma efectúa su primera acción que es firmar su contrato de trabajo, contrato éste que se rompe cuándo la persona sale del estado CONTRATADO. Por otra parte, durante el tiempo de su contrato la persona se encarga de realizar una actividad consistente en ejercer su función para la que fue contratado. Además, mientras la persona permanece en éste estado pueden producirse varios eventos de distinta naturaleza, cómo ser la llegada de una propuesta proveniente de una agencia de empleo (debiendo responder la persona a ésa solicitud) ó la notificación de un cambio (la persona cambia de asignación). Para nuestro caso, tendríamos para el estado CONTRATADO el siguiente diagrama completo representado en FIG 11 en página 18 : CONTRATADO entry / firmar contrato de trabajo do : ejercer función llegada propuesta /responder a la propuesta cambio / cambiar de asignación exit / romper contrato de trabajo FIG 11 Y de una forma más general tendríamos la siguiente situación, que representamos en la FIG 12 ESTADO 1 entry / acción al entrar en estado do : actividad durante el estado evento 1 / acción 1 evento 2 / acción 2 .... exit / acción al salir del estado suceso (atributos) [centinelas] /acción ESTADO 2 FIG 12
  • 15. CAPIS REPORTES TECNICOS 4. Conclusiones El modelo dinámico describe los aspectos de comportamiento de un sistema que cambia con el tiempo y es de utilidad para implementar los aspectos de control, es decir aquella parte del sistema que describe las secuencias de operaciones que se producen en respuesta a estímulos externos. La importancia del modelo dinámico dependerá de la naturaleza de la aplicación, así por ejemplo, dicho modelo no será preponderante para un depósito de datos puramente estático cómo una base datos, adquiriendo mayor importancia para sistemas interactivos. Los sucesos que representamos en los diagramas de estado correspondiente a un objeto, suelen implementarse como operaciones para ése objeto en el modelo de objetos. Según algunos autores, como James Rumbaugh, los sucesos son más expresivos que las operaciones, ya que el efecto de un suceso depende tanto de la clase del objeto cómo de su estado. El modelo dinámico constituye un soporte muy útil para el paso a la fase de diseño, ya que permite describir los encadenamientos de los métodos. 5. Bibliografía Martin Fowler con Kendall Scott - “UML GOTA A GOTA” - Ed Eyrolles Gestión 2000. 1997 López Nathalie, Migueis Jorge, Pichon Emmanuel - “Integrar UML en los proyectos” - Ed Eyrolles Gestión 2000 . 1998 Rossi Bibiana, Britos Paola, García Martínez - “Modelado de Objetos” Revista del Instituto Tecnológico de Buenos Aires Nº 21. 1998 Rumbaugh James , Blaha Michael, Premerlani William , Eddy Frederick , Lorensen William - “Modelado y diseño orientados a objetos” Ed Prentice - Hall . 1991 Muller Pierre Alain - “Modelado de objetos con UML” - Ed Eyrolles Gestión 2000. 1997 Grady Booch, James Rumbaugh, Ivar Jacobson - “El Lenguaje Unificado de Modelado” - Ed Addison Wesley. 1999 Piattini Mario G , Calvo - Manzano José A , Cervera Joaquín , Fernández Sanz Luis - “Análisis y diseño detallado de Aplicaciones Informáticas de Gestión” - Ed Rama. 1996