The fundamental architecture of the project consists out of three building blocks:

UML Generators Project provides components that automatically bridge the gap between UML models and source code. Either by extracting data from UML models (and UML profiles or decoration models) to produce source code or  by reverse-engineering source code to produce UML models.

Code generation uses Acceleo. It is incremental and can be extended thanks to its overriding system.