CASE: ingeniería del software asistida por ordenador

Herramientas CASE

CASE (Computer Aided Software Engineering), es decir, la ingeniería de software asistida por ordenador, incluye el conjunto de herramientas y métodos asociados que pueden servir de ayuda en el proceso de construcción del software a lo largo de su ciclo de vida.

El término CASE, popularizado en la década de los ochenta, designa una tecnología que no es nueva –las ayudas automatizadas de las metodologías de desarrollo de software– y representa la evolución de las primeras ayudas (editores, compiladores, etc.) que formaron los entornos de desarrollo de software de los años setenta.

La novedad del CASE se hizo evidente cuando se incorporaron a las herramientas de ayuda al diseño informático nuevas funcionalidades gráficas con las cuales se hizo posible representar, modificar y mantener actualizados los diagramas gráficos que se han convertido en clásicos y se utilizan en la mayor parte de las metodologías de desarrollo de software.

La primera herramienta del nuevo CASE apareció cuando la empresa McDonnell Douglas utilizó su experiencia en el CAD (Computer Aided Design, diseño ayudado por ordenador, generalmente aplicado a la ingeniería) para obtener el primer producto de ayuda al diseño informático en el aspecto gráfico, el STRADIS/DRAW.

Aun siendo importante la posibilidad de crear, modificar y mantener una documentación gráfica adecuada, las verdaderas herramientas CASE surgieron cuando los diagramas se incorporaron a una base de datos global del diseño (diccionario de datos o repositorio), que también mantenía detalles de los elementos de datos y de la lógica de los procesos. Este diccionario de datos es, en realidad, una base de datos que incorpora un modelo en el que se incluyen restricciones de integridad que garantizan un análisis correcto de la compleción y consistencia del diseño.

Este conjunto de funcionalidades se presenta, por ejemplo, en sistemas como EXCELERATOR, System Architect, EasyCASE, IEF (Information Engineering Facility), IEW (Information Engineering Workbench), Teamwork, VAW (Visible Analyst Workbench) y muchos más que han alcanzado una difusión aún más amplia al poder ejecutarse desde estaciones de trabajo y, también, en ordenadores personales de coste bajo, gracias al reciente aumento de potencialidades gráficas y de proceso de la microinformática.

Variedades del CASE

En la literatura especializada hay varias subdivisiones de CASE no siempre coherentes y que posiblemente proceden de una voluntad comercial más que de la realidad tecnológica. En todo caso, se habla de CASE alto (upper CASE), medio (middle CASE) y bajo (lower CASE) según el nivel de abstracción y generalidad, aunque a menudo la denominación exprese simplemente si la herramienta CASE cubre aspectos de la construcción del software presentes en las primeras etapas del ciclo de vida (alto) o las últimas (bajo).

Otra distinción posible se establece entre herramientas (toolkits), supuestamente aplicables a una sola tarea del desarrollo del software, y talleres de trabajo (workbench) que se presentan como una colección de herramientas integradas que ayudan a todo el proceso de desarrollo de software: análisis, diseño e implementación.

Generadores de lenguaje

La mayoría de las herramientas CASE se aplican adecuadamente a las fases de análisis y diseño, pero algunos de los sistemas CASE más completos incorporan generadores de lenguajes e incluyen la posibilidad de generar el código fuente de la aplicación de una manera automática.

Con ello, además de ser una ayuda valiosísima al proceso de construcción del software y permitir la elaboración y el mantenimiento de la documentación, consiguen la eliminación de buena parte del trabajo de programar y producen incluso el software ejecutable.

A veces, la herramienta CASE se reduce a ser un generador que utiliza las especificaciones procedentes de otra herramienta CASE, como puede pasar con la familia de generadores del APS Development Center, que puede generar el Cobol a partir, por ejemplo, de las especificaciones que le proporciona EXCELERATOR. Otros sistemas, como IEW, incluyen su propio generador.

Técnicas más frecuentes

En lo que respecta al análisis y diseño de sistemas, predominan las herramientas que implementan los diagramas de flujo de datos (DFD, Data Flow Diagrams) del análisis y diseño estructurado de Constantine, Yourdon y De Marco y también en la variante de Gane/Searson.

En cuanto al diseño de datos, se utiliza a menudo el diagrama de entidad-relación de Chen (ERS, Entity-Relationship Diagrams) o la versión más clásica de los diagramas de Bachman para convertirlos finalmente a su equivalente en el modelo de bases de datos relacionales. También, para nuevas metodologías como MERISE, se implementan los diagramas de la historia de vida de una entidad (ELH, Entity-Life-History Diagrams).

Otras técnicas de diseño muy populares y utilizadas por las herramientas CASE son los diagramas de descomposición y jerarquía de funciones (HD, hierarchical diagram); los diagramas de estructura de módulos de la programación modular y el diseño estructurado (SC, Structured Chart); los diagramas de estructura de datos de la metodología Jackson (DSD, Data Structure Diagrams), o los grafos de diseño de diálogos (IDS, Invocation Dialog Structure) y los diseños de pantallas y listados, entre otros modelados gráficos muy empleados en la ingeniería del software.

Herramientas IPSE

La ingeniería del software tiene por objetivo central la obtención de un producto (software) de calidad por medio de un proceso correcto. Generalmente se había reservado el término CASE para las herramientas que ayudan a establecer el producto, mientras que las herramientas automatizadas que también intervienen en el proceso, es decir en la gestión del proyecto informático de construcción del software, recibían el nombre de IPSE (Integrated Project Support Environment) o entornos integrados de soporte de proyectos. Pero en los últimos años, el término CASE se va convirtiendo en omnicomprensivo y puede decirse que en muchos casos se ha convertido ya en sinónimo de IPSE, al cual, en cierta manera, incluye.

Las herramientas IPSE incluyen, además de las funcionalidades típicas del CASE para el análisis y el diseño, métodos de estimación de la carga de trabajos, de planificación de las tareas de un proyecto y de control de la ejecución y el desarrollo de este proyecto. También suelen incluir subsistemas de control de las versiones sucesivas de la documentación. El ejemplo más completo es el sistema MAESTRO, aunque en otros casos las herramientas CASE pueden presentar una interfaz directa con otros productos de software ya conocidos en la gestión de proyectos de ingeniería, como pasa con DESIGN/1, que utiliza el sistema de gestión de proyectos METHOD/1.

Metodologías CASE

Cuando las herramientas CASE soportan íntegramente el procedimiento, la documentación y la organización de un método concreto para el desarrollo de software, suele hablarse de metodologías CASE. Aunque la metodología sea siempre anterior en el tiempo, suele ser su ayuda informatizada CASE la que la hace popular y favorece su divulgación y, a menudo, constituye la razón más sólida para su implantación. Las metodologías más utilizadas en los sistemas CASE son las que se basan en los diagramas de flujo de datos para describir análisis y diseño y en los diagramas entidad-relación para describir los datos, como pasa con las de Constatine/Yourdon, De Marco, Gane/Searson o Yourdon (consultad la bibliografía) y sus extensiones en las aplicaciones en tiempo real (Ward/Mellor).

De hecho, es un error considerar el CASE como una metodología. En realidad, se trata sólo de las ayudas mecanizadas a una metodología, y, por tanto, como se ha dicho, es una herramienta y ya está. Pero el hecho de que las metodologías de construcción de software no estén muy difundidas en la práctica profesional ha llevado a los vendedores de herramientas CASE a poner énfasis también en la metodología implícita que comportan.

Arriba
Cerrar