Theoretical Background

During the course a couple of theoretical concepts are needed. Everybody participating will have to pick up something and present it to the class. Things to cover are:

  1. Domain Analysis

  2. Feature Analysis

  3. Frame Processor Technology

  4. Grammar and Language Recognizers (Parse trees and abstract syntax trees (AST)).

  5. Meta-programming

  6. Model serialization using XMI.

  7. Meta-modelling using the Meta-Object-Facility of OMG

  8. Functional languages

  9. Cross-cutting concerns (Aspect Oriented Programming)

  10. Byte Code manipulation (e.g. JDO)

  11. Roundtripping and artefact preservation (Generation/manual manipulation)

  12. Generalization Techniques. Variations and Commonalities. Scope definitions.

  13. Problem domain vs. solution domain. Separation of languages.

  14. Generative Design Patterns

  15. Interpreters and Simulations

  16. Data-Driven Design (game design, automotive computing)

  17. Component technology, inversion-of-control patterns, API evolution