jueves, 19 de noviembre de 2009

Software para modelado en UML



A continuación, se listan algunos de los programas más populares para el modelado en UML

Software Libre 

Estos programas están bajo licencias libres, siendo posible su libre uso, estudio y modificación.
  • StarUML Herramienta de modelado para Windows desarrollada en Delphi. Bastante estable y utilizable con plugins para diagramas WAE de clase y de secuencia. 
  • ArgoUML, Herramienta de modelado UML escrito en Java 
  • BOUML, Ligera herramienta de modelado UML y generación de código C++, Java e IDL. Disponible para Windows, Unix/Linux y Mac OS X 
  • Fujaba, No solo sirve para modelar sino que puede generar código Java automáticamente. También es capaz de hacer ingeniería inversa y crear los diagramas a partir del código Java 
  • Dia Puede ser usado para modelar varios tipos de diagramas UML 
  • gModeler Herramienta para modelado de UML basada en Flash (utilizable desde el navegador), que permite generar código Action Script 2.0 Compatible 
  • MonoUML Herramienta CASE para la plataforma 
  • Papyrus, Herramienta gráfica basada en Eclipse para el modelado con UML2, es de código abierto y se ofrece bajo licencia EPL

  • TCM, Toolkit for Conceptual Modeling, herramienta para crear diversos tipos de diagramas incluidos UML Web oficial
  • Umbrello Herramienta para modelado UML para el entorno KDE
  • UMLet Herramienta para modelado rápido de UML también escrita en Java 
  • Netbeans módulo UML
  • Open ModelSphere Herramienta de Modelado gratuita, para modelado de datos, procesos y UML. Disponible como Open Source Software, Released Under GPL (GNU Public License). 

Freeware para modelado en UML 

Aunque gratuitos, estos programas se encuentran bajo licencias que no permiten el estudio y modificación de los mismos.

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. Object Management Group

Cómo nació UML


Cómo nació UML

Durante los ochenta y principios de los noventa Grady Booch, James Rumbaugh, e Ivar Jacobson trabajaban por separado en desarrollo de notaciones para el análisis y diseño de sistemas orientados a objetos. Los tres llegaron por separado a obtener bastante reconocimiento.
Booch había escrito "Object-Oriented Analysis and Design with Applications" un libro de referencia en el análisis y diseño orientado a objetos desarrollando su propia notación.
Por su parte James Rumbaugh había desarrollado su propia notación de diseño orientado a objetos llamada OMT (Object Modeling Technique) en su libro "Object-Oriented Modeling and Design".
Por otro lado Jacobson se había revelado como un visionario del análisis (padre de los casos de uso) y sobre todo del diseño orientado a objetos, sorprendiendo a todo el mundo en "Object-Oriented Software Engineering: A Use Case Driven Approach".
A mediados de los noventa empezaron a intercambiar documentos y trabajar en conjunto produciendo grandes avances en el modelado de sistemas orientados a objetos.
En 1994 Rational contrató a Rumbaugh en donde ya trabajaba Booch, un año después Jacobson se unía a ellos en Rational.
En 1997 salió a la luz la versión 1.0 de UML.

Qué no es UML


UML no es un método de desarrollo. No te va a decir cómo pasar del análisis al diseño y de este al código. No son una serie de pasos que te llevan a producir código a partir de unas especificaciones.

UML al no ser un método de desarrollo es independiente del ciclo de desarrollo que vayas a seguir, puede encajar en un tradicional ciclo en cascada, o en un evolutivo ciclo en espiral o incluso en los métodos ágiles de desarrollo.

Herramientas UML

Pero volviendo a la definición de UML como "conjunto de herramientas", si nos imaginamos UML como una caja de herramientas con su martillo, destornillador, alicates, etc. Veamos qué contiene nuestra caja de herramientas:

UML Tools
  • Diagrama de casos de uso
  • Diagrama de clases
  • Diagrama de estados
  • Diagrama de secuencias
  • Diagrama de actividades
  • Diagrama de colaboraciones
  • Diagrama de componentes
  • Diagrama de distribución

Pero siguiendo con la analogía, si vamos a colgar un cuadro no usaremos todas las herramientas de nuestra caja, posiblemente sólo usemos el martillo para clavar el clavo.

Lo mismo pasa con UML, una vez que conozcamos las herramientas usaremos en cada momento las más adecuadas a nuestras necesidades. Nos os voy a decir que esto sea fácil, pues hay que saber para qué sirven y qué limitaciones tienen unas y otras para conocer su utilidad. Pero se puede alcanzar este conocimiento con un poco de práctica y sentido común.

¿Qué es UML?

UML es un conjunto de herramientas, que permite modelar (analizar y diseñar) sistemas orientados a objetos.