Departamento de Lenguajes y Ciencias de la Computación Universidad de Málaga Formalización y representación de especificaciones computacionales TESIS DOCTORAL Presentado por José Raúl Romero Salguero para optar al grado de Doctor en Informática Dirigida por Dr. D. Antonio Vallecillo Moreno Profesor Titular de Universidad Área de Lenguajes y Sistemas Informáticos Universidad de Málaga Málaga, Octubre de 2007 TABLA DE CONTENIDOS Tabla de Contenidos Prólogo xi 1. Antecedentes 1.1. El Modelo de Referencia para Procesamiento Abierto y Distribuido 1.1.1. La necesidad de separar los conceptos . . . . . . . . . . . . 1.1.2. Modelos y marcos arquitectónicos previos a RM-ODP . . . 1.1.3. Contexto y evolución de ODP . . . . . . . . . . . . . . . . . 1.1.4. Objetivos y conceptos fundamentales . . . . . . . . . . . . . 1.1.5. Puntos de vista de ODP . . . . . . . . . . . . . . . . . . . . 1.1.6. Correspondencias . . . . . . . . . . . . . . . . . . . . . . . . 1.1.7. Funciones comunes . . . . . . . . . . . . . . . . . . . . . . . 1.2. Especificación formal de sistemas abiertos en Maude . . . . . . . . 1.2.1. Métodos formales para los sistemas abiertos . . . . . . . . . 1.2.2. El lenguaje Maude . . . . . . . . . . . . . . . . . . . . . . . 1.2.3. El conjunto de herramientas de Maude . . . . . . . . . . . . 1.3. El Lenguaje Unificado de Modelado (UML) . . . . . . . . . . . . . 1.3.1. Definición e historia de UML . . . . . . . . . . . . . . . . . 1.3.2. Estructura y elementos de modelado . . . . . . . . . . . . . 1.3.3. Especificación de restricciones con OCL . . . . . . . . . . . 1.3.4. Mecanismos de extensión de UML . . . . . . . . . . . . . . 1.3.5. Ventajas e inconvenientes de UML . . . . . . . . . . . . . . 1.4. Arquitectura dirigida por modelos . . . . . . . . . . . . . . . . . . 1.4.1. Descripción de la arquitectura . . . . . . . . . . . . . . . . 1.4.2. Elementos en el marco de MDA . . . . . . . . . . . . . . . . 1.4.3. La arquitectura de gestión de modelos de ATLAS: AMMA 1.5. Conclusiones del capı́tulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 2 4 15 16 18 30 31 33 33 43 52 54 54 55 59 61 61 62 62 63 67 69 2. Especificación computacional en Maude 2.1. Especificación del Punto de Vista Computacional . . . . . . . . . . 2.1.1. Especificación de aspectos estructurales . . . . . . . . . . . 2.1.2. Especificación de aspectos de comportamiento . . . . . . . . 2.1.3. Especificación de contratos de entorno . . . . . . . . . . . . 2.2. Infraestructura computacional en Maude . . . . . . . . . . . . . . . 2.2.1. Objetos e interfaces computacionales . . . . . . . . . . . . . 2.2.2. Función de búsqueda . . . . . . . . . . . . . . . . . . . . . . 2.2.3. Vinculación de objetos . . . . . . . . . . . . . . . . . . . . . 2.2.4. Envı́o y recepción de señales . . . . . . . . . . . . . . . . . 2.2.5. Resumen de funciones de la Infraestructura Computacional 2.3. Especificación de una aplicación distribuida multimedia en Maude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 72 72 77 78 79 80 82 83 85 86 86 III IV TABLA DE CONTENIDOS 2.3.1. Especificación formal de plantillas computacionales 2.3.2. Especificación del comportamiento computacional 2.3.3. Especificación de los requisitos extra-funcionales . 2.3.4. Ejecución, búsqueda y model-checking del sistema 2.4. Otros trabajos relacionados . . . . . . . . . . . . . . . . . 2.5. Conclusiones del capı́tulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. Especificación computacional en UML 2 3.1. Proceso de definición del lenguaje especı́fico computacional . . . . . 3.2. Metamodelado del punto de vista computacional . . . . . . . . . . . 3.2.1. Elementos de ejecución y restricciones de comportamiento . . 3.2.2. Elementos estructurales . . . . . . . . . . . . . . . . . . . . . 3.2.3. Elementos de la especificación computacional en ODP . . . . 3.2.4. Defectos detectados en la definición de ODP-CV . . . . . . . 3.3. Perfil UML para el Punto de Vista Computacional . . . . . . . . . . 3.3.1. Correspondencias entre ODP y UML . . . . . . . . . . . . . . 3.3.2. Resumen del perfil . . . . . . . . . . . . . . . . . . . . . . . . 3.3.3. Descripción detallada del paquete profile UML4ODP-CV 3.4. Disconformidades entre ODP y UML . . . . . . . . . . . . . . . . . . 3.4.1. Aspectos generales . . . . . . . . . . . . . . . . . . . . . . . . 3.4.2. Conflictos de terminologı́a . . . . . . . . . . . . . . . . . . . . 3.4.3. Instanciación de las interfaces . . . . . . . . . . . . . . . . . . 3.4.4. Interfaces de doble causalidad . . . . . . . . . . . . . . . . . . 3.4.5. Puntos de variación semántica de UML . . . . . . . . . . . . 3.4.6. Opciones de metamodelado . . . . . . . . . . . . . . . . . . . 3.4.7. Especificación de restricciones de calidad de servicio . . . . . 3.5. Especificación de una aplicación distribuida multimedia en UML 2 . 3.5.1. Especificación de la estructura del sistema . . . . . . . . . . . 3.5.2. Especificación del comportamiento . . . . . . . . . . . . . . . 3.5.3. Contratos de entorno . . . . . . . . . . . . . . . . . . . . . . . 3.6. Otros trabajos relacionados . . . . . . . . . . . . . . . . . . . . . . . 3.7. Conclusiones del capı́tulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 . 94 . 95 . 98 . 101 . 103 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 106 107 108 112 112 112 116 117 125 127 134 134 135 135 136 137 137 138 138 140 141 142 145 147 4. Ejecución de especificaciones computacionales 4.1. Definición del proceso de transformación . . . . . . . . . . . . . . . . . 4.2. Definición de metamodelos origen y destino . . . . . . . . . . . . . . . 4.2.1. Metamodelo de UML 2 . . . . . . . . . . . . . . . . . . . . . . 4.2.2. Metamodelo de Maude . . . . . . . . . . . . . . . . . . . . . . . 4.3. Declaración de las transformaciones . . . . . . . . . . . . . . . . . . . 4.3.1. Transformaciones modelo–a–modelo . . . . . . . . . . . . . . . 4.3.2. Transformaciones modelo–a–código . . . . . . . . . . . . . . . . 4.4. Caso de aplicación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5. Ejecución y resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.6. Aspectos de discusión . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.6.1. Uso del metamodelo ODPCV-MM como metamodelo intermedio 4.6.2. Conservación de propiedades con diferentes destinos . . . . . . 4.6.3. Bidireccionalidad de las transformaciones . . . . . . . . . . . . 4.6.4. Dependencia de las herramientas . . . . . . . . . . . . . . . . . 4.6.5. Falta de sintaxis concreta para las acciones en UML . . . . . . 4.7. Conclusiones del capı́tulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 150 155 155 156 159 159 173 174 179 181 181 183 184 186 187 187 TABLA DE CONTENIDOS 5. Conclusiones 189 5.1. Conclusiones y aportaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 5.2. Lı́neas de trabajo abiertas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 A. Infraestructura computacional en Maude A.1. Dependencias entre módulos . . . . . . . . . . . . . . . . . A.2. Especificación Maude de la infraestructura computacional A.2.1. Módulo CV-BINDING . . . . . . . . . . . . . . . . . A.2.2. Módulo CV-SORTS . . . . . . . . . . . . . . . . . . A.2.3. Módulo CV-INTERFACE . . . . . . . . . . . . . . . A.2.4. Módulo PROTO-OBJECT . . . . . . . . . . . . . . A.2.5. Módulo CV-OBJECT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I-1 I-1 I-2 I-2 I-2 I-3 I-3 I-4 B. Metamodelo ODPCV-MM B.1. Criterios de diseño . . . . . . . . . . . . B.1.1. Aspectos generales . . . . . . . . B.1.2. Organización del metamodelo . . B.1.3. Convenciones de modelado . . . B.1.4. Estructura de la especificación de B.2. Paquete Core . . . . . . . . . . . . . . . B.2.1. Tipos de datos . . . . . . . . . . B.2.2. Clases . . . . . . . . . . . . . . . B.2.3. Asociaciones . . . . . . . . . . . B.3. Paquete ComputationalTemplates . . . . B.3.1. Enumeraciones . . . . . . . . . . B.3.2. Clases . . . . . . . . . . . . . . . B.4. Paquete ComputationalEntities . . . . . B.4.1. Clases . . . . . . . . . . . . . . . B.4.2. Asociaciones . . . . . . . . . . . B.5. Paquete ComputationalBehavior . . . . B.5.1. Enumeraciones . . . . . . . . . . B.5.2. Clases . . . . . . . . . . . . . . . B.5.3. Asociaciones . . . . . . . . . . . B.6. Paquete ComputationalSpecification . . B.6.1. Clases . . . . . . . . . . . . . . . B.6.2. Asociaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . II-1 II-1 II-1 II-1 II-2 II-3 II-4 II-4 II-5 II-10 II-13 II-13 II-15 II-18 II-18 II-23 II-24 II-24 II-24 II-27 II-29 II-29 II-30 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ODPCV-MM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C. Metamodelo Maude en KM3 III-1 BIBLIOGRAFÍA IV-1 V