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 c开发者_如何转开发an 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.
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)
I use Sybase Powerdesigner and custom Ruby code (to access the data model) to generate my ORM model from UML. It can be tough to generate code against UML because there are many ways you can customize the model. I have stereotypes that are not really classes, but are being used for other code generation purposes that are custom to the problem I'm solving. How would a generic code generator understand my custom uses of the model?
Eclipse EMF generates complete Java code from EMF models (ECore). EMF generates classes to represent instances of the model in-memory with support for XML or XMI serialization / deserialization, hooks for validation, an optional editor, and more.
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.
You need to do more research before you make statements like that. EMF is a real tool for building real software based on real models. I've used it successfully for building and maintaining production software over a number of years.
Have you ever seen somebody using EMF to generate a full blown app with GUI etc?
Oh yes. Done it myself. Admittedly, I'm talking about specific kinds of applications, and specific kinds of GUIs.
精彩评论