Sie sind auf Seite 1von 20

Model Driven Engineering

Basic Concepts
• 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. The text may be in a modeling language
or in a natural language .

• Application

The term application is used to refer to computer software delivering


certain functionality.

• Model Transformation
Model transformation is the process of converting one model to
another model of the same system .
Basic Concepts
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.

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 .

In principle a platform is a place to launch software on.

Examples of platforms are operation systems, the Java Virtual


Machine, runtime libraries of programming languages, etc.
MDA
• MDA, defined and supported by the OMG (Object Management
Group), defines an approach to IT system specification that
separates the specification of system functionalities from the
specification of the implementation of these functionalities on a
particular technological platform.

• This approach places the emphasis on models, provides a higher


level of abstraction during development, and enables significant
decoupling between platform-independent models (PIM) and
platform-specific models (PSM).

• Importance to model-driven architecture are the notions of


metamodel and model transformation.
MDA process for complex
systems
A metaphor for Model Driven
Engineering
USE
• The main effort moves from programming to
modeling.
• Based on functional requirements a model has
to be developed.
• This model can be automatically converted into
working software with a tool generating code
from the model or by interpreting the model with
a runtime environment
Elements of Model Driven
Engineering
• An executable model. This can be accomplished by using Domain-Specific
Languages (DSL) to specify the model.

• A methodology to come from functional requirements, documentation, or


something like that to the model.

• Tools to define the DSLs and to specify the model. We also need tools to
ensure the quality of the model.

• A generator or interpreter for making the model executable.

• An architecture describing the type of applications delivered by the model


driven approach.
AN AEROSPACE DEFENSE
FLIGHT

DISPLAY AND CONTROL


SYSTEM
• A major aerospace company in the defense industry
needed to develop a complex
multifunctional flight display and control system,
whose development involved both
systems teams and software teams scattered across
several sites.
• This project was expected to deliver both short-term
productivity benefits and ongoing strategic value.
Project requirements included:
• A tight schedule and budget restrictions

• A mandate to follow a formal software development process in compliance


with Capability Maturity Model Integration (CMMI)).

• Adherence to various aerospace industry certification guidelines, such as


the Safety Critical Framework (SCF), which is based on DO-178B and
requires documentation of verification plans, artifacts, and structural
coverage
• Physical equipment certification by regulatory agencies, which includes
associated software

• The creation of an effective standard development process that spans


both company and supplier sites
How MDA Was Used

The company had several reasons for choosing an MDA approach. First, they felt
there was a communications gap between the systems and software teams, and they
wanted to provide a common language (in this case, UML) that would lessen the chance of
misunderstandings.

• Previously, each of these teams had different configuration management and development tools,
and there was no common development framework,
even for design efforts.

• Second, they wanted a design approach that allowed late feedback to be incorporated, and
implementation and design artifacts to remain synchronized.

• Finally, the company was concerned about productivity and wanted to automate the coding process
as much as possible.

• The project captured requirements and architectural models (e.g.,
the PIM) in
UML.

• The company intended that UML would give everyone on the project
— including

the supplier base — a common vocabulary for discussing the
system. In addition, the company used UML to specify both system
and software requirements, and to allow system engineers to
simulate models to ensure they work as intended before allocating
them to a particular software component.
• The company contracted with EmbeddedPlus to create
the MDA-driven modules,
the supporting models, and the runtime framework.

• A PSM and C++ framework was


generated from the PIM, and this PSM was marked up
for C++ code generation (allowing
c++ code to be stored in the model) using an API
available in the runtime framework.

• In turn, the PSM was used to generate platform-specific


executables for two different
systems — a COTS-supported operating system and a
SCF-supported OS.
Results and Benefits

UML and MDA were critically important to the success of the project.

• UML succeeded in providing a common language, thus improving


communication and
reducing misunderstandings.

• UML also raised the level of abstraction to allow the focus to be on


design rather than implementation.

• Automatic code generation then ensured that


implementations did not deviate from the design.
• The MDA-based tools provided a design environment that supported immediate
feedback as well as validation of requirements.

• Automatic code generation provided productivity improvements, and the automated,


integrated development and verification environment reduced requirement volatility.

• The generated code required a framework to "run on," so a framework version


certified to conform to SCF/D0-178B was used.

• Code generation went well beyond providing a structural framework (for instance, the
definition of the C++ class and methods) — it supported generation of behavioral
codefrom UML state machines, including the details of the methods.

• In all, the client estimated that MDA resulted in a 30% reduction in traditional
development costs, and most of this was caused by a dramatic decrease in defects
and re-work in the MDA-based components.
Advantages for the company..
• Upon completion, those components had only 2% of the defect rate of other hand-
coded components.

• “ The immediate benefits realized through the use of UML and MDA on this project
included:

• Fewer resources required.


• Reduced re-work costs
• Complete synchronization of code and design artifacts
• Improved systems and software team communication, and shorter product
delivery cycles.
Long-term/strategic benefits included:
• Faster development of future applications
• A development process that is standardized and enforced through automation
• "Best practice" development techniques using UML and MDA as aerospace and
IT industry standards
• Increasing ROI as more projects utilize the technology
• Ability to use the PIM for future system updates
• MDA ADVANTAGES
• Full support for the lifecycle
• Smooth integration
• Reduced costs
• Better modeling designs
• Reuse of applications, code, training and people
• Scalability, robustness & security via generated code
• Better supports emerging technologies

MDA DISADVANTAGES
• Need for more mature MDA modelling tools
• Need more translation between PIMs and PSMs
• Need better coordination between mappings of different models
• Need more tools to support model driven testing
• Need more tools for version control and distributed working
• Need more model compilers
CONCLUSION

• With the UML’s modeling techniques and the MDA’s architectural


framework, individuals and teams are further empowered not only to
simply address change and complexity, but leverage change and
complexity for a competitive advantage by capturing and leveraging
knowledge encoded in models.

• Furthermore, it is experience, experimentation, and application of


the UML, MDA, and other associated standards and technologies
that will enable us to realize their benefits.

• It focus on better modeling forces for good designs

• It helps in reuse of applications

• It also supports the emerging technologies

Das könnte Ihnen auch gefallen