Coffea
The idea

As UML is a language, it can seem natural to consider its use in the perspective we consider programming languages.

In the Eclipse Modeling Project, EMF is a modeling framework combined with a code generation tooling. UML2 tools complete the EMF modeling functionalities, implementing standards. The link between code and modeling is code generation, as seems natural to programmers used to compile code.

If such a use of UML can be very efficient with appropriate tools, it becomes very difficult to perform re-factoring operations on a code which was not generated from a formal model. The following question is : where can be a model found to allow this kind of operation ?

The Eclipse Java development tools provide, after a compilation, an AST : an analyzed version of the code, which can be accessed through a Java Model, what becomes interesting especially for re-factoring operations. On this infrastructure rely Eclipse functions for code changes (packages, classes, properties, methods renaming, etc).

The project idea is to manipulate this model through the Eclipse UML2 tools, as Java developers do every day using the Eclipse Java views.

Another Sourceforge project has a similar shape : the Green UML Eclipse plug-in. Coffea is today less evolved but aims to provide integration with the foundation UML2 editors. Developers could in a same time use interesting modeling tools and manipulate code with it.

Some could object UML allows to express things that do not exist in a language like Java. This is a point which has not been solved until now.

UML graphical notations provide a synthetic perception of verbose text resources from programming languages. It can be used as a software architecture tool, as the UML user guide illustrations suggest it. Along the code modification functionality, Coffea also aims to provide an overview of the code.