Juan de Lara 


 

 
Home
Docencia/Teaching
Investigación/Research
Publicaciones/Publications
Enlaces/Links
ETS Informática UAM

[print page (PDF)]

    Curso de Postgrado: Desarrollo formal de Software Dirigido por Modelos

Información de cursos anteriores: Profesores: NOTICIAS:
  • Podéis descargar la versión "UAM" del herramienta aquí. Funciona sobre Python. Existen tutoriales sobre el uso de una versión anterior de la herramienta, y artículos sobre su uso. ¡Atención! Respecto al tutorial, el único cambio es que para la generación de código se ha de utilizar el botón de la interfaz, en lugar de la opción de menú.

Objetivos:
Presentación del curso(PDF)

Los objetivos del curso son:

  1. El estudio de técnicas para el desarrollo (generación) de software a partir de modelos de alto nivel, posiblemente descritos utilizando Lenguajes (Visuales) de Dominio Específico (LDE).
  2. El estudio de técnicas para la verificación y simulación de los modelos a partir de los cuales se genera el software.

Para ello, el curso se ha estructurado en dos partes:

  1. Desarrollo Basado en Modelos. Aquí se estudiarán técnicas (meta-modelado) para la descripción de LDEs, generación automática de entornos de modelado y para la transformación de modelos (gramáticas de grafos, y otras). Como caso particular, se estudiará la propuesta de la OMG para el desarrollo basado en modelos: MDA (Model-Driven Arquitecture).
  2. Análisis de Modelos. Se estudiarán técnicas y formalismos de simulación (simulación discreta y Redes de Petri), así como de verificación formal (Model Checking) de modelos.
Además, el curso presenta una parte práctica, en la que los estudiantes deberán diseñar un LDE, generar un entorno de modelado para él (usando una herramienta de meta-modelado), e implementar un generador de código o bien una transformación para el análisis de los modelos.

Temario (tentativo):

Parte I: Desarrollo de Software Basado en Modelos

Bibliografía básica:
    • Stahl, T., Völter, M. "Model-Driven Software Development". Wiley, 2006.
Lecturas recomendadas:
  • Modelado de Software con UML 2.0. Transparencias parte 1: notación (PDF), parte 2: aspectos avanzados (PDF)
Bibliografía:
    • Grady Booch, James Rumbaugh, Ivar Jacobson. The Unified Modeling Language User Guide. Addison-Wesley, 1999.
    • Perdita Stevens, Rob Pooley. “Utilización de UML en Ingeniería del Software con Objetos y Componentes”. Addison Wesley, 2002.
    • Craig Larman. “Applying UML and Patterns”. Prentice Hall. 2002.
Lecturas recomendadas:
  • Meta-modelado y Lenguajes (Visuales) Específicos de Dominio. Transparencias  [PDF]
Bibliografía:
  • Transformación de Modelos. Transparencias  [PDF]
Bibliografía:
  • Ehrig, H., Ehrig, K., Prange, U., Taentzer, G. 2006. "Fundamentals of Algebraic Graph Transformation". Springer.
  • Ehrig, H., Engels, G., Kreowski, H.-J., Rozenberg, G. 1999. "Handbook of Graph Grammars and Computing by Graph Transformation". Vol 1. Foundations. World Scientific.
  • QVT: http://www.omg.org/docs/ptc/05-11-01.pdf
  • Model-Driven Architecture. Transparencias [PDF]
Bibliografía:
    • Página web de la OMG sobre MDA.
    • Stahl, T., Völter, M. "Model-Driven Software Development". Wiley, 2006.
    • Raistrick, Chris. Model driven architecture with executable UML. Cambridge University Press. 2004.
Parte II: Análisis de Modelos
  • Técnicas de simulación discreta. Transparencias [PDF]
Bibliografía:
    • Fishman, G. S. Discrete Event Simulation. Modeling, Programming and Analysis. Springer Series in Operations Research. 2001. 
    • Bernard P. Zeigler, Herbert Praehofer, and Tag Gon Kim. Theory of Modelling and Simulation: Integrating Discrete Event and Continuous Complex Dynamic Systems. Academic Press, second edition, 2000.
  • Redes de Petri. Transparencias [PDF]
Bibliografía:
    • Tadao Murata. Petri nets: Properties, analysis and applications. Proceedings of the IEEE, 77(4):541-580, April 1989.
    • Peterson, J.L. Petri Net Theory and the Modeling of Systems. Prentice-Hall, INC., Englewood Cliffs, N.J. 1981.
    • Petri Nets World: http://daimi.au.dk/PetriNets/
  • Model Checking. [PDF]
Bibliografía:
    • E. M. Clarke, O. Grumberg, D. Peled. "Model Checking". MIT Press. 1999.
    • Emerson, E. A. “Temporal and Modal Logic”. Handbook of Theoretical Computer Science, Vol B. Elsevier. 1990.
    • Model Checking @ CMU: http://www-2.cs.cmu.edu/~modelcheck/
    • Página web de la herramienta Spin: http://spinroot.com/ 
LINKS RELACIONADOS:
  • Curso de Modelado y Simulación de Hans Vangheluwe en la Escuela de Informática de la Universidad de McGill en Canadá.
  • Curso de doctorado "Precise Modelling" de Duminda Wijesekera en la Universidad George Mason, Virginia, USA.
  • http://www.metamodel.com/
  • Forma de Evaluación (tentativa):

    La evaluación tendrá en cuenta los siguientes tres factores:
    • Proyecto de meta-modelado. En principio, los trabajos prácticos se desarrollarán utilizando la herramienta de (meta-)modelado AToM3, aunque se podrían usar otras herramientas de meta-modelado. Este trabajo ha de ser expuesto al final del curso.
    • Asistencia al menos al 50% de las clases.
    • Ejercicios.