ATHENA
MDI
 

What is MDA?

Model-driven development (MDD)

Model-driven development (MDD) represents an approach to system engineering where models are used in the understanding, design, construction, deployment, operation, maintenance and modification of software systems. Model transformation tools and services are used to align the different models, ensuring that they are consistent across e.g. different refinement levels.

Model-driven development in our view represents a business-driven approach to software systems development that starts with a computation independent model (CIM) describing the business context and business requirements. The CIM is refined to a platform independent model (PIM) which specifies services and interfaces that the software systems must provide to the business, independent of software technology platforms. The PIM is further refined to a platform specific model (PSM) which describes the realisation of the software systems with respect to the chosen software technology platforms. In addition to the business-driven approach, a model-driven framework should also address how to integrate and modernise existing legacy systems according to new business needs. This approach is known as architecture-driven modernisation (ADM) in the OMG.

Model-driven architecture (MDA)

The current state of the art in Model-Driven Engineering (MDE) is much influenced by the ongoing standardisation activities around the OMG Model Driven Architecture® (MDA®).

  • MDA is a framework which defines a model-driven approach to software systems development.
  • MDA encapsulates many important ideas - most notably the notion that real benefits can be obtained by using visual modelling languages to integrate the huge diversity of technologies used in the development of software systems.

MDA from 30.000 feet

MDA promotes the idea of designing software systems at a platform-independent model (PIM) level which can be transformed to software implementations with model transformation technologies that incorporates the knowledge of the execution platforms in question. A PIM can be retargeted to different platforms.

One of the original goals of model-driven development was to increase automation in software development. Bridging the gap between requirements and manual implementation is done by introducing new modelling and abstraction layers where development tools can provide interactive and automated support for software implementation.

Goals

The three primary goals of MDA are portability, interoperability and reusability. The MDA starts with the well-known and long established idea of separating the specification of the operation of the system from the details of the way the system uses the capabilities of its software execution platform (e.g. J2EE, CORBA, Microsoft .NET and Web services).

MDA provides an approach for:

  • specifying a system independently of the software execution platform that supports it;
  • specifying software execution platforms;
  • choosing a particular software execution platform for the system;
  • transforming the system specification into one for a particular software execution platform;

Basic concepts

The OMG MDA builds on the following basic concepts:

  • System: Existing or planned system. System may include anything: a program, a single computer system, some combination of parts of different systems
  • Model: A model of a system is a description or specification of that system and its environment for some certain purpose. A model is often presented as a combination of drawings and text.
  • Architecture: The architecture of a system is a specification of the parts and connectors of the system and the rules for the interactions of the parts using the connectors. MDA prescribes certain kinds of models to be used, how those models may be prepared and the relationships of the different kinds of models.
  • Viewpoint: A viewpoint on a system is a technique for abstraction using a selected set of architectural concepts and structuring rules, in order to focus on particular concerns within that system.
  • View: A viewpoint model or view of a system is a representation of that system from the perspective of a chosen viewpoint.
  • Platform: A platform is a set of subsystems and technologies that provide a coherent set of functionality through interfaces and specified usage patterns, which any application supported by that platform can use without concern for the details of how the functionality provided by the platform is implemented.

Model-driven development process

A system development process is model-driven if

  • the development is mainly carried out using conceptual models at different levels of abstraction and using various viewpoints
  • it distinguishes clearly between platform independent and platform specific models
  • models play a fundamental role, not only in the initial development phase, but also in maintenance, reuse and further development
  • models document the relations between various models, thereby providing a precise foundation for refinement as well as transformation

Three main abstraction levels

The OMG MDA defines three main abstraction levels:

  • Computation independent model (CIM)
    • The computational independent viewpoint is focused on the environment of the system and on the specific requirements of the system.
    • A CIM represents the computational independent viewpoint.
    • The CIM hides the structural details and, of course, the details related to the targeted platform.
  • Platform independent model (PIM)
    • A platform independent model is a view of the system from a platform independent viewpoint.
    • The platform independent viewpoint is focused on the operation of the system, hiding the platform specific details.
    • A PIM exhibits platform independence and is suitable for use with a number of different platforms of similar types.
    • The PIM gathers all the information needed to describe the behaviour of the system in a platform independent way.
  • Platform specific model (PSM)
    • A platform specific model is a view of the system from the platform specific viewpoint.
    • A PSM combines the specifications in the PIM with the details that specify how the system uses a particular type of platform.
    • The PSM represents the PIM taking into account the specific platform characteristics.

MDA and interoperability

Interoperability from the modelling point of view

The model-driven development approach represents a business-driven approach to software development. The MDA approach tries to build an interoperable ICT model, from enterprise models to technology models. Interoperability can be seen as a quality of enterprise software systems. Alignment of models is enabled through common metamodel. We can verify higher level interoperability through simulation. MDA also provides flexibility and adaptability to accomodate changes at a higher abstraction level.

Using transformations to achieve interoperability

Model transformation can “assure” to carry forward of interoperability achieved and/or agreed on higher level down to infrastructure (lower level). Furthermore, it allows document transformations on the fly, and can contribute to new approaches for semantic interpretations on information exchanges.