2 APPLYING MDSD IN
PRACTICE
2.1 Ibykus AP Platform
One example for such a practical approach is the gen-
erative development and interpretative runtime envi-
ronment Ibykus AP (Ibykus, 2007). It is focused
to build large application systems in the domain of
business, administration and governmental processes.
Ibykus AP has been used to successfully develop a
number of complex software systems during the last
7 years e. g.
• systems for the management of agricultural
promotion fonds of the European Union, the
controlling of financial resources and other e-
governmental administration processes in several
German federal states,
• applications to support business processes like
claims and contract handling, project and inno-
vation management as well as other industrial
projects.
The generative development process of Ibykus AP
is based on a repository to hold a comprehensive
model of the software application to be built. The
modeling is based on concepts like domain specific
application classes like Process, Process Participant,
Data Object and others. These domain classes can
be interrelated and be equipped with data attributes,
processing algorithms, workflows and more domain
specific modeling features. Practical experiences in
modeling application logic prove the inadequateness
of UML based DSLs, at least in the domain of admin-
istrative and business process management. Profes-
sionals in this area regularly do not accept and com-
prehend UML based DSLs as means of expression for
analysis and design of application logic: misunder-
standings and mistakes did occur. Therefore at Ibykus
an informal notation with a fixed set of simple graph-
ical elements to represent the mentioned conceptual
items is used. It has to be emphasized, that the mod-
eling can be completely focused on to the application
domain level. No technical aspects like data storage,
transaction and error handling, user interface events,
recording of histories need to be modeled explicitly
then. These are all addressed by the software genera-
tion process and the interpretative runtime component
of Ibykus AP as shown in figure 1.
Based on the software model on the one hand
the application specific processing logic and the sur-
rounding technical support code are generated. On the
other hand runtime configuration structures are popu-
lated to implement the structural aspects of the target
application. This configuration is interpreted by the
Ibykus AP runtime system to establish the infrastruc-
ture needed to run the built application. A stable stor-
age structure is dynamically configured to keep the
needed application data and likewise the GUI is con-
figured.
2.2 Combining Code Generation and
DSL Interpretation
DSLs are an expressive way to formally de-
scribe stakeholder’s requirements and the resulting
application-level software design in domain specific
terms. The process of transforming these DSL models
into platform specific models is often done with help
of generative techniques. A stepwise transformation
(model-model-transformation) can also be applied as
proposed by MDA. Code generation is only one pos-
sibility to extract (parts of) the final application.
A different option to DSL-based code generators
would be DSL interpreters. Such interpreters work on
the runtime level of a system. DSL terms will be read
by an interpreter and translated into operations on the
targeted platform. At runtime a DSL interpreter de-
cides how to map a specific DSL term onto the plat-
form. For instance the DSL term booking has a field
amount. If a user creates a new booking the field (text
control) amount is displayed as a part of the form on
the screen by the DSL interpreter. After submitting
this form the interpreter inserts a corresponding entry
into the database.
But, do we need to decide between an interpre-
tative or generative approach? Generators and in-
terpreters do not rule out each other. Far from it!
The construction of software could benefit of a mix-
ture of these approaches much more. En route from
High-Level DSL terms to computer platforms a first
generative step results in intermediate language con-
structs. These constructs are interpreted at run time by
a generic interpreter. Thereby, the intermediate lan-
guage could be a script-based programming language
or a Low-Level DSL or even entries in some control
structures.
In both approaches modeling is done application-
domain- and customer-oriented. Fundamental con-
cepts of MDSD/MDA have to be kept in mind. In
the end DSL interpreters and DSL generators are a
different technical implementation of the same con-
cept. A DSL interpreter works on the logical level
of a DSL. The main functionality is part of the run-
time level while in case of generative programming
the knowledge of the architecture is within genera-
tors.
One example for a concrete usage of the concept
ICEIS 2007 - International Conference on Enterprise Information Systems
280