TECNOLOGIA "CASE" PARA CLIENTE/SERVIDOR

José R. Hilera

La Ingeniería del Software Asistida por Computador (CASE) puede considerarse como un conjunto de tecnologías que permite mejoras radicales en la productividad y en la calidad en todos los aspectos del desarrollo de aplicaciones. Actualmente estas tecnologías se refieren a aspectos tales como reingeniería, orientación a objetos, sistemas abiertos, sistemas cliente-servidor y equipos de trabajo (groupware), que habrá que buscar en las herramientas CASE que se adquieran a mediados de los 90.

Las herramientas CASE para reingeniería deberán permitir realizar un proceso de ingeniería inversa sobre sistemas compuestos por antiguos programas en código fuente (miles de líneas p. ej. en COBOL) creando un representación del programa a un nivel superior de abstracción, el nivel de diseño (de datos, arquitectónico y procedimental) y de análisis. Ya existen herramientas de fabricantes como ViaSoft, InterSolv, Bachman y MicroFocus que hacen posible la creación de diagramas de estructura y de entidad-relación directamente a partir del código fuente. Estas herramientas, además de recuperar la información de diseño del software, deben permitir su alteración y reconstrucción para mejorar la calidad global del sistema existente.

Las herramientas para orientación a objetos (OO) servirán de soporte para un ciclo de vida en el que cada una de sus fases se base en esta tecnología: Planificación OO, Análisis OO, Diseño OO, Programación OO y Pruebas OO. La implantación de este tipo de herramientas se verá retrasada debido al gran número de notaciones y metodologías de orientación a objetos diferentes que existen. Algunos ejemplos de herramientas son OOATool de Object International, ObjectMaker de Mark V Systems, ParadigmPlus de Protosoft, ROSE de Rational y los "meta-CASE" de Ipsys y Virtual Software.

Las herramientas CASE para Sistemas Abiertos deben ser capaces de soportar las combinaciones dominantes de diferentes plataformas hardware (PC, Macintosh, mainframe), sistemas operativos (UNIX, OS/2, Windows, etc.), Interfaces Gráficas de Usuario-GUI (X-Windows, Motif, Next, Macintosh, Windows, OS/2 Presentation Manager, etc.), Sistemas de Gestión de Bases de Datos (DB2, Oracle, Informix, Adabas, dBase IV, etc.), Lenguajes de Programación (COBOL, C, etc.) y Protocolos de Red (Internet, XNS, etc.).

Las herramientas CASE para el trabajo en equipo (groupware) se centrarán en el proceso de desarrollo más que en el producto a desarrollar, facilitando la integración de diferentes grupos humanos, pertenecientes incluso a empresas diferentes, trabajando conjuntamente en un gran proyecto. Este tipo de herramientas deben incorporar facilidades clásicas de ofimática: correo electrónico, calendarios on-line, planificación de actividades, preparación de documentos, actas de reuniones, etc. En este sentido, algunos fabricantes, como Iconix, proporcionan la posibilidad de incluir imágenes, vídeo, sonido y otros datos multimedia en el repositorio del proyecto.

Finalmente, las herramientas CASE para Sistemas Cliente Servidor deben permitir que varias personas del equipo de desarrollo puedan trabajar juntos de forma simultánea bajo un entorno de red, como clientes de un repositorio (almacén de todas las especificaciones del proyecto) centralizado en un servidor. Esto es soportado actualmente por la práctica totalidad de las herramientas. Sin embargo, son pocos los fabricantes que contemplan la posibilidad de utilizar herramientas CASE para generar aplicaciones que funcionarán en un entorno cliente-servidor. En este sentido hay que destacar la herramienta Foundation de Andersen Consulting, aparecida a mediados de 1993 (recientemente presentada en España) y las anunciadas por KnowledgeWare, TI, CGI y Software AG.

 

CASE CON REPOSITORIO CENTRALIZADO

Hasta ahora, la relación entre las tecnologías cliente-servidor y CASE se limitaba a la posibilidad de utilizar herramientas CASE con un repositorio integrado y centralizado en un servidor al que podían acceder los clientes (analistas, diseñadores, programadores) a través de una red para que todos los integrantes de un proyecto de desarrollo software compartieran las mismas especificaciones de los diferentes componentes del sistema durante las diferentes fases del desarrollo, asegurando que todos los miembros del equipo trabajan con la misma versión del proyecto en cada momento. En este sentido, se puede ver la propia herramienta CASE como una aplicación cliente-servidor.

Actualmente existen versiones para red de casi todas las herramientas CASE comercializadas. Con ellas se permite más de un puesto trabajando en el mismo proyecto simultáneamente, garantizando la herramienta la integridad de la información almacenada en el repositorio compartido (datos, diagramas, especificaciones, etc.) mediante el control de asignaciones de identificaciones de puestos de trabajo, privilegios (lectura, escritura) de acceso, propiedad de la información del repositorio, mantenimiento de la última fecha de actualización de cada dato y la sincronización de todos los objetos del repositorio con lo que cada cliente "ve" desde su puesto de trabajo en cada instante.

Este enfoque de repositorio centralizado es la clave de una planificación, analisis, diseño y mantenimiento integrados. Además permite el desarrollo de sistemas por partes que serán ensambladas en el repositorio y que cada usuario tenga una visión diferente de éste, en función de su tarea encomendada. Hay que considerar que el repositorio no es sino una base de datos integrada implantada en un sevidor con diferentes vistas en función del cliente (miembro del equipo de desarrollo) que acceda. La utilización de un sistema de gestión de base de datos garantiza la integridad semántica de la información. Además, los repositorios suelen incluir características avanzadas como el bloqueo, la validación, integridad referencial, control de versiones, etc.

 

HERRAMIENTAS CASE PARA EL DESARROLLO DE APLICACIONES CLIENTE/SERVIDOR

En la actualidad existe una tendencia de las empresas a sustituir los sistemas basados en mainframe por arquitecturas cliente-servidor. Según un reciente informe de McKinsey & Company la mitad de los gastos en tecnologías de la información van a implicar sistemas cliente-servidor en 1995. Otros expertos en la materia (Gartner Group) predicen que en 1996 el 75% de las nuevas aplicaciones multiusuario que se desarrollen emplearán arquitecturas cliente-servidor.

Esta tendencia está motivada por las ventajas que ofrece esta tecnología frente a la informática basada en mainframe. Por un lado, el modelo cliente-servidor, al utilizar un entorno basado en estaciones de trabajo individuales (con interfaces gráficas de usuario) proporciona un entorno más natural e intuitivo para los usuarios. Además, permite la integración de las estaciones de trabajo, cada día con mayor rendimiento y capacidad, dentro de entornos mainframe existentes. También el enfoque modular de estos sistemas, repartiendo el software en estaciones servidores y clientes, permite una flexibilidad de evolución que debe garantizar que una estación de trabajo cliente pueda ser eliminada o cambiada sin afectar al resto de clientes y que se puedan cambiar los servidores sin impactar a los clientes a los cuales está conectado.

La tendencia hacia arquitecturas cliente-servidor afecta claramente a la industria CASE, ya que los usuarios (analistas, diseñadores, programadores) necesitan herramientas que les faciliten el desarrollo de las aplicaciones que funcionarán en un entorno cliente-servidor. Se podrán modelar los componentes de las aplicaciones utilizando las técnicas habituales (diagramas de flujo de datos, de entidad relación, de estructuras, etc.) pero también se deberá poder indicar a la herramienta CASE dónde deben residir esos componentes, en tiempo de ejecución, dentro de la arquitectura cliente-servidor, liberando al programador de aspectos referidos a los protocolos de comunicaciones, seguridad, etc.

Estas nuevas herramientas deberán contemplar y permitir el desarrollo de los diferentes estilos o posibles formas de distribuir, para su ejecución, una aplicación cliente-servidor entre las distintas plataformas sobre las que se ejecutará, lo cual dependerá del tipo particular de aplicación. Según Gartner Group se pueden distinguir cinco estilos posibles en función de la distribución física de los diferentes componentes de la aplicación. Estos componentes son el nivel de presentación (interface de usuario), el nivel de la lógica (funciones realizadas por la aplicación) y el nivel de gestión de datos (bases de datos de la aplicación).

Según se realice una distribución de la presentación, de los datos o de la funcionalidad se pueden tener los siguientes estilos: Presentación Distribuida (el nivel de presentación se reparte entre la plataformas cliente -p.ej. una GUI- y servidor -p.ej. mainframe-, mientras que la funcionalidad y los datos se centralizan en el servidor), Presentación Remota o solución "frontware" (todo el nivel de presentación reside en el cliente, quién puede realizar el proceso de diálogo y validaciones básicas de datos), Función Distribuida (el nivel de presentación en el cliente y la funcionalidad de la aplicación se reparte entre cliente y servidor, en forma de programas que se comunican a través de mensajes), Gestión de Datos Remota (La presentación y las funciones residen en el cliente, pero la gestión de los datos se centraliza en el servidor, estableciéndose una relación a través de consultas -SQL- de los clientes) y Bases de Datos Distribuidas (los niveles de presentación y función se localizan en el cliente y la gestión de datos se distribuye entre clientes y servidores).

 

FOUNDATION: UNA HERRAMIENTA PIONERA

En 1993 Andersen Consulting presentó FOUNDATION como una metodología y un conjunto de herramientas integradas sobre un repositorio en Red de Area Local para dar una respuesta completa ("full-CASE") a las posibilidades que ofrece la tecnología cliente-servidor, cubriendo las fases de planificación, análisis, diseño y construcción (incluyendo generación de código) de aplicaciones de este tipo.

Los principales clientes potenciales de una herramienta de este tipo son las compañias que necesitan aplicaciones de teleproceso, como las entidades aseguradoras y las entidades de crédito. Así, en España, FOUNDATION está siendo utilizada por Caja España en la integración de los diferentes entornos informáticos en los que trabajaban los cinco Cajas de Ahorro que se han fusionado en esta nueva entidad y para el desarrollo de nuevas aplicaciones cliente-servidor y proceso cooperativo. También el Banco Hipotecario ha utilizado FOUNDATION para para poner a disposición de sus clientes un servicio inmobiliario disponible desde cualquier punto de su red de oficinas, desde las oficinas de agentes de la propiedad y desde puntos determinados de la red de Argentaria. En el sector de seguros, el principal cliente de FOUNDATION es la compañía FREMAP.

 

SERVICIOS OFRECIDOS POR FOUNDATION

Lo que diferencia FUNDATION de otras herramientas es la posibilidad de construir aplicaciones cliente-servidor sin necesidad de abordar los detalles técnicos complejos del entorno multi-plataforma sobre el que, de forma distribuida, se ejecutará, liberando al diseñador de los aspectos relacionados con las comunicaciones, distribución de procesos e Interfaces Gráficas de Usuario (GUI).

Además de herramientas, FOUNDATION ofrece una metodología (FOUNDATION Methods) que guía la utilización de las diferentes técnicas para el desarrollo de aplicaciones cliente-servidor a través de todas las fases del ciclo de vida del proyecto. También esta metodología sirve de soporte para el diseño de GUIs, ayudando a diseñar y definir el flujo entre ventanas y su formato para maximizar la eficiencia y la aceptación de los usuarios. Ofrece también unas guías generales para la distribución y gestión de datos y procesos en la arquitectura cliente-servidor y para la gestión de proyectos. Para esto último, Andersen Consulting ha establcido una alianza con Applied Business Technology (ABT), incorporando su software de gestión de proyectos ABT Project Workbench en FOUNDATION Project Manager.

Para las fases de análisis y diseño de aplicaciones, cliente-servidor o convencionales, y para el desarrollo de prototipos, FOUNDATION incluye una herramienta denominada FOUNDATION Design que, a través de una interface de usuario gráfica basada en un estilo "point and click" (potenciando el uso del ratón y minimizando la utilización del teclado), permite realizar los diagramas típicos de análisis y diseño estructurado (diagramas entidad-relación, de flujo de datos, de estructura) y la definición y almacenamiento en el repositorio integrado de los objetos utilizados en los diagramas. Para la documentación del proyecto integrada en el repositorio se utiliza Microsoft Words. También incluye un software denominado Rapid Application Builder que permite la construcción de prototipos en base a los objetos de diseño almcenados en el repositorio, con la posibilidad de crear ventanas y lógica de programas (mediante un pseudo-lenguaje).

Sin embargo, la principal ventaja de FOUNDATION reside en sus posibilidades para sistemas cliente-servidor, puesto que las anteriores facilidades están disponibles en la práctica totalidad de herramientas CASE del mercado. En este sentido, existen dos herramientas adicionales, FOUNDATION Construction y FOUNDATION Production, para la generación de código y gestión de las comunicaciones a través de mensajes entre las plataformas que componen el entorno cliente-servidor. Con FOUNDATION Construction se puede generar programas en COBOL o C. Esta generación puede hacerse para los programas clientes y servidores. Así, FOUNDATION puede generar aplicaciones para clientes OS/2 y Windows y servidores OS/2, UNIX, VAX/VMS e IBM Host.

Por otro lado, como FOUNDATION Production maneja las comunicaciones entre plataformas, se pueden diseñar las aplicaciones independientemente del entorno final, no siendo necesario conocer la ubicación fisica de cada aplicación. Esto permite el diseño de código a nivel de lógica aplicativa sin necesidad de conocer protocolos, plataformas o ubicación física de servidores o datos. También el desarrollo de programas cliente se simplifica, realizándose el diseño de ventanas sin necesidad de conocer en detalle el entorno de los gestores de interfaces gráficas de usuario.

Al ser FOUNDATION una herramienta CASE pionera en este campo, habrá que esperar la próxima aparición de otras, algunas ya anunciadas por sus fabricantes (KnowledgeWare, CGI, Software AG, TI) como futuras versiones cliente-servidor de productos ya existentes, para poder realizar una valoración relativa de las posibilidades que ofrece. En cualquier caso, lo verdaderamente importante es que ya empieza a ser una realidad la Ingeniería del Software Cliente-Servidor Asistida por Computador.

 

(Parte de la información presentada en este articulo ha sido extraida del "Libro Blanco" de Ed. Yourdon (1993) y de documentación proporcionada por Andersen Consulting).