herra.uml
DESCRIPTION
jhkujukhTRANSCRIPT
INSTITUTO TECNOLOGICO DE LOS MOCHIS
INGENIERÍA INFORMÁTICA
DES.E IMP. DE SIST. DE INFORM
HERRAMIENTAS UML
Profesora: Miranda Arnold Juan Andrés
Alumna: Araujo Aboytes Sandra Itzel
Los Mochis, Sin. Marzo del 2015.
DEFINICIÓN Y CONCEPTO DE UMLUML son las siglas de “Unified Modeling Language” o “Lenguaje Unificado de
Modelado”. Se trata de un estándar que se ha adoptado a nivel internacional por
numerosos organismos y empresas para crear esquemas, diagramas y
documentación relativa a los desarrollos de software (programas informáticos).
¿QUÉ ES Y PARA QUÉ SIRVE UML?El término “lenguaje” ha generado bastante confusión respecto a lo que es UML.
En realidad el término lenguaje quizás no es el más apropiado, ya que no es un
lenguaje propiamente dicho, sino una serie de normas y estándares gráficos
respecto a cómo se deben representar los esquemas relativos al software. Mucha
gente piensa por confusión que UML es un lenguaje de programación y esta idea
es errónea: UML no es un lenguaje de programación. Como decimos, UML son
una serie de normas y estándares que dicen cómo se debe representar algo.
UML es una herramienta propia de personas que tienen conocimientos
relativamente avanzados de programación y es frecuentemente usada por
analistas funcionales (aquellos que definen qué debe hacer un programa sin entrar
a escribir el código) y analistas-programadores (aquellos que dado un problema, lo
estudian y escriben el código informático para resolverlo en un lenguaje como
Java, C#, Python o cualquier otro). Por tanto si estás dando tus primeros pasos en
programación, te recomendaríamos que te olvides de UML hasta que tengas unos
conocimientos mínimos como uso de condicionales, bucles, y conocimiento de la
programación orientada a objetos. Esto es solo una recomendación, en realidad
prácticamente cualquier persona puede usar UML, incluso podría usarse para
realizar esquemas o documentación de procesos que no tengan que ver con la
informática.
¿CUÁLES SON LAS VERSIONES DE UML?Los antecedentes de UML se sitúan en la década de los 90 con distintos
estándares para modelado de software, no obstante podemos hablar de dos
grandes versiones:
UML 1.X (comprende UML 1.1, 1.2, 1.3, 1.4, 1.5): desde finales de los 90 se
empezó a trabajar con el estándar UML. En los años sucesivos fueron
apareciendo nuevas versiones que introducían mejoras o ampliaban a las
anteriores.
UML 2.X (comprende UML 2.1 hasta UML 2.5, 2.6, etc.): en torno a 2005 se
difundió una nueva versión de UML a la que podemos denominar UML 2.X.
Comprenden varias revisiones.
UML 3.X: evolución que se espera para UML 2.X.
Hay que tener en cuenta que UML es un conjunto muy amplio de normas.
Prácticamente nadie las conoce todas. Según la empresa o universidad, institución
o centro de trabajo se usan determinados programas para crear diagramas y se
conocen ciertas partes de UML, pero no el conjunto de UML.
¿Qué versión usar? Para generar diagramas UML se usan programas
informáticos. Usa un programa actualizado pero no te preocupes en exceso por
qué versión de UML usar, lo importante es que en tu grupo de trabajo o personas
a las que se les vaya a enviar documentación sobre un proyecto software sepan
interpretar lo que se les envía. A nivel profesional no se le presta demasiada
atención a que se cumpla estrictamente con las normas de una determinada
versión de UML, sino a que los esquemas estén bien construidos y razonados.
TIPOS DE DIAGRAMAS EN UMLUsando UML se pueden construir numerosos tipos de diagramas. Vamos a citar
algunos:
Diagramas de casos de uso: representan a los actores y casos de uso (procesos
principales) que intervienen en un desarrollo de software.
Diagramas de clases: para UML una clase es una entidad, no una clase software.
Un diagrama de clases UML puede ser un diagrama del dominio o representación
de conceptos que intervienen en un problema, o también un diagrama de clases
software. El sentido de un diagrama UML se lo da la persona que lo construye.
Diagramas de secuencia: suelen usarse para representar objetos software y el
intercambio de mensajes entre ellos, representando la aparición de nuevos objetos
de izquierda a derecha.
Diagramas de colaboración: suelen usarse para representar objetos o clases y la
forma en que se transmiten mensajes y colaboran entre ellos para cumplir un
objetivo.
Diagramas de estados: suelen usarse para representar cómo evoluciona un
sistema (cómo va cambiando de estado) a medida que se producen determinados
eventos.
Otros diagramas: diagramas de actividad, diagramas de paquetes, diagramas de
arquitectura software, etc.
Herramientas UML textualesTambién podemos encontrar diversas herramientas que permiten la especificación
textual de modelos UML (y que automáticamente dibujan el diagrama UML
correspondiente). Pueden ser una solución útil en algunos casos. Lista de
herramientas de este tipo:
Nomnoml Crea diagramas de clase con una sintaxis textual para UML fácil de
usar. Lee ç el cómo y el porqué de esta herramienta.
yUML es un servicio online para crear diagramas de clase y de casos de uso. Este
servicio puede llamarse desde un blog o página web (pasando la descripción
textual del modelo a mostrar como parte de la URL) para visualizar
automáticamente el modelo indicado.Ahora podemos también generar modelos
UML desde otras herramientas UML.
UML Graph dibuja automáticamente diagramas de clase y de secuencia. Para los
de clase utiliza la sintaxis Java con anotaciones que después la herramienta
convierte a specifications Graphviz. Para los diagramas de secuencia se utiliza un
enfoque diferente (y esto es lo que no me gusta de la herramienta, en el fondo son
dos distintas): se usan pic macros para definir el diagrama y después el programa
pic2plot convierte las macros en archivos gráficos.
TextUML Toolkit es otra herramienta reciente. Es un editor open-source que utiliza
com visor de UML el proyecto EclipseGraphviz. Soporta básicamente diagramas
de clase y un subconjunto de los diagramas de actividades.
MetaUML es una librería para visualizar diagramas UML en archivos LaTeX,
definidos utilizando una notación textual simple. Soporta diagramas de clase, de
actividad y de casos de uso y máquinas de estado.
USE también utiliza una notación textual pero en este caso su objetivo es animar
el modelo permitiendo la creación de snapshots que sirvan para validar las
restricciones OCL que se hayan definido.
PlantUML soporta diagramas de clase, de casos de uso y de actividad, aunque no
tengo claro si es un proyecto aún activo. Ver también esta descripción más
detallada en el blog
Simple DSL for sequence diagrams basado en UMLGraph . Utiliza el TXL
Programming Language para pasar del DSL a UMLGraph
(Sólo para fans acérrimos de Latex) Macros de Latex macros para dibujar UML
Sequence diagrams , el nombre lo dice todo
metaDepth : Herramienta para la definición textual de modelos multi-nivel (es
decir, la herramienta no se limita a modelos UML ni está restringida a la
arquitectura modelo/metamodelo/metametamodelo típica. Mi resumen aquí ).
EasyUML Editor: soporta casi todos los tipos de diagramas UML. Los diagramas
se pueden exportar a PDF, PNG o SVG. Se ejecuta como una aplicación web
Umple puede también usarse como herramienta de modelado textual para UML
Microsoft ha publicado un código de ejemplo para Visual Studio que permite la
descripción textual de diagramas de clase, casos de uso y actividades
Finite State Machine Diagram Generator: una sintaxis XML muy simple para la
definición textual de UML state machines. La herramienta de dibujo está
implementada como un servicio web gratuito. La herramienta también permite la
generación de código (Java, C++ and C#) a partir de esos mismos diagramas.
seqdiag – generador the imágenes representando diagramas de secuencia a partir
de archivos .diag, similares a los .dot (graphviz’s)).
PlantText UML Editor y SeedUML: dos editores online textuales basados
en PlantUML .
Herramientas UML para EclipseAdemás, también es útil echar un vistazo a la lista de herramientas compatibles
con el plug-in Eclipse UML 2 . Como ya comentamos aquí , la amplia adopción de
las herramientas para Eclipse podría convertir el formato XMI que usan en un
estandar de facto para todas las otras herramientas UML.
Herramientas UML libres y/o Open source
Finalmente, quiero mencionar también un par de listas de herramientas UML open
source (aunque no están completas, por
ejemplo UMLet , Moskitt y DiagramDesigner ) no se mencionan)
10 Free, Standalone and Easy to Use UML Editors
Free Open Source UML tools desde DevCurry
Survey of Open Source Modeling Tools for Software Development
Top 5 open source UML tools por Open Tube.
Best Open Source UML tools por Open Source Applications
Herramientas para UML ejecutable:
Executable UML (leed los nuevos estándares para Executable UML: fuml and Alf)
busca definir los modelos UML con suficiente precisión como para permitir su
ejecución directa. En su estado más puro, elimina incluso la necesidad de
programar. Disponemos ya de varias herramientas para UML ejecutable. Podéis
consultar la lista que hemos recopilado hasta el momento aquí.
Herramientas UML específicas para MAC:MacA&D con soporte para los principales diagramas de UML 2.2. y
funcionalidades de generación de código para SQL, C++, Objective-C, Java, PHP
and REALbasic
CanvasUML : para dibujar diagramas de clase
Otras herramientas como MagicDraw, VisualParadigm and QuickUML tienen
también versión para MAC
Herramientas para dispositivos móbiles:
Lucidchart tiene una versión para iPad capaz de reconozer figuras hechas a mano.
Draw UML: una herramienta de dibujo UML para el iPad.
MagicDraw Reader iPhone Edition . Permite a los usuarios visualizar modelos
hechos con MagicDraw desde su iPhone o iPod Touch.
Mock4U UML : Como usar Balsamiq para crear mock-ups de modelos UML en el
iPhone usando sus templates para iPhone –>
iUML : NO es realmente una herramienta de modelado sinó una guía de referencia
para llevar en el iPhone y consultar la documentación mientras dibujamos modelos
UML.
UML Process Aid es otra herramienta para consultar documentación sobre UML
en el iPhone.
AndyUML: una herramienta Android para el dibujo de diagramas UML
astah* UML pad permite la creación de diagramas de clase UML en vuestro iPad.
Además, se pueden exportar los modelos para completarlos más tarde utilizando
otras de las herramientas de modelado de la misma marca.
Herramientas UML para Python:PyUML es un plug-in de Eclipse open source para la generación (y la ingeniería
inversa) de código python a partir de diagramas de clase UML.
Epydoc : Genera documentación UML a partir de código python (última
actualización en 2008)
PyNSource : Ingeniería inversa de código python. El diagrama de clase UML
generado se puede mostrar como un diagrama textual ASCII o como gráfico.
Lumpy . Módulo Python para generar diagramas UML (actualmente object y class
diagrams) a partir de un programa Python en ejecución. Se puede ver como un
debugger gráfico que usa UML para mostrar el estado del programa.
ObjectDomain : herramienta comercial con soporte para generación de código y
ingeniería inversa para Python.
argoUML-python parece (parecía?) ir en la misma dirección pero todavía está lejos
de ese punto.
GraphModels (django-command-extensions)
crea un archivo GraphViz dot “UML-LIKE” para la aplicación seleccionada
Pyreverse incluida en Pylint (herramienta para el análisis de la calidad del código
python) crea diagramas UML a partir de código
pywebuml utiliza graphviz para crear el diagrama de clases UML correspondiente
a tu código python (y también funciona con Java y C#).
Herramientas UML para Ruby:RailRoady genera diagramas UML para los modelos y controladores de Rails. Los
modelos se muestran cómo .svg files o con el lenguaje dot . RailRoady se basa en
el original RailRoad diagram generator .
yUMLMeRails combina RailRoad y yUML para crear diagramas UML online a
partir del código RoR
Umple (un tipo de herramienta UML textual ) genera código Ruby para las clases
del modelo
Umlify es un proyecto open source que genera diagramas de clase a partir del
código fuente Ruby. Como yUMLMeRails utiliza yUML para visualizar los
diagramas.
Dentro de las herramientas comerciales Visual Paradigm for UML ofrece
generación de código para Ruby
Otras iniciativas, como ruby-uml parecen ya abandonadas o tan sólo una
declaración de intenciones (como argoUML-ruby