Los Nuevos Diagramas: de Tiempo y de Estructura Compuesta.

Antecedentes La puntualidad (timeliness) es el común denominador en los sistemas de tiempo real. La puntualidad es la capacidad que tiene un sistema de responder de la manera esperada a los estímulos externos dentro de un intervalo de tiempo aceptable. Esto es, si un sistema contra incendios detecta que hay una temperatura por encima del umbral debe activar tanto la alarma como los aspersores a fin de evitar que el conato de incendio se propague y debe hacerlo con oportunidad, quizá el retraso podría tener efectos devastadores. Esta característica abarca un sin número de sistemas de tiempo real, desde los puramente dirigidos por el tiempo hasta los puramente dirigidos por los eventos, desde los sistemas de tiempo real “suave” hasta los sistemas de tiempo real “duro”. Por años, estos sistemas emplearon para su desarrollo sus propios lenguajes, patrones de diseño y estilos de modelado, pero también tenían en común el uso de una herramienta para su modelado ROOM.

ROOM es acrónimo de Real-Time Object Oriented Modeling y es una notación de propósito específico para el modelado de los sistemas en tiempo real. Una las grandes virtudes de ROOM radica en la definición de una serie de construcciones arquitectónicas que recaban la experiencia colectiva de varios equipos de desarrollo en varios proyectos y que contiene las bases del diseño arquitectónico para este tipo de sistemas. En 1998, Bran Selic y Jim Rumbaugh llevaron a cabo una investigación para determinar la viabilidad de modelar Sistemas de Tiempo Real usando una notación de propósito general: UML. En esta investigación se enfocaron en los Sistemas en Tiempo Real que se caracterizan por ser complejos, dirigidos por eventos y potencialmente distribuidos. Este tipo de sistemas son los empleados comúnmente en aplicaciones de telecomunicaciones, aplicaciones aeroespaciales y aplicaciones de control automático. Los proyectos para desarrollar el software asociado a los mismos demandan un gran esfuerzo inicial e involucran a grandes equipos de desarrollo y, al igual que la mayoría de los proyectos, deben adaptarse ágilmente a los inevitables cambios.

Con lo anterior quiero resaltar que la definición de una arquitectura bien diseñada es un factor determinante de éxito, como en todo. Los resultados de la investigación, en pocas palabras, arrojó que las construcciones definidas por ROOM podrían modelarse en UML usando simplemente sus mecanismos de extensión estándar.

La investigación mencionada en el párrafo anterior define tres construcciones para el modelado de estructura: Las cápsulas, los puertos y los conectores. Las cápsulas y los puertos no son otra cosa que clases con el estereotipo de “capsule” y “port” respectivamente a los cuales se les asocian una serie de restricciones y características adicionales. Estas construcciones empleaban principalmente para su modelado diagramas de clases y diagramas de colaboración.

Así mismo, la extensión para el modelado de sistemas en tiempo real definieron tres construcciones para el modelado del comportamiento: El protocolo, las máquinas de estados y los servicios de tiempo.

La Evolución
Con la especificación de UML 2.X se incorporaron dos nuevos diagramas que son la nueva alternativa para el modelado de los sistemas de tiempo real, nos referimos a los Diagramas de Estructura Compuesta y los Diagramas de Tiempo. En los Diagramas de Estructura Compuesta las cápsulas se generalizaron en las partes mientras que los puertos y los conectores conservaron su nombre. La debilidad de UML 1.x en un enfoque fuerte en el tiempo derivó en la incorporación de los Diagramas de Tiempo en UML 2.x.

La Figura 1 muestra un diagrama de estructura compuesta para un sistema contra incendios. UnidadCentralControl, Sirena, Aspersor y MonitorTemperatura son partes; los cuadros pequeños son los puertos y las líneas que los unen son los conectores.


Figura 1. Diagrama de estructura compuesta.

En la Figura 2 se muestra un Diagrama de Tiempo que relaciona los elementos que conforman al sistema contra incendio haciendo énfasis en sus cambios de estado en el tiempo.


Figura 2. Diagrama de Tiempo

Conclusión
Al utilizar UML para el modelado de sistemas en tiempo real, recomendamos:
• Capturar y entender los requerimientos usando un modelo de casos de uso.
• Estudiar las distintas partes que conforman al sistema y cómo interactúan, re- flejando las interfaces, protocolos e intercambio de señales; apoyándonos de los diagramas de clases, estructura compuesta y comunicación.
• Estudiar el comportamiento del sistema en el tiempo y el dependiente del estado usando diagramas de interacción, diagramas de transición de estados y diagramas de tiempo.
Por supuesto esta no es una relación exhaustiva, en caso de ser necesario adicione (o elimine) los diagramas que sean necesarios, lo importante es tener una comprensión aceptable del problema y especificar una solución que lo resuelva.

Acerca de los autores
Sergio Orozco es Director General e Instructor Senior, Charlie Macías es Consultor Senior e Instructor Senior, ambos especializados en temas relacionados con UML en Milestone Consulting. Milestone Consulting (UML Value Added Training Center), es una empresa especializada en capacitación práctica-intensiva y consultoría en UML, BPMN y PM. Milestone Consulting es la primer empresa mexicana miembro de la OMG, además de ser REP del PMI. info@milestone.com.mx www.milestone.com.mx