Ayudas automatizadas para el desarrollo de "software" (herramientas CASE). Tipos. Estructura. Prestaciones.

De MediaWiki
Ir a la navegación Ir a la búsqueda

Introducción

Ingeniería del Software Asistida por Computadora (CASE) es el nombre que se le da al software que se utiliza para ayudar a las actividades del proceso del software como la ingeniería de requerimientos, el diseño. el desarrollo de programas y las pruebas. Por lo tanto, las herramientas CASE incluyen editores de diseño. diccionarios de datos, compiladores, depuradores, herramientas de construcción de sistemas. etcétera.

La tecnología CASE proporciona ayuda al proceso del software automatizando algunas de sus actividades. así como proporcionando información acerca del software en desarrollo. Algunos ejemplos de las actividades que se pueden automatizar utilizando CASE son:

  1. El desarrollo de modelos gráficos del sistema como parte de la especificación de requerimientos o del diseño de software.
  2. La comprensión del diseño utilizando un diccionario de datos que tiene infoonación sobre las entidades y relaciones del diseño.
  3. La generación de interfaces de usuario a partir de la descripción gráfica de la interfaz que es elaborada de foona interactiva por el usuario.
  4. La depuración de programas por medio de la provisión de la ¡nfoonación proporcionada por los programas en ejecución.
  5. La conversión automática de programas de una versión anterior de una lenguaje de programación. como COBOL. a una versión más reciente.

La tecnología CASE está disponible para ía mayoría de las actividades rutinarias en el proceso del software. Esto permite algunas mejoras en la calidad y productividad del software, aunque éstas sean menores que lali predichas por los primeros partidarios de CASE. Éstos sugirieron que se tendría una mejora mayor si se utilizamn entornos CASE integrados. En realidad. las mejoras reales son del 40% (Huff, 1992). Aunque esto es significante. las predicciones que se hicieron cuando se introdujeron las herramientas CASE en los años 80 y 90 fueron que el uso de la tecnología CASE generaría enonnes ahorros en los costos del proceso del software.

Las mejoras por la utilización de CASE están limitadas por dos factores:

1. Esencialmente. la ingeniería del software es una actividad de diseño que se basa en la creatividad. Los sistemas CASE automatizan las actividades rutinarias. pero los intentos de utilizar la inteligencia artificial para proporcionar ayuda al diseño no han tenido éxito.

2. En la mayoría de las organizaciones. la ingeniería del software es una actividad de equipo. y los ingenieros invierten mucho tiempo interactuando con los otros miembros del equipo. La tecnología CASE no proporciona mucha ayuda para esto.

Actualmente, la tecnología CASE está madura y hay herramientas disponibles y bancos de trabajo de un amplio rango de proveedores. Sin embargo, más que centrarse en alguna herramienta específica. aquí se presenta una visión general, con algunos comentarios de apoyo específico en otros capítulos. En la página web se incluyen enlaces a otro material de CASE y a proveedores de herramientas CASE.

Clasificación

Las clasificaciones de CASE nos ayudan a comprender los tipos de herramientas CASE y su papel en la ayuda a las actividades de proceso del software.

Existen varias formas diferentes de clasificar las herramientas CASE, cada una de las cuales nos proporciona una perspectiva distinta de estas herramientas. En esta sección, se describen dichas herramientas desde tres de estas perspectivas:

1. Una perspectiva funcional en la que las herramientas CASE se clasifican de acuerdo con su función específica.

2. Una perspectiva de proceso en la que las herramientas se clasifican de acuerdo con las actividades del proceso que ayudan.

3. Una perspectiva de integración en la que las herramientas CASE se clasifican de acuerdo con la forma en que están organizadas en unidades integradas que proporcionan ayuda a una o más actividades del proceso.

Perspectiva funcional

El anexo I es una clasificación de las herramientas CASE acorde con su función. Esta tabla enumera diferentes tipos de herramientas CASE y da ejemplos específicos de cada una. Ésta no es una lista completa de herramientas CASE. Las herramientas especializadas, como las de ayuda a la reutilización, no se incluyen.

Perspectiva de proceso

El anexo II presenta una clasificación alternativa de las herramientas CASE. Muestra las fases del proceso que reciben ayuda por varios tipos de herramientas CASE. Las herramientas para la planificación y estimación, edición de texto, preparación de documentos y gestión de la configuración pueden utilizarse durante todo el proceso del software.

Perspectiva de integración

Otra dimensión de clasificación posible es la amplia ayuda que ofrece la tecnología CASE para el proceso del software. Fuggetta (Fuggetta, 1993) propone que los sistemas CASE se deben clasificar en tres categorías: 1. Las herramientas ayudan a las tareas individuales del proceso como la verificación de la consistencia de un diseño, la compilación de un programa y la comparación de los resultados de las pruebas. Las herramientas pueden ser de propósito general, independientes (por ejemplo, un procesador de texto) o agrupadas en bancos de trabajo.

2. Los bancos de trabajo ayudan a las fases o actividades del proceso como la especificación, el diseño, etcétera. Nonnalmente consisten en un conjunto de herramientas con algún grado mayor o menor de integración.

3. Los entornos ayudan a todos los procesos del software, o al menos a una parte sustancial de éstos. Normalmente incluyen varios bancos de trabajo integrados.

El anexo III ilustra esta clasificación y muestra algunos ejemplos de estas clases de ayuda CASE. Por supuesto. esto es un ejemplo ilustrativo; muchos tipos de herramientas y bancos de trabajo se han quedado fuera de este diagrama.

Las herramientas de propósito general se utilizan a discreción del ingeniero de software quien toma decisiones acerca de cuándo aplicarlas para ayudar al proceso. Sin embargo. los bancos de trabajo por lo general ayudan a algún método que incluye un modelo del proceso y un conjunto de reglas/pautas que se aplican al software en desarrollo. Los entornos se clasifican en integrados y centrados en el proceso. Los entornos integrados proporcionan ayuda a los datos, al control y a la integración de la presentación. Los entornos centrados en procesos son más generales. Incluyen el conocimiento del proceso del software y un motor de procesos que utiliza este modelo del proceso para aconsejar a los ingenieros sobre qué herramientas o bancos de trabajo hay que aplicar y cuándo deben utilizarse.

En la práctica. los límites entre estas diferentes clases son borrosos. Las herramientas se pueden vender como productos individuales, pero pueden proporcionar ayuda a diferentes actividades.

Por ejemplo, la mayoría de los procesadores de texto incluyen un editor de diagramas integrado. Los bancos de trabajo CASE para el diseño normalmente ayudan a la programación y a las pruebas, de tal forma que se relacionan más con el entorno que con los bancos de trabajo especializados. Por tanto. puede que no siempre resulte fácil ubicar un producto utilizando una clasificación. No obstante, la clasificación proporciona un primer paso útil para ayudar a entender la amplitud del soporte que una herramienta proporciona al proceso.

Conclusión

La tecnología CASE proporciona ayuda automatizada a los procesos del software. las herramientas CASE ayudan a las actividades Individuales del proceso; los bancos de trabajo ayudan a un conjunto de actividades relacionadas; los entornos ayudan a todas o a la mayoría de las actividades del proceso del software.

Relación con el sistema educativo

  • GS - DAW - DAM -Entornos de Desarrollo (PES)

Anexo I - Clasificación funcional de las herramientas CASE

Tipo de herramientas Ejemplos
De planificación Herramientas PERT, herramientas de estimación, hojas de cálculo
De edición Editores de texto, editores de diagramas, procesadores de texto.
De gestión del cambio Herramientas de rastreo de requerimientos, sistemas de control de cambios.
De gestión de la configuración Sistema de gestión de las versiones, herramientas de construcción de sistemas.
De construcción de prototipos Lenguajes de muy alto nivel, generadores de interfaz de usuario.
De apoyo a métodos Editores de diseño, diccionarios de datos, generadores de código.
De procesamiento de lenguajes Compiladores, intérpretes.
De análisis de programas Generadores de referencias cruzadas, analizadores estáticos, analizadores dinámicos.
De pruebas Generadores de pruebas de datos, comparadores de archivos.
De depuración Sistemas de depuración interactiva.
De documentación Programas de diseño de páginas, editores de imágenes.
De reingeniería Sistemas de referencias cruzadas. sistemas reestncturaci6n de programas.

Anexo II - Clasificación basada en actividades de las herramientas CASE

Tipo de herramientas Actividades
Especificación Diseño Implementación Verificación y validación
De reingeniería X
De probas X X
De depuración X X
De análisis de programas X X
De procesamiento de lenguajes X X
De apoyo a métodos X X
De construcción de prototipos X X
De gestión de la configuración X X
De gestión del cambio X X X X
De documentación X X X X
De edición X X X X
De planificación X X X X

Anexo III - Clasificaciónde los sistemas CASE en categorías según Fuggeta

Anexo IV - Pros y contras de las herramientas CASE

Ventajas Inconvenientes
Ayuda en la estandarización de notaciones y diagramas Fija limites en la flexibilidad de la documentación
Ayuda a la comunicación entre los miembros del equipo de desarrollo Puede llevar a restringirse a las capacidades de la herramienta
Comprueban automáticamente la calidad de los modelos Un riesgo mayor es asumir que la completitud y la corrección sintáctica implica el cumplimiento de los requisitos
Reducción de tiempo y esfuerzo Coste asociado al uso de la herramienta: adquisición + formación
Facilitan la reutilización de modelos o componentes de modelos Resistencia del personal técnico al uso de herramientas CASE

Bibliografía

Referencias