Modelos dinamicos Orientado a Objetos
Upcoming SlideShare
Loading in...5
×
 

Modelos dinamicos Orientado a Objetos

on

  • 2,437 views

 

Statistics

Views

Total Views
2,437
Views on SlideShare
2,431
Embed Views
6

Actions

Likes
1
Downloads
38
Comments
0

1 Embed 6

http://ricardotorosistemas.blogspot.com 6

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Modelos dinamicos Orientado a Objetos Modelos dinamicos Orientado a Objetos Document Transcript

  • CAPIS REPORTES TECNICOS MODELO DINAMICO EN ORIENTACION A OBJETOS Maestrando: Ing. Alejandro Hossian1. INTRODUCCIÓNEste artículo tiene como objetivo presentar una breve introducción acerca delmodelado de los aspectos dinámicos de un sistema bajo el paradigma de laOrientación a Objetos para el Análisis y el Diseño, proporcionando un casopráctico a tal efecto.Es importante destacar el papel fundamental que juega el modelo dinámico en eldesarrollo de sistemas, ya que a través del mismo podemos examinar aquellosaspectos de comportamiento de un sistema que cambian con el tiempo.El presente artículo, tratará de proporcionar un marco general sobre los conceptosfundamentales que nos servirán de guía en el modelado de los aspectosdiná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 modelodinámico y su relación con el modelo de objetos, que es el modelo sobre el cuáloperará el modelo dinámico.Luego se hará una breve mención sobre las ventajas que ofrece el modelodinámico (ítem 2.1) para después abordar en forma general aquellos conceptos quenos permitirán la construcción del modelo dinámico, cómo ser los sucesos yestados (í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 delmodelo dinámico a un caso práctico.Comenzamos por la construcción del modelo de objetos (ítem 3.1), siguiendo con larealizació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 considerenrelevantes en el dominio de la aplicación, realizando los diagramas de estadosanidados correspondientes (ítem 3.4).También haremos mención a la concurrencia y sincronización de estados dentrode un objeto (ítem 3.5)En el ítem 3.6, trataremos de explicar tres elementos que contribuyen alenriquecimiento del modelo dinámico, aportando detalles adicionales a losdiagramas de estado.En el ítem 4, presentamos las conclusiones del artículo y en el ítem 5 labibliografía consultada.2. MODELO DINÁMICO Y MODELO DE OBJETOSAlgunos 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 TECNICOSA partir de éstas consideraciones, se desprende que al Modelo Dinámico no leresultan ajenos los requisitos expuestos, cabiéndole la importante responsabilidadde describir aquellos aspectos de un sistema que cambian con el tiempo. Esdecir, que el Modelo Dinámico se utiliza para especificar e implementar losaspectos del control del sistema, colaborando de ésta manera en describir lassecuencias 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énimplementadas.Cabe aclarar, que el modelado del aspecto dinámico de un sistema no constituyeuna característica exclusiva del paradigma orientado a objetos, dado que tambiénpuede 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 deObjetos que resulta ser el más importante, dado que bajo el enfoque deorientación a objetos, la construcción de nuestro sistema se hará en torno a ellosy no a la funcionalidad del mismo.Y será precisamente la identificación de los objetos procedentes del dominio de laaplicación, el principal centro de atención del analista, para luego ajustarle a dichosobjetos los procedimientos.Tales afirmaciones, están sustentadas en principios fundamentales del modeladoorientado a objetos, como ser la expresa necesidad del Modelo de Objetos parapoder 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ónde 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 enlos requisitos funcionales de un único problema.El Modelo de Objetos cumple la función primordial de capturar la estructuraestá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 JamesRumbaugh, incorpora el llamado Modelo Funcional después de haber modelado laestructura estática (Modelo de Objetos) y la estructura dinámica (Modelo Dinámico).Este modelo funcional describe las transformaciones de valores de datos queocurren dentro del sistema es decir, que es responsable de capturar lo que haceel 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Á CAMBIANDOEL MODELO DE OBJETOS CONTIENE DIAGRAMAS DE OBJETOS DESCRIBE “CUANDO” CAMBIAEL MODELO DINAMICO CONTIENE DIAGRAMAS DE ESTADO DESCRIBE “COMO” CAMBIAEL MODELO FUNCIONAL CONTIENE DIAGRAMAS DE FLUJOS DE DATOS
  • CAPIS REPORTES TECNICOS2.1 Ventajas del Modelo DinámicoLas relaciones dinámicas no resultan sencillas de comprender en muchasaplicaciones, por lo que la fase de análisis dinámico es una etapa importante enlo que se refiere a los cambios de los objetos y sus relaciones en el tiempo, enella 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 EstadosLos conceptos más importantes del Modelo Dinámico son los sucesos, querepresentan estímulos externos, y los estados que hacen referencia a los valoresde los objetos.Más precisamente podemos afirmar, que un suceso es un estímulo individualproveniente de un objeto y que llega a otro, pudiendo ser éste un objeto delsistema o externo al mismo.Sea cual fuera su origen, un evento puede dirigirse hacia uno o más objetos, oincluso no poseer un destino preciso en el sistema, con lo que ciertos objetos delsistema pueden captarlo.La respuesta de un objeto a un suceso que le llega depende del estado delobjeto 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 notienen duración (a diferencia de los estados) , decimos que se produce muyrápidamente en comparación con la granularidad de la escala temporal de unabstracción determinada .En cuánto a los estados, decimos que constituyen una abstracción de los valoresde los atributos y de los enlaces de un objeto.Durante el transcurso del desarrollo de una aplicación y en función de lasopciones elegidas por los usuarios, un objeto puede pasar por varios estados omantenerse en un estado inicial.El estado tiene duración, se corresponde con un intervalo de tiempo entre dossucesos recibidos por un objeto y se lo asocia con actividades continuas, comopuede ser el sonido de una alarma o con actividades que demoren un ciertotiempo en concluir, tal como un viaje en auto entre dos lugares.El suceso no tiene duración y decimos que representan puntos temporales, comoser 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 decirque un suceso separa a dos estados y un estado separa a dos sucesos.
  • CAPIS REPORTES TECNICOSEsto se puede observar en el diagrama de estados de FIG 1 en página 7, dóndeel suceso conexión separa los dos estados del foco del automóvil (Apagado yDesconexión), mientras que el estado Encendido, por ejemplo, separa los dossucesos de Conexión y Desconexión.2.3 EscenariosUn escenario constituye una secuencia de sucesos ordenados en el tiempo quesimulan 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 queresultan muy útiles para las fases de pruebas y mantenimiento.Posteriormente veremos la aplicación de los diagramas de escenarios en un casopráctico, los cuáles están referenciados en FIG 5 y FIG.2.4 Diagramas de EstadoUn diagrama de estados es un grafo cuyos nodos son estados y cuyos arcosdirigidos son transiciones entre estados causadas por sucesos.De ésta definición se desprende que una transición constituye un cambio deestado causado por un suceso, es decir que si un objeto se encuentra en uncierto estado y se produce un suceso cuyo nombre corresponda al de una desus transiciones, entonces el objeto pasa al estado que se encuentra en elextremo 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 diagramapara cada clase que tenga un comportamiento dinámico relevante dentro deldominio de la aplicación, mostrándonos la trama de actividad de todo el sistema.Es decir, que debemos concentrarnos en clases de objetos que tenganinteracciones importantes, de lo que se desprende que no todas las clasesnecesitan un diagrama de estados, así por ejemplo, si el objeto solo posee unestado inicial y otro final, no será de utilidad su diagrama de estados.Los estados los representamos por un rectángulo de esquinas redondeadas con elnombre del estado y las transiciones por medio de flechas desde el estadoreceptor hasta el estado destino, dónde el rótulo de la flecha hace referencia alnombre del suceso que da lugar a la transición, debiéndose destacar que todaslas transiciones que salgan de un estado deben de corresponder a sucesosdistintos.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ónseguido por el suceso desconexión.
  • CAPIS REPORTES TECNICOS Conexión Apagado Encendido Desconexión FIG 1A su vez, los diagramas de estado pueden representar ciclos vitales únicos o bienbucles continuos.Los diagramas de un solo uso representan objetos de duración finita y poseenestados iniciales y finales, entrándose en el estado inicial al crear el objeto ycuá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 estarrotulado para indicar diferentes condiciones iniciales.El estado final se expresa por un círculo blanco con centro negro, cuyo rótulotambién indicaría distintas condiciones finales.Cómo ejemplo de diagrama de un solo uso, podemos ver el ciclo vital simplificadode 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 2Cabe aclarar, que los diagramas de un solo uso los podemos considerar cómouna subrutina del diagrama de estados, a la cuál se puede hacer alusión desdediferentes lugares en un diagrama de alto nivel.En los diagramas que representan bucles continuos, en general se desconoce ycarece de importancia la forma en que comienza el bucle.Por ejemplo, el diagrama de estados que describe el comportamiento de una líneatelefónica representado en FIG 3 constituye un bucle continuo que muestra lautilizació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 mientrasse marca.
  • CAPIS REPORTES TECNICOSTambién podemos observar, que el suceso “colgar” da lugar a una transición desdecualquier estado hasta el estado en reposo , circunstancia ésta que se manifiestaen 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 33. CONSTRUCCIÓN DEL MODELO DINÁMICOPara 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á sobrealgunos conceptos mas avanzados del Modelo Dinámico, como anidamiento deestados, atributos, centinelas y operaciones.
  • CAPIS REPORTES TECNICOS3.1 Modelo de ObjetosSupongamos un objeto persona que posee un nombre, una dirección y un cargoy que puede trabajar o no para una empresa y que también podrá ser contactadopor una agencia de colocación para recibir una o mas propuestas de empleos.Las palabras subrayadas indican las clases de objetos a modelar. Representamosla asociación “muchos a muchos” entre la clase Persona y la clase Agencia porun asterisco * en ambos extremos de clase, y la asociación muchos a uno entrela clase Persona y la clase Empresa por un asterisco * en el extremo Persona y0..1 en el extremo Empresa (que denota que una persona podrá trabajar paraninguna 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 4Los símbolos * y 0..1 se refieren a las cardinalidades, así es que el símbolo * loutilizamos para representar un conjunto de valores potencialmente infinito, es decir0 o más.Por ejemplo, en el diagrama de objetos de FIG 4 se indica que una personapuede ser contactada por 0 o más agencias y que una agencia puede contactara 0 más personas. Así como también, que en una empresa pueden trabajar 0más personas.El símbolo 0..1 indica que 0 o 1 objetos de la clase a la que le corresponde lacardinalidad pueden estar relacionados con los objetos de otra clase.Para el diagrama de objetos en FIG 4 tenemos que una persona puede trabajarpara 0 o una empresa a lo sumo.3.2 Diagramas de Escenarios o de Secuencia de SucesosEste diagrama muestra cada objeto como una línea vertical y cada suceso comouna 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 queel 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 hacerreferencia 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 cualpodemos 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, cuyodiagrama de clases es el que se presenta en la FIG 4 el siguiente escenario haceintervenir a los tres objetos del sistema , a saber : la instancia Costas de la clasePersona , la instancia Baner de la clase Empresa y la instancia Sima de la claseAgencia .El suceso original de éste escenario es la búsqueda de un perfil de desarrolladoren Java efectuada por la empresa Baner a la agencia Sima. Trás lacorrespondiente petición, Sima envía la propuesta al señor Costas quien establececontacto con Baner para solicitar entrevista. Luego de la convocatoria efectuadapor la empresa al señor Costas, éste acude a la entrevista. Posteriormente, laempresa Baner realiza un balance de dicha entrevista y decide asignar el puestoal 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 5Supongamos ahora una situación dónde una instancia del objeto Empresa rechazala asignación de una instancia del objeto Persona. Dicha situación sería de utilidadilustrarla con la implementación de otro modelo de escenario.En éste caso, la secuencia de sucesos podría ser la siguiente: un sucesodisparador similar al caso anterior, en el cuál la Empresa Soft.SA se dirige a laagencia Zeta para un puesto de Gerente de Sistemas.Como respuesta, ésta agencia le envía a Soft.SA el currículum – vitae del señorTass.
  • CAPIS REPORTES TECNICOSEntonces 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 alseñor Tass y le comunica su decisión .Asimismo, la empresa Soft.SA le notifica a la agencia Zeta el rechazo deasignació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 6Basados en un formalismo claro e intuitivo, los escenarios facilitan la comprensióndel funcionamiento del sistema, y en particular son útiles en la descripción delos casos de error y casos límite de uso del sistema.3.3 Diagramas de EstadoSiempre dentro del contexto del modelo de objetos de nuestro ejemplo, nosinteresaremos más acerca de los estados del objeto Persona.Identificamos tres estados diferentes, dependiendo por una parte del valor delatributo Cargo y por otra de los enlaces de éste objeto Persona con un objetoEmpresa y con uno o más objetos Agencia.- Estado CONTRATADO: el objeto persona pasa a éste estado cuándo: el atributoCargo 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 unenlace Trabajar Para con un objeto Empresa. Además de éstas dos características,el objeto Persona en el estado Contratado puede poseer un enlace ContactarPara con uno o más objetos Agencia.- Estado BUSQUEDA: el objeto Persona pasa a éste estado cuándo: el valor delatributo Cargo es “sin Cargo” y además el objeto Persona, no tiene ningún enlaceTrabajar Para con un objeto Empresa ni tampoco Contactar Para con uno o másobjetos Agencia.- Estado SELECCIÓN: el objeto Persona pasa a éste estado cuándo: el valor delatributo Cargo es “sin Cargo” y no tiene un enlace Trabajar Para con un objetoEmpresa, pero tiene un enlace con uno o más objetos Agencia.
  • CAPIS REPORTES TECNICOSLos 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 objetoPersona , 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 73.4 Diagramas de Estados AnidadosA los diagramas de estado como los de FIG 7 en página 13, se los llamadiagramas de estados planos o no estructurados.Dichos diagramas aportan información general sobre los estados por los queatraviesa un objeto y puede que dicha información sea suficiente en algunoscasos.Pero en determinadas circunstancias, puede ser necesario asociarle a undeterminado estado de un objeto diversos subestados, a efectos de poder precisarcon mayor detalle dicho estado. Esta necesidad de obtener mayor informaciónacerca de un estado, se tratará de satisfacer asociándole diferentes subestados acada estado que el analista considere que le corresponden niveles degranularidad distintos. Lo que se conoce como anidamiento de diagramas deestados.Así es que al estado SELECCIÓN del objeto Persona lo podemos precisar porlos trés subestados : Candidato a Entrevista, Entrevistado y Evaluado .Los subestados de un objeto se relacionan entre sí en un diagrama dinámico, deigual manera que los estados que precisan o especializan.El anidamiento unos en otros de los diagramas de estado, facilita una lectura másprofunda acerca del comportamiento dinámico de los objetos.El diagrama de estado anidado del estado SELECCIÓN lo podemos observar enFIG 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 8El 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 deestado de FIG 7 para el objeto Persona, se ve que el punto de entrada es latransición Llegada Propuesta del estado BUSQUEDA al estado SELECCIÓN. Ysiguiendo el mismo hilo de razonamiento, se deduce que los estados finalesrepresentados en el diagrama por un disco negro rodeado por un círculocorresponden a las transiciones Rechazo Asignación y Asignación Puesto, las cuálesdesencadenan los cambios desde el estado SELECCIÓN a los estados BUSQUEDAy CONTRATADO respectivamente.En éste último diagrama de FIG 8 en página 14, se puede observar que elpostulante podrá ser citado nuevamente a otra entrevista si la empresa así loconsidera, después que dicho postulante haya asistido a la entrevista y la empresahaya realizado el correspondiente balance de la misma. Esta circunstancia sevislumbra en el diagrama a través del suceso Nueva Propuesta, el cuáldesencadena la transición desde el estado Evaluado al estado Candidato aEntrevista.Cabe destacar que previamente, el postulante pasó al estado Evaluado desde elestado Entrevistado a causa del suceso Perfil del Entrevistado, que es el quedesencadena dicha transición.3.5 Concurrencia y Sincronización de EstadosNos referiremos a la concurrencia dentro de un objeto, esto se debe a que enciertas situaciones de modelado es preciso especificar subestados concurrentes, loscuáles a su vez, permiten especificar dos o más estados que se ejecutan enparalelo 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 quese efectúe la transición del estado englobante hacia otro estado, interrumpe losdemás subdiagramas causando la salida del estado englobante.Cuándo el objeto Persona está en el estado BUSQUEDA, podemos imaginarlarealizando diversas operaciones en paralelo, cómo ser las gestiones pertinentes enla Agencia de colocación (supongamos que la persona deba inscribirse en laagencia y de ser aceptada su inscripción deberá proceder a realizar un curso decapacitación) y las gestiones individuales que dicha persona realiza en el marcode 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 9Los subestados Inscripción en Agencia y Realizar Curso son secuenciales, es decirque en el marco de las gestiones que el postulante realiza en la Agencia, suestado es de Inscripción ó de Realizar Curso. Ambos estados, a su vez, están enconcurrencia con el subestado Búsqueda en Periódicos, ya que dos tipos deeventos independientes pueden encontrarse en el origen de la transición hacia elestado SELECCIÓN: una Llegada de Propuesta por Agencia Ó una Llegada dePropuesta por Periódico.Cualquiera de las dos transiciones que se dé primero, hará que concluyan lossubdiagramas concurrentes, ya que ambos forman parte de un mismo estadocompuesto BUSQUEDA y solamente se encuentran activados cuándo el diagramade estados de más alto nivel está en ese estado.Los diagramas de estados concurrentes son útiles si un objeto dado tiene conjuntosde comportamientos independientes.Si los subdiagramas están sincronizados, la transición del estado englobante haciaotro estado solo se efectúa cuándo todos los subdiagramas lo permiten, sin poderinterrumpir ningún subdiagrama.Llevado a nuestro caso práctico, podemos precisar el estado CONTRATADO delobjeto Persona por dos subestados: Trabajando y Licencia, siendo Trabajando elestado englobante que contiene dos subdiagramas que están sincronizados: PedirLicencia y Ejercer Función.Es decir, que cuándo un objeto Persona se halla en el subestado Trabajando delestado CONTRATADO, pueden desarrollarse dos diagramas de estado simples enparalelo, cómo ser el que gestiona el Pedido de Licencia (Pedir Licencia) y el quedescribe sus actividades profesionales (Ejercer Función).Asumimos como requisito impuesto por la empresa para que una persona entreen estado de licencia, que se manifiesten dos eventos : el Pedido de Licencia debeser 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 liquidarsueldos, dicha tarea debe estar terminada antes de que la persona entre enlicencia) .El orden en que éstos sucesos se manifiesten carece de relevancia, es decir quelos pasos internos de las actividades no están sincronizados, pero dichasactividades deben estar finalizadas antes de que el objeto pueda avanzar haciael estado siguiente.
  • CAPIS REPORTES TECNICOSLa 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 103.6 Atributos Centinelas y OperacionesEstos tres elementos enriquecen el modelo dinámico, aportando detalles adicionalesa 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 aligual que los valores de datos que contienen los objetos. Es decir, que constituyenla información llevada por los eventos y se representan entre paréntesis despuésdel nombre de la clase de suceso.Los centinelas o condiciones son funciones booleanas lógicas que devuelvenverdadero o falso y vendrían a ser cómo protecciones de las transiciones tambiénllamadas guardias, de tal manera que una transición con protección se disparacuándo se produce su suceso y si el guardia se resuelve como “verdadero” . Estaguardia o protección va entre corchetes después de la lista de atributos delsuceso.El suceso se podría representar: suceso (atributos)[centinela], por ejemplo en elsubdiagrama del estado CONTRATADO, el suceso Entrada en Licencia puede tenerlos atributos número de licencia (que indica la cantidad de licencias que tomó elempleado en un período determinado) y cantidad de días solicitada y para que latransición al estado Licencia se dispare, debe cumplirse que éste número esté pordebajo de un cierto valor (4 por ejemplo) y que además, la cantidad de díassolicitada no sea mayor de una cierta cantidad (10 por ejemplo), así es quepodemos 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 quelas operaciones asociadas a estados o transiciones se efectúan en respuesta alos correspondientes estados o sucesos.Las operaciones asociadas a estados son las actividades, que requieren un ciertotiempo. Podemos citar las operaciones continuas, cómo la actividad “EjercerFunción” del objeto Persona en el subestado Trabajando del estadoCONTRATADO. Se inscribe dentro del rectángulo del estado, precedido por lanotación “do” .También están las actividades secuenciales, que terminan por sí mismas despuésde un cierto intervalo de tiempo, cómo el cierre de una válvula.
  • CAPIS REPORTES TECNICOSLas acciones son operaciones “instantáneas” y pueden estar asociadas a unatransición o también al estado de un objeto, pudiendo intervenir en la entrada delestado (prefijo entry/), en la salida del estado (prefijo exit/), en respuesta a un eventodesencadenante (prefijo nombre evento/), o bien en el transcurso de una transición (laacció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 otraparte, durante el tiempo de su contrato la persona se encarga de realizar unaactividad consistente en ejercer su función para la que fue contratado.Además, mientras la persona permanece en éste estado pueden producirse varioseventos de distinta naturaleza, cómo ser la llegada de una propuesta provenientede una agencia de empleo (debiendo responder la persona a ésa solicitud) ó lanotificación de un cambio (la persona cambia de asignación).Para nuestro caso, tendríamos para el estado CONTRATADO el siguiente diagramacompleto 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 11Y de una forma más general tendríamos la siguiente situación, que representamosen 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 TECNICOS4. ConclusionesEl modelo dinámico describe los aspectos de comportamiento de un sistema quecambia 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 quese 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 datospuramente estático cómo una base datos, adquiriendo mayor importancia parasistemas interactivos.Los sucesos que representamos en los diagramas de estado correspondiente a unobjeto, suelen implementarse como operaciones para ése objeto en el modelo deobjetos. Según algunos autores, como James Rumbaugh, los sucesos son másexpresivos que las operaciones, ya que el efecto de un suceso depende tanto dela clase del objeto cómo de su estado.El modelo dinámico constituye un soporte muy útil para el paso a la fase dediseño, ya que permite describir los encadenamientos de los métodos.5. BibliografíaMartin Fowler con Kendall Scott - “UML GOTA A GOTA” - Ed EyrollesGestión 2000. 1997López Nathalie, Migueis Jorge, Pichon Emmanuel - “Integrar UML en los proyectos” -Ed Eyrolles Gestión 2000 . 1998Rossi Bibiana, Britos Paola, García Martínez - “Modelado de Objetos”Revista del Instituto Tecnológico de Buenos Aires Nº 21. 1998Rumbaugh James , Blaha Michael, Premerlani William , Eddy Frederick , LorensenWilliam - “Modelado y diseño orientados a objetos”Ed Prentice - Hall . 1991Muller Pierre Alain - “Modelado de objetos con UML” - Ed EyrollesGestión 2000. 1997Grady Booch, James Rumbaugh, Ivar Jacobson - “El Lenguaje Unificado deModelado” - Ed Addison Wesley. 1999Piattini Mario G , Calvo - Manzano José A , Cervera Joaquín , Fernández SanzLuis - “Análisis y diseño detallado de Aplicaciones Informáticas de Gestión” - EdRama. 1996