You are on page 1of 4

Cs(2) ‫أبانوب عماد زكي غبور‬: ‫االسم‬

Model-driven engineering
Model-driven engineering (MDE) is a method of
developing software that is iterative and incremental.
Supporting the analysis and verification of software
systems produced using the MDE paradigm necessitates
the use of incrementality when doing these critical tasks in
a more optimised manner.
Communicating state machines are one of the many
formalisms employed by MDE tools to model and explain
the behaviors of distributed, concurrent, and real-time
reactive systems (e.g., automotive and avionics systems).
Modeling the general behaviors of such systems is done
in a modular fashion and at several degrees of abstraction
(i.e., it starts with modelling the behaviors of the individual
objects in the system first then modelling the interaction
between these objects). Similarly, examining and
confirming the validity of produced models to assure their
quality and integrity is done on two different levels. The
intralevel is used to assess the accuracy of individual
models in isolation from the others, whereas the interlevel
is used to assess the overall interoperability of those
communicating with one another.
Building the system's global state space (also known as
the global reachability tree) can help with study of the
overall behavior of a system of communicating state
machines. This procedure is quite expensive, and it may
suffer from the state explosion problem in some
circumstances. Symbolic execution is a technique that can
be used to produce an abstract and bounded
representation of the system global state space, known as
a symbolic execution tree (SET), although the size of the
resulting trees can be very huge, especially in large and
complicated systems with multiple objects. As the system

1
Cs(2) ‫أبانوب عماد زكي غبور‬: ‫االسم‬

evolves, one option to avoid regenerating the entire SET


and redoing any past SET-based studies is to use the
previous SET and its analysis results in optimising the
process of generating the system's SET after the change.
In this chapter, we present two optimization strategies,
memorization (MSE) and dependency analysis (DSE), to
steer the consecutive runs of the symbolic execution
technique toward the effected regions of a growing state
machine model. When compared to the typical symbolic
execution technique, the evaluation findings of both
techniques indicated significant reductions in several
circumstances.
pros
1-Productivity is substantially higher since arduous and
dull parts of the code are generated automatically. Code
generators generate thousands of codes.
2-Agile development: The MDSE software development
method is agile because any unanticipated changes that
occur during or after development are disseminated
promptly and efficiently.
3-Improved Quality: Because of differences and variations
in knowledge throughout development, bulky handwritten
code has inconsistent quality. These disparities arise as a
result of separate developers working on different abstract
representations of the same product. As a result, the bug
fixes and code enhancements caused by human
incompetence are significantly decreased when utilising a
generator, boosting the overall quality of the created
product.
4-Greater consistency in API design and naming
conventions because instead of programming the code in
fragments by various coders, it is done by a single
generator.
2
Cs(2) ‫أبانوب عماد زكي غبور‬: ‫االسم‬

5-More time can be given to the designing part of the


software as time is reduced in coding and implementation.
This increased design time helps in making the software
more efficient and robust.
cons
1-First, a code generator must be built, which is a
monumental undertaking in and of itself, and it is not
certain that once written, the code generator will be
sufficient for all other software projects.
2-The generic approach is not necessarily appropriate in
all circumstances.
3-There will always be some code that must be
handwritten due to the peculiarities of the specific area of
the difficulties.
4-Generality can be a drawback, for instance:
(1)Databases must be properly constructed and
normalized.
(2)Grammars must belong to a specified class.
5-Many companies have invested heavily in their existing
traditional hard coded software systems and are therefore
hesitant to adopt a new strategy.
Types of model
1-A computation independent model (CIM)
These describe the important domain abstractions that are
employed in a system. Domain models are another name
for CIMs.
2-A platform independent model (PIM)
These simulate the system's operation without regard for
its implementation. PIMs are typically described using

3
Cs(2) ‫أبانوب عماد زكي غبور‬: ‫االسم‬

UML models that depict the static system structure as well


as how it responds to external and internal events.
3-Platform specific models (PSM)
These are platform-independent model transformations
with a distinct PSM for each application platform. In
principle, there may be several layers of PSM, with each
layer providing platform-specific information.

______________________________________
_________________________________
_____________________________
___________________

You might also like