UML

UML
Información sobre la plantilla
Logo uml.jpg
lenguaje de modelado de sistemas de software
CreadorJames Rumbaugh, Grady Booch, Ivar Jacobson
DesarrolladorCris Kobryn, Ed Eykholt
Lanzamiento inicialAgosto de 1997
VersionesUML 1.1
Última versión estableUnified Modeling Language (UML) Versión 1.4.2
IdiomaInglés

UML, por sus siglas en inglés, Unified Modeling Language: es el lenguaje de modelado de sistemas de software más conocido y utilizado en la actualidad; está respaldado por el OMG (Object Management Group). Es un lenguaje gráfico para visualizar, especificar, construir y documentar un sistema de software. UML ofrece un estándar para describir un "plano" del sistema (modelo), incluyendo aspectos conceptuales tales como procesos de negocios y funciones del sistema, y aspectos concretos como expresiones de lenguajes de programación, esquemas de bases de datos y componentes de software reutilizables.

Es importante resaltar que UML es un "lenguaje" para especificar y no para describir métodos o procesos. Se utiliza para definir un sistema de software, para detallar los artefactos en el sistema y para documentar y construir. En otras palabras, es el lenguaje en el que está descrito el modelo. Se puede aplicar en una gran variedad de formas para dar soporte a una metodología de desarrollo de software (tal como el Proceso Unificado Racional), pero no especifica en sí mismo qué metodología o proceso usar.

UML no puede compararse con la programación estructurada, pues UML significa (Lengua de Modelación Unificada), no es programación, solo se diagrama la realidad de una utilización en un requerimiento. Mientras que, programación estructurada, es una forma de programar como lo es la orientación a objetos, sin embargo, la orientación a objetos viene siendo un complemento perfecto de UML, pero no por eso se toma UML sólo para lenguajes orientados a objetos

UML cuenta con varios tipos de diagramas, los cuales muestran diferentes aspectos de las entidades representadas.

Historia

Cuando la Rational Software Corporation contrató en 1994 a James Rumbaugh quien trabajaba para General Electric. Asi consiguió tener a los creadores de las dos técnicas más populares para modelado de sistemas orientados a objetos:: la Técnica de Modelado a Objetos de Rumbaugh, que era mejor en análisis, y el Método Booch de Grady Booch, que era mejor en diseño. Juntos, Rumbaugh y Booch comenzaron a compatibilizar sus métodos sentando las bases del Lenguaje Unificado.

Diagramas

Jerarquia de los diagramas UML 2.0, mostrados como un diagrama de clases En UML 2.0 hay 13 tipos de diagramas. Para comprenderlos, a veces es útil categorizarlos jerárquicamente, como se muestra en la figura de la derecha. Diagramas de estructura enfatizan en los elementos que deben existir en el sistema modelado:

  • Diagrama de clases
  • Diagrama de componentes
  • Diagrama de objetos
  • Diagrama de estructura compuesta
  • Diagrama de despliegue
  • Diagrama de paquetes

Diagramas de comportamiento enfatizan en lo que debe suceder en el sistema modelado:

  • Diagrama de actividades
  • Diagrama de casos de uso
  • Diagrama de estados

Diagramas de Interacción, un subtipo de diagramas de comportamiento, que enfatiza sobre el flujo de control y de datos entre los elementos del sistema modelado:

  • Diagrama de secuencia
  • Diagrama de comunicación
  • Diagrama de tiempos (UML 2.0)

Software libre para modelado en UML

Visual Paradigm for UML, Herramienta de modelado UML y herramienta CASE que, como en el caso anterior, cuenta con una versión gratuita denominada Community Edition (enlace externo) ArgoUml, Herramienta de modelado UML escrito en java (enlace externo) Dia Puede ser usado para modelar varios tipos de diagramas UML (enlace externo) Umbrello Herramienta para modelado UML para el entorno KDE (enlace externo) MonoUML Herramienta CASE para la plataforma mono (Sitio Oficial) UMLet Herramienta para modelado rápido de UML también escrita en Java (enlace externo) gModeler Herramienta para modelado de UML basada en Flash (utilizable desde el navegador), que permite generar codigo Action Script 2.0 Compatible (enlace externo) StarUML Herramienta de modelado para Windows desarrollada en Delphi. Bastante estable y usable (enlace externo)

Software Open Source para modelado en UML

Omondo plugin para Eclipse. Herramienta de modelado UML para Java TCM herramienta para crear diversoso tipos de diegramas incluidos UML JUDE Community Herramienta de modelado UML (Sitio Oficial)

Estandarización de UML

Además de haberse convertido en un estándar de facto, UML es un estándar industrial promovido por el grupo OMG al mismo nivel que el estándar CORBA para intercambio de objetos distribuidos. Para la revisión de UML se formaron dos "corrientes" que promovían la aparición de la nueva versión desde distintos puntos de vista. Finalmente se impuso la visión más industrial frente a la académica. Recientemente se ha publicado la versión 2.0 en la que aparecen muchas novedades y cambios que, fundamentalmente, se centran en resolver carencias prácticas. Además, esta versión recibe diversas mejoras que provienen del lenguaje SDL.

Críticas a UML

A pesar de su status de estándar ampliamente reconocido y utilizado, UML siempre ha sido muy criticado por su carencia de una semántica precisa, lo que ha dado lugar a que la interpretación de un modelo UML no pueda ser objetiva. Otro problema de UML es que no se presta con facilidad al diseño de sistemas distribuidos. En tales sistemas cobran importancia factores como transmisión, serialización, persistencia, etc. UML no cuenta con maneras de describir tales factores. No se puede, por ejemplo, usar UML para señalar que un objeto es persistente o remoto, o que existe en un servidor que corre continuamente y que es compartido entre varias instancias de ejecución del sistema analizado. Sin embargo, UML sí acepta la creación de nuestros propios componentes para este tipo de modelado. Entorno de desarrollo integrado Herramienta CASE Técnica de Modelado a Objetos Programación orientada a objetos XMI, un formato estándar basado en XML para el intercambio de modelos UML. OCL, Lenguaje de especificación para los diferentes modelos en UML. Webml, Metodología para el diseño de Sistemas de Información Web.

Véase también

Fuente

UML

  • Introducción a UML 2.0 (Castellano)
  • Introducción a UML 2.0 Parte II (Castellano)
  • Introducción a UML 2.0 (En Ingles)
  • Amplia información sobre UML (Inglés)
  • Lista de herramientas UML