MDA
I gained interest in MDA in much the same way as I gained interest in digital photography: for a long time I did not really consider using it in my day to day practice, since the technology was too immature to be used seriously in real life. It was only in June 2006 that Ron Kersic (author of the Enterprise MDA Workbench), Bob Groeneveld and I sat down and had a look at what the Enterprise MDA Workbench was capable of at that time. That looked very promising and that's when I decided to get down 'n dirty. The Workench had a lot of potential, but when Ron found out about Acceleo and pointed it out to us, it was clear that it was miles ahead of any MDA tool that was (and still is) out there. Only a few months before, the French company Obeo contributed her Acceleo MDA tool to the Open Source community. And what an addition it is! Here's a quick glance at what I liked about it.
First of all, Acceleo is Eclipse based and uses the full potential of the Eclipse Modeling Framework (EMF). One benefit of EMF is that any modeling language that can be expressed in it and can be used as a basis to transform from. The most obvious language is UML and that's what I used it with. All model elements can be browsed with the Acceleo Reflective Editor.
Selecting a model element allows you to view all its meta-model properties and values. That, for starters, is a very powerful way to find your way around the modeling language's metamodel ("where is that association role name stored again?").
Templates
Acceleo is template based. That means that you'll create a template for each artifact you want to generate. You choose the model element you base your template on, which is the root of the navigation path through the instance of the metamodel. In the example below the "<%script type="core.Class"..." indicates that the tamplate is based on the "Class" model element and that all references to other model elements are relative to "Class". The most common things to be generated from a class is a Java or .NET class, data access objects, etc.
Another common metamodel element to generate from the the model as a whole ("Core.Model"). One can, for example, generate a database creation script, configuration files, etc.
The template is a mix of static text and macro-style commands which are used to extract data from the metamodel into the actual template. The beauty of Acceleo's Refective Editor is that the template can immediately be tested by applying it to one of the model elements in the model element browser.
This "preview functionality" displays a window that shows the static text in purple and the dynamic text (resulting from the macro statements) in black.
Services
Next to the templates, you can also create your own Java classes with functionality that can be accessed from the templates. This allows you full control over your metamodel, without making your templates overly complex.
Rock solid
A hidden gem is the great exception handling of the tool. I made some pretty weird mistakes in my templates, but still Acceleo remains stable and produces comprehensive error messages in both template previews and templates themselves, based on which errors can quickly be corrected.
Java? .NET?
The reader who has been paying close attention, might have noticed that my examples are build around generated C# classes. Indeed, most of our current projects are in .NET and so I concentrated primarely on generating .NET. That's no problem whatsoever, although we do miss out on some great features that Acceleo Pro (read on) has to offer the Java community.
And the results are?
In a bit of spare time, I managed to create Acceleo templates for the following artifacts (for our .NET environment):
- domain classes (entity, value, enumeration)
- repository & factory interfaces and implementations
- NHibernate mapping files
- database creation script (DDL)
- miscelanious Visual Studio solution, project and configuration files
- simple UI code to easily adapt for testing
This allowed us to get a very good head start on our project by immediately generating our domain model into our reference architecture. This was especiay valuable to the new developers that were not familiar with the reference architecture yet.
Availibility
As mentioned, Acceleo is Open Source, thus freely downloadable and usable for everyone. That's brilliant. There is a downside, though: only a subset of documentation and a handful of examples are available for free. The extensive user and reference manuals are for sale.
Acceleo Pro
Next to the Open Source Acceleo, Obeo offers Acceleo Pro. I was lucky enough to witness a very cool demo of this product. Now this is where I started wishing I was delivering Java projects instead of .NET. By far the coolest feature of Acceleo Pro is Acceleo Pro Tracibility. It is Obeo's solution to those round trip engineering desires that pop up once you're getting the hang of the ease of forward engineering. What it does is that it keeps track of what a developer does with the generated code. Acceleo already offers the ability to define "user code" blocks that will not be overwritten when regenerating code. But that does not prevent a developer to change generated code outside of these blocks. Acceleo Pro Tracibility uses the features of Eclipse cleverly to track these "illegal changes" and flag them. The developer can then choose what to do with the flag: mark the change as "user code", automatically update the template, etc. It's the most practical solution to keeping code and model in sync I've seen so far and it shows the power of having an all Eclipse based modeling and development environment. Unfortunately, this is where the .NET developers will have to stand by and watch the Java guys have a ball!
Conclusion
Rereading this post myself, I must say that it almost seems that I'm some kind of an Obeo spokesperson, but let me assure you: I'm not! I'm just genuinely excited about this very powerful, yet practical way of practicing MDA. If you are as sceptical about MDA as I was, but you definitely see potential, then I highly recommend you give Acceleo a try. It's free! Even if the full set of documentation is not freely available, I feel you can get very far with just the documentation and examples supplied on Obeo's website. And in the end there's still the Acceleo forum, which is closely monitored by very helpful Acceleo development team members.
6 comments:
Unlimited Earnings Potential - http://1greatfuture.com
Our company is rapidly growing and offers you an extraordinary income helping others succeed. The primary requirement is to follow up on client inquiries and point them in the right direction. It is stress free, rewarding and straightforward work.
For complete details: http://1greatfuture.com
(Please feel free to delete this post if you don't want it on your blog. Thanks for the informative blog and opportunity to post.)
Webmail program for the major free email sites -
http://inovasphere.com/mmail.htm
My Mail 1.0 is configured to work with AOL, Gmail, Hotmail, Linuxmail, and Yahoo. With My Mail 1.0 you get the benefit of premium services without having to pay site fees. My Mail 1.0 completely automates the process of sending and receiving mail from the major sites, saving you time and trouble.
My Mail 1.0 eliminates the need to visit web sites to send and receive mail, which increases the speed of sending and receiving email by over 80%, even if they do not offer what is known as POP3, IMAP and SMTP. My Mail 1.0's look is also fully customizable. One you use it, you'll never want to go back to the web site again to get your mail.
For complete details: http://inovasphere.com/mmail.htm
(Please feel free to delete this post if you don't want it on your blog. Thanks for the informative blog and opportunity to post.)
Interesting stuff, I will definitely give it a look over.
Not the best place to put this but have you considered adding an RSS or Atom feed to your site, if there is one I can't find it.
Colin, just in case you haven't found a way get a feed frm this site; try http://thinkarchitecture.blogspot.com/atom.xml.
This will give you an atom feed of the postings. HOpe this is what you need.
black mold exposureblack mold symptoms of exposurewrought iron garden gatesiron garden gates find them herefine thin hair hairstylessearch hair styles for fine thin hairnight vision binocularsbuy night vision binocularslipitor reactionslipitor allergic reactionsluxury beach resort in the philippines
afordable beach resorts in the philippineshomeopathy for eczema.baby eczema.save big with great mineral makeup bargainsmineral makeup wholesalersprodam iphone Apple prodam iphone prahacect iphone manualmanual for P 168 iphonefero 52 binocularsnight vision Fero 52 binocularsThe best night vision binoculars here
night vision binoculars bargainsfree photo albums computer programsfree software to make photo albumsfree tax formsprintable tax forms for free craftmatic air bedcraftmatic air bed adjustable info hereboyd air bedboyd night air bed lowest pricefind air beds in wisconsinbest air beds in wisconsincloud air beds
best cloud inflatable air bedssealy air beds portableportables air bedsrv luggage racksaluminum made rv luggage racksair bed raisedbest form raised air bedsbed air informercialsbest informercials bed airmattress sized air beds
bestair bed mattress antique doorknobsantique doorknob identification tipsdvd player troubleshootingtroubleshooting with the dvd playerflat panel television lcd vs plasmaflat panel lcd television versus plasma pic the bestadjustable bed air foam The best bed air foam
hoof prints antique equestrian printsantique hoof prints equestrian printsBuy air bedadjustablebuy the best adjustable air bedsair beds canadian storesCanadian stores for air beds
migraine causemigraine treatments floridaflorida headache clinicdrying dessicantair drying dessicantdessicant air dryerpediatric asthmaasthma specialistasthma children specialistcarpet cleaning dallas txcarpet cleaners dallascarpet cleaning dallas
vero beach vacationvero beach vacationsbeach vacation homes veroms beach vacationsms beach vacationms beach condosmaui beach vacationmaui beach vacationsmaui beach clubbeach vacationsyour beach vacationscheap beach vacations
bob hairstylebob haircutsbob layeredpob hairstylebobbedclassic bobCare for Curly HairTips for Curly Haircurly hair12r 22.5 best pricetires truck bustires 12r 22.5
washington new housenew house houstonnew house san antonionew house venturanew houston house houston house txstains removal dyestains removal clothesstains removalteeth whiteningteeth whiteningbright teeth
jennifer grey nosejennifer nose jobscalebrities nose jobsWomen with Big NosesWomen hairstylesBig Nose Women, hairstyles
Post a Comment