Gartner identified MDA as an "on the rise" technology in its 2006 "Hype Cycle". There were others who promoted, praised and supported this concept. In year 2014 while managers, clients and organizations are focusing on Agile development (everything agile) focus on MDA seems lost but there are strong reasons to believe on engineering side of the software development (more argument on this topic later).
Note: There were many companies or organizations who were working in this area and they had some tools for MDA but many of them moved their products to opensource, went to eclipse project. Some of them were acquired. If you try to look into this topic you will find most of the writings from year 2002 to 2004 or maximum till 2006. So it is a dead topic (looks like).
What is MDA or model driven architecture?
Basic idea is to model the domain or business (requirements) and the model should not be platform, programming language or computation specific. It should represent the business.The advantage of this approach is that you have a model using which you should be able to go for any language or platform of your choice for implementation. If you don't follow this approach and you only have a platform specific model/code it will be difficult to change the platform. If you have a platform independent model, using a transformation tool you can create platform specific model of your preferred language or platform and by using another tool you can generate code from this platform specific model.
PIM
Platform independent model is the starting of MDA. Generally it is created using UML (unified modeling language) but as per OMG (object management group who defines the specification) UML is not mandatory to define PIM or other MDA models. OMG specification says: "model can be created using any modeling language which is based on MOF (MetaObject Facility). PIM models business functionality in platform and language neutral way. PIM can further be divided in to two parts: computation independent model (CIM) and platform independent component model (PICM)PSM
Platform specific model is the model which is derived from PIM and this translation is done by MDA tools. From PSM, code can be generated using tools.Mapping
It defines how PIM will be transformed in to PSM. It is rules to transform PIM to PSM.Transformation
Process of converting PIM to PSMMDA Specification
- Unified Modeling Language (UML) [Note: not mandatory as per OMG]
- Meta-Object Facility (MOF)
- XML Metadata Interchange (XMI)
- Enterprise Distributed Object Computing (EDOC)
- Software Process Engineering Metamodel (SPEM)
- Common Warehouse Metamodel (CWM)
Steps in MDA
MDA Tools
Open source tools
Tool | Community | Features |
AndroMDA * | http://www.andromda.org/ | Takes model and generates code. Model elements are processed using plugins called cartridge. Available cartridges are: BPM4Struts, jBPM, JSF, EJB, EJB3, Hibernate, Java, Meta, Spring, WebService, XmlSchema |
Eclipse Modeling Framework | http://www.eclipse.org/modeling/mdt/ | Set of framework and tools to give platform for modelling tools |
Jamda | http://jamda.sourceforge.net/ | It's model compiler. Takes domain model, adds other classes and generates code. J2EE focused ( requires a reasonable level of Java knowledge to use) |
OpenAmeos | https://www.scopeforge.de/cb/project/8 | Templates for Java, C++, C, Ada95, C# UML 1.x supported and moving to UML 2.0 |
openMDX | http://www.openmdx.org/ | As per its website: " helps you in writing service-oriented, platform-independent applications". UML Modeling tool is separately needed. J2EE focused |
Modelio | http://www.modelio.org/ | UML Modeler, BPMN , Java code generation, XMI import/export |
Commercial Tools
Tool | Company | Features |
UModel * | Altova | Enterprise edition supports platform independent UML modeling and model transformation along with basic and professional features like UML modeling, database modeling etc. UML 2.4 support Round trip engineering (code to model, model to code) Code generation in Java, C# and Visual Basic (versions of Java, C# not mentioned) |
Together | Borland (a Microfocus Company as of writing) | Code generators for Java, J2EE®, C++, and C#. Modeling, BMN |
Rational Software Architect * | IBM | UML modeling, codegeneration, roundtrip, BPMN support |
Blu Age Forward | Blu Age (owned by- Netfective Technology) | Eclipse built-in MDA tool. JEE, .NET Company more focused in providing legacy modernization solutions |
Rhapsody | IBM | Coexists with RSA. Came from Telelogic. More expertise in system engineering, realtime software development. Visually develop C++, C, Java and C# applications using UML or AUTOSAR, reverse engineering, generate code frames (including MISRA-C and MISRA-C++) |
Enterprise Architect * | Sparxsystems | Built-in transformation for C#, DDL,EJB, Java, JUnit, NUnit, WSDL, XSD |
Factors to consider while selecting a MDA tool
Full MDA tool or partial (PIM to code generation and vice versa complete round-trip)
Code generation method
Script language (if applicable)
PIM to PSM capability
Model validation
Version of Meta Object Facility (MOF)
XMI import/export support
Commercial or Opensource (License cost to use for commercial purposes)
Support for executable model creation and ease of creating executable models
Vendor lock-in due to generated code
Comments
Post a Comment