lunes, 2 de junio de 2008

UML - Herramientas CASE

Esta es una de las tareas finales que dejo el ing. Portillo en la materia de UML.-

Herramientas CASE.

Las herramientas CASE (Ingeniería de Software Asistida por Ordenador por sus siglas en inglés) son aplicaciones informáticas destinadas a aumentar la productividad en el desarrollo de software reduciendo el coste de las mismas en términos de tiempo y de dinero. Estas herramientas nos pueden ayudar en todos los aspectos del ciclo de vida de desarrollo del software en tareas como el proceso de realizar un diseño del proyecto, calculo de costes, implementación de parte del código automáticamente con el diseño dado, compilación automática, documentación o detección de errores entre otras. Sus objetivos son los siguientes:

1. Mejorar la productividad en el desarrollo y mantenimiento del software.

2. Aumentar la calidad del software.

3. Mejorar el tiempo y coste de desarrollo y mantenimiento de los sistemas informáticos.

4. Mejorar la planificación de un proyecto

5. Aumentar la biblioteca de conocimiento informático de una empresa ayudando a la búsqueda de soluciones para los requisitos.

6. Automatizar, desarrollo del software, documentación, generación de código, pruebas de errores y gestión del proyecto.

7. Ayuda a la reutilización del software, portabilidad y estandarización de la documentación

8. Gestión global en todas las fases de desarrollo de software con una misma herramienta.

9. Facilitar el uso de las distintas metodologías propias de la ingeniería del software.

Argo UML.

Herramienta dirigida al apoyo de fases de planificación, análisis de requisitos y estrategia de desarrollo apoyándose en diagramas UML. Es una aplicación de diagramado de UML escrita en Java y publicada bajo la Licencia BSD Open Source. Dado que es una aplicación Java, está disponible en cualquier plataforma soportada por Java.

El Magazine de Desarrollo de Software entrega premios anuales a herramientas de desarrollo de software populares en varias categorías. En 2003 ArgoUML fue una de las finalistas en la categoría "Design and Analysis Tools". ArgoUML recibió un premio "runner-up"(revelación), derrotando a muchas herramientas comerciales.

Sin embargo, desde la versión 0.20, ArgoUML está incompleto. No es conforme completamente a los estándares UML y carece de soporte completo para algunos tipos de diagramas incluyendo los diagramas de secuencia y los de colaboración.

Experiencia práctica.

“A mediados del 2005, cuando empezaba un desarrollo más o menos grande necesité de una herramienta para llevar el diseño del sistema que estaba desarrollando, en ese tiempo buscado y buscando encontré un sin fin de herramientas muchas de ellas propietarias de las cuáles en un principio por su facilidad empecé a usar Case Studio. La comencé a usar en modo demo, recuerdo que por esos días estaba usando Windows ya que era con lo que contaba en la empresa donde trabajaba, por lo que seguí usando Case Studio, pero un mes después tuve la oportunidad de adquirir mi propia laptop por lo que al adquirirla y recién desempacada lo primero que hice fue particionar el disco duro para instalarle una de las versiones de Ubuntu que empezaba a ponerse de moda.

El desarrollo era web por lo que hacía uso de WAMP, por lo que no tenía ningún problema en continuar con el desarrollo en mi laptop pero ahora con Linux, por lo que la versión de Case Studio no me serviría más, ya que solo funcionaba para Windows, por lo que buscando nuevamente otra herramienta de diseño UML, pude hallar Umbrello, una herramienta de software libre para hacer diagramas de caso, casos de uso, de estado, secuencia y hasta poder hacer la estructura de la base de datos y poder generar el código SQL, bastante decente por lo que en un principio me decidí por usar esta herramienta, pero semanas después navegando en internet pude hallar ArgoUML, una herramienta desarrollada en Java y de código libre, que soporta mucha de las características de UML 2.0 por lo cual me resulto bastante práctica para llevar el control del diseño de la aplicación a nivel base de datos, así como también a nivel de casos de uso, diagramas de estado, y clases, aparte ArgoUML entre sus características es multiplataforma por lo que puede ejecutarse tanto en Windows o Linux.

Características de Argo UML.

· Multiplataforma. · Estándares abiertos: XMI, SVG y PGML · 100% Platform independent thanks to the exclusive use of JavaUtilización exclusiva de Java · Open Source, que permite la ampliación. · Cognitive features like: reflection-in-action, opportunistic design, comprehension and problem solvingReflexión-en-acción. · Características de extensibilidad mejoradas de UML 1.4 · Diagramas de Secuencia · Compatibilidad AndroMDA · Cientos de bugs han sido arreglados · La mayoría de las funciones ahora soportan la selección múltiple de los elementos del modelo arrastrar y soltar desde el árbol de exploración al diagrama y dentro del árbol de exploración. · Construido en diseños críticos suministra una revisión no obstructiva del diseño y sugerencias para mejoras. · Interfaz de módulos extensible. · Soporte de internacionalización para Inglés, Alemán, Francés, Español y Ruso. · Restricciones OCL para clases. · Soporte para el lenguaje de generación de código: Java, PHP, Python, C++ y Csharp (C#). · Ingeniería inversa. · Disposición(layout) automática del diagrama de clases. · Generación de ficheros PNG, GIF, JPG, SVG, EPS desde diagramas. · Soporte para comentarios para múltiples elementos. · Todos los diagramas 1.4 están soportados. · No tiene botón "deshacer". · Los modelos a veces no pueden ser re-abiertos. · Import/Export a Java. · No hay llamadas reflexivas en los diagramas de secuencia. · Debes seleccionar una clase para crear un diagrama de secuencia. · Las operaciones de guardar y abrir manejan un proyecto a la vez. · Un proyecto corresponde a un modelo más la información del diagrama i.e. todas las cosas que puedes editar a través de la ventana ArgoUML. · El modelo puede contener muchos objetos (ModelElements, elementos de modelo) los cuales completan una descripción UML de un sistema que esta describiendo. · Todos los ModelElements deben ser presentados en el diagrama, pero esto no es requerido. Por lo tanto, el modelo que es guardado en ArgoUML es independiente del contenido de los diagramas. · Algunos ModelElements aparecen sobre multiples diagramas, algunos solo en uno o ninguno.

Star UML.

Es una herramienta basada en los estandares del Lenguaje Unificado de Modelaje(UML) y Model Driven Arquitecture (MDA). E s de codigo abierto y libre distribución, licenciado bajo una versión modificada de GNU GPL (GNU General Public License por sus sigla en inglés).

Nació con el objetivo de reemplazar grandes aplicaciones comerciales de la misma rama como Rational Rose. Star UML soporta la mayoría de los tipos de diagramas especificados en UML 2.0. Sin embargo, actualmente faltan los diagramas de Objeto, Paquete, Tiempo y Visión Interactiva de Diagramas (aunque los dos primeros pueden ser adecuadamente modelados con el editor de diagramas de clases).

Características de Star UML.

  • · Soporte completo al diseño UML.
  • · Diagramas de casos de uso.
  • · Diagramas de clase.
  • · Diagramas de secuencia.
  • · Diagramas de colaboración.
  • · Diagramas de estado.
  • · Diagramas de acitvidad.
  • · Diagramas de componente.
  • · Diagramas de despliegue.
  • · Diagramas de composición estructural (UML 2.0)
  • · Define elementos propios para los diagramas sin pertenecer necesariamente estos al estandar de UML.
  • · Es capaz de generar código a partir de los diagramas y viceversa.
  • · Soporta los lenguajes C++, C# y Java.
  • · Genera documentación en Word, Excel y Powerpoint sobre los diagramas.
  • · Patrones GoF (Gang of Four), EJB (Enterprise JavaBeans) y personalizados.
  • · Plantillas de proyectos.
  • · Es posible crear plugins para el programa.

Altova UML.

Altova UModel UML es otra herramienta CASE de amplia utilización en UML. Permite construir de forma fácil y sencilla diagramas de este tipo. Altova UML es como un puente entre las más simples herramientas de dibujo que no necesitan mayor comprensión para estructurar diagramas y las más complejas herramientas de apoyo que poseen hasta el último matiz de especificaciones. A esto se agregan todas las características ofrecidas en Altova UML a un precio determinado ya que es de distribución comercial.

Sin embargo Altova UML no implementa rodos los tipos de diagramas definidos en la especificación de UML 2.1, en cambio permite construir nueve de los más comunes y útiles tipos de diagramas UML. La experiencia de diseño con esta herramienta termina siendo una combinación entre Visio y Visual Studio.

Los diagramas son organizados en una jerarquía de paquetes y los puedes manejar de dos formas, ya sea en la vista de modelo (que muestra la jerarquía entera), o en la vista de diagrama (donde son agrupados por tipo de diagrama). Tambien se pueden compartir proyectos entre uno o mas proyectos de UModel. Además trae ya pre configurados algunos subproyectos que contienen, por ejemplo, tipos de datos en Java y C# para que se puedan incorporar fácilmente en modelos creados por el usuario.

Se puede utilizar UModel para generar codigo en Java o C#; o bien, importar clases de Java o C# para construir los diagramas UML correspondientes. La generación de código está basada en plantillas, que son totalmente modificablesy así te permite un alto nivel de control sobre el código generado.

En general, UModel es una manera muy servicial de generar desde un simple diagrama UML hasta una aplicación muy personalizada junto con las plantillas de código en C# y Java.

Características de Altova UML.

  • Función Drag-and-Drop
  • Permite transición del programa a C# y Java, y viceversa.
  • Diagramas de Casos de Uso
  • Diagramas de clase
  • Diagramas de Objeto
  • Diagramas de Componente
  • Diagramas de despliegue
  • Diagramas de actividad
  • Compuesto de diagramas de estructura
  • Diagramas de secuencia
  • Diagramas de Estado de máquina

Rational Rose.

Rational Rose es la herramienta CASE que comercializa Rational Software Corporation. Esta herrmaienta soporta de forma completa la especificación del UML 1.1. Propone la utilización de cuatro tipos de modelo para realizar un diseño del sistema, utilizando una vista estática y otra dinámica de los modelos del sistema, uno lógico y otro físico. Permite crear y refinar estas vistas creando de esta forma un modelo completo que representa el dominio del problema y el sistema de software.

Rational Rose Enterprise es la mejor elección para el ambiente de modelado que soporte la generación de código a partir de modelos en Ada, ANSI C++, C++, CORBA, Java™/J2EE™, Visual C++® y Visual Basic®. Como todos los demás productos Rational Rose, proporciona un lenguaje común de modelado para el equipo que facilita la creación de software de calidad más rápidamente. Trabaja apropiadamente con Windows 2000, NT y XP.

Características de Rational Rose.

  • Soporte para análisis de patrones ANSI C++, Rose J y Visual C++ basado en "Design Patterns: Elements of Reusable Object-Oriented Software"
  • Característica de control por separado de componentes modelo que permite una administración más granular y el uso de modelos
  • Soporte de ingeniería Forward y/o reversa para algunos de los conceptos más comunes de Java 1.5
  • La generación de código Ada, ANSI C ++, C++, CORBA, Java y Visual Basic, con capacidad de sincronización modelo- código configurables
  • Soporte Enterprise Java Beans™ 2.0
  • Capacidad de análisis de calidad de código
  • El Add-In para modelado Web provee visualización, modelado y las herramientas para desarrollar aplicaciones de Web
  • Modelado UML para trabajar en diseños de base de datos, con capacidad de representar la integración de los datos y los requerimientos de aplicación a través de diseños lógicos y físicos
  • Capacidad de crear definiciones de tipo de documento XML (DTD) para el uso en la aplicación
  • Integración con otras herramientas de desarrollo de Rational
  • Capacidad para integrarse con cualquier sistema de control de versiones SCC-compliant, incluyendo a Rational Clear Case
  • Publicación web y generación de informes para optimizar la comunicación dentro del equipo

Desarrollo Iterativo. Rational Rose utiliza un proceso de desarrollo iterativo controlado (controlled iterative process development), donde el desarrollo se lleva a cabo en una secuencia de iteraciones. Cada iteración comienza con una primera aproximación del análisis, diseño e implementación para identificar los riesgos del diseño, los cuales se utilizan para conducir la iteración, primero se identifican los riesgos y después se prueba la aplicación para que éstos se hagan mínimos. Cuando la implementación pasa todas las pruebas que se determinan en el proceso, ésta se revisa y se añaden los elementos modificados al modelo de análisis y diseño. Una vez que la actualización del modelo se ha modificado, se realiza la siguiente iteración. Trabajo en Grupo. Rose permite que haya varias personas trabajando a la vez en el proceso iterativo controlado, para ello posibilita que cada desarrollador opere en un espacio de trabajo privado que contiene el modelo completo y tenga un control exclusivo sobre la propagación de los cambios en ese espacio de trabajo. También es posible descomponer el modelo en unidades controladas e integrarlas con un sistema para realizar el control de proyectos que permite mantener la integridad de dichas unidades. Generador de Código. Se puede generar código en distintos lenguajes de programación a partir de un diseño en UML. Ingeniería Inversa. Rational Rose proporciona mecanismos para realizar la denominada Ingeniería Inversa, es decir, a partir del código de un programa se puede obtener información sobre su diseño.

No hay comentarios: