Creado hace más de una década, el UML o Lenguaje de Modelado Unificado se ha convertido en un estándar de facto en la industria ya que permite modelar, construir y documentar los elementos que forman un sistema de software orientado a objetos. El resultado: ahorro de costos, mejor calidad de aplicaciones e importantes reducciones de tiempo en los proyectos de desarrollo.
UML (Unified Model Language) o Lenguaje de Modelado Unificado posee tres fuentes distintas en sus orígenes. Se trata de la “Técnica de Modelado de Objetos” (OMT), de James Rumbaugh, el “Método Booch”, de Grady Booch, y “Objetory”, de Ivar Jacobson (creador de OOSE - Object Oriented Software Engineer). Estos tres reconocidos expertos en 1994 realizaron la primera versión de UML para la empresa Rational Software Corporation (adquirida en el 2003 por IBM en 2.100 millones de dólares), haciendo cada uno aportes desde las perspectivas que venían desarrollando.
Rápidamente, en 1997, UML fue aceptado por la OMG (Object Management Group), una organización sin fines de lucro compuesta por destacadas compañías de la industria, como IBM, Sun Microsystems y HP, entre otras, que se encargan de la definición y mantenimiento de estándares para aplicaciones. Junto con UML, la OMG también ha definido otros estándares conocidos a nivel mundial, como, por ejemplo, CORBA (Common Object Request Broker Architecture).
Tras un Modelo Visual
UML es un lenguaje de modelado unificado, lo cual significa que, en tanto lenguaje, contiene sintaxis y semánticas y, por ende, reglas de cómo deben agruparse sus elementos y significados de dicho conjunto. Es “modelado” por ser visual y “unificado” porque reúne diversas técnicas. Nace en el contexto de la necesidad de un lenguaje que no sólo comunicara ideas a otros desarrolladores, sino que también pudiera servir de apoyo en los procesos de análisis de un problema.
UML, que se ha convertido en el estándar de facto de la industria especialmente para las fases de análisis y de diseño, suele definirse, en términos simples, como “un lenguaje que permite modelar, construir y documentar los elementos que forman un sistema de software orientado a objetos”.
Objetivos de UML
Los principales objetivos en los orígenes de UML fueron obtener un lenguaje simple que permitiera modelar aplicaciones en cualquier dominio, obtener un lenguaje legible, ya que sería utilizado por las personas, así como permitir la generación automática de código. En efecto, aunque UML está pensado para modelar sistemas complejos con gran cantidad de software, el lenguaje es lo suficientemente expresivo como para modelar sistemas que no son informáticos, como, por ejemplo, los flujos de trabajo (workflow) en una empresa, el diseño de la estructura de una organización e incluso en el diseño de hardware.
UML es así un lenguaje capaz de abstraer cualquier tipo de sistema (informático o no), mediante los diagramas, esto es, mediante representaciones gráficas que contienen toda la información relevante del sistema. Para lograrlo, utiliza distintos tipos de diagramas, como los diagramas de implementación, diagramas de comportamiento o interacción, diagramas de casos de uso y diagramas de clases.
Aún siendo independiente del proceso de desarrollo, UML cuenta con su propia metodología de desarrollo, denominada “Proceso Unificado de Desarrollo”, la cual está basada en componentes. Este proceso utiliza UML para expresar gráficamente todos los esquemas de un sistema de software.
Actualmente, el estándar UML se encuentra en la versión 2. Con UML 2 la OMG se propuso dos objetivos principales. El primero, es hacer de UML un lenguaje mucho más extensivo de lo que era y el segundo, permitir la validación y ejecución de modelos creados con UML.
Funciones de UML
Las principales funciones de UML son:
Visualizar: UML permite expresar de una forma gráfica un sistema de forma que otro lo puede entender.
Especificar: UML permite especificar cuáles son las características de un sistema antes de su construcción.
Construir: A partir de los modelos especificados se puede construir los sistemas diseñados.
Documentar: Los propios elementos gráficos sirven como documentación del sistema desarrollado, sirviendo para su futura revisión.
Elementos de UML
Un modelo UML esta compuesto por tres clases de bloques de construcción. El primero de ellos son los elementos, es decir, las abstracciones de cosas reales o ficticias (como objetos y acciones, por ejemplo); luego se encuentran las Relaciones, esto es la relación entre los elementos (la cual puede ser de dependencia, asociación, generalización, etc.); finalmente, se encuentran los Diagramas, que son colecciones de elementos con sus relaciones.
Los elementos de UML pueden ser estructurales, de comportamiento de agrupación o de anotación.
1. Elementos Estructurales
Actor: "Algo" o "alguien" que puede interaccionar con el sistema que se está desarrollando.
Casos de Uso: Descripción de un conjunto de secuencias de acciones que un sistema ejecuta y que produce un resultado observable de interés para un actor particular.
Clase: Corresponde a una descripción de un conjunto de objetos que comparten los mismos atributos, operaciones, relaciones y semántica.
Objetos: Un objeto es una instancia de alguna clase.
2. Elementos de Comportamiento
Mensajes: Los mensajes se usan para especificar una comunicación entre objetos.
3. Elementos de Agrupación
Paquete: Sirve para organizar elementos en grupos. Un paquete es puramente conceptual (sólo existe en tiempo de desarrollo).
Beneficios de UML
UML representa para los desarrolladores de aplicaciones y sistemas una serie de ventajas, al igual que para las organizaciones, entre estos beneficios destacan:
*Produce un aumento en la calidad del desarrollo.
*Reduce los costos del proyecto.
*Mejora en un 50% o más los tiempos totales de desarrollo.
*Permite especificar la estructura y el comportamiento del sistema y comunicarlo a todos los integrantes del proyecto.
*Brinda la posibilidad de obtener un "plano" del sistema.
*Permite dimensionar mejor los riesgos de un proyecto tener un mejor rendimiento antes de construir el sistema.
*Facilita la documentación de las decisiones de la arquitectura del proyecto.
*Ofrece un mejor soporte a la planificación y control del proyecto.
*Ofrece mayor rigurosidad en la especificación.
*Permite realizar una verificación y validación del modelo realizado.
*Se pueden automatizar determinados procesos y permite generar código a partir de los modelos y viceversa.