¿Qué son las
Herramientas CASE?
Son conjunto de programas
y ayudas que dan asistencia a los analistas, ingenieros de software y desarrolladores, durante
todos los pasos del Ciclo de Vida de desarrollo de un Software. Como
es sabido, los estados en el Ciclo de Vida de desarrollo de un
Software son: Investigación Preliminar, Análisis, Diseño,
Implementación e Instalación.
CASE (Computer
Aided Software Engineering,
Ingeniería de Software Asistida por Computadora)
Las Herramientas CASE
fueron desarrolladas para automatizar procesos y facilitar las tareas
de coordinación de los eventos que necesitan ser mejorados en el
ciclo de desarrollo de software. La mejor razón para la creación de
estas herramientas fue el incremento en la velocidad de desarrollo de
los sistemas. Por esto, las compañías pudieron desarrollar sistemas
sin encarar el problema de tener cambios en las necesidades del
negocio, antes de finalizar el proceso de desarrollo.
Las herramientas CASE
también permiten a los analistas tener más tiempo para el análisis
y diseño y minimizar el tiempo para codificar y probar.
La principal ventaja de
la utilización de una herramienta CASE, es la mejora de la calidad
de los desarrollos realizados y, en segundo término, el aumento de
la productividad. La mejora de calidad se consigue reduciendo
sustancialmente muchos de los problemas de análisis y diseño,
inherentes a los proyectos de mediano y gran tamaño (lógica del
diseño, coherencia, consolidación, etc.). La mejora de
productividad se consigue a través de la automatización de
determinadas tareas, como la generación de código y la
reutilización de objetos o módulos.
Evolución
de las Herramientas CASE
A
inicios de los 80’s : Ayuda en la documentación por
computadora.
Diagramación asistida por
computadora.
Herramientas de análisis y diseño.
A
mediados de los 80’s : Diseño automático de análisis y pruebas.
Repositorios automáticos de
información de sistemas.
Al
final de los 80’s : Generación automática de código desde
especificaciones de diseño.
A
inicios de los 90’s : Metodología Inteligente.
Interface de Usuario reusable como
una
metodología de desarrollo.
Las
herramientas CASE, en función de las fases del ciclo de vida
abarcadas, se pueden agrupar de la forma siguiente:
- Herramientas integradas, I-CASE (Integrated CASE, CASE integrado): abarcan todas las fases del ciclo de vida del desarrollo de sistemas. Son llamadas también CASE workbench.
- Herramientas de alto nivel, U-CASE (Upper CASE - CASE superior) o front-end, orientadas la automatización y soporte de las actividades desarrolladas durante las primeras fases del desarrollo: análisis y diseño.
3. Herramientas de bajo nivel, L-CASE (Lower CASE - CASE inferior)
o back-end, dirigidas
a las últimas fases del desarrollo: construcción e
implantación.
- Juegos de herramientas o Tools-Case, son el tipo más simple de herramientas CASE.Automatizan una fase dentro del ciclo de vida. Dentro de este grupo se encontrarían las herramientas de reingeniería, orientadas a la fase de mantenimiento.
Tipo de
Case
|
Ventajas
|
Desventajas
|
I - CASE
|
|
1. No es tan eficiente para soluciones
simples, sino para soluciones complejas.
2. Depende del hardware y del software.
3. Es costoso
|
UPPER CASE
|
1. Se utiliza en plataforma PC, es aplicable a
diferentes entornos.
2. Meno costo.
|
1. Permite mejorar la calidad de los sistemas,
pero no mejora la productividad.
2. No permite la integración del ciclo de vida.
|
LOWER CASE
|
1. Permite lograr importantes mejoras de
productividad a corto plazo.
2. Permite un eficiente soporte al mantenimiento
de sistemas.
|
1. No garantiza la consistencia de los resultado
a nivel corporativo.
2. No garantiza la eficiencia del análisis y
diseño.
3. No permite la integración del ciclo de vida.
|
clasificación, utilizando la funcionalidad como criterio
principal, es la
siguiente:
♦
Herramientas de planificación de sistemas de gestión. Sirven para
modelizar los requisitos de información estratégica de una
organización. Proporcionan un "metamodelo" del cual se
pueden obtener sistemas de información específicos. Su objetivo
principal es ayudar a comprender mejor cómo se mueve la información
entre las distintas unidades organizativas. Estas herramientas
proporcionan una ayuda importante cuando se diseñan nuevas
estrategias para los sistemas de información y cuando los métodos y
sistemas actuales no satisfacen las necesidades de la organización.
♦
Herramientas de análisis y diseño. Permiten al desarrollador crear
un modelo del sistema que se va a construir y también la evaluación
de la validez y consistencia de este modelo. Proporcionan un grado de
confianza en la representación del análisis y ayudan a eliminar
errores con anticipación.
• Herramientas de análisis y diseño (Modelamiento).
• Herramientas de creación de prototipos y de simulación.
• Herramientas para el diseño y desarrollo de interfaces.
• Máquinas de análisis y diseño (Modelamiento).
♦
Herramientas de programación. Se engloban aquí los compiladores,
los editores y los depuradores de los lenguajes de programación
convencionales. Ejemplos de estas herramientas son:
• Herramientas de codificación convencionales.
• Herramientas de codificación de cuarta generación.
• Herramientas de programación orientadas a los objetos.
♦
Herramientas de integración y prueba: Sirven de ayuda a la
adquisición, medición, simulación y prueba de los equipos lógicos
desarrollados. Entre las más utilizadas están:
• Herramientas de análisis estático.
• Herramientas de codificación de cuarta generación.
• Herramientas de programación orientadas a los objetos.
♦
Herramientas de gestión de prototipos. Los prototipos son utilizados
ampliamente en el desarrollo de aplicaciones, para la evaluación de
especificaciones de un sistema de información, o para un mejor
entendimiento de cómo los requisitos de un sistema de información
se ajustan a los objetivos
perseguidos.
♦
Herramientas de mantenimiento: La categoría de herramientas de
mantenimiento se puede subdividir en:
• Herramientas de ingeniería inversa.
• Herramientas de reestructuración y análisis de código.
• Herramientas de reingeniería.
♦
Herramientas de gestión de proyectos. La mayoría de las
herramientas CASE de gestión de proyectos se centran en un elemento
específico de la gestión del proyecto, en lugar de proporcionar un
soporte global para la actividad de gestión. Utilizando un conjunto
seleccionado de las mismas se puede: realizar estimaciones de
esfuerzo, coste y duración, hacer un seguimiento continuo del
proyecto, estimar la productividad y la calidad, etc.
Existen
también herramientas que permiten al comprador del desarrollo de un
sistema, hacer un seguimiento que va desde los requisitos del pliego
de prescripciones técnicas inicial, hasta el trabajo de desarrollo
que convierte estos requisitos en un producto final. Se incluyen
dentro de las herramientas de control de proyectos las siguientes:
• Herramientas de planificación de proyectos.
• Herramientas de seguimiento de requisitos.
• Herramientas de gestión y medida.
♦
Herramientas de soporte. Se engloban en esta categoría las
herramientas que recogen las actividades aplicables en todo el
proceso de desarrollo, como las que se relacionan a continuación:
• Herramientas de documentación.
• Herramientas para software de sistemas.
• Herramientas de control de calidad.
• Herramientas de bases de datos.
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 amplía 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. En
algunas referencias se le denomina Diccionario de Recursos de
Información. La mayoría de 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.
1) Que no existan datos autodefinidos (datos que se emplean en una
definición pero que no han sido definidos previamente).
2) 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.
•
Interfases 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 para poder soportar diseños complejos.
•
Número máximo de objetos que se pueden incluir para no
encontrarse limitado en el diseño de grandes aplicaciones.
•
Número de diagramas distintos en pantalla o al mismo tiempo en
diferentes
ventanas.
•
Dibujos en formato libre con la finalidad de añadir comentarios,
dibujos,
información adicional para aclarar algún punto concreto del diseño.
•
Actualización del repositorio por cambios en los diagramas.
Siempre resulta más
fácil modificar de forma gráfica un diseño y que los cambios
queden reflejados
en el repositorio.
•
Control sobre el tamaño, fuente y emplazamiento de los textos en
el diagrama.
•
Comparaciones entre gráficos de distintas versiones. De esta forma
será más
fácil identificar qué diferencias existen entre las versiones.
•
Inclusión de pseudocódigo, que servirá de base a los
programadores para
completar el desarrollo de la aplicación.
•
Posibilidad de deshacer el último cambio, facilitando que un error
no conlleve
perder el trabajo realizado
Herramienta
de prototipado
El
objetivo principal de esta herramienta es poder mostrar al usuario,
desde los momentos iniciales del diseño, el aspecto que tendrá la
aplicación una vez desarrollada. Ello facilitará la aplicación de
los cambios que se consideren necesarios, todavía en la fase de
diseño. La herramienta será tanto más útil, cuanto más
rápidamente permita la construcción del prototipo y por tanto
antes, se consiga la implicación del usuario final en el diseño de
la aplicación. Asimismo, es importante poder aprovechar como base el
prototipo para la construcción del resto de la aplicación.
Actualmente, es imprescindible utilizar productos que incorporen esta
funcionalidad por la cambiante tecnología y
necesidades
de los usuarios. Los prototipos han sido utilizados ampliamente en el
desarrollo de sistemas tradicionales, ya que proporcionan una
realimentación inmediata, que ayudan a determinar los requisitos del
sistema. Las herramientas CASE están bien dotadas, en general, para
crear prototipos con rapidez y seguridad.
Generador
de código
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:
•
Lenguaje generado. Si se trata de un lenguaje estándar o un
lenguaje
propietario.
•
Portabilidad del código generado. Capacidad para poder ejecutarlo
en diferentes
plataformas físicas y/o lógicas.
•
Generación del esqueleto del programa o del programa completo. Si
únicamente
genera el esqueleto será necesario completar el resto mediante
programación.
•
Posibilidad de modificación del código generado. Suele ser
necesario acceder
directamente al código generado para optimizarlo o completarlo.
•
Generación del código asociado a las pantallas e informes de la
aplicación.
Mediante esta característica se obtendrá la interfase de usuario de
la aplicación.
Módulo
generador de documentación
El
módulo generador de la documentación se alimenta del repositorio
para transcribir las
especificaciones allí contenidas.
Algunas
características de los generadores de documentación son:
•
Generación automática a partir de los datos del repositorio, sin
necesidad de un esfuerzo adicional.
•
Combinación de información textual y gráfica, lo que hace más
fácil su
comprensión.
•
Generación de referencias cruzadas. Con ello se podrá localizar
fácilmente en qué partes de la aplicación se encuentra un determinado objeto o
elemento, con el fin de analizar el impacto de un cambio o identificar los módulos
afectados por un determinado error.
•
Ayuda de tratamiento de textos. Facilidad para la introducción de
textos
complementarios a la documentación que se genera de forma
automática.
•
Interfase con otras herramientas: procesadores de textos, editores
gráficos, etc.
Ejemplos de Herramientas Case más
utilizadas.
ERwin
PLATINUM ERwin es una herramienta de diseño de base de datos. Brinda
productividad en 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, 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
EasyCASE Profesional - el centro de productos para procesos,
modelamiento de datos y eventos, e Ingeniería de Base de Datos- es
un producto para la generación de esquemas de base de datos e
ingeniería reversa - trabaja para proveer una solución comprensible
para el diseño, consistencia y documentación del sistema en
conjunto. 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
procesamiento de transacciones a la aplicación de bases de datos de
cliente/servidor, así como sistemas de tiempo real.
Oracle
Designer
Oracle Designer es un juego de herramientas para guardar las
definiciones que necesita el usuario y automatizar la construcción
rápida de aplicaciones cliente/servidor flexibles y gráficas.
Integrado con Oracle Developer, Oracle Designer provee una solución
para desarrollar sistemas empresariales cliente/servidor de
segunda generación. Sofisticadas aplicaciones cliente/servidor
pueden ser 100% generadas usando la lógica de la aplicación y el
módulo de componentes reusables. Oracle Designer también habilita
la captura del diseño de sistemas existentes, salvaguardando la
versión actual. Todos los datos ingresados por cualquier herramienta de Oracle
Designer, en cualquier fase de desarrollo, se guardan en un
repositorio central, habilitando el trabajo fácil del equipo y la
dirección del proyecto. En el lado del Servidor, Oracle Designer
soporta la definición, generación y captura de diseño de los
siguientes tipos de bases de datos, por conexión nativa de Oracle y
por conectividad ODBC :
• Oracle8, Oracle7
• Personal Oracle Lite
• Rdb
• ANSI 92
• DB2/2 and MVS
• Microsoft SQL Server
• Sybase