Medea is a code generation framework that adheres to the Model Driven Architecture (MDA) paradigm. It takes UML class and sequence diagrams in XMI format and uses XSLT templates to generate code for various languages, technologies and complete applications.
Medea is designed to be lightweight, pragmatic and to have a minimal learning curve. It consists of text templates and contains no binary code; it uses a standardized language: XSLT and a well known transformer like Saxon.
Medea can work with any UML tool as long as it exports the model in XMI format. The complexities of the XMI and its flavors are hidden by an XSLT library that lets the template designer use high level functions to traverse the model and select its elements like classes, attributes, operations, states etc.
Any number and combination of XSLT templates can be applied to a model to produce various artifacts like code, configuration or documentation files. Here are some examples:
Class diagram
State diagram
Java class
CRUD J2EE application
Struts web application
ejb-jar configuration file
Hibernate configuration file
JSP file
struts-config configuration file
faces-config configuration file