The Model Driven Architecture (MDA) approach
Model-Driven Architecture (MDA), as defined by the Object Management Group (OMG), is a framework that defines three levels of models, where each successively more specific model conforms to the models at the previous levels.
· The Business Model or Computation Independent Model (CIM) is a model of business processes and information. There is no mention of systems or technology at this level.
· The Platform Independent Model (PIM) is a technology-neutral system specification that conforms to a business model. This model reflects decisions on how information systems will be used in order to automate or accelerate some part of the business model, independently of the specific technology platform or platforms that will be used to provide this automation.
· The Platform Specific Model (PSM) is a technology specification that conforms to the PIM system specification. This model reflects choices of specific platforms in such areas as middleware technology, database technology, client software, application servers, etc.
Finally, one can also speak of the Platform Specific Implementation (PSI), with the technology platforms identified in the PSM provisioned to desired reference implementations. The PSI is thus a (partial or complete) operational system.
Once the MDA approach is applied to produce a set of architectural models, it can be independently determined if, how and when systems will be adapted to become part of the architecture, or replaced with components that better fit the target environment. Allowing both “wrap” and “replace” within the same architecture provides the ability to follow a strategic modernization path. Unlike monolithic approaches, it is not necessary to know how every system (or replacement component) is going to become part of the architecture to start the process of transforming the enterprise. The business-driven approach requires that components proposed to fill that architecture subscribe to the enterprise vision and view.
The basic tenants of MDA are simple – to move the focus of systems development from software artifacts to high-level architectural models. High level models are tuned to the problems being solved, resonating with domain experts. Provisioning processes are used to automate much of the process of producing the system in terms of technology artifacts, documentation and process support. These high-level models and provisioning processes are supported by open standards and COTS tooling. In MDA the heart of the system is models, not code.
Government human and automated systems embrace a long-term strategy that must survive changes in objectives, approach and technology. In the short term the technical foundation of systems is frequently fluid – systems, interfaces and technologies will be changing as the system is developed. To support short-term fluidity and long term stability systems must be designed for change. Only by designing with the expectation of changing requirements and changing technologies can systems fulfill their goals now and into the future, and be delivered on-time with minimal risk.
To support design for change we will employ a strategy that separates technology concerns from domain concerns – since both will change over time independently. A Model Driven Architecture (MDA) has proven to be the best approach to supporting design for change. MDA describes the system in terms of models and ontologies at both the domain and technology levels with an automated process for creating system implementations, tests and documentation. MDA is based on a set of emerging standards from the Object Management Group (OMG), leveraging the OMG’s leadership in open systems, interoperability and UML.
To support design for change with MDA, systems will be specified in terms of high-level ontologically aware models and that describe domain problems in domain terms, independent of the implementation technology. Another set of models defines the technology (Application servers, Grids, Agents, and legacy systems) in technology terms. An automated provisioning process is used to transform these high-level ontologically aware domain models into the executable and deployable components that execute the system. MDA the following advantages:
· Support for a fast-iterative spiral development process supported by automated provisioning
· Single point of change with automated propagation to and validation of all system artifacts
· An agile full life-cycle approach that ties together requirements, analysis, designs, implementation, tests, monitoring, documentation and the executing system
· Rapid, reliable and reproducible development due to the automated provisioning of systems from models
· Support for evolution and refinement of the technical architecture over time without re-implementing or re-designing the core domain logic – including runtime specification of rules, processes and policies
· Automated production of code, configurations, tests, validation and documentation
· Support for the automated integration of diverse new and legacy technologies
· Reduction in total lifecycle cost, time and labor due to automation and reuse
· Reduced risk of technology lock-in and obsolescence
· Increased ability to optimize the technologies and architecture before, during and after deployment
· Reduced risk of project failure due to the fast, iterative process and increased flexibility in technology choices and domain model evolution
· Use of standards integrates with existing processes supported by open and readily available resources
· Reduced lock-in to specific vendors or tools by using standards-based models, IDEFx, EDOC and UML
· Increased ability to evolve and adapt domain models, rules, and processes
For the above reasons, a Model Driven Architecture is central to a plan to address the requirements for a high degree of flexibility while reducing cost and risk. The combined leverage of early and incremental implementation combined with automated and repeatable testability provides a profound and lasting benefit to the effectiveness of the entire system for its entire lifetime.