The link between code and modeling is code generation, taking advantage of the EMF infrastructure. 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 an EMF-compliant model.
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).
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.
The project first idea was to manipulate this model through the Eclipse UML2 tools, as Java developers do every day using the Eclipse Java tools.
As UML2 Tools are no longer being maintained, an adaptation is being developed for the Papyrus editors.
UML graphical notations provide a synthetic perception of verbose text resources from programming languages. It can be used as a software architecture tool. The idea behind Coffea becomes interesting as it links architecture and code.