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 produccion de software. Tras el exito de la tecnologia orientada a objetos, el uso sistematico de modelos se presenta ahora como la forma apropiada para conseguir programar con un nivel mas alto de abstraccion y de aumentar el nivel de automatizacion. En nuestro trabajo de investigacion y en proyectos con empresas hemos comprobado el potencial de los modelos para elevar los niveles de abstraccion y automatizacion. Por ello, estamos plenamente convencidos de que los conceptos, metodos y tecnicas de MDE facilitan la creacion y evolucion del software. Este libro proporciona una explicacion detallada de los conceptos basicos del MDE, asi como ejemplos de cada tipo de aplicacion y presentacion de las herramientas mas utilizadas, de modo que se puedan adquirir los conocimientos necesarios para iniciar la practica de MDE. A lo largo de esta obra se ha combinado el rigor cientifico con la experiencia practica, proporcionando una panoramica actual y completa sobre el desarrollo de software dirigido por modelos. El libro esta organizado en cinco partes junto con un capitulo de introduccion, cuyo objetivo es ofrecer una vision global de MDE y presentar los conceptos en los que se profundizaran en el resto de capitulos. Las tres primeras partes corresponden a los tres elementos basicos de MDE: modelos y metamodelos, construccion de DSL y transformaciones de modelos. La cuarta parte incluye un ejemplo de cada tipo de aplicacion de las tecnicas MDE: desarrollo dirigido por modelos, reingenieria de modelos y models@runtime. Por ultimo, los capitulos finales presentan algunas soluciones basadas en MDE, asi como algunas herramientas existentes para entornos MDE.