jueves, 25 de septiembre de 2008

HERRAMIENTAS CASE

HISTORIA

Esta disciplina se definió formalmente en los 1970's, porque en los sistemas que se desarrollaban, la parte del diseño y Análisis necesitaba ser controlado para prevenir errores que podían ser costosos de arreglar. Esta primera generación de CASE se desarrolló en maquinas Mainframe y estaban basados en texto. A fines de los 1970's aparecieron las herramientas basadas en Upper-CASE. Con la aparición de las PC's que desplegaban gráficos alentó a que las herramientas basadas en texto fueran Transformadas en herramientas gráficas que apoyaran el análisis y el diseño.

La segunda generación de CASE aparece a principios de 1980's. Los métodos de análisis y diseño llegaron a ser más maduros, con la introducción de la documentación asistida por computadora y de las herramientas de generación automática de diagramas. Estas herramientas representan las herramientas de desarrollo de software basadas en computadoras personales y los primeros intentos para automatizar el análisis y el diseño estructurados de tareas.

A mediados de esta década, las herramientas CASE se mejoraron y llegaron a ser más estables, proporcionando dos funciones importantes tales como:

  • Comprobación automática de diagramas estructurados (análisis y diseño).
  • Almacenamiento de diagramas estructurados en librerías de diseño automático llamados diccionarios, depósitos o enciclopedias.

Es importante notar que estas herramientas no eran muy sofisticadas para resolver problemas de productividad. Porque cuando se realizaba cambios en el diseño estos cambios no se propagaban automáticamente. También el alto costo de los CASE contribuyo a que los diseñadores evitaran el uso de estas herramientas en la mayoría de los casos.

A fines de los 1980's el paradigma de programación orientada a objetos empezó a ganar popularidad. Y con esto también los métodos OO. Entonces empezaron a aparecer herramientas de diseño y análisis para apoyar a estos métodos. El paso siguiente en la evolución de la tecnología CASE fue la unión del diseño automático con la programación automática.

El diseño automático se relaciona con la asistencia por computadora a las tareas de análisis y diseño, mientras que la programación automática significa generadores automáticos de código. La unión implica que del 80 al 90 por ciento del sistema de software puede generarse a partir del diseño de diagramas estructurados.

A principios de los 1990's, aparecieron herramientas CASE asociadas a sistemas expertos, que permiten realizar procesos inteligentes, donde el sistema pueda tomar decisión propia, a través de un conjunto de reglas preestablecidas [McClure93].

En la siguiente tabla se tiene un resumen de la historia de las herramientas CASE:


Principios 1980's

  • Documentación asistida por computadora.
  • Diagramación asistida por computadora.
  • Herramientas de análisis y diseño


Mediados 1980's

  • Comprobación automática de diagramas estructurados (análisis y diseño).
  • Almacenamiento automático en diccionarios, depósitos o enciclopedias


Finales 1980'S

  • Generación de código, a partir de especificaciones de diseño.
  • Enlazando con el diseño automático.


Principios1990's

  • Manejadores de metodologías inteligentes Reusabilidad.


DESCRIPCION

La palabra CASE viene de las palabras en Ingles "Computer Aided Software Engineering" que significa Ingeniería de Software Asistida por Computadora; una definición mas amplia es "Ingeniería de Sistemas Asistida por Computadora", esta definición es más precisa ya que el objetivo a largo plazo de las herramientas CASE es automatizar los aspectos claves de todo el ciclo de vida del proyecto desde el principio hasta el final [López90].

Existen muchas variaciones para el acrónimo CASE las cuales se ven en la siguiente tabla.

C Computer

A Aided Assisted Automated

S Software Systems

E Engineering


Que es una herramienta CASE?

Es una herramienta de software que ayuda a analistas y diseñadores a desarrollar sistemas de manera sistemática, eficiente y productiva. La idea básica de los CASE es proporcionar un conjunto de herramientas bien integradas que ahorren trabajo, enlazando y automatizando todas las fases del ciclo de vida del software [Kendall&Kendall91].

Las herramientas CASE logran su objetivo ayudando a los analistas a visualizar sus ideas en la computadora. Porque los sistemas diseñados hoy en día tienden a ser amplios y por lo tanto tienen una basta documentación, donde se tiene muchos diagramas y gráficos que ayudan al diseño, aumentando su complejidad cada vez mas independientemente de la metodología que se use. Estas herramientas ayudaran a manejar y ordenar esta complejidad.

CLASIFICACION DE LAS HERRAMIENTAS CASE

a) Por su funcionalidad


Las herramientas CASE, sobre la base de la función que cumple, se clasifican de la siguiente manera [Pressman93].

  • · Herramientas de soporte. Las herramientas que caen en esta amplia categoría recogen las actividades aplicables en todo el proceso de ingeniería de software.

1. Las herramientas de documentación ayudan al ahorro de tiempo en el desarrollo de la documentación de un proyecto.

2. Las herramientas de software de sistemas no son más que aquellas para gestión de redes, debido que él CASE es una herramienta de estaciones de trabajo.

3. Las herramientas de control de calidad son herramientas de medida que comprueban el código fuente para determinar su compatibilidad con lenguajes estándares.

4. Las herramientas de bases de datos sirven como base para el establecimiento de una base de datos CASE que permiten evolucionar de los sistemas relacionales (SGBDR) a los sistemas basados en objetos (SGBDOO).

  • Herramientas de Análisis y Diseño. Este tipo de herramientas proporciona un modelo del sistema que se construirá. El modelo contiene una representación de los datos y del flujo de control, del contenido de los datos, representaciones de los procesos, especificaciones de control y otras representaciones del modelo. Las herramientas para el diseño y el desarrollo de interfaces son un conjunto de componentes de software, tales como menús, botones, estructuras de ventanas, iconos, mecanismos de visualización, controladores de dispositivos, y otros elementos de ese tipo. Las herramientas para máquinas de análisis y diseño utilizan una arquitectura basada en reglas que permiten que la herramienta sea adaptada a cualquier método de análisis y diseño.

b) Según el ciclo de vida


Basados en el criterio de las fases del ciclo de vida que abordan, existen varias clasificaciones para este criterio

[McClure93].

Primera clasificación:

  • Altos (UPPER CASE).- Frecuentemente llamada planeamiento asistido por computadora (Computer – Aided Planning), y se refiere a componentes que soportan la planificación colectiva de manera que se puede entender mejor.
  • Medios (MIDDLE CASE).- Se analiza el problema con la información que se tiene y se diseñan soluciones. Se combinan diagramas y entradas al diccionario o biblioteca de clase, que es utilizado para el análisis del sistema. Abarca las etapas de análisis y diseño del software.
  • Bajos (LOWER CASE).- A partir de un conjunto de especificaciones se genera un elevado porcentaje del código por lo que sí se requiere modificar algo, no es necesario modificar el código, solo hay que modificar las especificaciones y generar nuevamente este. Segunda clasificación [Wattterson].
  • Front-end (altos y medios) Corresponden a las fases primarias del ciclo de vida del software; es decir, el análisis y diseño. Usan técnicas que ayudan al analista a preparar especificaciones formales que carezcan de ambigüedad, validando las descripciones del sistema con el objetivo de determinar su consistencia y completitud.
  • Back-end (bajos) corresponden a las últimas fases del ciclo de vida del software; es decir, la implementación y el mantenimiento del programa. Están relacionados con la generación de código a partir de especificaciones que se le ofrecen. Entre esas se tiene las siguientes:

1. Generadores de menúes

2. Generadores de interfaces

3. Generadores de reportes

  • Integrales o integrados Es el enlace entre los componentes front-end y back-end de un sistema CASE. Abarcan todo el ciclo de vida. Incluyen facilidades para el análisis, diseño y desarrollo. También facilitan la administración y mantenimiento del código. De igual forma brinda un ambiente eficiente para crear, almacenar, manipular, administrar y documentar sistemas.

c) Según la metodología de desarrollo

  • Para el mundo
  • Para el mundo convencional de computo
  • Mixtas

d) Dependiendo del ciclo de vida que apoyan

  • I-CASE CASE integradas, es decir que apoyan todo el ciclo de vida.
  • CASE fragmentada Son las que apoyan una parte del ciclo de vida tal como el análisis inicial o la generación final de código.
  • II-CASE Son herramientas que soportan la ingeniería de información y ayudan a los usuarios a hacer un modelo de empresa y analizar las áreas de la misma.

e) Según la filosofía de construcción

La implementación de la metodología como soporte teórico del CASE puede hacerse según tres filosofías [Vessey98]:

  • Filosofía Restrictiva. Esta diseñada para ser usada de modo normativo, controlando el grado y la forma de proceso de toma de decisiones por parte del usuario.
  • Filosofía Guiada. Esta diseñada para no forzar su uso de una forma normativa, esta asiste al usuario en el proceso de toma de decisiones, sugiriéndole los pasos a seguir.
  • Filosofía Flexible. Una CASE así deja al usuario en absoluta libertad de trabajar libremente y luego solo verificar la consistencia de la información.

VENTAJAS Y DESVENTAJAS DE LOS CASE

El uso de las herramientas CASE brinda las siguientes ventajas:

  • Permite utilizar las técnicas estructuradas y orientadas a objetos.
  • Impone el empleo de las técnicas de la ingeniería de software y de la información.
  • Aumenta la calidad del software mediante comprobación automática.
  • Favorece la realización de prototipos.
  • Simplifica el mantenimiento del programa.
  • Acelera el proceso de desarrollo.
  • Libera al profesional de complicadas tareas durante el desarrollo del software.
  • Anima al desarrollo evolucionado y gradual.
  • Posibilita el rehuso de los componentes del software.

Después de ver todas las ventajas se pueden analizar algunos aspectos negativos que surgen de adoptar tales herramientas. Pero antes se mencionará la siguiente relación del uso de las herramientas CASE [ACM octubre 1996].

  • De todas las herramientas construidas 70% nunca son usadas
  • 25% son usadas por algunos grupos
  • 5% son ampliamente usadas

La causa de este fracaso puede ser por los siguientes aspectos:

  • La participación de los profesionales en software y Sistemas de información en la elección de la herramienta CASE es mínima o nula.
  • Soporte de manejo. Es un factor que consiste en las facilidades de implementar los sistemas de información.
  • Enseñanza o adiestramiento. Tanto en la calidad como en la cantidad con respecto al uso de la herramienta CASE.
  • Realismo expectable. Es la diferencia entre el impacto que tiene el CASE y lo que uno espera concerniente al impacto que tendrá el CASE. Estas herramientas no satisfacen algunos de los siguientes factores: velocidad de desarrollo, calidad funcional, productividad, Costo de desarrollo, calidad de aplicaciones y el costo de mantenimiento.
  • Complejidad. Es la dificultad que se tiene para aprender y usar la herramienta.
  • Compatibilidad. Es el grado por el cual una innovación es consistente con valores existentes. Como ser la compatibilidad de uso, de vendedores, de funcionalidad, de interfaces, de soporte del proyecto, de métodos, de hardware.
  • Ventaja relativa. Se dice que existe cuando una innovación es mejor que su predecesor.
  • Voluntad. Se describe como el grado por el cual una innovación es usada voluntariamente o de libre albedrío y no impuesta.

CONCLUSIONES


Los instrumentos CASE han alcanzado una gran popularidad en las últimos 15 años aunque algunos nunca han sido utilizados, surgiendo infinidad de productos en el mercado internacional del software. Tal vez lo mas importante de las metas del desarrollo de software en los próximos años será lograr el máximo nivel de rehuso. El software se puede generar organizando y adaptando los componentes ya existentes mediante las herramientas basadas en un depósito. Hoy casi todos los programadores inventan de nuevo algo que ya se había producido, depurado y mejorado con algo de trabajo cientos de veces en el pasado.

En este proyecto se intentara hacer una herramienta con los conceptos estudiados en este capítulo, se seguirá algunas recomendaciones para el diseño de estas herramientas entre las cuales se encuentran las siguientes:

  • Vincular al CASE a una sola metodología
  • Promover un lenguaje único en el grupo de proyecto

Mezclar las filosofías flexibles, guiadas y restrictivas


BIBLIOGRAFIA


Documento extraído de la Tesis: "Desarrollo de una Herramienta case Orientada o Objetos", de Weimar Durán, UMSS - Cochabamba.

Integrantes:


1. Lara Álvaro Ariel

2. Medina Meneses Mauricio

3. Mancilla Fernando