Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
ANALISTA PROGRAMADOR UNIVERSITARIO Herramientas Informáticas Avanzadas Herramientas CASE HERRAMIENTAS CASE 1. INTRODUCCIÓN Desde el inicio de la escritura del 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, y procesadores de macros. Este conjunto de aplicaciones que pueden informatizarse, aumentó rápidamente 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 infinidad de líneas de código que necesitaban ser mantenidas y actualizadas. Esto causó a la industria de las computadoras muchos problemas, debido a que no podían cubrir el incremento de la demanda con los métodos que se estaban usando. Esto fue reconocido como una crisis del software. Para superar este problema en el proceso de desarrollo de software, se introdujeron metodologías para intentar crear estándares de desarrollo. Existe 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 que se denomina CASE (Computer Aided Software Engineering; ingeniería de software asistida por computadora). 2. CONCEPTO DE 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. 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. ● 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 efecto potencial profundo en la organización. ● También se lo puede definir al CASE como la unión de las herramientas automáticas de software y las metodologías de desarrollo de software formales. La realización de un nuevo software requiere que las tareas sean organizadas y completadas en forma correcta y eficiente. Las Herramientas CASE fueron desarrolladas para automatizar esos procesos y facilitar las tareas de coordinación de los eventos que necesitan ser mejorados en el ciclo de desarrollo de software. La mejor razón para la creación de estas herramientas fue el incremento en la velocidad de desarrollo de los sistemas. Por ello, las compañías pudieron desarrollar sistemas sin encarar el problema de tener cambios en las necesidades del negocio, antes de finalizar el proceso de desarrollo. Profesor Adjunto: Ing. Alfredo R. Espinoza Ayudante de 1º: Lic. Claudia Panica ANALISTA PROGRAMADOR UNIVERSITARIO Herramientas Informáticas Avanzadas Herramientas CASE Las herramientas CASE también permiten a los analistas tener más tiempo para el análisis y diseño y minimizar el tiempo para codificar y probar. Con un CASE integrado, las organizaciones pueden desarrollar rápidamente sistemas de mejor calidad para soportar procesos críticos del negocio y asistir en el desarrollo y promoción intensiva de la información de productos y servicios. Estas herramientas pueden proveer muchos beneficios en todas las etapas del proceso de desarrollo de software, algunas de ellos son: ● Verificar el uso de todos los elementos en el sistema diseñado, ● automatizar el dibujo de diagramas, ● ayudar en la documentación del sistema, ● ayudar en la creación de relaciones en la Base de Datos, y ● generar estructuras de código. La principal ventaja de la utilización de una herramienta CASE, es la mejora de la calidad de los desarrollos realizados, y en segundo término, el aumento de la productividad. Para conseguir estos dos objetivos es conveniente contar con una organización y una metodología de trabajo, además de la propia herramienta. La mejora de calidad se consigue reduciendo sustancialmente muchos de los problemas de análisis y diseño, inherentes a los proyectos de mediano y gran tamaño (lógica del diseño, coherencia, consolidación, etc.). La mejora de productividad se consigue a través de la automatización de determinadas tareas, como la generación de código y la reutilización de objetos o módulos. 3. 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. En la década del setenta se introdujeron técnicas gráficas y diagramas de flujo de estructuras de datos. Sobre este punto, el diseño y especificaciones en forma gráfica 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. Luego 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. Posteriormente las herramientas gráficas se integraron con diccionarios de base de datos para producir poderosos diseños y se desarrollaron herramientas que podían sostener ciclos completos del 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 se integraron en una 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. A partir del año 1985 las herramientas CASE adquirieron una gran relevancia en el proceso de desarrollo de software. Los proveedores prometieron a la industria que muchasactividades 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 consistieron en métodos 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. Los beneficios obtenidos fueron los siguientes: ● Mejora en la calidad, fiabilidad, utilidad y rendimiento, Profesor Adjunto: Ing. Alfredo R. Espinoza Ayudante de 1º: Lic. Claudia Panica ANALISTA PROGRAMADOR UNIVERSITARIO Herramientas Informáticas Avanzadas Herramientas CASE ● el entorno de producción de documentación para software mejora la comunicación, mantenimiento y actualización. ● realizan el trabajo de diseño de software más fácil y agradable, ● promesa futura de reemplazar realmente a los ingenieros de software especializados, y ● reducción del costo de producción de software. 4. BENEFICIOS DE LAS HERRAMIENTAS CASE Los beneficios más significativos de las herramientas CASE se tratarán en las siguientes secciones. 4.1. Facilidad para la revisión de aplicaciones La experiencia demuestra que una vez que las aplicaciones se implementan, se emplean por mucho tiempo. Las herramientas CASE proporcionan un beneficio sustancial 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 las especificaciones y no tanto por los ajustes al código fuente. 4.2. 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 los 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 interface. Sin embargo, no se prepara el código fuente que es de naturaleza orientada a los procedimientos como una parte del prototipo. El desarrollo de prototipos puede producir un sistema que funcione. Las características de entrada y salida son desarrolladas junto con el código orientado hacia los procedimientos y archivos de datos. 4.3. Generación de código 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 utilizar el código y los enlaces con otros módulos. 4.4. 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. Las herramientas CASE disminuyen el tiempo de desarrollo, una característica que es importante para los usuarios. Estas herramientas agilizan la 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. 4.5. Soporte interactivo para el proceso de desarrollo La experiencia ha demostrado que el desarrollo de sistemas es un proceso interactivo. Las herramientas CASE soportan pasos interactivos al eliminar el trabajo manual de dibujar diagramas, elaborar catálogos y realizar clasificaciones. Como resultado de esto, se garantiza que los analistas repasarán y revisarán los detalles del sistema con mayor frecuencia y en forma más consistente. 5. CARACTERÍSTICAS COMUNES DE UNA HERRAMIENTA CASE En las siguientes secciones se tratarán las características comunes de las CASE. Profesor Adjunto: Ing. Alfredo R. Espinoza Ayudante de 1º: Lic. Claudia Panica ANALISTA PROGRAMADOR UNIVERSITARIO Herramientas Informáticas Avanzadas Herramientas CASE 5.1. Operaciones iniciales Los sistemas CASE almacenan información por proyecto, cada aplicación es considerada como un proyecto. La información que describe cada proyecto se mantiene por separado de la de otros. 5.2. Menú principal de funciones Muchas herramientas CASE permiten que el usuario seleccione una acción señalando su nombre o un número sobre la pantalla, ya sea a través de un dispositivo apuntador o por el posicionamiento de una barra luminosa por medio de las teclas de flechas y tabulador contenidas en el teclado. 5.3. Dibujo de diagramas de flujo de datos Los diagramas de flujo de datos son uno de muchos tipos de diagramas y cartas disponibles en las herramientas CASE, es muy sencillo modificar estos diagramas. 5.4. Diccionario por proyecto A medida que se formulan las especificaciones y la documentación, toda la información con respecto al proyecto se acumula en el diccionario de datos. Parte de la información, la graba directamente la persona que hace uso de la herramienta, otra parte es grabada automáticamente. Una vez que la información se encuentra en el diccionario, puede volver a ser utilizada por el mismo proyecto en forma repetida, sin necesidad de definirla de nuevo. Dentro del diccionario, las entradas se pueden añadir, modificar, listar, borrar y cambiar nombre. También es posible listar el contenido del diccionario con informes preformateados. Se tiene acceso a la información contenida en el diccionario desde cualquier parte. 5.5. Pantallas e informes Varias herramientas CASE, proporcionan un método rápido y sencillo para desarrollar prototipos de pantallas para que los usuarios finales trabajen con ellas. El analista puede diseñar y ejecutar pantallas y reportes con el apoyo de un menú, definir la distribución de una pantalla o reporte, también se puede generar un reporte basándose en datos de prueba proporcionados al sistema. 5.6. Herramientas para análisis y documentación Algunas herramientas CASE ofrecen características tales como un conjunto de reportes que validan las descripcionesdel sistema. 5.7. Utilerías La información utilizada por el sistema se encuentra descripta por las funciones de utilería, estas funciones permiten definir las contraseñas de los usuarios, los privilegios de acceso y los procedimientos de respaldo. Las utilerías también proporcionan funciones de respaldo y recuperación. Con ellas es posible copiar o volver a crear una parte o todo el diccionario del proyecto a partir de una copia de respaldo 6. COMPONENTES DE UNA HERRAMIENTA CASE Las principales componentes de una herramienta CASE y sus funcionalidades se describen en las siguientes secciones. Profesor Adjunto: Ing. Alfredo R. Espinoza Ayudante de 1º: Lic. Claudia Panica ANALISTA PROGRAMADOR UNIVERSITARIO Herramientas Informáticas Avanzadas Herramientas CASE 6.1. Repositorio Es la 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. Algunos autores lo denominan Diccionario de Recursos de Información. Las características más importantes de un repositorio son: ● Tipo de información: 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. La gestión de cambios y el mantenimiento de versiones, ayudan en el caso de que convivan diferentes versiones de la misma aplicación o se tengan que realizar cambios en la versión en producción y en la de desarrollo simultáneamente. ● Tipo de actualización: si los cambios en los elementos de análisis o diseño se ven reflejados en el repositorio en tiempo real o mediante un proceso por lotes (batch). Esto será importante en función a la necesidad de que los cambios sean visibles por todos los usuarios, en el acto. ● Reutilización de módulos para otros diseños: el repositorio es la clave para identificar, localizar y extraer código para su reutilización. ● Posibilidad de exportación e importación: para extraer información del repositorio y tratarla con otra herramienta (formateo de documentos, mejora de presentación) o incorporar al repositorio, información generada por otros medios. ● Interfaces automáticas con otros repositorios o bases de datos externas: para poder compartir información 6.2. Módulos de diagramación y modelización 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. Algunas características referentes a los diagramas son: ● Número máximo de niveles: para poder soportar diseños complejos. ● Número máximo de objetos: que se pueden incluir para no encontrarse limitado en el diseño de grandes aplicaciones. ● Número de diagramas distintos en pantalla: o al mismo tiempo en diferentes ventanas. ● Dibujos en formato libre: con la finalidad de añadir comentarios, dibujos, información adicional para aclarar algún punto concreto del diseño. ● Actualización del repositorio por cambios en los diagramas: siempre resulta más fácil modificar de forma gráfica un diseño y que los cambios queden reflejados en el repositorio. ● Control sobre el tamaño, fuente y emplazamiento de los textos: en el diagrama. ● Comparaciones entre gráficos de distintas versiones: de esta forma será más fácil identificar qué diferencias existen entre las versiones. ● Inclusión de pseudocódigo: que servirá de base a los programadores para completar el desarrollo de la aplicación. Profesor Adjunto: Ing. Alfredo R. Espinoza Ayudante de 1º: Lic. Claudia Panica ANALISTA PROGRAMADOR UNIVERSITARIO Herramientas Informáticas Avanzadas Herramientas CASE ● Posibilidad de deshacer el último cambio: facilitando que un error no conlleve perder el trabajo realizado. 6.3. 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á más útil, cuanto más rápidamente permita la construcción del prototipo y por lo tanto se consiga la implicación del usuario final en el diseño de la aplicación. Asimismo, es importante poder aprovechar 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. Los prototipos han sido utilizados ampliamente en el desarrollo de sistemas tradicionales, ya que proporcionan una realimentación inmediata, que ayudan a determinar los requisitos del sistema. Las herramientas CASE están bien dotadas en general, para crear prototipos con rapidez y seguridad. 6.4. 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: puede ser 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 interface de usuario de la aplicación. 6.5. 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 identificarlos 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. ● Interface con otras herramientas: procesadores de textos, editores gráficos, etc. 7. BLOQUES BASICOS DE UNA HERRAMIENTA CASE La ingeniería del software asistida por computadora puede ser tan sencilla como herramienta que preste su apoyo para una única actividad de ingeniería de software. O bien puede ser compleja como todo entorno que abarque herramientas, una base de datos, personas, hardware, una red, sistemas operativos, estándares y otros componentes mas. Profesor Adjunto: Ing. Alfredo R. Espinoza Ayudante de 1º: Lic. Claudia Panica ANALISTA PROGRAMADOR UNIVERSITARIO Herramientas Informáticas Avanzadas Herramientas CASE Cada bloque de construcción forma un fundamento para el siguiente, estando las herramientas situadas en la parte superior de la pirámide. Es importante tener en cuenta que el fundamento de entornos CASE efectivos tiene relativamente poco que ver con las herramientas de ingeniería del software en sí. Los entornos que tienen éxito para la ingeniería del software se construyen en base auna arquitectura de entorno que abarca un hardware adecuado y un software de sistema adecuado. Las arquitecturas del entorno que constan de una plataforma hardware y de un apoyo de sistema operativo (incluyendo el software de red y de gestión de la base de datos), constituyen los fundamentos del CASE. Pero el entorno CASE requiere de otros bloques de construcción. Existen un conjunto de servicios de portabilidad que proporciona un puente entre las herramientas CASE y su marco de referencia de integración y la arquitectura del entorno. El marco de referencia de integración es una colección de programas especializados que capacitan a las herramientas CASE individuales para comunicarse entre sí, para crear una base de datos del proyecto, y para mostrar el mismo aspecto al usuario final (ingeniero del software ). Los servicios de portabilidad permiten que las herramientas CASE y su marco de referencia de integración migren entre distintas plataformas del hardware y el sistema operativo sin un mantenimiento que resulten significativo. En la Figura 1 se representan los bloques de construcción de una Herramienta CASE. Figura 1: Bloques de construcción de una Herramienta CASE 8. 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: ● Plataformas que soportan. ● Fases del ciclo de vida del desarrollo de sistemas que cubren. ● Arquitectura de las aplicaciones que producen. ● Funcionalidad. 8.1. Fases del ciclo de vida del desarrollo de sistemas que cubren ● Herramientas integradas, ICASE (Integrated CASE): abarcan todas las fases del ciclo de vida del desarrollo de sistemas. Son llamadas también CASE workbench. Tienen un repositorio y aportan técnicas estructuradas para todas las fases del ciclo de vida. ● Herramientas que comprenden algunas fases del ciclo de vida de desarrollo de Software − Herramientas de alto nivel, UCASE (Upper CASE): o frontend, orientadas a la automatización y soporte de las actividades desarrolladas durante las primeras fases del desarrollo: planificación, análisis y diseño. Una estrategia posible es utilizar una UCASE para planificación, análisis y Profesor Adjunto: Ing. Alfredo R. Espinoza Ayudante de 1º: Lic. Claudia Panica ANALISTA PROGRAMADOR UNIVERSITARIO Herramientas Informáticas Avanzadas Herramientas CASE diseño, combinada con otras herramientas más modernas para las fases de construcción y pruebas. En este caso, habría que vigilar cuidadosamente la integración entre las distintas herramientas. − Herramientas de bajo nivel, LCASE (Lower CASE): o backend, dirigidas a las últimas fases del desarrollo (construcción e implantación). − Juegos de herramientas o toolkits: 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. 8.2. Funcionalidad ● Herramientas de planificación de sistemas de gestión: sirven para modelar 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. ● 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. Estas herramientas cubren las siguientes funcionalidades: − Análisis y diseño (Modelamiento). − Creación de prototipos y de simulación. − Diseño y desarrollo de interfaces. ● 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: − Codificación convencional. − Codificación de cuarta generación. − Programación orientada a objetos. ● 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. Entre las herramientas más utilizadas están: − Análisis estático. − Codificación de cuarta generación. − Programación orientada a los objetos. ● 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. ● Herramientas de mantenimiento: la categoría de herramientas de mantenimiento se puede subdividir en: − Ingeniería inversa. (reverse engine de proceso, datos, interfaz) − Reestructuración y análisis de código. − Reingeniería. (reverse engine y fordware engine de todo el software) ● 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. Profesor Adjunto:Ing. Alfredo R. Espinoza Ayudante de 1º: Lic. Claudia Panica ANALISTA PROGRAMADOR UNIVERSITARIO Herramientas Informáticas Avanzadas Herramientas CASE Utilizando un conjunto seleccionado de estas herramientas se pueden 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. Se incluyen dentro de las herramientas de control de proyectos las siguientes: − Planificación de proyectos. − Seguimiento de requisitos. − Gestión y medida. ● Herramientas de soporte: se engloban en esta categoría las herramientas que recogen las actividades aplicables en todo el proceso de desarrollo, como las que se relacionan a continuación: − Documentación. − Software de sistemas. − Control de calidad. − Bases de datos. 9. COBERTURA DE LAS HERRAMIENTAS CASE En este apartado se va a dar tratamiento a la cobertura de las principales Herramientas CASE. 9.1. Herramientas de análisis y diseño. Las herramientas de análisis y diseño, son la parte más importante de las herramientas CASE, en cuánto a número de licencias vendidas y de fabricantes. Su principal objetivo es ayudar a la definición de requisitos del sistema y sus propiedades. Dentro de esta categoría destacan las herramientas que permiten crear y modificar: ● Diagramas E/R. ● Diagramas de flujo de datos. ● Diagramas de estructura de cuadros. ● Diagramas de clases. También son muy importantes las herramientas de prototipado como: ● Los diseñadores de pantallas. ● Generadores de menús. ● Generadores de informes y lenguajes de especificación ejecutables. Un aspecto importante es la capacidad de análisis y verificación de especificaciones que soporta la herramienta, no sólo sintáctica sino también semántica, como por ejemplo la capacidad de normalizar un diagrama de datos. Todas estas herramientas operan sobre un repositorio donde se va almacenando la información necesaria para el funcionamiento de la misma herramienta. 9.2. Generación de código y documentación. A partir de las especificaciones del diseño se puede generar código (C, COBOL, JAVA, PHP y C#) como los esquemas de bases de datos (sentencias de definición en SQL) convenientes. Actualmente las herramientas CASE ofrecen interfaces con diversos lenguajes de cuarta generación para la construcción de sistemas de manera rápida. Profesor Adjunto: Ing. Alfredo R. Espinoza Ayudante de 1º: Lic. Claudia Panica ANALISTA PROGRAMADOR UNIVERSITARIO Herramientas Informáticas Avanzadas Herramientas CASE Las herramientas CASE también soportan la creación automatizada de un conjunto muy variado de documentación que va desde la descripción textual de un pseudocódigo, hasta diagramas más o menos complejos. 9.3. Herramientas de prueba. Las herramientas de prueba se conocen también por las siglas CAST (Computer Aided Software Testing), y es un área bastante reciente dentro de la tecnología CASE. Algunas coberturas que suelen tener este tipo de herramientas son las siguientes: ● Gestión de pruebas: − Predecir costo y tiempo de las pruebas. − Planificar pruebas de productos, actividades y recursos − Monitorizar pruebas. − Generar informes. ● Definir requisitos y objetivos de prueba: − Registrar requisitos y/u objetivos. − Verificar requisitos. ● Diseñar pruebas: − Diseñar, generar y documentar los casos de prueba. − Rastrear (tracing) requisitos. − Trazar caminos, ramas y sentencias de casos de prueba. − Predecir la salida esperada. ● Construir entornos de ejecución de pruebas: − Verificar código. − Implementar código. − Generar elementos de prueba: módulos impulsores (drivers), módulos ficticios (stubs), interfaces, etc. ● Ejecutar pruebas: − Fallos de las pruebas. − Estadísticas de fallos. − Calidad de las pruebas. − Calidad del software (funcionalidad, rendimiento, etc.) 9.4. Herramientas de gestión de configuración. En entornos de desarrollo complejos se integran diversas herramientas de ingeniería de software, se hace imprescindible la incorporación de una herramienta capaz de gestionar la configuración de los sistemas. Este tipo de herramientas ofrece distintos tipos de capacidades: ● Control de versiones: capacidad de proporcionar almacenamiento y acceso controlado a los datos, así como de registrar los cambios sobre los mismos y poder recuperar versiones anteriores. ● Construcción: consiste en automatizar las tareas asociadas a la compilación y enlace de un sistema con el fin de generar ejecutables. ● Trazabilidad de requisitos y análisis de impacto: permiten rastrear un requisito hasta su implementación, y conocer los elementos del sistema que se ven afectados ante un cambio. Profesor Adjunto: Ing. Alfredo R. Espinoza Ayudante de 1º: Lic. Claudia Panica ANALISTA PROGRAMADOR UNIVERSITARIO Herramientas Informáticas Avanzadas Herramientas CASE 9.5. Herramientas de ingeniería inversa. Algunas herramientas de este tipo cubren las siguientes funcionalidades: ● Ingeniería inversa de datos: son capaces de extraer la información del código fuente que describe la estructura de los elementos de datos, construyendo así diagramas EntidadRelación partiendo de esquemas relacionales en red, o incluso archivos. ● Ingeniería inversa de procesos: permiten aislar la lógica de las entidades y las reglas del negocio a partir del código. ● Reestructuración de código fuente: modifican su formato o implantan un formato estándar. ● Redocumentación: permiten generar diagramas a fin de que se comprenda mejor el código. ● Análisis de código: sus funcionalidades van desde la identación automática del código fuente hasta la posibilidad de ir visualizando dinámicamente las llamadas del mismo. 10. OPCIONES DE INTEGRACIÓN DE LAS HERRAMIENTAS CASE Las herramientas CASE pueden ser integradas de muchas formas. En un extremo se utiliza una herramienta CASE de forma aislada. Se crea un número limitado de elementos de configuración de software (documentos, programas o datos) que se manipulan mediante una única herramienta y cuya salida tiene el formato de copia de pantalla y/o documentación gráfica. En cierto sentido, el enlace con el resto del entorno de desarrollo se realiza mediante copias en papel que gestiona el informático. Pocas herramientas CASE se utilizan en forma aislada. Se pueden utilizar de varias formas. 10.1. Intercambio de datos La mayoría de las herramientas permiten exportar datos en forma de archivo sin estructura con un formato conocido. Esto permite un intercambio de datos punto a punto entre las distintas herramientas CASE. Se utiliza normalmente un "filtro" de transmisión intermedio como lo muestra la Figura 2. Figura 2: Intercambio de datos La desventaja del intercambio de datos punto a punto está en que, sólo parte de losdatos exportados es utilizable por la herramienta receptora, ya que no fue diseñada para ser totalmente compatible. Además, a medida que evoluciona el software, la necesidad de transferir archivos cada vez que se hace un cambio pequeño puede llevar mucho tiempo. Las versiones pueden quedar "desfasadas" fácilmente, perdiéndose la posibilidad de transferencia, la cual suele ser en un único sentido. No hay posibilidad de que los cambios se reflejen en ambos sentidos, y es difícil hacer comprobaciones cruzadas de documentos y mantener la integridad de la configuración a través de las distintas herramientas que se estén utilizando. 10.2. Acceso común a herramientas Permite al usuario utilizar distintas herramientas de forma similar, por ejemplo a través de un menú desplegable del gestor de ventanas del sistema operativo. En un entorno multitarea, un usuario podría abrir simultáneamente varias herramientas, coordinando manualmente sus entradas y comparando las representaciones de diseño a medida que evolucionan (Figura 3). Por ejemplo, el usuario podría visualizar un diagrama de flujo de datos, un diagrama de estructura, un diccionario de datos y un segmento de código fuente, todos mantenidos por diferentes herramientas. Profesor Adjunto: Ing. Alfredo R. Espinoza Ayudante de 1º: Lic. Claudia Panica ANALISTA PROGRAMADOR UNIVERSITARIO Herramientas Informáticas Avanzadas Herramientas CASE Figura 3: Acceso común a herramientas 10.3. Integración de datos En este caso la Herramienta CASE se puede utilizar de las formas que se detallan a continuación. ● Gestión común de datos: los datos de distintas herramientas se pueden mantener en una única base de datos lógica, que puede estar físicamente centralizada o distribuida. Hay una modalidad de fusión que permite combinar el trabajo de varias personas trabajando en diferentes partes de una aplicación. Aunque los datos generados por las distintas herramientas se gestionan de forma conjunta en el nivel de gestión de datos comunes, las herramientas no conocen de forma explícita las estructuras de datos y la semántica de representación del diseño de las demás. Se requiere una etapa de traducción (normalmente ejecutada manualmente) para permitir que una herramienta utilice la salida generada por otra. ● Datos compartidos: las herramientas del nivel de datos compartidos tienen estructuras de datos y semántica compatible, pudiendo intercambiar datos sin necesidad de una etapa de traducción. Cada herramienta se diseña para ser compatible con las demás. Por esta razón, la mayor parte del intercambio de datos se da entre herramientas de un único fabricante o en casos en los que se han establecido relaciones estratégicas entre distintos fabricantes para generar un conjunto de datos integrado, a veces a petición de clientes importantes. ● Interoperabilidad: las herramientas que combinan las características de acceso común y la capacidad de compartir datos, tienen la posibilidad de interoperación. Esto representa el mayor nivel de integración entre herramientas diferentes. Sin embargo, hay otras propiedades del entorno global CASE que se pueden añadir para mejorar la efectividad del proceso de desarrollo de software. En la Figura 4 se representa la integración de datos. Figura 4: Integración de datos Profesor Adjunto: Ing. Alfredo R. Espinoza Ayudante de 1º: Lic. Claudia Panica ANALISTA PROGRAMADOR UNIVERSITARIO Herramientas Informáticas Avanzadas Herramientas CASE 10.4. Integración total Para alcanzar la integración total del entorno CASE se necesitan dos características más: gestión de metadatos y capacidad de control. Los metadatos representan información sobre los datos de ingeniería generados por las distintas herramientas CASE. Esta información incluye: ● Definiciones de objetos (tipos, atributos, representaciones y relaciones válidas). ● Relaciones y dependencias entre objetos de granularidad arbitraria (ejemplo una entidad única o un fragmento de código de una subrutina). ● Reglas de diseño del software (por ejemplo: las distintas formas válidas de dibujar y equilibrar un diagrama de flujo de datos). ● Procedimientos (fases estándar, hitos, informes, etc.) y sucesos (revisiones, finalizaciones, informes de problemas, peticiones de cambios, etc.) del flujo de trabajo (proceso). Normalmente la parte de reglas y procedimientos de los metadatos se definen en forma de base de reglas, para facilitar su modificación según evoluciona el proceso de desarrollo del software. Por ejemplo, un nuevo método de diseño podría alterar las reglas de representación y cambiar los estándares del proceso de trabajo seguido hasta el momento. La capacidad de control permite que cada herramienta pueda notificar al resto del entorno (a otras herramientas, al gestor de metadatos, al gestor de datos, etc.) la ocurrencia de eventos significativos, así como enviar peticiones para la realización de acciones a otras herramientas y servicios por medio de un activador. Por ejemplo, una herramienta de gestión de configuración que haga una comprobación cruzada de la consistencia de documentos. La capacidad de control ayudará a mantener la integridad del entorno y proporcionará también un medio para automatizar procesos y procedimientos estándar. El activador puede estar incorporado en un entorno cerrado o puede estar visible para las distintas herramientas, a través de una interface de programación y un mecanismo de paso de mensajes. La tecnología CASE tendrá el mayor impacto si se integra a proyectos de innovación tecnológica que contemplen las siguientes características: ● Interfaces de programación visual. ● Soluciones clienteservidor. ● Manejo de múltiples Bases de Datos. ● Independencia de la plataforma de hardware y software. ● Reingeniería de proceso de negocios. En la Figura 5 se muestra un esquema de Integración Total. Figura 5: Integración total Profesor Adjunto: Ing. Alfredo R. Espinoza Ayudante de 1º: Lic. Claudia Panica ANALISTA PROGRAMADOR UNIVERSITARIO Herramientas Informáticas Avanzadas Herramientas CASE 11. TIPOS DE HERRAMIENTAS CASE En las siguientes secciones se van a tratar los diferentes tipos de herramientas cases y sus principales características. 11.1. Herramientas de seguimientos de requisitos La característica principal de esta herramienta es proporcionar un enfoque sistemático para el aislamiento de requisitos, comenzando por la solicitud del cliente de una propuesta o especificaciones. 11.2 Herramientas de métricas Las métricas de software mejoran la capacidad del administrador para controlar y coordinar el proceso del software y lacapacidad del ingeniero para mejorar la calidad del software que se produce. La métricas y herramientas de medida actuales se concentran en procesos, proyectos y características del producto. 11.3. Herramientas de documentación Las herramientas de producción de documentación y autoedición se utilizan en casi todos los aspectos de la ingeniería del software y representan una oportunidad muy interesante para todos los que desarrollan software. No es casual que una empresa emplee el 20 o el 30 por ciento de su esfuerzo de desarrollo en la documentación. Por esta razón, estas herramientas constituyen una opción importante para aumentar la productividad. Las herramientas de documentación suelen estar unidas a otras herramientas CASE por medio de una interfaz de datos suministrada por el vendedor. Por ejemplo, muchas herramientas de análisis y diseño están unidas a uno o varios sistemas de autoedición, de tal forma que los modelos y textos creados durante el análisis y el diseño puedan ser transmitidos a una herramienta de documentación y añadidos a la especificación creada utilizando la misma herramienta de documentación. 11.4. Herramientas para software de sistemas El CASE es una tecnología de estaciones de trabajo. Por ello, el entorno CASE debe soportar software de redes de comunicación de alta calidad, correo electrónico, boletines electrónicos y otras posibilidades de comunicación. El sistema operativo más empleado en las estaciones de trabajo de ingeniería es el Windows. 11.5. Herramientas de gestión de bases de datos Esta herramienta sirve como fundamento para establecer una base de datos CASE (depósito), que también se denominará base de datos del proyecto. Dado el énfasis acerca de los objetos de configuración, las herramientas de gestión de bases de datos para CASE pueden evolucionar a partir de los sistemas de gestión de bases de datos relacionales(SGBDR) para transformarse en sistema de gestión de bases de datos orientada a objetos(SGBDOO). 11.6. Herramientas de bases de datos y de configuración de software El software de gestión de bases de datos sirve como base para el establecimiento de una base de datos CASE (almacén). Poniendo énfasis en los objetos de la configuración, las herramientas de gestión de bases de datos para CASE pueden evolucionar de los sistemas relacionales a los sistemas basados en objetos. Las herramientas CASE pueden ayudar en las cinco tareas principales de la configuración del software: ● identificación de versiones ● control de versiones, ● control de cambios, ● auditoria y ● gestión de estados. Las base de datos CASE proporciona un mecanismo para identificar cada elemento de la configuración y relacionarlo con otros elementos. La utilización de bases de datos, herramientas de gestión y configuración Profesor Adjunto: Ing. Alfredo R. Espinoza Ayudante de 1º: Lic. Claudia Panica ANALISTA PROGRAMADOR UNIVERSITARIO Herramientas Informáticas Avanzadas Herramientas CASE y herramientas de inspección de componentes, es el primer paso hacia una biblioteca de software que estimulará la reutilización de componentes de software. 11.7. Herramientas PRO/SIM Las herramientas de creación de prototipos y de simulación (PRO/SIM) proporcionan al ingeniero de software la capacidad de predecir el comportamiento de un sistema de tiempo real antes de que sea construido. Además, le permiten desarrollar prototipos de sistemas de tiempo real que proporcionen al cliente una visión general de la función, de la operación y de la respuesta, antes de la codificación final. Muchas herramientas PRO/SIM tienen la capacidad de generar código para Ada y para muchos otros lenguajes de programación que se harán cada vez más sofisticados a medida que estas herramientas evolucionen. 11.8. Herramientas para el diseño y desarrollo de interfaces Las herramientas de diseño y desarrollo de interfaces son en realidad 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 este tipo. Sin embargo, estos conjuntos de herramientas están siendo reemplazados por herramientas para desarrollar prototipos que permiten la creación rápida en pantalla de interfaces sofisticadas ajustadas al estándar elegido para el software. 11.9. Herramientas de codificación convencionales Hace tiempo, las únicas herramientas de las que disponía un ingeniero de software eran las herramientas de codificación convencionales. En la actualidad las herramientas convencionales siguen existiendo en primera línea de desarrollo del software, pero están respaldadas por todas las otras herramientas CASE. 11.10. Herramientas de codificación de cuarta generación La tendencia hacia la representación de aplicaciones de software en niveles más altos de abstracción ha hecho que muchos diseñadores utilicen herramientas de codificación de cuarta generación. Los sistemas de consulta a bases de datos, los generadores de código y los lenguajes de cuarta generación han cambiado la forma en que se desarrollan los sistemas. Es evidente que el objetivo final del CASE es la generación automática de código, lo que significa la representación de sistemas a un nivel de abstracción más alto que el de los lenguajes de programación convencionales. Estas herramientas de generación de código no sólo traducirán la descripción de un sistema a un programa operativo, sino que también ayudarán a verificar la corrección de las especificaciones del sistema, de tal forma que la salida resultante satisfaga los requisitos del usuario. 11.11. Herramientas de programación orientadas a objetos La programación orientada a los objetos es una de las tecnologías más actuales de la ingeniería del software. Por esta razón los vendedores de sistemas CASE están lanzando al mercado nuevas herramientas para el desarrollo del software orientado a objetos. Los entornos de programación orientados a los objetos suelen estar unidos a lenguajes de programación específicos (C++, Eiffel, ObjectiveC o Smalltalk). Un entorno orientado a objetos típico incorpora características de las interfaces de tercera generación (ratón, ventanas, menús desplegables, operaciones sensibles al contexto, etc.) con funciones especializadas como la del "inspector", una función que permite al ingeniero de software examinar todos los objetos contenidos en unas bibliotecas de objetos para determinar si pueden ser reutilizados en la aplicación actual. Profesor Adjunto: Ing. Alfredo R. Espinoza Ayudante de 1º: Lic. Claudia Panica ANALISTA PROGRAMADORUNIVERSITARIO Herramientas Informáticas Avanzadas Herramientas CASE 12. ADOPCIÓN DE HERRAMIENTAS CASE EN LAS ORGANIZACIONES Con frecuencia las organizaciones experimentan problemas con la adopción de Herramientas CASE, debido a que las mismas no conocen bien los beneficios de esta tecnología. Es importante ampliar el rango de organizaciones que adquieran tecnologías de computación y desarrollen estándares para el desarrollo de software, diseño de métodos, metodologías y técnicas para llevar adelante el ciclo de vida de los sistemas. Para ello, se recomienda: ● identificar los factores críticos en los procesos, ● proponer un conjunto de procesos a adoptar, y ● guiar satisfactoriamente esta adopción teniendo en consideración la organización y su entorno cultural. Los factores que hacen crítico el proceso de adopción de tecnología CASE, incluyen: ● Objetivos: la definición de un conjunto de objetivos claros y medibles, que incluyan objetivos técnicos y de negocio. Un ejemplo podría ser “incrementar en un 50% el mejoramiento de la calidad en la actividad de especificación de requerimientos” o “incrementar en un 40% el uso de herramientas CASE en el desarrollo de proyectos”. ● Apoyo de la Administración: extender la participación activa de la alta gerencia para alentar la adopción de CASE, sin limitar la buena voluntad para obtener los recursos que sean necesarios. ● Uso estratégico de herramientas: definir una estrategia clara para el uso adecuado de las herramientas. ● Desarrollo de un Plan para el proceso total de adopción: un plan y diseño para el proceso total de posicionar estas herramientas al interior de cada componente de la organización. ● Compromiso: propiciar que las personas se involucren en el esfuerzo de adopción en forma activa, motivando a los participantes. ● Metodología ajustable: buena disposición y factibilidad técnica de ajustar cuando sea necesario los métodos de la organización y los métodos típicos de usar herramientas CASE, de tal forma que permitan llegar a un conjunto consistente de métodos. ● Entrenamiento: proporcionar entrenamiento e información necesarios y apropiados en cada paso a cada persona involucrada en el proceso de adopción ● Ayuda de expertos: proveer de ayuda experta en el uso de las herramientas durante el proyecto y extenderlo a los demás integrantes de la organización. ● Proyecto piloto: los resultados de una prueba piloto controlada son prioritarios al tomar una decisión final. ● Capacidad de la herramienta: capacidad técnica de la herramienta en cuanto al entorno de hardware y software, de modo que satisfaga los objetivos definidos en el contexto del alcance esperado. ● Cambio moderado: asegurar la viabilidad que la organización pueda operar simultáneamente entre el viejo y nuevo método, hasta que los componentes de la organización hayan cambiado totalmente hacia el nuevo método. La adopción de herramientas CASE debe incluir los siguientes procesos principales que se detallan en las siguientes secciones. 12.1. Proceso de preparación Profesor Adjunto: Ing. Alfredo R. Espinoza Ayudante de 1º: Lic. Claudia Panica ANALISTA PROGRAMADOR UNIVERSITARIO Herramientas Informáticas Avanzadas Herramientas CASE El propósito de este proceso es el establecimiento de los objetivos generales de los esfuerzos de adopción de herramientas CASE y establecer y definir los aspectos de dirección y administración. Esta etapa comprende: ● Establecimiento de objetivos, ● Verificación de la factibilidad y medición de los objetivos, ● Establecimiento de políticas, ● Desarrollo de planes 12.2. Proceso de evaluación y selección El propósito de este proceso es identificar las herramientas CASE más adecuadas, que sean las candidatas y aseguren que las herramientas recomendadas cumplirán con los objetivos de la organización Este proceso está compuesto por: ● Iniciación: define los objetivos y requerimientos para la evaluación de las herramientas CASE. ● Estructuración: elaborar un conjunto de requerimientos basados en cada herramienta CASE. ● Evaluación: producir reportes de evaluación técnica. ● Selección: identificar las herramientas más adecuadas. 12.3. Proceso de proyecto piloto El propósito de este proceso es ayudar en la validación del trabajo desarrollado en el proceso inicial de adopción del CASE, y para determinar si la actual capacidad de la herramienta es lo que la organización necesita. Este proceso está compuesto por: ● Iniciación: definir planes, procedimientos, recursos y capacitación para realizar el proyecto piloto. ● Performance: ejecutar un proyecto controlado en cada nueva herramienta que pueda ser probada. ● Evaluación: provee los resultados de la evaluación de la performace del proyecto piloto. ● Decisión: liderar el proceso de adopción, dejando la herramienta o performance a un segundo proyecto piloto e identificando la experiencia en el aprendizaje de la organización para el proceso de transición. 12.4. Proceso de Transición El propósito de este proceso es minimizar las interrupciones durante el cambio de los actuales procesos hacia la nueva tecnología, basados en el máximo aprovechamiento de las experiencias del proyecto piloto. Este proceso está compuesto por: ● Iniciación: definir planes, procedimientos y recursos que permitan la transición hacia el uso de las herramientas. ● Entrenamiento: capacitar a los usuario de la nueva herramienta. ● Institucionalización: aplicar progresivamente la herramienta en segmentos largos del entorno, como parte normal de la práctica organizacional. ● Monitoreo y apoyo continuo: identificar si el proceso de adopción funciona correctamente y asegurar el entrenamiento, así como otros recursos que sean necesarios durante el período de transición. ● Evaluación y culminación: medir el resultado de la adopción de las herramientas CASE y proveer a la organización la experiencia y conocimiento para futuros proyectos de adopción. 13. PUNTOS IMPORTANTES A CONSIDERAR PARA SELECCIONAR UNA HERRAMIENTA CASE Profesor Adjunto: Ing. Alfredo R. Espinoza Ayudante de 1º: Lic. Claudia Panica ANALISTA PROGRAMADOR UNIVERSITARIO Herramientas Informáticas Avanzadas Herramientas CASE Seleccionar una Herramienta CASE no es una tarea simple. No existe una mejor herramienta respecto de otra. Existen 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. Existen tres puntos comunes que fallan en el proceso de evaluación y selección: ● El proceso en sí mismo. ● Los prerequisitosnecesarios. ● Conocer la organización. 13.1. 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 Salud puede ser completamente diferente que en una corporación comercial. Aunque hay principios básicos, por ejemplo todos deben 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. 13.2. Los prerequisitos 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, y el resultado de la selección de la herramienta debe ser acorde con los requisitos del sistema. Otro requisito previo importante es tener una metodología de desarrollo de sistemas seleccionada. Sin una metodología, se ingresa al largo camino del fracaso. Las herramientas implementan la metodología, no la determinan. 13.3. 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. 14. ESTRATEGIAS DE IMPLANTACIÓN DE UNA HERRAMIENTA CASE Las estrategias más relevantes a considerar en la implantación de una Herramienta CASE, son las siguientes: ● Identificar la magnitud de problemas a resolver en la Institución. ● Identificar el nivel estratégico que deben tener los sistemas. ● Evaluar los recursos de hardware y software disponibles en la Institución y el medio. ● Evaluar el nivel del personal. ● Efectuar un estudio de costobeneficio definiendo metas a lograr. ● Elegir las herramientas apropiadas para la Institución. Profesor Adjunto: Ing. Alfredo R. Espinoza Ayudante de 1º: Lic. Claudia Panica ANALISTA PROGRAMADOR UNIVERSITARIO Herramientas Informáticas Avanzadas Herramientas CASE ● Establecer un programa de capacitación de personal de sistemas y usuarios. ● Elegir una aplicación que reúna la mayor parte de los siguientes requisitos: − Gran impacto de resultados. − Disponibilidad de recursos. − Mínimo nivel de riesgos. − Máxima colaboración de usuarios. − Tamaño reducido de solución. ● Se establecerán interfases de compatibilidad de los nuevos sistemas que deben convivir con los sistemas anteriores. 14.1. Consideraciones importantes Otras consideraciones importantes se enumeran a continuación: ● La elección de la Herramienta CASE va a depender de sus estrategias de desarrollo: − Si tiene un gran volumen de aplicativos desarrollados, es conveniente contrastar lo realizado versus las técnicas de Análisis y Diseño. − Si tiene presión por resultados a corto plazo, el empleo de un Lower Case le será de utilidad, si se basa en modelos de datos y procesos claros y definidos. − Si desea realizar proyectos de gran envergadura es recomendable aplicar Upper y Lower Case. − Si trabaja con archivos de grandes dimensiones, es recomendable que el Case soporte el Diseño de Bases de Datos. − Si no tiene formación y experiencia en el manejo de metodologías, es recomendable contar con asesoría especializada, que capacite al personal y supervise los avances de Análisis y Diseño. ● Evaluar la eficiencia del producto en las pruebas unitarias y de integración, y fundamentalmente en las pruebas de sistemas. ● Considerar los recursos apropiados para utilizar el Case, de Hardware (memoria, disco, concurrencia), de Software (versión de Sistema Operativo). 15. METODOLOGÍA CASE PARA EL DESARROLLO DE SISTEMAS Los sistemas informáticos al agilizar y optimizar el almacenamiento, difusión y procesamiento de la información; mejoran la producción de las organizaciones que los emplean para la automatización de sus funciones. Sin embargo, si no se tienen en cuenta ciertos elementos en el diseño e implantación, no siempre la automatización significa un aumento de la producción. Existe un costo asociado con la adquisición de la tecnología CASE, debido a que la automatización puede ser ineficiente y no operativa, si previamente no se ha realizado lo siguiente: ● un análisis de las necesidades de la organización, ● de las diferentes ofertas tecnológicas del mercado, y ● de un diseño de los sistemas adecuado, tanto de las funciones de la organización, como de la tecnología empleada. Por ejemplo, en la actualidad es muy común automatizar de manera independiente ciertas funciones de una organización utilizando computadoras personales y paquetes comerciales económicos. En un principio este tipo de sistemas pueden satisfacer las necesidades de la función automatizada, pero posteriormente cuando es necesario contar con accesos flexibles de información consistente y que englobe todas las funciones de la organización, dichos sistemas se vuelven inadecuados. Profesor Adjunto: Ing. Alfredo R. Espinoza Ayudante de 1º: Lic. Claudia Panica ANALISTA PROGRAMADOR UNIVERSITARIO Herramientas Informáticas Avanzadas Herramientas CASE También se debe tener en cuenta la falta de un dimensionamiento previo del sistema, por lo que el equipo adquirido puede resultar a corto plazo insuficiente u obsoleto. Por lo tanto, antes de iniciar una automatización es importante tener en cuenta que: ● las organizaciones son complejas y realizan diversas funciones que están relacionadas entre si, que sus necesidades de manejo de información cambian y crecen, y que además del manejo operativo de la información hay una necesidad de contar con un acceso global que permita una mejor toma de decisiones, ● la tecnología es muy cambiante, cada vez hay mayor variedad de equipos y sistemas mas poderosos de costos diversos, lo que complica la selección de la tecnología adecuada, ● el diseño, la programación y la operación de los sistemas requieren de especialistas Por lo antes mencionado, si se pretende que realmente una automatización no solamente redunde en una mejora de la producción sinoque además resulte una inversión rentable en cuanto a la adquisición de una tecnología adecuada, es necesario contar con una metodología de desarrollo de sistemas. Debido a que el desarrollo de sistemas de información es una actividad compleja, ésta puede dividirse para su estudio en las siguientes etapas: ● Definición y análisis de los requerimientos del usuario. ● Diseño del sistema y de la base de datos. ● Implantación y prueba de módulos. ● Integración y prueba del sistema. ● Operación y mantenimiento. Como estas etapas a su vez son muy elaboradas, han surgido varias metodologías que permiten realizarlas de una manera estructurada. El método CASE (Computer Aided Systems Engineering) plantea una secuencia de etapas que es aproximadamente equivalente a las mencionadas antes, pero es más detallada, y además proporciona para cada etapa su: ● descripción, ● definición de objetivos y metas, ● productos de la etapa, ● factores críticos de éxito, y ● lista de tareas que conviene realizar. 15.1. Etapas del Método CASE La metodología CASE se basa en un análisis y desarrollo del tipo descendiente "topdown", en la que el ciclo de vida de un sistema se compone de las siguientes etapas (Figura 6): 1. Estrategia 2. Análisis 3. Diseño 4.1. Construcción 4.2. Documentación 5. Transición 6. Producción Profesor Adjunto: Ing. Alfredo R. Espinoza Ayudante de 1º: Lic. Claudia Panica ANALISTA PROGRAMADOR UNIVERSITARIO Herramientas Informáticas Avanzadas Herramientas CASE Figura 6: Etapas del Método CASE 15.2. Estrategia Esta es una de las etapas mas importantes, ya que tiene por objetivo lograr un entendimiento claro de las necesidades de la organización y del ambiente en que operará el sistema o sistemas a implantar. Con el fin de tener una visión desde los puntos de vista de la dirección corporativa, se analizan las diferentes funciones que realiza la organización y sus necesidades de información en todos los niveles. Durante esta etapa se realizan una serie de entrevistas con la dirección y los responsables de los departamentos. A partir de esta información se realiza así un primer modelado de los requerimientos del sistema de información adecuado a las necesidades de la organización. Posteriormente para la definición de una primera versión de la arquitectura del sistema, además de los requerimientos antes obtenidos, se toman en cuenta las tecnologías en ese momento disponibles y los sistemas de información ya existentes en operación. En la Figura 7 se muestra este proceso. Figura 7: Etapa Estrategia Los resultados de esta etapa es un conjunto de modelos de la empresa, un conjunto de recomendaciones, y un plan acordado de desarrollo de los sistemas de información. La elaboración de este último se hará de acuerdo las necesidades actuales y futuras de la organización, tomando en cuenta restricciones operativas, financieras y técnicas. 15.3. Análisis La etapa de análisis toma y verifica la información de la etapa de estrategia y la expande en suficiente detalle para asegurar la precisión de los modelos de la empresa, posibilitando un fundamento sólido para el diseño, dentro del alcance de la organización y tomando en cuenta sistemas existentes. Con el fin de obtener un refinamiento de los modelos, durante esta etapa se realiza otra serie de entrevistas ya no a un nivel directivo como en la anterior, sino a un nivel operativo y técnico. Con la participación los responsables de la operación de las funciones que serán automatizadas se realiza un análisis detallado de sus requerimientos específicos en cuanto a objetivos, subfunciones, información, datos, etc. Profesor Adjunto: Ing. Alfredo R. Espinoza Ayudante de 1º: Lic. Claudia Panica ANALISTA PROGRAMADOR UNIVERSITARIO Herramientas Informáticas Avanzadas Herramientas CASE Así, en esta etapa a partir de los modelos de la organización obtenidos en la anterior y del producto del análisis de ésta, se genera el modelado del sistema. Los modelos básicos de esta etapa son: ● Modelo entidadrelación: modela mediante relaciones lógicas todos los datos involucrados en el sistema, de tal manera que cualquier tipo de explotación (consulta o modificación) sean posibles. ● Modelo funcional: modela las diferentes servicios que ofrecerá el sistema mediante una organización y clasificación de las diversas funciones y subfunciones que fueron identificadas en el análisis. ● Definición de las restricciones que tendrá el sistema y la estrategia que se seguirá en la etapa de transición. El proceso de esta etapa y sus resultados se muestran en la Figura 8. Figura 8: Etapa Análisis 15.4. Diseño La etapa de diseño toma los requerimientos y el modelado de la etapa de análisis y determina la mejor manera de satisfacerlos, logrando niveles de servicios acordados en el ambiente técnico y en las decisiones previas de los niveles requeridos de automatización. Es decir que del diseño conceptual se pasa al diseño final que será utilizado para la implantación. En esta etapa el modelo entidadrelación será transformado en un diseño de base de datos y en especificaciones de almacenamiento, y el modelo funcional será transformado en módulos y manuales de procedimientos. El diseño final del sistema integra tres diseños: el de la base de datos, el de la aplicación y el de la red. Además se elaboran los planes de prueba y de transición y se realizan los diseños de los sistemas de auditoria y control, y el de respaldos y recuperación. Los resultados de esta etapa lo constituyen, la arquitectura del sistema, el diseño de la base de datos, la especificación de los programas, la especificación de los manuales de procedimientos. En la Figura 9 se muestra esta etapa. Figura 9: Diseño 15.5. Construcción Profesor Adjunto: Ing. Alfredo R. Espinoza Ayudante de 1º: Lic. Claudia Panica ANALISTA PROGRAMADOR UNIVERSITARIO Herramientas Informáticas Avanzadas Herramientas CASE A partir del diseño final generado en la anterior etapa, se codificarán y probarán los nuevos programas, utilizando herramientas apropiadas. Esta etapa involucra planeación, diseño de la estructura del sistema, codificación de abajo a arriba (prueba de unidades y enlaces), pruebas de arriba a abajo (prueba del sistema) y un enfoque disciplinado en la realización del trabajo y en el control de versiones del sistema y pruebas. Los resultados de esta etapa son los programas probados y la base de datos refinada. En la Figura 10 se muestra el proceso de esta etapa. Figura 10: Construcción 15.6. Documentación Uno de los productos fundamentales para un uso y mantenimiento, efectivos y eficientes de los sistemas
Compartir