=Paper=
{{Paper
|id=Vol-2019/mdetools_6
|storemode=property
|title=
|pdfUrl=https://ceur-ws.org/Vol-2019/mdetools_6.pdf
|volume=Vol-2019
|authors=Tim Bolender,Bernhard Rumpe,Andreas Wortmann
|dblpUrl=https://dblp.org/rec/conf/models/BolenderRW17
}}
====
Investigating the Effects of Integrating Handcrafted
Code in Model-Driven Engineering
Tim Bolender, Bernhard Rumpe, Andreas Wortmann
Software Engineering
RWTH Aachen University
Aachen, Germany
www.se-rwth.de
Abstract—Where model-driven engineering (MDE) requires Java-like action language. We provide the software architecture
models to interact with general-purpose programming language without component behavior to the participants as well as a
(GPL) artifacts, sophisticated patterns for the integration of code generator that translates the software architectures to
generated and handcrafted code are required. This raises a gap
between modeling and programming which requires developers Java code executable with the Simbad1 3D robot simulator.
to switch between both activities and their contexts. Action The treatment group develops the components’ behavior with
languages that enable interacting with GPL artifacts on model embedded, restricted Java/P, which is the action language of
level can alleviate the need for switching, but cannot rely on the the UML/P [6] language family. The control group develops
mature development tools of GPLs. We propose to investigate the components’ behavior through integrating of handcrafted
the acceptance and effects of MDE with action languages that
GPL interaction. To this effect, we present a study design for Java code. We record the 100-minute development sessions
comparing MDE with integration of handcrafted artifacts to and instrument the development environment with analyses
pervasive MDE with action languages. In this study, participants on the quality of the component behavior under develop-
develop the behavior of selected components of the software ment. Together with pre-study questionnaires and post-study
architecture of a small autonomous robot using either the questionnaires, we aim to uncover whether pervasive MDE
delegation pattern or a Java-like action language. With this,
we aim to uncover which method yields better acceptance and with action languages or programming of component behavior
performance results. method yields better acceptance and performance results.
In the following, Sec. II introduces the MontiArcAutomaton
I. I NTRODUCTION architecture modeling infrastructure and the Java/P action lan-
Programming raises a conceptual gap between the problem guage, before Sec. III details the study design and ?? discusses
domains and the solution domains of discourse [1]. Model- threats to its validity. Then Sec. V describes preliminary results
driven engineering (MDE) aims at reducing this gap by lifting from a pilot study andSec. VI debates related studies. Sec. VII
more abstract models to primary development artifacts [2]. concludes.
Such models are better suited to analysis, communication,
documentation, and transformation. However, where models II. P RELIMINARIES
require interaction with general-purpose programming lan- To prevent architecture modelers from switching between
guage (GPL) artifacts, such as legacy code, libraries, or modeling and programming, we embed the Java/P [6] action
frameworks, modeling infrastructures usually require bridging language into components of the MontiArcAutomaton [5] ar-
this gap by integrating handcrafted with generated artifacts. chitecture description language. This section introduces both.
For this, various patterns have been developed [3], all of which
require the modeler to switch from more abstract modeling A. The Java/P Action Language
activities to very technology-specific programming activities, Java/P [6] is a MontiCore [7] language resembling Java 1.7.
which require different tooling and different mindsets. Where It is used as action language in the UML/P [6] language family
developers switch between various activities 47 times per and supports the full concrete syntax and abstract syntax of
hour on average already [4], the additional activity switching Java 1.7 as well as its context condition rules. MontiCore’s
required by such MDE might ultimately hinder development. code generation framework translates Java/P models into Java
We aim to investigate the effect of pervasive MDE using artifacts. Reifying a Java as a modeling language enables to
action languages in a comparative modeling study. In this easily extend it with new modeling elements (for instance, the
study, the participants develop the behavior of MontiArc- notions of components as in ArchJava [8]), context conditions
Automaton [5] component models of a small autonomous rules (such as preventing assignment of null values), and
robot. To this end, they either integrate handcrafted code
through a variant of the delegation pattern [3] or leverage a 1 Simbad website: http://simbad.sourceforge.net/
component type name instance name outgoing port incoming port
III. S TUDY D ESIGN
BallFinder
SearchControl MovementControl
searchCtrl movement There are various means to achieve pervasive MDE using
InternalControl Movement
Camera
b
Boolean
b b ctrl m m
Command
c c
MotorControl l different language combinations as well as various patterns
cam ctrl r
c
c
l l to integrate handcrafted code (cf. [3]) and measuring their
Lamp
Collision c
Boolean
c
Command
l
WheelMotor differences requires concretizing the research question to com-
colli left(„left“)
b Logger typed
parable implementations. We use AJava as representative of
WheelMotor
atomic
c
log(„search.log“) connector r
right(„right“)
pervasive MDE as both ADLs and action languages are com-
component
m
l
mon modeling techniques. For the integration of handcrafted
StatusLamp
l
lamp code, we selected the delegation pattern [12] as representative,
which has been employed in various modeling infrastructures.
Figure 1. MontiArcAutomaton architecture of a small autonomous robot This section describes the design of our study based on these
capable of finding and retrieving balls in a simulated environment. representatives.
A. Research Goals
transformations (such as automatically creating getters and When planning an experiment, it is crucial to measure only
setters). Moreover, MontiCore produces a parser for Java/P the properties from which the researchers can correctly draw
programs that supports processing Java 1.7 classes, i.e., lifting conclusions. To answer our research question systematically,
legacy level to model level. This enables to model Java we applied the Goal-Question-Metric (GQM) [13] method.
programs capable of using existing libraries and frameworks. Using this top-down approach, the conceptual level (goals)
is considered first. This is refined to the operational level
B. The MontiArcAutomaton Modeling Infrastructure (questions) from which the quantitative level (metrics) is
observed. Each refinement step is based on the preceding level.
MontiArcAutomaton [5] is an extensible architecture mod-
This ensures that only metrics are employed, which help to
eling infrastructure. It comprises a component & connector
achieve the original goal and not because they are easy to
(C&C) architecture description language (ADL) and a code
measure or convenient for the researcher. To this effect, our
generation framework. The ADL is realized as a Monti-
research goal is to analyze behavior modeling with AJava
Core [7] language and uses MontiCore’s language integration
and the delegation pattern for the purpose of evaluation with
mechanisms [9] to enable plug-and-play embedding of action
respect to their effectiveness and efficiency from the point
languages. It has been configured with behavior modeling
of view of the researcher in the context of graduate and
languages including Java/P and successfully deployed to teach-
undergraduate students at RWTH Aachen University.
ing [10] as well as to service robotics applications [11]. The
combination of MontiArcAutomaton with Java/P is denoted We concretize this in three research questions as follows:
AJava (for “Architectural Java”). RQ1 Does pervasive MDE with AJava help to reduce the
Core concepts of the MontiArcAutomaton ADL are illus- development time compared to describing component
trated with the experiment’s software architecture depicted behavior with Java using the delegation pattern?
in Fig. 1: the MontiArcAutomaton ADL distinguishes compo- RQ2 Is the pervasive MDE with AJava less error-prone than
nent types (denoted components) and their instances (denoted employing the delegation pattern for integration of hand-
subcomponents). Components feature parameters (similar to crafted code?
constructors in object-oriented GPLs) and interfaces of typed, RQ3 How convenient is pervasive MDE with AJava for the
directed ports. They either are composed (SearchControl) developers?
or atomic (Collision). Composed components yield config- Based on these research questions, we determine the vari-
urations of subcomponents that exchange messages via unidi- ables to measure during the experiment (Section III-B) as
rectional connectors between their ports. Atomic components well as to formulate our hypotheses to be tested against the
yield a behavior description in form of an embedded action collected data in (Section III-C). Thereby, we strictly follow
language or via integration of handcrafted GPL artifacts. the GQM method, which we use as guideline for the study
The BallFinder software architecture comprises ten design.
subcomponents of nine different component types. The two
components depicted on its left wrap sensing functions to B. Variables
localize a ball in the environment and to detect possible Before devising the corresponding metrics to answer our
collisions. Their messages are fed into an instance of the research questions, we address the variables of the experiment.
composed component type SearchControl, which uses 1) Independent Variables: As we stated before, we intend
these to determine the next navigation actions and logs both to gain insights into assets and drawbacks of pervasive MDE
incoming and outgoing messages. It sends motor commands compared with the integration of handcrafted artifacts. There-
to another composed component taking care of navigation as fore, we have only one independent variable, which is:
well as to an instance of StatusLamp that serves to convey • Development method The method used for behavior in-
messages to observers. tegration. This variable features two alternatives, namely
the delegation pattern and AJava as we select these as Errors in Time The number of errors in relation to the
representatives for the methods in question. time used to come up with a solution.
Thus, we are conducting a single factor experiment with two RQ3 How convenient is pervasive MDE with AJava for the
alternatives. To this effect, we employ two test groups, one developers?
for each treatment method. To determine the composition of Time saving The opinion whether the techniques is
these groups, we employ randomization to ensure a balanced considered as time saving.
distribution with respect to, e.g., knowledge and experience Convenience The evaluation whether the technique is
between the groups. found to be easy to use.
2) Controlled Variables: To be able to make reliable as- Overhead creation The assessment whether the tech-
sertions after the experiment, we try to control the following nique requires efforts which are unnecessary for the actual
variables: solution of the problem.
• Experience MontiArcAutomaton is developed by the Demand for more tooling The rating whether the tech-
chair of Software Engineering at the RWTH Aachen nique needs more tooling to be used properly.
University and part of its teaching activities. Hence Each of these variables is measured for each of the tasks
knowledge about its basic functionalities and its methods individually and once for the whole project. This way, we
can be assumed. However, we provide an introduction enable a result analysis with more insights about the specific
to ensure that all subjects participate with the same strong and weak aspects of the methods.
knowledge.
• Programming skills These are important for develop-
ment in general. We expect these to be homogeneously C. Hypotheses
distributed, thus we consider this variable as controlled.
By employing questionnaires, we aim to ensure that our To enable the statistical analysis of the experiments results,
assumption on Java programming skills holds. we state our hypotheses pairs in the following. For the sake
• Project The environment in which techniques are exerted
of simplicity, we give a combined expectation about each
has a major influence on the results. We prepare a project research question.
consisting of multiple tasks and provide a project skeleton RQ1 We expect using AJava requires less development time
to the participants. In Section III-E, we give an overview and code generation iterations, i.e.,
over this project and introduce the tasks. H1.10 Solution finding time is larger or equal.
• Tooling Tooling, such as IDEs and build systems, can H1.11 Solution finding time is less.
reduce the work for certain tasks enormously. We ensure H1.20 Solution creation time is larger or equal.
that the tooling support for applying both methods is H1.21 Solution creation time is less.
identical. H1.30 Code generation is run more or equally often.
3) Response Variables: The last step of the GQM method H1.31 Code generation is run less often.
is to consider each of the research question individually and H1.40 Testing time is larger or equal.
devise a list of metrics to answer these. H1.41 Testing time is less.
RQ1 Does pervasive MDE with AJava help to reduce the H1.50 Error-solving time is larger or equal.
development time compared to modeling component be- H1.51 Error-solving time is less.
havior with Java using the delegation pattern? RQ2 We expect using AJava produces less errors and conse-
Time of solution finding The time needed to resolve the quently requires less time for error solving, i.e.,
whole task, including testing and error-solving. H2.10 The absolute number of errors is larger or equal.
Time for programming The time required to develop H2.11 The absolute number of errors is less.
the actual solution. Includes actual programming time H2.20 The time for error-solving is larger or equal.
only, i.e., excludes testing and code generation times. H2.21 The time for error-solving is less.
Number of code generations The number of times the H2.30 The errors per time is larger or equal.
code generator was started. H2.31 The errors per time is less.
Time for testing The time needed to test the solution. RQ3 We expect using AJava better accepted and conceived
Time needed for error-solving The time used to solve more comfortable, i.e.,
errors reported during compiling and testing. H3.10 The valuation of time saving is less or equal.
RQ2 Is the pervasive MDE with AJava less error-prone than H3.11 The valuation of time saving is larger.
employing the delegation pattern for integration of hand- H3.20 The valuation of convenience is less or equal.
crafted code? H3.21 The valuation of convenience is larger.
Absolute number of errors The number of error occur- H3.30 The valuation of overhead is larger or equal.
ring during compilation and testing. H3.31 The valuation of overhead is less.
Time needed for error-solving The time used to solve H3.40 The demand for tooling is larger or equal.
any errors that occurred. H3.41 The demand for tooling is less.
As the variables are collected for each task individually, the collision sensor representation 3D environment visualization
hypotheses are validated respectively. We employ a one-sided
Student’s t-test for those metrics that are of a ratio scale, e.g.,
development time or error count. For the metrics, especially
those of RQ3, we use a one-sided Mann-Whitney-U test since
we deal with measured data of ordinal scale. ball
D. Participants
Our experiment represents an internal validation, i.e., the
participants are computer science students at the chair of Soft-
ware Engineering. This includes Bachelor, Master, and Ph.D.
robot with collision
students, all of which expected to have a solid knowledge in
sensors and lamp
Java due to their curricula and background as well as interests
in software architecture. Furthermore, we anticipate that a ma-
jority of the participants already is aware MontiArcAutomaton
and has a rudimentary idea of its capabilities due to its inclu-
sion in the the department’s teaching and research activities.
Nevertheless, an introduction to MontiArcAutomaton is given
simulation robot ego simulator and
to ensure a consistent foundation for all participants. Based on camera controls
details perspective
the in the experiment included questionnaires, a more detailed
description of the demography of the participants including Figure 2. The graphical interface of the Simbad robot simulator.
their prior knowledge can later be given during the result
analysis. We expect to have 20 subjects participate in the
Table I
experiment. TASK COMPONENTS WITH THEIR IMPLEMENTATION CHALLENGES
E. Experiment Materials Component Name Logic Integration Refactoring
During the experiment, the participants have to complete Camera 3 3
a series of separate tasks in a predefined order. Each of Collision 3 3
these tasks has the goal to implement a particular component Logger 3 3
behavior in an overall project, but is itself independent. For MovementControl 3
each of these components, an exact description of the behavior MotorControl 3 3
is provided in form of an implementation-independent text CompositeMotor 3
description. Since we are only interested in the behavior im- WheelMotor 3
plementation during the experiment, an architecture skeleton
of this project will be provided.
Each participant is implementing the software for a robot on Therefore, it is equipped with a software camera for locating
the basis of the open source Simbad robot simulator framework balls and a range of bumper sensors for collision detection.
[14]. Simbad features a 3D virtual environment in which a To provide easy visual feedback to the observer, it features a
virtual robot can be executed. The robot can be equipped with simple lamp as actuator. The search takes place in two separate
a variety of utilities, which enable it to sense objects and phases: locating and collecting. During locating, the robot
obstacles which can be placed in this environment. The move- rotates around its axis until a red ball is recognized through a
ment is realized via two different kinematic models to choose rudimentary image analysis via its camera. When successful,
from (1) the default composite control with a velocity and a the robot switches into the collecting phase: it stops rotating
rotation value; and (2) the differential control, in which two and starts moving forward towards the ball until a collision is
wheels are separately controllable. The individual behavior is detected. During the first phase, the lamp is supposed to blink
implemented in a dedicated method which is repeatedly called while during the second it should be turned on continuously.
by the simulator framework. To enables the supervision of this After a successful retrieval, a new ball appears at a different
behavior, Simbad features a simple interface which renders the spot in the environment and the whole procedure starts all over
current as state of the environment as well the different sensor again.
values. Exemplary, the user interface with the experiment’s The architecture used for this robot was already introduced
scenario is depicted in Fig. 2. It enables the control over the by Fig. 1. Almost each of its components is an experimental
simulation, and provides a 3D environment visualization as item to which the two treatments should be applied to. There-
well as details about the simulation and the robot state (left). fore, the subjects should develop the components’ the behavior
The robot software architecture implemented by the par- implementations. Additionally, one task requires to refactor the
ticipants during the experiment is called BallFinder. As architecture to change the robot’s kinematic model. In Table I,
the name suggests, its task is to find and collect red balls. an overview of the components to be implemented is given
with the kind of their related implementation challenges. We input values from the containing component as well as
distinguish between three main challenge kinds: the output values of the InternalSearchControl.
Monitoring their changes, it writes these events including
1) Logic Tasks of this kind demand a behavior implementa-
a time stamp to a log file.
tion with a minimal degree of logic. This should involve
• MovementControl This composed component controls
the usage of control structures like branches and loops.
the robot’s movement. Therefore, it translates the
Thus, we expect the subject to implement more than
movement commands received from searchControl
simple variable reading and writing.
to movement of the actual “physical” devices of
2) Integration This kind includes the interaction with a
locomotion. At the beginning of the experiment,
native API. Instead of developing self-contained code,
it contains instances of MotorControl and
external code in form of provided functions or classes are
CompositeMotor, the latter matches Simbad’s
employed. Therefore, the subject has to include imports
default kinematic model. During the experiment, the
and aspects like function signatures in its consideration.
participants have to restructure MovementControl
3) Refactoring Tasks of this kind require more than the
and replace the CompositeMotor instance with two
creation of new solutions: they might involve the restruc-
instances of type WheelMotor.
turing existing components. Hence, the subject have to
• MotorControl The task of this component is the transla-
consider the existing (old) behavior and has to perform a
tion of movement commands for the actual drive control.
refactoring in an at least limited sense.
Initially, when the default kinematic model is deployed,
We plan to use this classification later for a more differen- the component possesses two outgoing ports to control
tiated result analysis. In the following, we give more detailed an instance of CompositeMotor. After restructuring,
description of the components for a better understanding of the differential model is used, it features one output value
the project and experiment. for each of the two WheelMotor instances.
• Camera This component uses the camera sensor of the • CompositeMotor This component corresponds to one of
Simbad framework to detect whether a red ball is located the kinematic models available in Simbad and represents
in front of the robot. It does so by analyzing the color a single “physical” propulsion. It receives a velocity
picture delivered by the hardware. The result of the and a rotation value as input to control the movement.
analysis is reported through its output port ball. The The behavior implementation of this component passes
image perceived by the camera is provided in form of a the two incoming values to the Simbad framework.
100 × 100 array of RGB values. For image recognition, • WheelMotor A component of this type matches with
a simple algorithm is supposed to be implemented by one wheel of the differential kinematic model. It re-
the subjects. Instead of using an actual object recognition ceives one value as input. A positive one results in a
algorithm, only the red channel of the image is used. Fur- forward rotation of the wheel, while a negative value
thermore, only the center column of pixels is considered causes a backwards one, respectively. Consequently,
and segmented into sections with size of 10 pixels. Since CompositeMotor poses implementation challenge re-
the virtual environment is mainly colored in green and garding integration of native API.
blue, an average red value in one of these sections larger
than the threshold 100 is sufficient to confirm a ball in F. Conduction Plan
from of the robot. This way, a satisfying trade-off between The complete experiment takes 100 minutes per participant.
task complexity and detection accuracy is achieved. For the execution, experiment equipment is provided, this in-
• Collision This sensor is used to detect physical contact cludes notebook computers running Ubuntu Linux, the Atom2
of the robot to other objects in the environment. For this editor with disabled syntax highlighting and disabled language
purpose, it is equipped with a belt of 16 evenly distributed completion support, and a makefile responsible for triggering
bumper sensors. To signalize whether a collision was de- the maven-driven build processes. We provide the restricted
tected the collision port is used. Each sensor reports editor and the makefiles to mitigate the effects of advanced
a collision through Boolean value and the component IDEs. Using basic editing functionalities, such as “find” or
iterates over all sensors to determine whether any sensors “replace” is not restricted. The provided makefiles take care
reports a collision. of parsing models, generating code, compiling, and packaging
• SearchControl This is a composite component con- it.
sisting of the subcomponents InternalControl and To enable a correct attribution of the subjects actions to
Logger. It is the central entity of the project since and the correct metric, we use screen recording and employ a
is in charge of controlling the robot. To facilitate the camera to capture the non-digital behavior. Furthermore, we
removing errors, its behavior as well as the received input are storing the project state at each compilation and run for
values are logged through Logger. This component does an easier analysis in the aftermath.
receive any treatment from the subjects. During execution, each subject performs the following:
• Logger This component handles the logging requirement
of the SearchControl type. Therefore, it receives all 2 Atom website: https://atom.io
1) Pre-questionnaire (5min) Before the actual start of the We recognize following potential threats:
experiment, the participant is asked to fill out a survey • Knowledge of Java Especially the performance metrics
on his or her modeling and programming skills. This in- to answer RQ1 and RQ2 would be affected. Since we
cludes inquiring the experience with modeling and object- expect a mostly homogeneous group of participants with
oriented programming in general as well as specific this regard and we randomize the participants among
modeling and programming techniques and languages. the groups, we do not consider this as problematic.
2) Introduction (25min) Next, we give an introduction Questionnaires are conducted to support this assumption.
to the study’s development environment, MontiArc- • Experience with delegation pattern or AJava Similar
Automaton, and the respective behavior modeling tech- to the Java knowledge, we expect no risk from this aspect.
niques for the participants group. Moreover, we introduce Differences in experience should not be present in large,
the BallFinder and the modeling task. The participant for this claim we use the questionnaires as well and
may explore prepared example code to familiarize himself provide a proper introduction to the techniques before
or herself with the assigned modeling technique and the actual experiment.
may inspect the provided architecture of the experimental • Tooling support Tools, such as IDEs, facilitate the devel-
project. opment and, hence, entail the risk of actually measuring
3) Tasks (65min) We hand out the task description to the quality of the tools instead of the techniques to be
the participant and let him or her perform the task investigated in the experiment. Through minimizing the
using the assigned modeling technique. The participants tooling and providing the identical tooling to both groups,
are requested to solve the task steps in order of their we ensure that this does not affect our experiments.
presentation. This order is identical to the presentation in • Unfamiliar environment As a side effect, we force
Table I, the subjects will therefore implement the robot the subjects into using an unfamiliar development en-
following the flow of information from input to output. vironment, which may be conceived a hindrance. To
During the whole time, the participants are allowed to ask address this, included an introduction phase in which each
questions related to the understanding of the exercises, subject can make herself or himself comfortable with the
but no information regarding the solution is given. environment. As this applies to both groups, however, this
4) Post-questionnaire (5min) Ultimately, we conduct a should not impact the results.
second questionnaire to learn more about the acceptance • Absolute acceptance The performed acceptance mea-
and ask for general feedback about the experiment. surements are absolute and therefore not usable for a
comparison unless the same subject experiences both
IV. D ISCUSSION techniques. We do not negate this finding. However, we
Our study design enables comparing MDE with integration would like to note that we are not interested in determin-
of handcrafted artifacts to pervasive MDE with action lan- ing an absolute acceptance value and if one techniques
guages. As representatives, we chose AJava and the delegation performs really bad or is dissatisfying in certain tasks,
pattern for the conduction of the experiment. This study should we still should be able to notice a difference.
give us a first good indication about their respective benefits in • Small sample size The number of participants makes the
practice. To this effect, we embedded the experiment’s tasks results unreliable in terms of significance. There is not
into a small project to simulate a realistic scenario. Through doubt about this risk, but we would like to note that the
a minimal set of tools, we ensured that we compare the exact indicators are only available after the execution of
techniques and not the tooling. By our choice of tasks, we the experiment. Furthermore, we employ multiple tasks
covered many different aspects of the development process. for this reason and perform the comparison for each
In addition to the implementation of logic, we should receive individually, but also in sum. When increasing the sample
insights about refactoring and the integration of native API by including more external participants, we see the risk
as well. For the comparison, we do not only consider per- of create more heterogeneous groups endangering our
formance metrics, we also take acceptance and usability into controlled variables.
account. Both aspects add up to full picture, compensating
shortcomings of other metrics. Otherwise, a later employment B. Threats to External Validity (Generalizability)
of the technique in practice could be endangered.
The greatest risk to an experiment is the invalidation of Threats to external validity address the generalizability of
results found in the collected data. Therefore, we discuss empirical research. For our study, the most important threats
the possible threats to internal and external validity in the to its generalizability are:
following and examine how we assured that conclusions are • Project size The software engineering challenges of
legit and in which context the results are valid. our project is several magnitudes less than in industrial
projects. Hence, the results can not be generalized easily.
A. Threats to Internal Validity (Causality) The size is unfortunately naturally limited by the available
Threats to internal validity arise from factors influencing the time of the participants in a laboratory experiment. We
causality between independent and dependent variables [21]. tried to overcome this problem by embedding different
types of implementation challenge (see Table I) to cover
multiple application scenarios.
• Academic context This experiment features an artificially
created project which differs from real-world projects.
Again, we refer to the different implementation chal- Solution finding time Programming finding time
lenges we employed. Beyond, only repetitions in industry
are able to tackle this threat.
• Non-professionals We incorporated students in our ex-
periment which might not be a good replacement for Code generation iterations Test errors
actual professionals. To address this issue, we refer
to [22] for reasons why we think that choice restricts
the generalization only minimally.
• Choice of techniques We used Java, AJava and the del-
egation pattern to compare pervasive MDE to integrating
handcrafted code. One might argue that the delegation Practicality (low to high) Time saving (low to high)
pattern is especially complicated and using other patterns
would yield better results for the approach of handcrafted Figure 3. Findings from performing our study with a pilot group of 13
students.
code. Or that Java might be especially unsuited for this
topic in general. As Java is one of the most popular
languages for professional software engineering and the 57% of the delegation pattern group consider it introducing
delegation pattern is very popular for integrating gener- large overhead. Significance of the results implies that H3.21
ated and handcrafted code, we assume that both reflect can be accepted. Regarding the findings of time saving with
the state of the art appropriately. any of the techniques and demand for tooling, we did not
receive significant results or notable biases in the results.
V. P RELIMINARY R ESULTS Hence we cannot refute the related hypotheses.
We conducted a pilot study with 13 participants, out of
which 7 employed the delegation pattern and 6 employed VI. R ELATED S TUDIES
AJava to developed the BallFinder robot software. Inter- Our study design basically compares two “programming”
esting findings are illustrated in Figure 3 and discussed below. languages. From this vantage point, several related studies
Regarding solution finding time, the AJava group solved have been conducted. The study presented in [15], for instance,
their tasks in a median of 39 minutes compared to 64 minutes compares “tangible” graphical programming languages where
required by the delegation pattern group. With respect to the resulting programs were executed on a real robot platform.
programming time, the AJava group required a median of The authors do not investigate the differences in abstraction
30 minutes compared to 55 minutes of the delegation pattern between different languages.
group. With p-values of less than 1%, both H1.10 and H1.20 The authors of [16] compare seven GPLs regarding run-
hence can be rejected for the pilot study. For the variables of time efficiency, loading efficiency, program length, and other
error resolving time and testing time, we received indifferent factors. They also do not compare their levels of abstraction.
results without relevant significance, hence we cannot refute Other studies investigate the introduction of MDE in indus-
the related hypotheses. The same holds for the number of trial contexts to identify obstacles [17] or challenges [18] for
code generation iterations: On average, the AJava group its adoption [19]. They do, however, not directly investigate
generated code 15 times, whereas the delegation pattern group the acceptance of pervasive MDE over the programming
on average generated code 20 times. techniques established at the respective companies.
Developing with AJava led to a consistent number of There also are various studies on different modes of (virtual)
between 11 and 14 test errors, whereas participants of the robot programming, such as the experiment reported in [20],
delegation pattern group finished with a wide range of between which are related to our experiment, but not to the investigated
1 and 14 errors. Measuring the amount of test errors per objects.
minute produced similar diversity, hence H2.20 and H2.30 Overall, to the best of our knowledge, there is only little re-
cannot be rejected either. lated work on comparing pervasive MDE to providing system
The participants’ assessment on the different techniques’ behavior via integration of handcrafted GPL code.
convenience generally seem favor using AJava: 83% of the
participants of this group consider AJava practical, whereas VII. C ONCLUSION
only 43% of the delegation pattern group participants consider We have presented the design of a study on the acceptance
that practical. As the results are almost significant only, we and effects of pervasive model-driven engineering using action
also cannot refute H3.10 . Considering the overhead imposed languages to interface GPL code artifacts. In the proposed
by the respective techniques, 50% of the AJava group’s partici- study, two groups of participants will develop the behavior
pants consider AJava not introducing overhead at all, whereas of a robot fetching balls in a simulation environment using
MontiArcAutomaton with either embedded Java/P or by in- in Proceedings of the 3rd International Conference on Model-Driven
tegrating handcrafted artifacts. We record the study sessions Engineering and Software Development, 2015.
[10] J. O. Ringert, B. Rumpe, C. Schulze, and A. Wortmann, “Teaching agile
and instrument these with quality assurance infrastructure, model-driven engineering for cyber-physical systems,” in Proceedings of
and surveys. Based on this data, we aim to gain a better the 39th International Conference on Software Engineering: Software
understanding about the impact of using action languages in Engineering and Education Track, ser. ICSE-SEET ’17. Piscataway,
NJ, USA: IEEE Press, 2017, pp. 127–136.
modeling activities. Preliminary results tend to favor pervasive
[11] R. Heim, P. M. S. Nazari, J. O. Ringert, B. Rumpe, and A. Wortmann,
MDE with respect to efficiency and convenience. However, “Modeling Robot and World Interfaces for Reusable Tasks,” in 2015
these results are based on a small sample size and must be IEEE/RSJ International Conference on Intelligent Robots and Systems
investigated with larger groups of participants. (IROS), 2015, pp. 1793–1798.
[12] M. Fowler, Domain-Specific Languages. Addison-Wesley Professional,
R EFERENCES 2010.
[13] V. R. Basili and D. M. Weiss, “A methodology for collecting valid
[1] R. France and B. Rumpe, “Model-driven Development of Complex Soft- software engineering data,” IEEE Transactions on Software Engineering,
ware: A Research Roadmap,” Future of Software Engineering (FOSE vol. 10, no. 6, pp. 728–738, Nov 1984.
’07), no. 2, pp. 37–54, may 2007. [14] L. Hugues and N. Bredeche, “Simbad: An Autonomous Robot Simu-
[2] M. Völter, T. Stahl, J. Bettin, A. Haase, S. Helsen, K. Czarnecki, and lation Package for Education and Research,” in Proceedings of the 9th
B. von Stockfleth, Model-Driven Software Development: Technology, International Conference on Simulation of Adaptive Behavior (SAB), ser.
Engineering, Management, ser. Wiley Software Patterns Series. Wiley, Lecture Notes in Computer Science, vol. 4095. Berlin, Heidelberg:
2013. Springer Berlin Heidelberg, 2006, pp. 831–842.
[3] T. Greifenberg, K. Hölldobler, C. Kolassa, M. Look, P. Mir Seyed [15] M. S. Horn, E. T. Solovey, R. J. Crouser, and R. J. Jacob, “Comparing
Nazari, K. Müller, A. Navarro Perez, D. Plotnikov, D. Reiß, A. Roth, the use of tangible and graphical programming languages for informal
B. Rumpe, M. Schindler, and A. Wortmann, “Integration of Handwritten science education,” in Proceedings of the SIGCHI Conference on Human
and Generated Object-Oriented Code,” in Model-Driven Engineering Factors in Computing Systems. ACM, 2009, pp. 975–984.
and Software Development Conference (MODELSWARD’15), ser. CCIS, [16] L. Prechelt, “An empirical comparison of seven programming lan-
vol. 580. Springer, 2015, pp. 112–132. guages,” Computer, vol. 33, no. 10, pp. 23–29, Oct 2000.
[4] A. N. Meyer, T. Fritz, G. C. Murphy, and T. Zimmermann, “Software [17] M. Staron, “Adopting model driven software development in industry-a
developers’ perceptions of productivity,” in Proceedings of the 22nd case study at two companies,” in MoDELS, vol. 6. Springer, 2006, pp.
ACM SIGSOFT International Symposium on Foundations of Software 57–72.
Engineering, 2014.
[18] P. Baker, S. Loh, and F. Weil, “Model-driven engineering in a large
[5] J. O. Ringert, A. Roth, B. Rumpe, and A. Wortmann, “Language and
industrial context – motorola case study,” Model Driven Engineering
Code Generator Composition for Model-Driven Engineering of Robotics
Languages and Systems, pp. 476–491, 2005.
Component & Connector Systems,” Journal of Software Engineering for
Robotics, 2015. [19] J. Hutchinson, M. Rouncefield, and J. Whittle, “Model-driven engi-
[6] B. Rumpe, Modeling with UML: Language, Concepts, Methods. neering practices in industry,” in Proceedings of the 33rd International
Springer International, July 2016. Conference on Software Engineering. ACM, 2011, pp. 633–642.
[7] H. Krahn, B. Rumpe, and S. Völkel, “MontiCore: a Framework for Com- [20] C. S. Tzafestas, N. Palaiologou, and M. Alifragis, “Virtual and remote
positional Development of Domain Specific Languages,” International robotic laboratory: Comparative experimental evaluation,” IEEE Trans-
Journal on Software Tools for Technology Transfer (STTT), vol. 12, no. 5, actions on education, vol. 49, no. 3, pp. 360–369, 2006.
pp. 353–372, September 2010. [21] C. Wohlin, P. Runeson, M. Höst, M. C. Ohlsson, B. Regnell, and
[8] J. Aldrich, C. Chambers, and D. Notkin, “ArchJava: connecting soft- A. Wessln, Experimentation in Software Engineering. Springer Pub-
ware architecture to implementation.” in International Conference on lishing Company, Incorporated, 2012.
Software Engineering (ICSE) 2002. ACM Press, 2002. [22] D. Falessi, N. Juristo, C. Wohlin, B. Turhan, J. Münch, A. Jedlitschka,
[9] A. Haber, M. Look, A. Navarro Perez, P. Mir Seyed Nazari, B. Rumpe, and M. Oivo, “Empirical software engineering experts on the use of
S. Völkel, and A. Wortmann, “Integration of Heterogeneous Modeling students and professionals in experiments,” Empirical Software Engi-
Languages via Extensible and Composable Language Components,” neering, 2017.