viernes, 26 de septiembre de 2008

Antecedentes

Las computadoras afectan nuestras vidas. Utilizamos computadoras en nuestra vida diaria, la mayor parte del tiempo sin reconocer conscientemente que estamos haciéndolo. Las utilizamos en aplicaciones domésticas como microondas, televisión, vídeo casseteras o fuera de nuestras casas en máquinas para tarjetas de crédito.
El rápido incremento en performance de las computadoras junto al dramático decremento en tamaño y costo, dio como resultado una explosión de tecnología, generándose una larga variedad de aplicaciones que éstas pueden soportar.
Desde el inicio de la escritura de software, ha existido un conocimiento de la necesidad de herramientas automatizadas para ayudar al diseñador del software.
Inicialmente, la concentración estaba en herramientas de apoyo a programas como traductores, recopiladores, ensambladores, procesadores de macros, y montadores y cargadores.
Este conjunto de aplicaciones que pueden informatizarse, aumentó dramáticamente en un breve espacio de tiempo, causando una gran demanda por nuevo software a desarrollar. A medida que se escribía nuevo software, habían ya en existencia millones y millones de líneas de código que necesitaban se mantenidas y actualizadas.
Esto causó a la industria de las computadoras muchos problemas, no podía cubrir el incremento de la demanda con los métodos que se estaban usando. Esto fue reconocido como una crisis de software. Para superar este problema en el proceso de desarrollo de software, se introdujeron metodologías para intentar crear estándares de desarrollo.Hay también otra manera en la que la industria se ha ayudado a superar las dificultades de uso de esta tecnología disponible. La industria de computadoras ha desarrollado un soporte automatizado para el desarrollo y mantenimiento de software. Este es llamado Computer Aided Software Engineering (CASE).

Historia de las Herramientas CASE

Las Herramientas CASE tienen su inicio con el simple procesador de palabras que fue usado para crear y manipular documentación. Los setentas vieron la introducción de técnicas gráficas y diagramas de flujo de estructuras de datos. Sobre este punto, el diseño y especificaciones en forma pictórica han sido extremadamente complejos y consumían mucho tiempo para realizar cambios.
La introducción de las herramientas CASE para ayudar en este proceso ha permitido que los diagramas puedan ser fácilmente creados y modificados, mejorando la calidad de los diseños de software. Los diccionarios de datos, un documento muy usado que mantiene los detalles de cada tipo de dato y los procesos dentro de un sistema, son el resultado directo de la llegada del diseño de flujo de datos y análisis estructural, hecho posible a través de las mejoras en las
Herramientas CASE.
Pronto se reemplazaron los paquetes gráficos por paquetes especializados que habilitan la edición, actualización e impresión en múltiples versiones de diseño. Eventualmente, las herramientas gráficas integradas con diccionarios de base de datos para producir poderosos diseños y desarrollar herramientas, podrían sostener ciclos completos de diseño de documentos.
Como un paso final, la verificación de errores y generadores de casos de pruebas fueron incluidos para validar el diseño del software. Todos estos procesos pueden saberse integrados en una simple herramienta CASE que soporta todo el ciclo de desarrollo.
La primera herramienta comercial se remonta a 1982, aunque algunos especialistas indican que algunos ejemplos de herramientas para diagramación ya existían.
No fue sino hasta 1985 en que las herramientas CASE se volvieron realmente importantes en el proceso de desarrollo de software. Los proveedores prometieron a la Industria que muchas actividades serían beneficiadas por la ayuda de las CASE.Estos beneficios consistían, por ejemplo, en el aumento en la productividad. El objetivo en 1985 para muchos vendedores era producir software más rápidamente. Las herramientas del CASE serían una familia de métodos favorablemente estructurados para planeamiento, análisis y diseño. Esto llevaría a la generación automática de código para desarrollo de software vía una especificación formalmente diseñada. Esto traería como beneficio:
  • Una mejora en la calidad, fiabilidad, utilidad y rendimiento.
  • El entorno de producción de documentación para software mejora la comunicación, mantenimiento y actualización.
  • Hace el trabajo de diseño de software más fácil y agradable.
  • La promesa futura de reemplazar realmente a los ingenieros de software especializados.
  • Reducción del costo de producción de software.

Con estos objetivos en mente, la industria destinó millones en producción de
Herramientas CASE.Así como esta enorme suma de dinero fue gastada en Herramientas CASE, hubo también trabajo de investigación a nivel mundial en diferentes instituciones como Universidades, Instituciones Gubernamentales y de Defensa. La industria de Herramientas CASE está creciendo y esta tomando cada vez mayor importancia.

Evolución de las Herramientas CASE:

A inicio 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.
- Interfaz de usuario reusable como una metodología de desarrollo.

Definición de Herramientas CASE

Se puede definir a las Herramientas CASE como un 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 se define también como:
  • Conjunto de métodos, utilidades y técnicas que facilitan la automatización del ciclo de vida del desarrollo de sistemas de información, completamente o en alguna de sus fases.
  • La sigla genérica para una serie de programas y una filosofía de desarrollo de software que ayuda a automatizar el ciclo de vida de desarrollo de los sistemas.
  • Una innovación en la organización, un concepto avanzado en la evolución de tecnología con un potencial efecto profundo en la organización. Se puede ver al CASE como la unión de las herramientas automáticas de software y las metodologías de desarrollo de software formales.

Clasificación de las Herramientas CASE

No existe una única clasificación de herramientas CASE y, en ocasiones, es difícil incluirlas en una clase determinada. Podrían clasificarse atendiendo a:
  • Las plataformas que soportan.
  • Las fases del ciclo de vida del desarrollo de sistemas que cubren.
  • La arquitectura de las aplicaciones que producen.
  • Su funcionalidad.

Considerando su amplitud:

  1. TOOLKIT : es una colección de herramientas integradas que permiten automatizar un conjunto de tareas de algunas de las fases del ciclo de vida del sistema informático : Planificación estratégica, Analisis, Diseño, Generación de programas.
  2. WORKBENCH : Son conjuntos integrados de herramientas que dan soporte a la automatización del proceso completo de desarrollo del sistema informático. Permiten cubrir el ciclo de vida completo. El producto final aportado por ellas es un sistema en código ejecutable y su documentación.

Considerando el ciclo de vida abarcadas:

  1. 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.
  2. Herramientas de alto nivel, U-CASE (Upper CASE - CASE superior) o front-end, orientadas a 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.
  4. 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.

Considerando la funcionalidad:

  1. 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.
  2. 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.
  3. 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:
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. Herramientas de soporte. Se engloban en esta categoría las herramientasque recogen las actividades aplicables en todo el proceso de desarrollo.

Ventajas del uso de herramientas CASE

Entre las ventajas del uso de herramientas CASE tenemos:

Facilidad para la revisión de aplicaciones

La experiencia muestra que una vez que las aplicaciones se implantan, se emplean por mucho tiempo. Las herramientas CASE proporcionan un beneficio substancial para las organizaciones al facilitar la revisión de las aplicaciones. Contar con un depósito central, agiliza el proceso de revisión ya que éste proporciona bases para las definiciones y estándares para los datos. Las capacidades de generación interna, si se encuentran presentes, contribuyen a modificar el sistema por medio de cambios en las especificaciones más que por ajustes al código fuente.

Soporte para el desarrollo de prototipos de sistemas:

En general, el desarrollo de prototipos de aplicaciones toma varias formas. En ocasiones se desarrollan diseños para pantallas y reportes con la finalidad de mostrar la organización y composición de datos, encabezados y mensajes.
Los ajustes necesarios al diseño se hacen con rapidez para alterar la presentación y las características de la interaface. Sin embargo, no se prepara el código fuente, de naturaleza orientada hacia procedimientos, como una parte del prototipo. Como disyuntiva, el desarrollo de prototipos puede producir un sistema que funcione. Las características de entrada y salida son desarrollados junto con el código orientado hacia los procedimientos y los archivos de datos. Muchas herramientas CASE soportan las primeras etapas del desarrollo de un prototipo. Muy pocas brindan apoyo durante todo el proceso de desarrollo del prototipo. Las que proporcionan la capacidad para generar el código soportan de hecho todo el 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

Como ya se mencionó, algunas herramientas CASE tienen la capacidad de producir el código fuente. 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 todos 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 iterativo para el proceso de desarrollo

La experiencia ha demostrado que el desarrollo de sistemas es un proceso iterativo. Las herramientas CASE soportan pasos iterativos 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.

Alcanzar una ventaja competitiva

Para el grupo de sistemas involucrado activamente en su uso, las tecnologías de ambiente integrado pueden, en muchos casos, proporcionar un nivel competitivo sobre otros que no las hubieran adoptado o que no hayan capitalizado por completo su potencial en productividad. Esto se traduce en ganarle contratos de proyectos de sistemas a la competencia, al demostrar que se tiene una mayor productividad. Además, los analistas que actúen corno consultores serán más eficientes con los instrumentos CASE y desearán capitalizar este hecho con sus posibles clientes.

Estandarización de métodos internos y externos

La elección de las técnicas para el diseño y la documentación surge del hecho de que no hay un estándar, ni una técnica universal. Se ha observado que esto puede causar problemas de comunicación entre los mismos analistas, sin mencionar el caso entre los analistas y los usuarios. Una ventaja de los instrumentos CASE es que aportan un vocabulario común para analistas y usuarios.
Por ejemplo, si se dice que se está utilizando un paquete disponible en el mercado denominado Excelerator, se supone que está utilizando una notación Gane y Sarson o una notación Yourdon. Mientras que no intentamos menospreciar cualquier instrumento que los analistas encuentren útil, aunque no se encuentre automatizado, movilizarse hacia la estandarización de ciertas técnicas para la elaboración de diagramas puede considerarse una ventaja en la mayoría de los casos.

Viendo problemas viejos de nuevas maneras

La importancia de resolver el problema correcto, mediante una solución de sistemas, implica ubicar con precisión el problema dentro de un contexto, de tal forma que se involucren el número y los tipos correctos de subsistemas de la organización. Una ventaja de la utilización de las tecnologías de ambiente integrado es que crean un nuevo contexto para problemas viejos, de tal forma que se estimula la creación de nuevas ideas.
Por ejemplo, cuando los diagramas de flujo pueden elaborarse con rapidez y luego corregirse, es más fácil comparar la conceptualización de los flujos de datos que se tenían con anterioridad. Este tipo de tormenta de ideas gráfico sirve como un catalizador para la creación de nuevas ideas. Además, observe que cuando se integran las actividades del cielo de vida (esto es, la documentación con la elaboración de diagramas) pueden surgir nuevas ideas. El analista tendrá una perspectiva diferente de los sistemas, y las interrelaciones que pudieran existir se vuelven aparentes.

Adopción de la automatización como rutina

Cuando los analistas adoptan las tecnologías de ambiente integrado, dan un gran paso hacia el mejoramiento de su credibilidad con sus clientes, ya que el analista muestra con su ejemplo que la automatización le confiere beneficios a los usuarios. El analista no mencionará la automatización por un momento, para luego regresar a preparar laboriosamente los bosquejos manuales de su tarea siguiente.
El uso de las tecnologías de ambiente integrado también sensibiliza a los analistas sobre los problemas que enfrentan los usuarios al tratar de utilizar instrumentos automatizados. El analista experimentará, en cierta medida, la experiencia del usuario al ser capaz de caminar una milla en los zapatos del usuario.

Desventajas del uso de una herrmienta CASE

Las herramientas CASE tienen puntos débiles significativos, que van desde la contabilidad en los métodos estructurados hasta su alcance limitado, los cuales amenazan con minar los beneficios potenciales descritos con anterioridad.

Confiabilidad en los métodos estructurados

Muchas herramientas CASE están construidas teniendo corno base las metodologías del análisis estructurado y del ciclo de vida de desarrollo de sistemas. Por si sola, esta característica puede convertirse en la principal limitante ya que no todas las organizaciones emplean métodos de análisis estructurado.
Los métodos estructurados, introducidos en la década de los setentas, fueron muy elogiados por su habilidad para mejorar la exactitud de los requerimientos específicos de las aplicaciones. El nivel de conocimiento de los métodos estructurados es alto entre los profesionales de sistemas de información de acuerdo con algunas estimaciones (Yourdon), casi el 90% de todos los analistas está familiarizado con estos métodos. Aproximadamente la mitad de todas las organizaciones en Estados Unidos han utilizado alguna vez estos métodos. A pesar de lo anterior, si la organización o el analista no utilizan los métodos propios del análisis estructurado y tampoco desean considerar su uso, entonces el valor de CASE disminuye. En algunos casos, los analistas evitan del todo emplear herramientas CASE.

Falta de niveles estándar para el soporte de la metodología

Aún no aparece un conjunto "estándar" de herramientas CASE, Por tanto, se debe tener precaución al seleccionar una herramienta de este tipo. Existen dos significados para las palabras "soporte de la metodología". Una herramienta puede:
  1. dar soporte a los diagramas que emplea una metodología o
  2. soportarlos e imponer la metodología, sus reglas y sus procesos.

Conflictos en el uso de los diagramas

Las herramientas difieren en el uso que hacen de los diagramas. Algunas son herramientas exclusivamente para gráficas, que se abocan al dibujo de diagramas para el análisis de entrada y salida de datos. Este tipo de herramientas pueden restringir ya sea el proceso de desarrollo normal seguido por una organización o el estilo particular de trabajo de los analistas.
Otros vendedores de herramientas consideran los diagramas como documentación y aceptan entradas por medio de formas o lenguajes de especificación y, en ocasiones, en forma gráfica. Por tanto, se debe tener cuidado cuando se selecciona una herramienta para apoyar los métodos existentes dentro de una organización.

Diagramas no utilizados

En general, los productos CASE emplean gráficas para modelar y generar informes sobre el análisis y desarrollo durante todo el proceso de desarrollo de sistemas. Una de las afirmaciones de los vendedores de herramientas es que las presentaciones gráficas y la documentación mejoran la comunicación entre los miembros del equipo de desarrollo, propician una calidad mayor de la entrada proporcionada por el cliente y mejoran la productividad de desarrollo de software. Sin embargo, los investigadores han encontrado que, en algunos casos, las herramientas gráficas, automatizados o manuales, no se emplean del todo. 0 tal vez no se utilicen en la forma en que deberían emplearse.
Por otra parte, algunos analistas prefieren para algunas tareas un lenguaje estructurado o descriptivo. Muchos profesionales de los sistemas de información no hacen uso de herramientas gráficas en el desarrollo de software; más bien las emplean para automatizar la producción de informes y documentación del sistema, como los diagramas de flujo utilizados por los programadores para documentar un programa una vez terminado éste.

Función limitada

Aunque una herramienta puede apoyar varias fases del ciclo de vida de desarrollo de sistemas o adaptarse a diferentes metodologías de desarrollo, por lo general su enfoque primario está dirigido hacia una fase o método específico. Por ejemplo, los encargados de desarrollar un nuevo producto pueden afirmar que éste apoya todo el proceso de análisis y diseño. Sin embargo, las capacidades de comprobación y verificación de errores del producto quizá sean más rigurosas ya sea en el área de análisis o en la de diseño, pero no en ambas. Algunos productos están dirigidos hacia el diseño de bases de datos para la organización y al desarrollo de aplicaciones que giren en torno a la base de datos, omitiendo el soporte para pantallas de presentación visual, los informes sobre requerimientos o las necesidades de seguridad. Algunos productos capaces de generar el código hacen mayor hincapié en el desarrollo de prototipos como el principal método de desarrollo de sistemas de información. Muchas herramientas para la fase de desarrollo recalcan el mantenimiento y la reestructuración del código, pero ofrecen un soporte débil durante la fase de análisis para la determinación y especificación de requerimientos.

Alcance limitado

Aunque muchas herramientas basadas en computadora incluyen la capacidad de verificar las especificaciones para determinar su completez o consistencia, virtualmente no llevan a cabo ningún análisis de los requerimientos de la aplicación. Por tanto, el alcance de las actividades de desarrollo asociado con las herramientas existentes es bastante limitado.
La mayor parte de productos CASE describe (documenta) pero no analiza. De poca ayuda es proporcionar una regla de inclusión en los mejores enfoques y una regla de exclusión para los que son poco satisfactorios. No ofrecen o evalúan soluciones potenciales para los problemas relacionados con sistemas. Y tampoco existe una garantía clara para que dos analistas que utilicen los mismos métodos aplicados a información idéntica, formulen recomendaciones igualmente aceptables.

Las tareas humanas siguen siendo criticas

La tecnología CASE ofrece herramientas que soportan las funciones de modelado, verificación, manejo de datos y de utilería que son necesarias para mejorar la productividad del desarrollo. Sin embargo, las herramientas deben estar en manos de personas con experiencia y deben "adaptarse" a la arquitectura de la información así como a las metodologías de desarrollo utilizadas por la organización. Por otra parte, las actividades criticas no son el desarrollo de gráficas que documenten al sistema existente sino que son aquellas tareas donde las personas interactuan entre sí: determinación y verificación de requerimientos con el usuario. A medida que sean automatizados las funciones de modelado y búsqueda de errores, la responsabilidad del éxito en un sistema de información caerá cada vez más sobre aquellos que especifican los requerimientos de información. Obtener y comprender los requerimientos son tareas realizadas por los seres humanos, y lo más probable es que se continúe de tal forma.

El cambio de métodos de trabajo

El cambio de tecnología implica también un cambio de los métodos de trabajo. Como se ha visto, en las interacciones con los usuarios, la resistencia al cambio es parte de la naturaleza humana. Nunca será fácil dejar atrás un antiguo método de trabajo por otro nuevo, a un nivel emotivo, incluso si los beneficios son claros a un nivel intelectual.
Un gran grupo de consultaría en administración y en sistemas ha intentado resolver el problema asociado al cambio permitiendo que los analistas adopten aquellas tecnologías de ambiente integrado que encuentren personalmente útiles. Y no es obligatorio el cambio sistemático a un método de automatización. El cambio gradual hacia los instrumentos CASE basados en una necesidad parecen operar bien para ellos, aunque no se percaten inmediatamente de las ventajas de la estandarización, como ya hemos señalado. Afortunadamente, la mayoría de los analistas desean mantenerse actualizados y no tienen prejuicios por la tecnología, como podría ocurrir con otros tipos de usuarios.

La inversión en paquetes comerciales costosos

Los costos iniciales del software CASE pueden ser significativos, aun- que tales costos se han ido reduciendo. Si se es empleado de una pequeña empresa, que apenas comienza o de otra que tiene dificultades para obtener utilidades, los costos iniciales de las tecnologías de ambiente integrado le harán reconsiderar su adquisición. El reconocimiento de las desventajas que hemos discutido, tales como el rezago en las capacidades de interacción, así como las inevitables lagunas de quien desarrolla, pueden darle pautas para considerar si invierte en los instrumentos CASE, que podrían desilusionarlo más adelante.
Es imperativo que analice los factores internos, así como los ex- ternos antes de tornar una decisión. Debe ponderar los incrementos en productividad a largo plazo contra los costos de adquisición y de aprendizaje. Además, el usuario necesitará considerar si puede sobrevivir sin las tecnologías de ambiente integrado, si es que sus competidores las están utilizando de rutina.



Componentes de una Herramienta CASE

Ahora presentaremos los principales componentes de una herramienta CASE:

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.

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.

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.

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.

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.

Herramientas CASE mas 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.


ERwin hace fácil el diseño de una base de datos. Los diseñadores de bases de datos sólo apuntan y pulsan un botón para crear un gráfico del modelo E-R (Entidad- relación) de todos sus requerimientos de datos y capturar las reglas de negocio en un modelo lógico, mostrando todas las entidades, atributos, relaciones, y llaves importantes.

Más que una herramienta de dibujo, ERwin automatiza el proceso de diseño de una manera inteligente. Por ejemplo, ERwin habilita la creación de un diccionario de atributos reusables, asegurando la consistencia de nombres y definiciones para su base de datos.

Se mantienen las vistas de la base de datos como componentes integrados al modelo, permitiendo que los cambios en las tablas sean reflejados automáticamente en lasvistas definidas. La migración automática garantiza la integridad referencial de la 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.

EasyCASE permite capturar los detalles de diseño de un sistema y comunicar las ideas gráficamente, para que sean fáciles de ver y entender. Para un diseño legítimo y modelamiento de datos, procesos y eventos, permite crear y mantener diagramas de flujo de datos, diagramas de entidad-relación, mapas de estructura y más.

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.
PowerDesigner
PowerDesigner es una suite de aplicaciones de Powersoft para la construcción, diseño y modelado de datos a través de diversas aplicaciones.

Es la herramienta para el análisis, diseño inteligente y construcción sólida de una base de datos y un desarrollo orientado a modelos de datos a nivel físico y conceptual, que dan a los desarrolladores Cliente/Servidor la más firme base para aplicaciones de alto rendimiento.
SNAP

SNAP es un CASE (Ingeniería de Software Asistida por el Computador) para el desarrollo de aplicaciones en Sistemas AS/400 de IBM. Proporciona el ambiente integral de trabajo, brindando la posibilidad de construir sistemas de inmejorable calidad, adheridos a los estándares S.A.A de IBM., totalmente documentados y ajustados a los requerimientos específicos de la organización, en una fracción del tiempo y coste del que se invertiría, si se utilizaran herramientas tradicionales.

SNAP se ha consolidado como el CASE más poderoso y con mejor historial de resultados, disponible para desarrollo de sistemas en el AS/400 de IBM. Genera los programas nativos de mejor rendimiento en AS/400. Así mismo, proporciona dos ambientes de trabajo y genera aplicaciones nativas y/o Cliente/Servidor con el mismo esfuerzo de desarrollo.

En su arquitectura, SNAP implementa, de manera adecuada, el esquema metodológico de ENTIDAD-RELACION, facilitando las herramientas y guías necesarias para construir aplicaciones que exploten al máximo las virtudes y potencial del AS/400 en su modalidad nativa, siguiendo los lineamientos técnicos y de presentación que propone la filosofía S.A.A. de IBM.

SNAP se compone de cuatro grandes áreas: Modelo de Datos, Método de DesarrolloAcelerado (MDA), Utilitarios y Seguridad.

Consideraciones que se debe toma para elegir una herramienta CASE

Seleccionar una Herramienta CASE no es una tarea simple. No existe una ‘mejor’ herramienta respecto de otra. Hay numerosas historias respecto al uso de CASE y las fallas que pueden producirse. Las fallas o las respuestas satisfactorias están en relación con las expectativas. Si el proceso de evaluación y selección de las Herramientas CASE falla, entonces la Herramienta no cumplirá con las especificaciones o expectativas del negocio. Esto puede ocurrir durante el proceso de implementación o ejecución del producto.

Hay tres puntos comunes que fallan en el proceso de evaluación y selección:

  • El proceso en sí mismo.
  • Los pre-requisitos necesarios.
  • Conocer la organización.

El proceso en sí mismo:


El proceso de evaluación y selección de Herramientas CASE debe aproximarse a un proyecto mayor. El proceso debe definirse cuidadosamente y debe incluir las mejores técnicas de dirección de proyecto. Ninguna selección es
igual que otra, porque dos organizaciones no son iguales.
Por ejemplo, el proceso de selección para el Ministerio de Defensa puede ser completamente diferente que en una corporación comercial. Aunque hay principios básicos, por ejemplo, todos debemos entender el criterio en el que está basado el proceso de selección, todos deben tener una
visión común. Es adecuado limitar el número de vendedores tanto como sea posible, para poder enfocar y entender realmente una determinada herramienta.

Los pre-requisitos necesarios:


El propósito de las herramientas CASE es apoyar y facilitar el desarrollo de software. Debe haber una comprensión clara del propósito de las herramientas que se propongan dentro del ambiente de desarrollo que es
compartido por el equipo de la selección. El equipo debe tener una visión común del ambiente de desarrollo de sistemas, resultando la selección de la herramienta adecuada.
Otro requisito previo importante sería tener unametodología de desarrollo de sistemas seleccionada. Sin una metodología, ingresará al largo camino del fracaso. Las herramientas implementan la metodología, no la determinan.

Conocer la organización:


Cuando se está evaluando y seleccionando una herramienta CASE, es importante conocer y entender a la organización. Tal como las personas son únicas, así también las organizaciones son únicas a su propio modo, cada una tiene una personalidad e infraestructura propias. Una empresa podría
disciplinarse y alcanzar un nivel alto de madurez en el proceso de diseño de software, mientras otra puede estar en las fases tempranas. Sin tener en cuenta la disciplina y la madurez, es muy importante entender la organización que se verá reflejada en la selección final.

Conclusiones

El uso de herramientas CASE es muy importante en la actualidad ya que sin el uso de estas herramientas el desarrollo de software sería desorganizado, sin planificación ni evaluación.
Todo esto se consigue con el uso de herramientas CASE con lo que se logra la automatización de muchas de las tareas en el desarrollo de software haciendo este trabajo más fácil y competitivo.

Bibliografía