Search code examples
c#javaframeworksuml

Full Java/C# Code Generation tools from Model?


It's very surprising that there are no real tools to fully generate code from a model. All UML tools I've seen are not really practical except this one:

http://www.intrinsarc.com/

A hierarchical component model with full connectors
At the heart of Evolve is a hierarchical component model with full connectors. Connectors act like
wires between components, making it simple and intuitive to express detailed structures that are
difficult or impossible in other approaches such as dependency injection.
Resemblance and evolution
These two constructs provide unprecedented levels of support for component reuse. 

Resemblance
    is a form of component inheritance. Evolution builds on this to allow the structure of an existing
    system to be remodeled, without destroying the original definition. These facilities can be used to
    create variants of a system, or to switch in test components.

Did someone try it : what do you think ? It seems like based on UML but not on UML class but other types of diagrams.

Any other tool which can do real code generation UML or not ?

What I mean by real: EMF is not such a tool it's only a framework for building UML Tool as far as I can see not a tool by itself which facilitates the building and maintenance of an application.

Same for Visual Studio Ultimate. Though the UML tool inside is quite good it's just yet another UML tool that doesn't really help ypu model but just do graphically what you can do by typing code.


Solution

  • I wrote the Evolve system which the question is about.

    Evolve generates code to connect up classes from UML component models. It can also generate full code for state diagrams, which is incredibly handy. You can easily import and connect up your own classes. It effectively allows you to create software in a way like how you might plug together chips into an electronics circuit board.

    The real advantage though is that it aligns software creation, reuse and evolution. In other words, you can create a system, pass it to a colleague, and they can evolve or extend it in any way, even without the source code, and without you having to pre-plan the extension points. You can extend and reuse state charts also.

    It does sound magic, but it has a very strong foundation - it was the outcome of recent phd research, and it is actually one of the more sophisticated design tools on the market. The professors who supervised the research also influenced Microsoft's COM work.

    Here is a small video of it in action: http://intrinsarc.com/movies/evolve.html

    Try it and let us know how you go! The manual has a tutorial which shows you how to build up to a GWT/Hibernate working example. (BTW Evolve uses EMF under the covers for storing the UML models)