In short, AndroMDA is an open source MDA framework - it takes any number of models (usually UML models stored in XMI produced from case-tools) combined with any number of andromda plugins (cartridge and translation-libraries) and produces any number of custom components. You can generate components for any language you want, Java, .Net, HTML, PHP, anything really, you just write (or customize existing) plugins to support it and you're good to go.
At the time of this writing AndroMDA is mostly used by developers working with J2EE technologies. Out-of-the-box AndroMDA can setup a new J2EE project from scratch, in which code is generated from a UML model. You can choose to generate code for Hibernate, EJB, Spring, WebServices, and Struts. The generated code is automatically integrated into the build process. In doing so you will only need to spend a little time getting to know AndroMDA and you're good to go, you will see it is very efficient to have the code generated for you, while keeping your focus on business logic.
Additionally AndroMDA ships with a few tools to make your life easier:
In the classical sense of software engineering, one first determines what the system needs to do (the analysis phase). In this step the developer or architect has something in mind that will eventually be translated into a formal and platform specific system, it will require an actual person to implement this translation using a language such as ASM, C, C++, Java, ...
With MDA we attempt to simplify the job of the developer/architect, we achieve this by making it easier for him/her to digitalize the ideas he/she has in mind (the Mental Model or MM): we let him/her create the Platform Independent Model or PIM, this model is a one-or-one mapping of the MM into a more formal language such as UML. This approach has several obvious advantages:
The next step is to have a way to transform the PIM into program code, the MDA way of doing this is to gradually refine the model into a more Platform Specific Model or PSM and marshall this model into the code that would actually be written manually.
This is where AndroMDA kicks in: different cartridges exist that will analyze the given PIM and construct a PSM with which templates are used to produce code. You'll see that a lot of code often is boilerplate and will never require a manual change, if some code does require a change there are a few different ways of elegantly solving that problem.
A very important thing to know about AndroMDA is that the transformation process is controlled using plugins called cartridges and each cartridge is very easy to tune: you will never encounter a case where you will not be able to have your specific code generated from the model. Any type of customization is possible, therefore you won't get stuck.
On the other hand it is very important to realize AndroMDA is here to help eliminate boring and repetitive tasks, while at the same time allowing your model to really communicate what the system is doing. it is not meant be a Silver Bullet solution where the computer takes over your job and you just sit back and stop thinking.
AndroMDA reads models into memory making these object models available to its plugins. These plugins define exactly what AndroMDA will and will NOT generate. Each plugin is completely customizable to a project's specific needs.
We invite you to get to know AndroMDA, here are three links that will point you in the right direction:
You would want to use AndroMDA for a number of reasons:
As opposed to other MDA tools we are not spending our time and effort promoting this free software product, neither are we trying to attract developers using catchy slogans or aggressive sales tactics. Instead, we let the product speak for itself, we believe that a great product can only be achieved when strict criteria are met! This is what AndroMDA guarantees: