• Nuevo

Desarrollo de Software Dirigido por Modelos: Conceptos, Métodos y Herramientas

39,90 €
Impuestos incluidos
A lo largo de la pasada década, la ingeniería del software basada en modelos (Model-Driven Engineering, MDE) ha surgido como un nuevo paso en el camino hacia una verdadera industri...
Cantidad

A lo largo de la pasada década, la ingeniería del software basada en modelos (Model-Driven Engineering, MDE) ha surgido como un nuevo paso en el camino hacia una verdadera industrialización de la producción de software. Tras el éxito de la tecnología orientada a objetos, el uso sistemático de modelos se presenta ahora como la forma apropiada para conseguir programar con un nivel más alto de abstracción y de aumentar el nivel de automatización. En nuestro trabajo de investigación y en proyectos con empresas hemos comprobado el potencial de los modelos para elevar los niveles de abstracción y automatización. Por ello, estamos plenamente convencidos de que los conceptos, métodos y técnicas de MDE facilitan la creación y evolución del software. Este libro proporciona una explicación detallada de los conceptos básicos del MDE, así como ejemplos de cada tipo de aplicación y presentación de las herramientas más utilizadas, de modo que se puedan adquirir los conocimientos necesarios para iniciar la práctica de MDE. A lo largo de esta obra se ha combinado el rigor científico con la experiencia práctica, proporcionando una panorámica actual y completa sobre el desarrollo de software dirigido por modelos. El libro está organizado en cinco partes junto con un capítulo de introducción, cuyo objetivo es ofrecer una visión global de MDE y presentar los conceptos en los que se profundizarán en el resto de capítulos. Las tres primeras partes corresponden a los tres elementos básicos de MDE: modelos y metamodelos, construcción de DSL y transformaciones de modelos. La cuarta parte incluye un ejemplo de cada tipo de aplicación de las técnicas MDE: desarrollo dirigido por modelos, reingeniería de modelos y models@runtime. Por último, los capítulos finales presentan algunas soluciones basadas en MDE, así como algunas herramientas existentes para entornos MDE. Índice COORDINADORES AUTORES PRÓLOGO PREFACIO CAPÍTULO 1. DESARROLLO DIRIGIDO POR MODELOS: UN NUEVO PARADIGMA DE CONSTRUCCIÓN DE SOFTWARE 1.1 INTRODUCCIÓN 1.2 DE LOS OBJETOS A LOS MODELOS 1.3 PRINCIPIOS BÁSICOS DEL MDE 1.4 LOS PRINCIPALES PARADIGMAS MDE PARTE I. METAMODELADO CAPÍTULO 2. CONCEPTOS BÁSICOS DE MODELADO 2.1 INTRODUCCIÓN: QUÉ ES UN MODELO 2.2 SEMÁNTICA: EL SIGNIFICADO DE UN MODELO 2.3 SINTAXIS: LA ESTRUCTURA DE UN MODELO 2.4 RELACIÓN ENTRE SEMÁNTICA Y SINTAXIS 2.5 CONCLUSIÓN: TOMEMOS EN SERIO LOS DIAGRAMAS 2.6 PARA SABER MÁS CAPÍTULO 3. UNA INTRODUCCIÓN AL METAMODELADO 3.1 EL CONCEPTO DE METAMODELO 3.2 LENGUAJES DE METAMODELADO 3.3 ARQUITECTURA DE CUATRO NIVELES 3.4 ARQUITECTURA DE METAMODELO 3.5 CONCLUSIONES CAPÍTULO 4. EL LENGUAJE OCL 4.1 INTRODUCCIÓN 4.2 DEFINICIÓN DE RESTRICCIONES DE INTEGRIDAD 4.2.1 Identificación de la instancia contextual 4.2.2 Navegación entre clases de objetos 4.2.3 Selección de un subconjunto de objetos 4.2.4 Condición aplicable a todos los objetos de una colección 4.2.5 Navegación por jerarquías de especialización 4.2.6 Restricción de clave primaria de una clase de objetos 4.2.7 Obtención de todos los objetos de una clase 4.2.8 Resumen de operaciones aplicables a una colección 4.3 DEFINICIÓN DE INFORMACIÓN DERIVADA 4.4 DEFINICIÓN DE OPERACIONES 4.5 HERRAMIENTAS DE SOPORTE 4.6 CONCLUSIONES CAPÍTULO 5. PERFILES MOF 5.1 INTRODUCCIÓN 5.2 PERFILES EN LA ARQUITECTURA MOF 5.3 MECANISMO DE PERFILES EN UML 2.0 5.3.1 Perfil 5.3.2 Estereotipos y propiedades 5.3.3 Restricciones 5.4 MÉTODO PARA LA DEFINICIÓN DE PERFILES 5.5 EJEMPLO 5.6 ¿METAMODELOS O PERFILES? 5.7 CONCLUSIONES PARTE II. SINTAXIS CONCRETA CAPÍTULO 6. ECLIPSE GRAPHICAL MODELING FRAMEWORK 6.1 INTRODUCCIÓN 6.1.1 ¿Qué es y para qué sirve GMF? 6.1.2 Relación de GMF con otros plug-ins de Eclipse 6.2 INSTALACIÓN Y CREACIÓN DE PROYECTOS GMF 6.2.1 Instalación de GMF 6.2.2 Creación y estructura de los proyectos GMF 6.3 CREACIÓN DE UN EDITOR GRÁFICO SENCILLO 6.3.1 Construcción del editor gráfico por defecto 6.3.2 Generación y ejecución del editor gráfico 6.3.3 Algunos trucos sencillos para mejorar nuestros editores 6.4 ASPECTOS AVANZADOS: CONTENCIÓN GRÁFICA 6.5 CONCLUSIONES CAPÍTULO 7. EUGENIA 7.1 INTRODUCCIÓN 7.1.1 Epsilon 7.1.2 Instalación de Epsilon 7.2 ¿QUÉ ES Y PARA QUÉ SIRVE EUGENIA? 7.3 RELACIÓN DE EUGENIA CON OTROS PLUG-INS DE ECLIPSE 7.4 DESARROLLO DE UN EDITOR GRÁFICO CON EUGENIA 7.4.1 Introduciendo anotaciones GMF en los metamodelos 7.4.2 Desarrollo de un editor básico 7.4.3 Mejorando los editores desarrollados con EuGENia 7.5 ALGUNOS ASPECTOS AVANZADOS 7.5.1 Generación del editor en un solo paso 7.5.2 Invocación automática mediante tareas ANT 7.6 CONCLUSIONES CAPÍTULO 8. CREACIÓN DE EDITORES TEXTUALES DE MODELOS CON XTEXT 8.1 INTRODUCCIÓN 8.2 CREACIÓN DE UN EDITOR TEXTUAL SENCILLO 8.2.1 Definición del metamodelo 8.2.2 Creación del editor por defecto con Xtext 8.2.3 Ejecución del editor textual de modelos generado 8.3 IMPLEMENTACIÓN DE UN EDITOR AVANZADO 8.3.1 Extensión del lenguaje de modelado 8.3.2 Creación del editor por defecto con Xtext 8.3.3 Importación de ficheros 8.3.4 Mejora del proceso de validación de los modelos 8.3.5 Modificación del estilo del texto 8.3.6 Mejora del asistente de contenido 8.3.7 Serialización de los modelos 8.4 CONCLUSIONES CAPÍTULO 9. MICROSOFT DSL TOOLS 9.1 INTRODUCCIÓN 9.1.1 Relación con Visual Studio 9.2 CREACIÓN DE UN EDITOR GRÁFICO SENCILLO CON DSL TOOLS 9.2.1 El dominio específico: personas y deudas 9.2.2 Detalles gráficos 9.3 UN EJEMPLO MÁS COMPLEJO 9.3.1 Algunos aspectos avanzados: personalización 9.4 ESTRUCTURA DE UN PROYECTO DE DSL TOOLS 9.4.1 Arquitectura de los lenguajes generados con DSL Tools 9.5 CONCLUSIONES PARTE III. TRANSFORMACIONES CAPÍTULO 10. TRANSFORMACIONES DE MODELOS 10.1 INTRODUCCIÓN 10.2 APROXIMACIONES PARA EL DESARROLLO DE TRANSFORMACIONES 10.3 TRANSFORMACIONES DE MODELOS 10.3.1 Lenguajes de transformación de modelo a modelo 10.4 GENERACIÓN DE CÓDIGO 10.4.1 Lenguajes de transformación modelo a texto 10.5 PARA SABER MÁS CAPÍTULO 11. EL LENGUAJE ATL 11.1 INTRODUCCIÓN 11.2 UNIDADES PRINCIPALES DE ATL 11.2.1 Módulo ATL 11.2.2 Query ATL 11.2.3 Librerías ATL 11.3 EL LENGUAJE ATL 11.3.1 Encabezado 11.3.2 Importación de librerías 11.3.3 Helper Rules 11.3.4 Matched Rules 11.3.5 [Unique] Lazy Rules 11.3.6 Called Rules 11.3.7 Fases de ejecución de una transformación 11.3.8 Referenciando elementos creados en otras reglas 11.3.9 Código imperativo en ATL 11.3.10 Tipos de datos 11.3.11 Recomendaciones CAPÍTULO 12. EL LENGUAJE QVT: QUERY/VIEW/TRANSFORMATION 12.1 INTRODUCCIÓN 12.2 COMPONENTES BÁSICOS 12.2.1 El lenguaje QVT Relations 12.2.2 El lenguaje QVT Core 12.2.3 El lenguaje QVT Operational Mappings 12.3 EL LENGUAJE QVT OPERATIONAL MAPPINGS 12.3.1 Declaración de una transformación 12.3.2 Operación main 12.3.3 Operación de mapping 12.3.4 Operaciones helper y query 12.3.5 Constructores 12.3.6 Bibliotecas 12.3.7 Reutilización de transformaciones 12.3.8 Operaciones y operadores usados en el cuerpo de las operaciones de mapping y de query 12.4 ENTORNO DE DESARROLLO 12.5 CONCLUSIONES CAPÍTULO 13. EL LENGUAJE RUBYTL 13.1 INTRODUCCIÓN 13.2 EL LENGUAJE DE TRANSFORMACIÓN RUBYTL 13.2.1 Estructura del lenguaje 13.2.2 Semántica de ejecución 13.2.3 Reglas de nombrado 13.2.4 Manipulación de modelos 13.2.5 Modularización de transformaciones 13.3 ENTORNO DE DESARROLLO 13.3.1 Configuración de transformaciones 13.3.2 Mensajes de error 13.4 CONCLUSIONES CAPÍTULO 14. EL LENGUAJE JET 14.1 CONCEPTOS BÁSICOS DE JET 14.1.1 Sintaxis JET 14.1.2 Uso de XPath en JET 14.2 TRANSFORMACIONES JET 14.2.1 Proyectos JET 14.2.2 Plantillas JET 14.2.3 Etiquetas JET 14.3 EJEMPLO M2T CON JET CAPÍTULO 15. EL LENGUAJE MOFSCRIPT 15.1 REQUISITOS, INSTALACIÓN Y VISTA GENERAL 15.2 EJEMPLO: GENERACIÓN DE CÓDIGO SQL 15.3 EL LENGUAJE MOFSCRIPT 15.3.1 Importación de transformaciones previas: import 15.3.2 Definición de la transformación: texttransformation 15.3.3 Tipos de datos, variables y propiedades 15.3.4 Definición de reglas 15.3.5 Sentencias de selección: If y Select 15.3.6 Sentencias de repetición: While y ForEach 15.3.7 Operaciones OCL destacadas de MOFScript 15.3.8 Bloque de texto protegido contra escritura 15.4 EJEMPLO DE TRANSFORMACIÓN: MÁQUINAS DE ESTADOS 15.4.1 Metamodelo de máquinas de estados 15.4.2 Transformación MOFScript 15.5 CONCLUSIONES Y CONSEJOS CAPÍTULO 16. EL LENGUAJE XPAND 16.1 INTRODUCCIÓN 16.2 CONCEPTOS BÁSICOS DE XPAND 16.3 TRANSFORMACIONES XPAND 16.3.1 Proyecto generador para Xpand 16.3.2 Definición de reglas de transformación 16.3.3 Ejemplo de transformación de modelo de datos a Java 16.4 REGIONES PROTEGIDAS EN XPAND 16.5 PROGRAMACIÓN ORIENTADA A ASPECTOS EN XPAND 16.5.1 Punto de unión y punto de corte 16.5.2 Definición del nombre 16.5.3 Tipos de parámetros 16.5.4 Procedimiento 16.6 CONCLUSIONES PARTE IV. APLICACIONES I. CONSTRUCCIÓN DE APLICACIONES SOFTWARE CON MDE CAPÍTULO 17. GENERACIÓN DE PORTALES WEB 17.1 INTRODUCCIÓN 17.2 DESARROLLO DE UN PORTAL UTILIZANDO PORTLETS 17.3 EL METAMODELO TAREAS 17.4 EL METAMODELO ORQUESTACIÓN 17.5 EL METAMODELO PRESENTACIÓN 17.6 EL METAMODELO EXO 17.7 DE SOP A EXO: TRANSFORMACIONES 17.8 BENEFICIOS DEL DSDM CAPÍTULO 18. RUX-TOOL: HERRAMIENTA PARA EL MODELADO DE INTERFACES DE USUARIO WEB 2.0 18.1 INTRODUCCIÓN 18.2 RUX-METHOD 18.2.1 IU abstracta, concreta y final 18.3 RUX-TOOL Y WEBRATIO: MODELADO RIA 18.3.1 Modelado de datos con WebRatio 18.3.2 Modelado de hipertexto con WebRatio 18.3.3 Modelado de presentación con RUX-Tool 18.4 RUX-TOOL Y WEBRATIO: CASO DE ESTUDIO 18.4.1 Descripción del caso práctico 18.5 CONCLUSIONES CAPÍTULO 19. GENERACIÓN DE CÓDIGO ANSI-C DE MODELOS DE COMPONENTES UML PARA SISTEMAS EMBEBIDOS 19.1 ESTRUCTURA GLOBAL DSDM UTILIZADA PARA LA GENERACIÓN DE CÓDIGO 19.2 HERRAMIENTAS 19.3 ESTRUCTURA DEL PROYECTO 19.3.1 Proyecto FromUML2SimpleC 19.3.2 Proyecto MMSimpleC 19.3.3 Proyecto SimpleC2Code 19.4 DESCRIPCIÓN DEL CASO DE ESTUDIO 19.4.1 Controlador de puertas automáticas deslizantes 19.4.2 Metodología de diseño 19.4.3 Diseño del control básico de un control de puertas automáticas 19.5 ANÁLISIS DE LA TRANSFORMACIÓN DE UML2+MARTE A SIMPLEC 19.6 CONCLUSIONES 19.7 AGRADECIMIENTOS CAPÍTULO 20. DESARROLLO DIRIGIDO POR MODELOS EN LA PRÁCTICA. MOSKITT Y EL DESARROLLO DE APLICACIONES DE GESTIÓN 20.1 INTRODUCCIÓN 20.1.1 Herramientas 20.1.2 Arquitectura 20.1.3 Generación de código y prototipos 20.2 DESARROLLO DIRIGIDO POR MODELOS EN LA PRÁCTICA 20.2.1 Modelos y arquitectura de las aplicaciones web 20.2.2 Proceso de desarrollo 20.3 CASO DE ESTUDIO: FACTURACIÓN 20.3.1 Requisitos del caso de estudio 20.4 CREACIÓN DEL PROYECTO MOSKITT 20.5 ESPECIFICACIÓN DE LA LÓGICA DE NEGOCIO. CONSTRUCCIÓN DE DIAGRAMAS DE CLASES 20.6 ESPECIFICACIÓN DE LA INTERFAZ DE USUARIO: MODELOS SKETCHER Y UIM 20.6.1 Creación de un nuevo modelo Sketcher 20.6.2 Diseño de ventanas 20.7 GENERACIÓN DE CÓDIGO OPENXAVA 20.7.1 La transformación UML2JPA 20.7.2 La transformación UIM2OX 20.8 CONCLUSIONES CAPÍTULO 21. DISEÑO Y DESARROLLO DE INTERFACES DE USUARIO 21.1 INTRODUCCIÓN 21.2 MODELADO DE INTERFACES DE USUARIO CON MOSKITT 21.2.1 MOSKitt UIM 21.2.2 MOSKitt Sketcher 21.3 TRANSFORMACIONES Y GENERACIÓN DE CÓDIGO 21.3.1 Transformaciones entre modelos de interfaz de usuario 21.3.2 Transformaciones modelo a texto 21.4 CASO DE ESTUDIO: FACTURACIÓN 21.4.1 Estrategia para desarrollar la interfaz 21.4.2 Configurar el proyecto MOSKitt: Facturación 21.4.3 Crear el boceto inicial con MOSKitt Sketcher 21.4.4 Completar la especificación con MOSKitt UIM 21.4.5 Generar/Prototipar la aplicación 21.5 CONCLUSIONES PARTE V. APLICACIONES II. OTRAS APLICACIONES DE MDE CAPÍTULO 22. MODELADO DE PROCESOS 22.1 INTRODUCCIÓN 22.2 INGENIERÍA DE PROCESOS O MÉTODOS 22.3 MODELADO DE PROCESOS SOFTWARE CON SPEM 22.4 MODELADO DE PROCESOS DE NEGOCIO CON BPMN 22.5 CONCLUSIONES CAPÍTULO 23. MODERNIZACIÓN DEL SOFTWARE 23.1 INTRODUCCIÓN 23.2 DEFINICIONES Y CONCEPTOS 23.2.1 Sistemas de información heredados 23.2.2 Reingeniería 23.2.3 Modernización dirigida por la arquitectura (ADM) 23.3 MODERNIZACIÓN DEL SOFTWARE MEDIANTE ADM 23.3.1 El ecosistema KDM 23.4 EJEMPLO DE MODERNIZACIÓN DE SOFTWARE 23.4.1 Contexto del ejemplo de modernización 23.4.2 El proceso de modernización propuesto 23.4.3 Resultados obtenidos 23.5 CONCLUSIONES CAPÍTULO 24. MODERNIZACIÓN DIRIGIDA POR LA ARQUITECTURA EN LA TRANSFORMACIÓN DE UN CORE BANKING 24.1 INTRODUCCIÓN 24.2 PROBLEMA 24.3 SOLUCIÓN 24.3.1 Metodología 24.4 MODELADO DEL SISTEMA AS-IS 24.5 DEFINICIÓN DE BRECHAS Y SISTEMAS TO-BE 24.6 RESOLUCIÓN DE BRECHAS Y TRANSFORMACIÓN DE CÓDIGO 24.7 CONCLUSIONES CAPÍTULO 25. MODELOS EN TIEMPO DE EJECUCIÓN 25.1 INTRODUCCIÓN 25.2 CONCEPTOS BÁSICOS 25.2.1 ¿Qué son los modelos en tiempo de ejecución? 25.2.2 ¿Por qué modelos en tiempo de ejecución? 25.2.3 ¿Qué constituye un modelo en tiempo de ejecución? 25.2.4 ¿Cómo se representan los modelos en tiempo de ejecución? 25.2.5 ¿Qué beneficios ofrecen los modelos en tiempo de ejecución en los sistemas autoadaptables? 25.3 APLICACIONES 25.3.1 Hogares inteligentes 25.3.2 Adaptación de interfaces de usuario en dispositivos móviles 25.4 CASO DE ESTUDIO 25.4.1 Definición del caso 25.4.2 Autoadaptación del sistema 25.4.3 El rol de los modelos en tiempo de ejecución en el ciclo de desarrollo de software 25.4.4 Tecnologías para gestionar modelos en tiempo de ejecución 25.5 CONCLUSIONES BIBLIOGRAFÍA MATERIAL ADICIONAL ÍNDICE ALFABÉTICO
9788499642154

Ficha técnica

Autor
García Rubio, Félix Óscar / Vara Mesa, Juan Manuel / Vicente Chicote, Cristina
Editorial
RA-MA S.A. Editorial y Publicaciones
Categoría
Ingeniería del software

Referencias específicas