martes, 14 de mayo de 2013

herramientas case


COMPARACIÓN DE HERRAMIENTAS CASE
¿Que es la Herramienta CASE?  
Son diversas 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.
Su Historia
Aunque ésos son los inicios de las herramientas informáticas que ayudan a crear nuevos proyectos informáticos, la primera herramienta CASE fue Excelerator que salió a la luz en el año 1984 y trabajaba bajo una plataforma PC.
    
     Las herramientas CASE alcanzaron su techo a principios de los años 90. En la época en la que IBM había conseguido una alianza con la empresa de software AD/Cycle para trabajar con sus mainframes, estos dos gigantes trabajaban con herramientas CASE que abarcaban todo el ciclo de vida del software. Pero poco a poco los mainframes han ido siendo menos utilizados y actualmente el mercado de las Big CASE ha muerto completamente abriendo el mercado de diversas herramientas más específicas para cada fase del ciclo de vida del software.
Tecnología CASE
     La tecnología CASE supone la automatización del desarrollo del software, contribuyendo a mejorar la calidad y la productividad en el desarrollo de sistemas de información y se plantean los siguientes objetivos:
          Permitir la aplicación práctica de metodologías estructuradas, las cuales al ser realizadas con una herramienta se consigue agilizar el trabajo.
          Facilitar la realización de prototipos y el desarrollo conjunto de aplicaciones.
          Simplificar el mantenimiento de los programas.
          Mejorar y estandarizar la documentación.
          Aumentar la portabilidad de las aplicaciones.
          Facilitar la reutilización de componentes software.
          Permitir un desarrollo y un refinamiento visual de las aplicaciones, mediante la utilización de gráficos .
          Automatizar
               -El desarrollo del software
-La documentación
-La generación del código
-El chequeo de errores
-La gestión del proyecto
              Permitir
               -La reutilización del software
-La portabilidad del software
-La estandarización de la documentación
Componentes de una Herramienta CASE
    De una forma esquemática podemos decir que una herramienta CASE se compone de los siguientes elementos:
          Repositorio (diccionario) donde se almacenan los elementos definidos o creados por la herramienta, y cuya gestión se realiza mediante el apoyo de un Sistema de Gestión de Base de Datos (SGBD) o de un sistema de gestión de ficheros.
          Meta modelo (no siempre visible), que constituye el marco para la definición de las técnicas y metodologías soportadas por la herramienta.
          Carga o descarga de datos, son facilidades que permiten cargar el repertorio de la herramienta CASE con datos provenientes de otros sistemas, o bien generar a partir de la propia herramienta esquemas de base de datos, programas, etc. que pueden, a su vez, alimentar otros sistemas. Este elemento proporciona así un medio de comunicación con otras herramientas.
          Comprobación de errores, facilidades que permiten llevar a cabo un análisis de la exactitud, integridad y consistencia de los esquemas generados por la herramienta.
          Interfaz de usuario, que constará de editores de texto y herramientas de diseño gráfico que permitan, mediante la utilización de un sistema de ventanas, iconos y menús, con la ayuda del ratón, definir los diagramas, matrices, etc. que incluyen las distintas metodologías.
Estructura general de una Herramienta CASE
La estructura CASE se basa en la siguiente terminología:
          CASE de alto nivel son aquellas herramientas que automatizan o apoyan las fases finales o superiores del ciclo de vida del desarrollo de sistemas como la planificación de sistemas, el análisis de sistemas diseño de sistemas.
          CASE de bajo nivel son aquellas herramientas que automatizan o apoyan las fases finales o inferiores del ciclo de vida como el diseño detallado de sistemas, la implantación de sistemas y el soporte de sistemas.
          CASE cruzado de ciclo de vida se aplica a aquellas herramientas que apoyan actividades que tienen lugar a lo largo de todo el ciclo de vida, se incluyen actividades como la gestión de proyectos y la estimación.


DESCRIPCION DE LAS HERRRAMIENTAS CASE
ERWIN
Erwin es una herramienta para el diseño de base de datos, que Brinda productividad en su diseño, generación, y mantenimiento de aplicaciones. Desde un modelo lógico de los requerimientos de información, hasta el modelo físico perfeccionado para las características específicas de la base de datos diseñada, además Erwin permite visualizar la estructura, los elementos importantes, y optimizar el diseño de la base de datos. Genera automáticamente las tablas y miles de líneas de stored procedure y triggers para los principales tipos de base de datos.
EASYCASE
Esta herramienta permite automatizar las fases de análisis y diseño dentro del desarrollo de una aplicación, para poder crear las aplicaciones eficazmente – desde el procesamiento de transacciones a la aplicación de bases de datos de cliente/servidor, así como sistemas de tiempo real.
JDEVELOPER
Este magnífico entorno integrado desarrollado por Oracle trabaja con la ingeniería inversa, es decir primero se crea el código y después el diagrama. Es un software propietario pero gratuito desde 2005. Las primeras versiones de 1998 estaban basadas en el entorno JBuilder de Borland, pero desde la versión 9i de 2001 está basado en Java, no estando ya relacionado con el código anterior de JBuilder.
MAGICDRAW
MagicDraw es una herramienta de modelaje con completas características UML, sin duda es una de las mejores herramientas CASE del mercado, que procura mantenerse además siempre al día con continuas actualizaciones. Es desarrollada por No Magic, Inc. Implementada totalmente en JAVA. Diseñada para los analistas del negocio, los analistas del software, los programadores, los ingenieros de software, y los escritores de la documentación, esta herramienta de desarrollo dinámica y versátil facilita análisis y el diseño de los sistemas y de las bases de datos orientados objeto.

VISUAL PARADIGM
Visual Paradigm es una herramienta UML profesional que soporta el ciclo de vida completo del desarrollo de software: análisis y diseño orientados a objetos, construcción, pruebas y despliegue. Permite dibujar todos los tipos de diagramas de clases, código inverso, generar código desde diagramas y generar documentación.
BENEFICIOS DE LAS HERRAMIENTAS CASE
Entre los beneficios ofrecidos por la tecnología CASE se encuentran los siguientes:
Facilidadpara la revisión de aplicaciones
Las herramientas CASE proporcionan un beneficio substancial para las organizaciones al facilitar la revisión de las aplicaciones.
Soporte para el desarrollo de prototipos de sistemas Muchas herramientas CASE soportan las primeras etapas del desarrollo del prototipo. Muy pocas brindan apoyo durante todo el
proceso de desarrollo del prototipo. Las que proporcionan la capacidad para generar código soportan de hecho todo proceso, ya que el código puede ser generado al inducir la actividad de
generación después de cambiar las especificaciones o requerimientos.
Generación de código
La ventaja más visible de esta característica es la disminución del tiempo necesario para preparar un programa. Sin embargo, la generación del código también asegura una estructura estándar y consistente para el programa (lo que tiene gran influencia en el mantenimiento) y disminuye la ocurrencia de varios tipos de errores, mejorando de esta manera la calidad. Las características de la generación del código permiten volver a utilizar el software y las estructuras estándares para generar dicho código, así como el cambio de una especificación modular, lo que significa volver a generar el código y los enlaces con otros módulos. Ninguna de las herramientas que existen en el presente es capaz de generar un código completo en los dominios. Mejora en la habilidad para satisfacer los requerimientos del usuario
Es bien conocida la importancia de satisfacer los requerimientos del usuario, ya que esto guarda relación con el éxito del sistema. De manera similar, tener los requerimientos correctos mejora la calidad de las prácticas de desarrollo. Parece ser que las herramientas CASE disminuyen el tiempo de desarrollo, una característica que es importante para los usuarios. Las herramientas afectan la naturaleza y cantidad de interacción entre los encargados del desarrollo y el usuario. Las descripciones gráficas y los diagramas, así como los prototipos de reportes y la composición de las pantallas, contribuyen a un intercambio de ideas más efectivo.
Soporte interactivo para el proceso de desarrollo La experiencia ha demostrado que el desarrollo de sistemas es un proceso interactivo. Las herramientas CASE soportan pasos interactivos al eliminar el tedio manual de dibujar diagramas, elaborar catálogos y clasificar. Como resultado de esto, se anticipa que los analistas repasarán y revisarán los detalles del sistema con mayor frecuencia y en forma más consistente.
COMPONENTES Y FUNCIONALIDADES DE UNA HERRAMIENTA CASE
A continuación se describen los principales componentes de una herramienta CASE y sus funcionalidades:
Repositorio.
Base de datos central de una herramienta CASE. El repositorio amplia el concepto de diccionario de datos para incluir toda la información que se va generando a lo largo del ciclo de vida del sistema, como por ejemplo: componentes de análisis y diseño (diagramas de flujo de datos, diagramas entidad - relación, esquemas de bases de datos, diseños de pantallas), estructuras de programas, algoritmos, etc.
La mayoría de las herramientas CASE poseen un repositorio propio o bien trabajan sobre un repositorio suministrado por otro fabricante o vendedor.
Apoyándose en la existencia del repositorio se efectúan comprobaciones de integridad y consistencia:
· Que no existan datos no definidos.
· Que no existan datos autodefinidos (datos que se emplean en una definición pero que no han sido definidos previamente).
· Que todos los alias (referencias a un mismo dato empleando nombres distintos) sean correctos y estén actualizados.
Las características más importantes de un repositorio son:
Tipo de información.
Que contiene alguna metodología concreta, datos, gráficos, procesos, informes, modelos o reglas.
Tipo de controles.
Si incorpora algún módulo de gestión de cambios, de mantenimiento de versiones, de acceso por clave, de redundancia de la información. La gestión de cambios y el mantenimiento de versiones, ayudarán en el caso de que convivan diferentes versiones de la misma aplicación o se tengan que realizar cambios en la versión en producción y en la de desarrollo, simultáneamente.
Tipo de actualización.
Si los cambios en los elementos de análisis o diseño se ven reflejados en el repositorio en tiempo real o mediante un proceso por lotes (batch). Esto será importante en función a la necesidad de que los cambios sean visibles por todos los usuarios, en el acto.
Reutilización de módulos para otros diseños.
El repositorio es la clave para identificar, localizar y extraer código para su reutilización.
Posibilidad de exportación e importación para extraer información del repositorio y tratarla con otra herramienta (formateo de documentos, mejora de presentación) o incorporar al repositorio, información generada por otros medios. Interfaces automáticas con otros repositorios o bases de datos externos.
Módulos de diagramación y modelización.
Algunos de los diagramas y modelos utilizados con mayor frecuencia son:
· Diagrama de flujo de datos.
· Modelo entidad - interrelación.
· Historia de la vida de las entidades.
· Diagrama Estructura de datos.
· Diagrama Estructura de cuadros.
· Técnicas matriciales.
Algunas características referentes a los diagramas son:
· Número máximo de niveles.
· Número máximo de objetos.
· Número de diagramas distintos en pantalla
· Dibujos en formato libre
· Actualización del repositorio por cambios en los diagramas.
· Control sobre el tamaño, fuente y emplazamiento de los textos
· Comparaciones entre gráficos de distintas versiones.
· Inclusión de pseudocódigo
· Posibilidad de deshacer el último cambio
· Herramienta de prototipado.
GENERADOR DE CODIGO
Normalmente, se suele utilizar sobre ordenadores personales o estaciones de trabajo, por lo que el paso posterior del código al host puede traer problemas, al tener que compilar en ambos entornos.
Las características más importantes de los generadores de código son:
ESTRATEGIAS DE IMPLANTACION DE UNA HERRAMIENTA CASE
· Identificar la magnitud de problemas a resolver en la Institución.
· Identificar el nivel estratégico que deben tener los sistemas.
· Evaluar los recursos de hardware y software disponibles en la Institución y el medio.
· Evaluar el nivel del personal.
· Efectuar un estudio de costo-beneficio definiendo metas a lograr.
· Elegir las herramientas apropiadas para la Institución.
· Establecer un programa de capacitación de personal de sistemas y usuarios
· Elegir una aplicación que reúna la mayor parte de los siguientes requisitos:
· Gran impacto de resultados.
· Disponibilidad de recursos.
· Mínimo nivel de riesgos.
· Máxima colaboración de usuarios.
· Tamaño reducido de solución.
· Se establecerá interfases de compatibilidad de los nuevos sistemas que deben     convivir con los sistemas anteriores.
CONSIDERACIONES PARA LA ELECCION DE CASE
La elección del Case va a depender de sus estrategias de desarrollo:
· Si tiene un gran volumen de aplicativos desarrollados, es conveniente contrastar lo realizado versus las técnicas de Análisis y Diseño.
· Si tiene presión por resultados a corto plazo, el empleo de un Lower Case le será de utilidad, si se basa en modelos de datos y procesos claros y definidos.
· Si desea realizar proyectos de gran envergadura es recomendable aplicar Upper y Lower Case.
· Si trabaja con archivos de grandes dimensiones, es recomendable que el Case soporte el Diseño de Bases de Datos.
· Si no tiene formación y experiencia en el manejo de metodologías es recomendable contar con asesoría especializada, que capacite al personal y supervise los avances de Análisis y Diseño.
· Evalúe la eficiencia del producto, en las pruebas unitarias y de integración, y fundamentalmente en las pruebas de sistemas.
· Considere los recursos apropiados para usar el Case, de HW (memoria, disco, concurrencia), de SW (versión de Sistema Operativo).