¿Cuáles son las características que debe tener una herramienta UML?
José Enrique González Cornejo
Marzo 2009
Resumen
La herramienta UML debe apoyar todos los diagramas de los nueve que componen UML. La herramienta debe soportar la diagramación de casos de uso, permitir definir la visión estática con diagramas de clases y diagramas de objeto, permitir la definición de la visión dinámica, tales como los diagramas de secuencia, la actividad, de los estados, de colaboración y el despliegue de componentes que forman el sistema.
Lo fundamental de una herramienta UML es la capacidad de diagramación, y los diferentes tipos de diagramas que soporta la herramienta. Sus esquemas de apoyo de diseño, documentación, construcción e implantación de sistema. Así mismo, su flexibilidad para admitir cambios no previstos durante el diseño o el rediseño. En resumen, la herramienta ideal, es aquella que admite diseño desde inicio a fin, diseño inverso (o rediseño) y diseño vise-versa, con esquemas amplios para documentar detalladamente los procesos.
DocIRS utiliza para modelar la versión libre de BizAgi BPM Software ~ http://www.bizagi.com.
Inicialmente, también utilizábamos la herramienta Microsoft Visio.Para DocIRS, en particular, la herramienta que cumpla con las expectativas de alcanzar todos los diagramas UML, sería aquella en que los diagramas de clases que se tracen en la herramienta puedan ser utilizados directamente, sin intermediarios. Es decir, generar el código fuente reconociendo las clases en ASP, .NET, o C++ automáticamente desde nuestro RobotDocIRS.
Actualmente en DocIRS, el puente entre el modelamiento, diseño funcional y la documentación elaborados sobre UML, se realiza manualmente por nuestros analistas, ingresándolas a RobotDocIRS mediante una interfaz Insumo. (ver OPTIMIZACIÓN INSUMO ROBOT de Bruno Maggio)
Este escenario entrega un gran conjunto de archivos de código fuentes, con grandes cantidades de clases, y que gracias al UML se logran determinar sus interconexiones. Aquí es donde la herramienta UML ideal, debería permitir hacer las cosas mucho más fáciles:
Diagrama UML de apoyo:
La herramienta UML debe apoyar todos los diagramas de los nueve que componen UML. La herramienta debe soportar la diagramación de casos de uso, permitir definir la visión estática con diagramas de clases y diagramas de objeto, permitir la definición de la visión dinámica, tales como los diagramas de secuencia, la actividad, de los estados, de colaboración y el despliegue de componentes que forman el sistema.
Ingeniería Directa:
Una herramienta UML no debe limitarse sólo a una representación pictórica de diagramas, sino que apoyar en forma directa y técnica la construcción de la aplicación en el lenguaje que se utiliza ( Java, C++, ASP, ASPX, PHP). La ingeniería directa, va moviéndose desde los requerimientos, hacia el diseño (modelamiento, procesos) para llegar a la implementación. Nuestra experiencia, frente a la carencia de una herramienta UML es este aspecto, nos llevó a desarrollar RobotDocIRS, con el cual intentamos automatizar la generación de código fuente en forma robusta y pertinente a los intereses de cada proyecto.
Ingeniería Inversa:
Es exactamente lo contrario de Ingeniería Directa. En la ingeniería inversa, la herramienta UML carga todos los archivos de la aplicación o del sistema, se identifican las dependencias entre las distintas clases, y, esencialmente, reconstruye la estructura de todo el requerimiento, junto con todas las relaciones entre las clases. Ingeniería Inversa es una característica normalmente proporcionada por sofisticadas herramientas UML.Es decir, se pretende utilizar el método como una aproximación práctica que permita generar modelos, utilizando el estándar UML, de aquellos sistemas cuya documentación es escasa, desactualizada o inexistente. (Ver conceptos de Data Mining y de Process Mining)
En necesario mencionar que la Ingeniería Inversa se utiliza para copiar patrones de aplicaciones que atienden un negocio particular, sólo accediendo al sistema como usuario (Es decir, sin tener los códigos). En efecto, al tener los formularios, navegación y reportes de un sistema se puede configurar el desarrollo de una nueva aplicación que realiza procesos similares o iguales que la original.
Documentación:
La documentación es un aspecto integral de una herramienta UML. Diseñar es un proceso de interpretación de una solución de software. Es decir, su naturaleza, es un proceso abstracto que la única forma de determinarlo en forma certera, es una vez se haya confrontado primero con los constructores y después con los usuarios.Naturalmente, existen normas de sintaxis y semántica acerca de las reglas del negocio. El proceso de pensamiento del modelamiento de software utilizando UML, puede desperdiciarse si ciertos procesos de diseño no son capturados apropiadamente y bien documentados.
Una herramienta UML debe necesariamente proveer un esquema amplio que permita al diseñador comunicar en forma precisa los detalles, incluyendo anotaciones o comentarios. Además de esto, la herramienta UML debe apoyar la generación de informes y listados de los diferentes elementos del diseño.
![]()
Colaboración en el modelamiento:
Para el diseño o rediseño de sistemas complejos, puede haber diferentes equipos participando el trabajo de diseño de diversos subsistemas en paralelo, debería realizarse sobre un solo ambiente. Este esfuerzo de colaboración de diseño tiene que ser debidamente sincronizado con la herramienta UML.En síntesis una herramienta UML debe proporcionar apoyo a un entorno de modelado de colaboración.
Una herramienta interesante, que DocIRS ha intentado poner en uso como herramienta UML, es BizAg (Business Agility. para diagramar, ejecutar y mejorar los procesos de negocio). Sin embargo, cuando ya se ha estado trabajando con los profesionales en otros entornos como el Racional Rose, el Visio,.. Migrar a todos los equipos hacia una sola herramienta es un proceso difícil.
Bibliografía:
Artículos Relacionados