model modeldriven architecture mda is a software design approach for the development of software systems it provides a set of guidelines for the structuring of specifications which are expressed as models modeldriven architecture is a kind of domain engineering and supports modeldriven engineering of software systems it was launched by the object management group omg in 2001 overview then given a platform model corresponding to corba net the web etc the pim is translated to one or more platformspecific models psms that computers can run this requires mappings and transformations and should be modeled too the omg organization provides rough specifications rather than implementations often as answers to requests for proposals rfps implementations come from private companies or open source groups related standards the mda model is related to multiple standards including the unified modeling language uml the metaobject facility mof xml metadata interchange xmi enterprise distributed object computing edoc the software process engineering metamodel spem and the common warehouse metamodel cwm note that the term architecture in modeldriven architecture does not refer to the architecture of the system being modeled but rather to the architecture of the various standards and model forms that serve as the technology basis for mda executable uml was the uml profile used when mda was born now the omg is promoting fuml instead the action language for fuml is alf trademark the object management group holds registered trademarks on the term model driven architecture and its acronym mda as well as trademarks for terms such as model based application development model driven application development model based application development model based programming model driven systems and others modeldriven architecture topics mda approach omg focuses modeldriven architecture on forward engineering ie producing code from abstract humanelaborated modelling diagrams eg class diagrams knowledge discovery metamodel kdm is the furthest along of these efforts and describes information systems in terms of various assets programs specifications data test files database schemas etc as the concepts and technologies used to realize designs and the concepts and technologies used to realize architectures have changed at their own pace decoupling them allows system developers to choose from the best and most fitting in both domains the design addresses the functional use case requirements while architecture provides the infrastructure through which nonfunctional requirements like scalability reliability and performance are realized mda envisages that the platform independent model pim which represents a conceptual design realizing the functional requirements will survive changes in realization technologies and software architectures of particular importance to modeldriven architecture is the notion of model transformation a specific standard language for model transformation has been defined by omg called qvt mda tools the omg organization provides rough specifications rather than implementations often as answers to requests for proposals rfps the omg documents the overall process in a document called the mda guide basically an mda tool is a tool used to develop interpret compare align measure verify transform etc models or metamodels in the following section model is interpreted as meaning any kind of model eg a uml model or metamodel eg the cwm metamodel in any mda approach we have essentially two kinds of models initial models are created manually by human agents while derived models are created automatically by programs for example an analyst may create a uml initial model from its observation of some loose business situation while a java model may be automatically derived from this uml model by a model transformation operation an mda tool may be a tool used to check models for completeness inconsistencies or error and warning conditions also used to calculate metrics for the model some tools perform more than one of the functions listed above for example some creation tools may also have transformation and test capabilities there are other tools that are solely for creation solely for graphical presentation solely for transformation etc implementations of the omg specifications come from private companies or open source groups one important source of implementations for omg specifications is the eclipse foundation ef many implementations of omg modeling standards may be found in the eclipse modeling framework emf or graphical modeling framework gmf the eclipse foundation is also developing other tools of various profiles as gmt eclipses compliance to omg specifications is often not strict this is true for example for omgs emof standard which eclipse approximates with its ecore implementation more examples may be found in the m2m project implementing the qvt standard or in the m2t project implementing the mof2text standard one should be careful not to confuse the list of mda tools and the list of uml tools the former being much broader this distinction can be made more general by distinguishing variable metamodel tools and fixed metamodel tools a uml case tool is typically a fixed metamodel tool since it has been hardwired to work only with a given version of the uml metamodel eg uml 21 on the contrary other tools have internal generic capabilities allowing them to adapt to arbitrary metamodels or to a particular kind of metamodels usually mda tools focus rudimentary architecture specification although in some cases the tools are architectureindependent or platform independent simple examples of architecture specifications include selecting one of a number of supported reference architectures like java ee or microsoft net specifying the architecture at a finer level including the choice of presentation layer technology business logic layer technology persistence technology and persistence mapping technology eg objectrelational mapper metadata information about data mda concerns some key concepts that underpin the mda approach launched in 2001 were first elucidated by the shlaermellor method during the late 1980s indeed a key absent technical standard of the mda approach that of an action language syntax for executable uml has been bridged by some vendors by adapting the original shlaermellor action language modified for uml potential concerns that have been raised with the omg mda approach include incomplete standards the mda approach is underpinned by a variety of technical standards some of which are yet to be specified eg an action semantic language for xtuml or are yet to be implemented in a standard manner eg a qvt transformation engine or a pim with a virtual execution environment vendor lockin although mda was conceived as an approach for achieving technical platform independence current mda vendors have been reluctant to engineer their mda toolsets to be interoperable such an outcome could result in vendor lockin for those pursuing an mda approach idealistic mda is conceived as a forward engineering approach in which models that incorporate action language programming are transformed into implementation artifacts eg executable code database schema in one direction via a fully or partially automated generation step this aligns with omgs vision that mda should allow modelling of a problem domains full complexity in uml and related standards with subsequent transformation to a complete executable application pragmatic mda blends the literal standards from omgs mda with more traditional model driven mechanisms such as roundtrip engineering that provides support for adapting implementation artifacts specialised skillsets practitioners of mda based software engineering are as with other toolsets required to have a high level of expertise in their field current expert mda practitioners often referred to as modellerarchitects are scarce relative to the availability of traditional developers omg track record the omg consortium who sponsor the mda approach and own the mda trademark also introduced and sponsored the corba standard which itself failed to materialise as a widely utilised standard uncertain value proposition uvp as discussed the vision of mda allows for the specification of a system as an abstract model which may be realized as a concrete implementation program for a particular computing platform eg net thus an application that has been successfully developed via a pure mda approach could theoretically be ported to a newer release net platform or even a java platform in a deterministic manner although significant questions remain as to realworld practicalities during translation such as user interface implementation whether this capability represents a significant value proposition remains a question for particular adopters regardless adopters of mda who are seeking value via an alternative to programming should be very careful when assessing this approach the complexity of any given problem domain will always remain and the programming of business logic needs to be undertaken in mda as with any other approach the difference with mda is that the programming language used eg xtuml is more abstract than say java or c and exists interwoven with traditional uml artifacts eg class diagrams whether programming in a language that is more abstract than mainstream 3gl languages will result in systems of better quality cheaper cost or faster delivery is a question that has yet to be adequately answered mda was recognized as a possible way to bring various independently developed standardized solutions together for the simulation community it was recommended as a business and industry based alternative to yet another us dod mandated standard conferences among the various conferences on this topic we may mention ecmda the european conference on mda and also models former firmed as uml conference series till 2004 the italian forum on mda in collaboration with the omg there are also several conferences and workshops at oopsla ecoop mainly focusing on more specific aspects of mda like model transformation model composition and generation code generation controversy code generation means that the user abstractly models solutions which are connoted by some model data and then an automated tool derives from the models parts or all of the source code for the software system in some tools the user can provide a skeleton of the program source code in the form of a source code template where predefined tokens are then replaced with program source code parts during the code generation process an often cited criticism is that the uml diagrams just lack the detail which is needed to contain the same information as is covered with the program source some developers even claim that the code is the design atlas transformation language automatic programming domaindriven design enterprise resource planning executable uml executable architecture metaobject facility metamodeling modeldriven engineering modeldriven integration modeldriven security model driven interoperability model driven application model transformation language modeling maturity levels platformindependent model platformspecific model software factory unified modeling language universal systems language qvt web engineering webml kevin lano modeldriven software development with uml and java cengage learning isbn9781844809523 david s frankel model driven architecture applying mda to enterprise computing john wiley sons isbn0471319201 meghan kiffer the mda journal model driven architecture straight from the masters isbn0929652258 anneke kleppe 2003 mda explained the model driven architecture practice and promise addisonwesley isbn032119442x stephen j mellor 2004 mda distilled principles of model driven architecture addisonwesley professional isbn0201788918 chris raistrick model driven architecture with executable uml cambridge university press isbn0521537711 marco brambilla jordi cabot manuel wimmer model driven software engineering in practice foreword by richard soley omg chairman morgan claypool usa 2012 synthesis lectures on software engineering 1 182 pages isbn9781608458820 paperback isbn9781608458837 ebook httpwwwmdsebookcom stanley j sewall executive justification for mda soylu a de causmaecker patrick merging model driven and ontology driven system development approaches pervasive computing perspective in proc 24th intl symposium on computer and information sciences 2009 pp 730735 omgs mda web site modeldriven software development course b tekinerdogan bilkent university vteunified modeling languageactors organizations object management group uml partners persons grady booch ivar jacobson james rumbaugh conceptsobject oriented objectoriented programming objectoriented analysis and design objectoriented modeling structure actor attribute artifact class component interface object package profile diagram behavior activity event message method state use case relationships association composition dependency generalization or inheritance extensibility profile stereotype other multiplicity diagramsstructure class component composite structure deployment object package behaviour activity state machine use case interaction communications sequence interaction overview timing derived languages systems modeling language sysml uml exchange format uxf xml metadata interchange xmi executable uml xuml other topics glossary of uml terms rational unified process list of unified modeling language tools object modeling in color authority control gnd 48323652 