UNIVERSIDAD AUTÓNOMA DE COLOMBIA INGENIERÍA DE SISTEMAS ELECTIVA TECNOLÓGICA HERRAMIENTAS CASE Ingeniería del Software asistida por Computador (CASE) Septiembre 29 de 2009 Contenidos Introducción. Taxonomía Estado de herramientas CASE. del Arte. 2 1 Introducción Objetivos de la tecnología CASE – INCREMENTAR – REDUCIR – Productividad del equipo. Calidad del Software. Reusabilidad del software. Costes de desarrollo y mantenimiento. AUTOMATIZAR Gestión del proyecto. Desarrollo del software. mantenimiento del software (Incluyendo la automatización y estandarización de la documentación y de su mantenimiento) 3 Objetivos de la tecnología CASE AUTOMATIZACIÓN DEL DESARROLLO DE SW.: – – Productividad del equipo ↑↑ Calidad del Software ↑↑ INCREMENTAR REDUCIR Reusabilidad del software. Costes de desarrollo y mantenimiento. AUTOMATIZAR/SIMPLIFICAR Gestión del proyecto. Desarrollo del sw. (permitir aplicación met. estructuradas; prototipos; desarrollo “visual”) Mantenimiento del software (Incluyendo la automatización y estandarización de la documentación y de su mantenimiento) 4 2 Características básicas que debe soportar (Yourdon 89) Soporte gráfico para varias técnicas (DFD, E/R, STD, modelos OO, etc.) Control de errores “Consistencia”: Unicidad identificadores, reglas metodología, etc. Validación entre diferentes modelos: – – En una fase (p.e. entre DFD y E/R) En varias fases (DFD análisis y diseño; DFD diseño y Diagrama de estructuras). 5 Otras características deseables Soporte multiusuario. Personalización. Control de documentos y versiones. Gestión de proyectos Estadísticas de productividad y métricas del software. Pruebas. Simulación y prototipado. Uso de técnicas Demostración correcciones formales (Z, VDM, especificaciones y/o software. Especificaciones algebraicas) Generación de código. 6 3 CASE. Componentes (Piattini et al. 96) INTERFAZ DE USUARIO Repositorio GENERADOR DE INFORMES Metamodelo HERRAMIENTAS DE CARGA Y DESCARGA DE DATOS FACILIDADES DE COMPROBACI Ó N 7 Algunas definiciones Método – – Procedimiento aplicado rutinariamente para alcanzar un objetivo. El procedimiento define los resultados a alcanzar y el camino que conduce a ellos. Herramienta – Producto software que libera al ingeniero software de acciones que generan los resultados definidos por los métodos. 8 4 CASE (Computed Aided Software Engineering) Conjunto de herramientas y métodos asociados que proporcionan asistencia automatizada en el proceso de desarrollo del software a lo largo de su ciclo de vida. – Gestión del proyecto (planificación, estimación y control) – Desarrollo del software (análisis, diseño, implementación, validación) – Mantenimiento del software. 9 Elementos básicos Interfaz gráfica. Editor de textos y gráficos. BD de soporte (BD del proyecto, depósito o ‘repositorio’ CASE) Mecanismos de control para: – acceso a componentes. (datos, código, documentos, dispositivos) – – – – Compatibilidad de las herramientas. Consistencia de los productos. Detección de olvidos. Trazado de modificaciones. 10 5 donde la BD de soporte: Reúne las funciones de: – – – Catálogo central de ficheros y BD’s. Diccionario de datos y procesos. Biblioteca de programas y documentación. y es la base para: – – – – – – – – La integración de herramientas. El mantenimiento de la integridad del sistema. La coordinación y compartición de información entre usuarios, con controles de seguridad y privilegios de acceso. El control de cambios y versiones. La estandarización de la documentación. La reutilización del software. La gestión del proyecto (incluyendo auditorías). La incorporación a otro sistema informático. 11 Taxonomía de herramientas CASE Clasificación por cobertura – Toolkits – Conjunto de herramientas software (integradas) que automatizan alguna fase del ciclo de vida (análisis, diseño, gestión, ...). Comparten la BD de soporte y la interfaz de usuario. Workbenchs Conjunto de herramientas software integradas que automatizan el ciclo de vida en más de una fase, típicamente en todas las fases de desarrollo: análisis + diseño + implementación (incluyendo la documentación asociada). Es decir, asisten en todo el proceso y proporcionan un producto documentado y operativo. Además de compartir la BD de soporte y la interfaz de usuario, están basadas en una misma metodología. 12 6 Según grado de integración: Toolkits (Juego de herramientas) Workbenchs (Banco de trabajo) Conjunto de herramientas software que automatizan alguna fase del ciclo de vida (análisis, diseño, gestión, ...). Comparten la BD de soporte y la interfaz de usuario. Integración baja. Conjunto de herramientas software que automatizan el ciclo de vida en más de una fase, típicamente en análisis + diseño + implementación (incluyendo documentación asociada). Asisten en todo el proceso y proporcionan un producto documentado y operativo. Además de compartir la BD de soporte y la interfaz de usuario, están basadas en una misma metodología. Integración media. IPSE (Integrated Project Support Environment) Integración alta. Cubren todo el ciclo de vida, la gestión de proyectos y de la configuración. 13 Según las fases del ciclo de vida que abordan: CASE frontales (fornt-end) o Upper CASE: Herramientas de apoyo a las primeras fases: – CASE dorsales (back-end) o Lower CASE: Herramientas de apoyo a las últimas fases: – – – Implementación (generación de código). Pruebas (caja blanca y caja negra). Mantenimiento. ICASE (Integrated-CASE) – Análisis, diseño. Contienen elementos de Upper y Lower CASE: comtemplan todo el ciclo de desarrollo. Reverse Engineering (Ingeniería inversa) CARE (Computer Aided Requirements Engineering) 14 7 Herramientas de análisis y diseño Permiten crear y verificar DFD’s, diagramas E/R, de clase, de estructura... Herramientas de prototipado: – – – – Diseñadores de pantallas Generadores de menús Generadores de informes Lenguajes de especificación ejecutables Ejemplos: – – – – – – – – – DESIGNER/2000 de ORACLE EASY CASE de Evergreen Rational ROSE EXCELERATOR de Intersolv OBJECT MAKER de Mark IV. OMTool de GTE. PARADIGM Plus de Platinum SILVERRUN de CSA Research SYSTEM Architect de Popkin Sofware & Systems 15 Clasificación por funcionalidad Herramientas de gestión de proyectos ayudan a la planificación y seguimiento del proyecto – – – Herramientas de análisis y diseño. Herramientas de prototipado y simulación. Herramientas de programación. – – – – – – Editores dirigidos por la sintaxis (cabeceras de subrutinas, palabras clave, identación, nomenclatura de variables, ...) Generadores de estructuras de programas. Entornos integrados de desarrollo para soporte de un lenguaje (editor, compilador, depurador). Herramientas de integración y pruebas. – Planificación: agenda de desarrollo. Estimación: costes, duración, esfuerzo. Control: productividad, calidad. Analizadores estáticos. Depuradores. Generadores de datos. Comparadores (e.g. de ficheros). Herramientas de soporte. Herramientas de mantenimiento. – – Ingeniería inversa. Reingeniería. 16 8 Clasificación por posición Upper CASE: Herramientas de apoyo a las primeras fases – – – Medium CASE: Herramientas de apoyo a las fases centrales. – – Métricas del software. Estimación de costes. Planificación temporal. Análisis. Diseño. Lower CASE: Herramientas de apoyo a las últimas fases. – – – – Implementación (generación de código). Pruebas (caja blanca y caja negra). Mantenimiento. Documentación de la implementación y documentación para el usuario final. 17 Estado del arte Tecnología CASE actual – – – Evolución ‘sin rupturas’ (‘de continuidad’). Es preciso un mayor esfuerzo de integración. Ninguna herramienta proporciona soporte total al desarrollo y mantenimiento. Tecnología CASE nueva – Se progresa hacia la automatización de todo el proceso. 18 9 Criterios de selección Tipo de computador (MainFrame, Ws, PC, ...) Lenguaje al que va orientada. Metodología soportada. Posibilidades de integración con otras plataformas (presentes y futuras). Criterios habituales en la selección de software: formación, precio, asistencia técnica, mantenimiento, ... (la formación en el uso de herramientas CASE se estima en 1/3 de la formación necesaria para el uso de la metodología subyacente) 19 10