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 http://socghop.appspot.com/. 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
  • Maven
  • SVN
  • 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.
    • Additional Ideas
      All additional ideas are welcome.