Departamento de Sistemas Informáticos y Computación
Patrones de Diseño y Generación de Código
Universidad Politécnica de Valencia
Nombre Patrones de Diseño y Generación de Código
Tipo Obligatoria
Especialidad Básica. Bloque 1
Créditos 5
Semestre B
Profesor Vicente Pelechano
 
Objetivos

Proporcionar el conocimiento y las habilidades necesarias para desarrollar generadores automáticos de código a partir de modelos. Las últimas tendencias de la Ingeniería del Software (la Model Driven Architecture propuesta por el Object Management Group y las Software Factories propuestas por Microsoft) abogan por la transformación de modelos para aumentar la productividad y la calidad del desarrollo de software. Más allá de las limitadas posibilidades de generación de las herramientas CASE más populares, en un futuro cercano van a ser necesarios profesionales con capacidad de desarrollar herramientas de generación de código que satisfagan los requisitos particulares de las empresas. Esta asignatura pretende introducir al alumno en el mundo de los patrones de diseño para poder aplicar técnicas de diseño y soluciones arquitectónicas ya probadas en el desarrollo de generadores de código. Proporcionando los conocimientos y las habilidades necesarias para el desarrollo de herramientas avanzadas que utilicen las técnicas presentadas para construir de forma práctica entornos de modelado que produzcan, de forma automatizada, aplicaciones software a partir de modelos conceptuales.

 

 
Temario
Parte 1: Desarrollo Dirigido por Modelos. Técnicas y Herramientas.
Tema 1: Introducción al Desarrollo Dirigido por Modelos
Motivación, Historia y Evolución
MDA
Software Factories
UML vs. Lenguajes Específicos de Dominio
Tema 2: Diseño de Herramientas de Modelado y Generación de Código
Métodos de Producción Automática de SW. Elementos y Fases
Definición del Lenguajes de Modelado y Repositorios de Modelos
Diseño e Implementación de Editores Visuales
Transformaciones de Modelo a Modelo
Transformaciones de Modelo a Código
Eclipse (EMF+GMF+MOFScript) vs. DSL Tools
Ejemplos de Herramientas CASE
Parte 2: Técnicas de Implementación y Best Practices.
Tema 3 : Patrones de Diseño (GoF)
Patrones Creacionales
Patrones Estructurales
Patrones de Comportamiento
Lenguajes de Patrones y Patrones Compuestos
Tema 4: Diseño de Arquitecturas y Frameworks de Implementación
Patrones Arquitectónicos
MVC
Layers
Reflection
Pipes
Parte 3: Implementación de Modelos Conceptuales.
Tema 5 : Implementación de Relaciones de Asociación y Agregación
Propiedades Estructurales y de Comportamiento
Implementaciones básicas

Basada en patrones de diseño

Control de restricciones (multiplicidad, etc.)
Tema 6: Implementación de Relaciones de Especialización
Propiedades Estructurales y de Comportamiento
Implementaciones básicas
Basadas en patrones de diseño
Tema 7: Implementación del Comportamiento
Implementación de Diagramas de Transición de Estado
Implementación de Diagramas de Secuencia/Colaboración
 
Referencias

Jack Greenfield, Keith Short, Steve Cook, and Stuart Kent. Software Factories. Wiley Publising Inc., 2004.
Object Management Group. Model Driven Architecture Guide, 2003. (http://www.omg.org/mda)
Gamma, E., Helm, R., Johnson, R., Vlissides, J. Patrones de Diseño. Addison-Wesley, 2003.
Craig Larman. UML y Patrones. Prentice-Hall, 2ª Ed, 2003
W. H. Brown et. al, Antipatterns, John Wiley & Sons, 1998.
M. Fowler. Refactoring: Improving the Design of Existing Code, Addison-Wesley, 1999
Elisabeth Freeman, Eric Freeman, Bert Bates, Kathy Sierra, Head First Design Patterns, O’Reilly, 2004
M. Fowler. Analysis Patterns, Addison-Wesley, 1996
M. Fowler. Enterprise Application Architecture, http://www.martinfowler.com
F. Buschmann, et al. Pattern-Oriented Software Architecture. A System of Patterns. John Wiley and Sons,1996.
DSDM: Desarrollo de Software Dirigido por Modelos. MDA y Aplicaciones. http://www.lcc.uma.es/~av/MDD-MDA/
Javier Muñoz, Vicente Pelechano, MDA vs. Software Factories. (http://www.dsic.upv.es/~jmunoz/publications.php)
Javier Muñoz, Vicente Pelechano, MDA a Debate. (http://www.dsic.upv.es/~jmunoz/publications.php)
ECLIPSE. (http://www.eclipse.org/)
Visual Studio 2005 (http://msdn.microsoft.com/vstudio/)
DSL Tools (http://msdn.microsoft.com/vstudio/DSLTools/)
EMF (http://www.eclipse.org/emf/)
GMF (http://www.eclipse.org/gmf/)
MTF (http://www.alphaworks.ibm.com/tech/mtf)
ATL (http://www.eclipse.org/gmt/atl/download/)
FreeMarker (http://freemarker.sourceforge.net/)

 

 
Evaluación
Desarrollo y Presentación Pública de Trabajos.
Presentaciones (Estándares, Publicaciones, Extensiones, Aplicaciones).
Trabajos de Investigación. Artículos.
Desarrollos Prácticos. Presentación y Demos.