NClass is a elegant UML class diagram tool oriented to code modeling for the C# & Java languages.
It is specially well suited to create your O-O design class model (and think and visualize the full set in terms of Design Patterns) and generate a skeleton for you in C# or Java.
On the other hand, if you need to document a-posteriori (I hope you don’t do it frequently, by the way), NClass also incorporates a plug-in developed by Malte Ried to reverse engineering a .NET assembly using reflection to extract the classes and draw the corresponding design class model.
A year ago I met two Artech guys: G. Milano and A. Silva in the Code Generation 2008 conference and and interchanged nice points of views on MDD. Now I’ve been invited by Artech to give a talk about the state of the art of MDD in the XIX edition of the annual International Community Event of Genexus at Montevideo, Uruguay on 14-16 of September.
Artech is a Montevideo based company producing Genexus and DeKlarit. From the early 80s, Genexus allows to model and produce tailored full ERP (Enterprise Resource Planning) systems based on models an full code generation.
Based in several custom DSLs, it allows to fully specify ERP systems for the domain of business and administration applications resolving persistence, business logic, user interface, and reporting.
Their approach is quite original because Genexus starts from collecting Users Data Views as the base model to derive a deterministic Entity-Relational data-model to drive the business information architecture.
Technology independence is one of their key features: it can generate Cobol, Java, C# or Ruby to cite a few of them. Changing the target technology is as fast as the time needed for regeneration and redeploy.
This community is new for me. I am more familiar with MDD in industrial software factories for middle to big sized customers based mainly in custom development and using object-oriented approaches. Anyway, I feel that we will have a lot of common ideas and principles because the main objective is basically the same: to put the machine to work for us.
I hope to learn a lot with the experience, meeting people and blog it back on my return.