AndroMDA Enhancement Ideas
We welcome help from any interested party. Development work, testing (including test models),
bug reports, patches, documentation, samples, new cartridges, enhancement ideas.
These enhancement ideas were added for Google Summer of Code
We are willing to mentor interested students (and any volunteers) who want to use open source to solve real-world
business problems with standard models and frameworks. Please be specific about what you want
to implement, after studying the ideas, learning about the andromda framework, and asking questions online.
The development skills which are very useful, are the same skills required for andromda in general.
Java development using an IDE such as Eclipse or NetBeans
UML Modeling Tools
The UML Java Framework and APIs
Specific implementation frameworks where code is generated by andromda
Specific real-world projects which could be automated by andromda
Automatic extraction of model validation rules
Currently, modelers must run AndroMDA using maven after making model changes, in order to find out
if the model has any andromda validation errors. These validation rules are embedded as OCL rules
within the metafacade models, but could be extracted from the metamodel and put in a form that can be
consumed by the standard UML modeling tools by mapping the metafacade rules to the underlying UML2
implementation classes. In many cases, the OCL rules call metafacade methods implemented in Java which
would also need to be automatically extracted from the AndroMDA code base. Additionally, the OCL
validation rules should be documented on the andromda site as part of the build process, by extracting
the same rules from the same models and creating XDOC or HTML pages with the same information.
UML2 migration of all metafacade and test models, dependency versions, and sample applications
Most models are currently in UML14 using MagicDraw, but should be in a UML2 (3.x) compatible modeling tool,
preferably an open source modeling tool. Cartridge models and samples in both the andromda core and the andromdaplugins
project should be migrated and upgraded. Additionally, cartridge test models should be separated out into
models with specific validation errors (to test the validations) as well as models to test all of the cartridge
transformations completely, and the generated test output code should also be compiled during the build. The
test coverage should be measured with Cobertura, and missing coverage added where possible. Also, create a
utility to transform XMI models into EMF UML2 models, so that they can be consumed each build without having
to export to UML2 format each time.
Update tutorials and samples and framework versions
Most samples use BPM Struts, EJB2, and Axis frameworks. Cartridges have been implemented which output JSF2,
EJB3/JPA, Seam, and CXF code, but the samples and tutorials need to be updated to use these frameworks,
and any migration errors fixed in the process. There are also problems migrating the getting started tutorial
to JBoss 6 which need to be fixed. The getting started tutorial needs examples
to show usage of a working open source UML2 modeling tool such as Papyrus, TopCased, ArgoUML, or Eclipse UMLTools.
Generate Additional Unit Tests for Various frameworks
Cartridges have been implemented which output JSF2, EJB3/JPA, Seam, and CXF code, but
additional unit tests need to be automatically generated for JSF2 (i.e. using Selenium after deploying to a test container),
EJB3/JPA (using OpenEJB with multiple persistence providers such as JBoss/TopLink/Glassfish/OpenJPA),
CXF (using mock objects, adding WS-* tests and dependency mapping),
Hibernate (using DBUnit/hbm2ddl or similar with something like H2), and Spring (using SpringUnit).
Create additional cartridges for various frameworks
Many users would like to have cartridges which generate Spring Roo, Google Web Toolkit, Adobe Flex,
and/or Microsoft dotNet Windows Communication Foundation / Windows Workflow Foundation /
Entity Framework code with the most common usage scenarios. Update Visual Studio support from
v2005 to v2010. New cartridges should generate and run unit tests for the code generated by the cartridge.
Update existing andromdaplugins cartridges to use the current 3.5-SNAPSHOT andromda.
All additional ideas are welcome.