<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Software Evolution Management: Industrial Practices</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Antonio Cicchetti Federico Ciccozzi</string-name>
          <email>antonio.cicchetti@mdh.se</email>
          <email>antonio.cicchetti@mdh.se federico.ciccozzi@mdh.se</email>
          <email>federico.ciccozzi@mdh.se</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jan Carlson</string-name>
          <email>jan.carlson@mdh.se</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Mälardalen University, IDT Mälardalen University</institution>
          ,
          <addr-line>IDT, 72123, Västerås</addr-line>
          ,
          <country country="SE">Sweden</country>
          <addr-line>72123, Västerås</addr-line>
          ,
          <country country="SE">Sweden</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Mälardalen University</institution>
          ,
          <addr-line>IDT, 72123, Västerås</addr-line>
          ,
          <country country="SE">Sweden</country>
        </aff>
      </contrib-group>
      <fpage>8</fpage>
      <lpage>13</lpage>
      <abstract>
        <p>The complexity of modern software systems and the global competition make the adoption of model-based techniques unavoidable. A higher level of abstraction not only allows to mitigate the intricacy of the development, e.g., through separation of concerns, but it is also expected to permit shorter round-trip cycles to add new system functionalities, x bugs, and re ne existing features. This paper reports practical experiences in the management of industrial software evolution collected by means of semi-structured interviews with software development experts. All the interviewed companies develop embedded real-time safety-critical systems and aim at reaching more agile processes. Interestingly, while model-based methodologies appear to be widely accepted, shortening round-trip cycles due to changes appears still to be a major issue towards a more e cient development process. Industrial software systems; Model-driven engineering; Modelbased development; System evolution; Round-trip engineering</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. INTRODUCTION</title>
      <p>Nowadays software can be practically considered as part of
systems in any application domain. It is typically exploited
to enhance or even substitute electrical and mechanical
portions of systems in order to make the nal product more
efcient, durable, and appealing from a user's perspective. In
other words, software is used to smartify systems by adding
complex features thanks to its malleability. This wide
adoption does not exclude mission-critical systems, that is
systems for which a failure can have huge impacts in terms of
money loss and harm to human lives. In this respect, the
development of modern industrial systems is an endeavour
that has to trade o development costs, time-to-market,
system reliability, and customers' satisfaction, just to mention
a few.</p>
      <p>
        Model-Driven Engineering (MDE) [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] aims at
alleviating the complexity of building modern software systems by
advocating a model-centric development paradigm. Models
permit to abstract away the unnecessary details and to focus
on the aspects that matter in a particular development stage
and/or in a speci c-domain [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Moreover, models disclose
unprecedented opportunities for automation, as they can be
exploited to perform early system analysis and validation,
as well as contribute to the creation of the nal production
code [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. However, empirical studies have stressed that one
of the major obstacles to the adoption of MDE in industry
is the lack of adequate tool support [
        <xref ref-type="bibr" rid="ref17 ref5 ref9">17, 5, 9</xref>
        ], which is often
intended as the need for custom modelling languages and
notations, analysis and validation facilities, code generation
transformations, tools able to deal with complex systems,
and so forth [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ].
      </p>
      <p>This paper describes the preliminary exploration of
industrial practices related to the evolution of software-related
artefacts, meant as models, documents and production code,
throughout the development process. The aim is to identify
the most relevant factors hampering awless evolution and
thereby an e cient iterative approach. The general common
development traits emerged from this investigation are:
- all interviewed companies use a centralised document
repository which keeps track of development versions;
- the development ow is top-down, meaning that very
little information on changes is propagated from lower
levels of abstraction up to higher levels;
- the development process is horizontally iterative but
vertically waterfall, meaning that once artefacts at a
certain level of abstraction are considered successfully
completed, they are frozen until the whole process is
iterated again.</p>
      <p>
        The core contribution of the paper is meant to be a set
of ndings concerning the main issues with current
industrial practices when it comes to evolution of software-related
artefacts. In addition, we provide what we believe are
interesting research directions towards tackling the identi ed
challenges. Despite the collected results not constituting
statistical evidence, the interviews remark the need of a proper
tool chain able to guarantee the consistency across
development stages and artefacts as the precondition to achieve
MDE promised gains. Otherwise, separation of concerns
ends up in creating several discontinuities [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] that
jeopardise the consistency of the integrated system and slows
down the development process. In fact, not only closing
those discontinuities is a time-consuming and error-prone
task, but the existing gaps hamper any opportunity of
automating change impact analysis, thus limiting the chances
of reasoning about system evolution and its side-e ects.
      </p>
      <p>The paper is organised as follows: the next section
provides background details about the context in which the
investigation has been performed, while Section 3 discusses
how the interviews have been structured and done. Section 4
provides a deep analysis about the ndings that we could
extract from the data gathered via interviews and Section 5
describes our view on how to proceed further for mitigating
identi ed challenges. Eventually, Section 7 discusses related
investigations on the application of MDE in industrial
contexts while Section 8 draws conclusive remarks about the
current work.</p>
    </sec>
    <sec id="sec-2">
      <title>CONTEXT</title>
      <p>
        The development of software shows a trend of increasing
complexity under ever tighter time and budget constraints.
In order to face this scenario, the development process has
necessarily to be as swift as possible and avoid possible stalls
due to ine ciency. Only in this way, product development
can promptly adapt to the continuously changing market
demands. In this respect, agile techniques promise to
improve development by reducing the time spent on
requirements gathering and analysis, and in general by reducing
documentation e orts to a minimum [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
      </p>
      <p>Software Center (SwC)1 is a joint e ort of Swedish
industry and academia which aims at rapidly introducing
innovation in industry with the support of academic partners.</p>
      <p>The results illustrated in this work have been collected
in the context of a SwC project2, which addresses the
support of architectural artefacts evolution; the authors of this
paper represent the research team in the project. The aim
is to shorten system development iterations by means of an
adequate change impact analysis and tracing of the
propagation of system evolution e ects. The rst sprint was
intended to investigate the current state-of-practice inside
the participating companies, in order to better understand
their development processes, evolution pressures, solutions,
and needs. This paper describes the outcome of this rst
sprint in terms of industrial practices related of evolution of
software-related artefacts.</p>
    </sec>
    <sec id="sec-3">
      <title>3. SEMI-STRUCTURED INTERVIEWS</title>
      <p>The project started with a preliminary workshop in which
the participating companies and the researchers had an open
discussion about the topic in order to align the di erent
points of view and interest. In the workshop, the
companies gave a high-level description of their current situation
in terms of architecture/design activities and the tool chains
supporting them with particular focus on how evolution is
handled and on migration of information between di erent
tools, formalisms and storages. The outcome of the
workshop was that evolution management and migration of
various software-related artefacts was the common point of
interest. To gather more speci c data on the practices and
problems at each company, we decided to carry out a set of
semi-structured interviews with companies sta . This data
was analysed and represents the ground for the next project
iterations. In this section we describe how we set up and
carried out the semi-structured interviews.
3.1</p>
    </sec>
    <sec id="sec-4">
      <title>Interviews preparation</title>
      <p>
        Data was gathered through semi-structured interviews [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]
with sta . The di erence between structured and
semistructured interviews is that in the latter the interviewee
is allowed to divert from an initial set of open questions,
1http://www.software-center.se/.
2http://www.software-center.se/research-themes/
technology-themes/continuous-architecture/Evolution+
Support+for+Architectural+Artefacts.
which are considered as a minimal set of well-thought
topics, related to software evolution in our case, to be discussed.
Such topics (and questions) were used by the interviewers
as interview guide, and were sent in advance to the
interviewees for preparation. During the interviews, questions were
asked in di erent ways and at di erent moments, depending
on the interviewee and the ow of discussion. Doing so, we
were able to customise our questions to the speci c interview
and interviewee.
      </p>
      <p>The set of topics and questions was the following:
T1 Tools ecosystem { What formalisms, languages and
tools do you use for development and documentation
of design/architecture/implementation?
T2 Artefacts storage { How are artefacts (models/code/do
cuments) stored?
T3 Evolution strategies { How, and how often, do you
exchange/migrate/synchronise/version information
between di erent languages/tools/formats/storages?
T4 Di /merge and con ict resolution { When
exchanging/migrating/synchronising/versioning artefacts, how
is di erencing and merging as well as resolution of
conicts among artefacts handled?
T5 Concurrent development { How common is it that
multiple persons work on the same artefact (concurrently
or interleaved) and how do you currently organise
concurrent work?
T6 Envisioned improvements { What improvements would
you like to see in relation to your current evolution
management practices?
Semi-structured interview was also chosen as data collection
method since, being at an initial phase of investigation, we
did not want to steer the interviews in a prede ned direction
through a strict questionnaire. On the contrary, with
semistructured interviews, we wanted to gather a broader set of
information about practices, problems, ideas about software
evolution in the companies.
3.2</p>
    </sec>
    <sec id="sec-5">
      <title>Running the interviews</title>
      <p>We interviewed a total of 9 individuals across the 3
companies (3 persons per company); interviewees were chosen
so to represent a reasonable range of di erent roles involved
in software development. The three companies are large
Swedish enterprises with focus on embedded real-time and
safety-critical systems in di erent application domains. We
interviewed software engineers, testers, product managers,
and modellers. All interviewees had experience with MDE.
Interviews were conducted on-site by at least two of the
authors and in the interviewees' native language, Swedish. The
set of questions was sent to the interviewees in advance in
order to allow them to raise possible issues and prepare for
the interview by gathering additional information if needed.</p>
      <p>The interviews started with a short summary by the
interviewers about the SwC project and the interview itself.
This was followed by the interviewee describing shortly her
current role in the company and experience with similar
topics in general. Thanks to the fact that we exploited a
semi-structured format, we could notice that the various
interviews took di erent, and interesting, routes, highlighting
expected and unexpected problems in the industrial software
evolution. In case of unclear statements by the interviewee,
a clari cation was always sought and given before going
forward to the next topic.</p>
      <p>The interviews lasted between 30 and 90 minutes and were
recorded in order for resulting data to be analysed and
synthesised. For analysis purposes, the recorded audio of each
interview was listened to by one researcher and transcribed
by question; additional details not related to a speci c
question were annotated separately. The transcribed answers
were discussed extensively within the research team in
order to identify the most relevant ndings to document and
that would represent the basis for the next project iterations.</p>
    </sec>
    <sec id="sec-6">
      <title>RESULTS</title>
      <p>The interviews gave interesting answers to the posed
questions but also provided unexpected insights thanks to the
semi-structured format. In this section we provide a
summary of the most relevant (shared) ndings that the research
team identi ed by discussing the transcribed interviews.
4.1</p>
    </sec>
    <sec id="sec-7">
      <title>Tools ecosystem and artefacts storage</title>
      <p>The answers gathered during the interviews clearly show
that at companies there usually exists a plethora of tools,
languages and formalisms used more or less together for
requirements speci cation, software modelling and production
code. Even if standard languages (e.g. ADLs or UML) are
used, the observed trend is working on company-tailored
versions of existing commercial tools. Moreover, di erent
groups in the same company use di erent toolchains, even in
joint projects. When it comes to requirements, the common
line is represented by textual descriptions that are
maintained in various tools. These textual descriptions are
manually broken down to a so called \software architecture"
dened in terms of graphical models. The architecture usually
de nes parts of the software and hardware nodes composing
the entire system as well as allocation of software to
hardware, and it is used for early assessment of modelled
functionalities. In some cases, dynamic parts of the software
system are modelled using tools and languages di erent from
the ones used for architectures. Moreover, in many cases
di erent parts of the software system are modelled and
developed with di erent tools and languages. When it comes
to production code, in some cases it is generated from
models, while in others models are just used as blueprint for the
programmers to implement. The common trait is that
consistency models-code is regarded as important but currently
hard to achieve since it is not automated (many tools in the
ecosystem do not have automatic bridges): \It happens that,
after a number of years, models are not updated anymore,
thus losing their consistency with up-to-date code.. There is
simply no time to do it.. It feels like the lack of agile ways
to evolve models and related artefacts leads to neglect models
and update only the code.3".</p>
      <p>Models, documentation and production code are managed
with di erent tools but are commonly stored in a central
database. Anyhow, having them in a central database does
not provide tangible advantages when it comes to evolution
since there are still serious issues in bridging the various
tools: \Exchanging information among tools using XMI
creates many problems due to the format misalignment in the
3Note that reported extracts from interviews have been
translated by the authors from Swedish to English.
various tools..".</p>
      <p>In synthesis, many heterogeneous tools and languages are
used without e ective and automated mechanisms for
univocally going from one to the other and for ensuring that
changes to one artefact are correctly propagated to related
and dependent artefacts. This makes evolution of the
various artefacts (documents, models, code) a manual,
errorprone, tedious and in some cases a shabby task.
4.2</p>
    </sec>
    <sec id="sec-8">
      <title>Evolution strategies, diff/merge and conflict resolution</title>
      <p>Evolution strategies, especially among related artefacts of
di erent types, are shallow. Changes to code are not always
reproduced in models and documentation since it is a
manual e ort up to a single individual and there does not seem
to be a strong focus on \consistency maintenance" of less
crucial artefacts (e.g., models and documentations) in the
companies. Running versions of code on products with very
long lifetime are kept as they are as much as possible; only
small xes are made when unavoidable. Moreover, evolution
happens at di erent levels and in di erent tools although
affecting the same artefact; while some automation for
propagating change from one level and/or one tool to the other
exists, much is still left to manual, unstructured activities.
Instead of improving evolution strategies, all companies try
to minimise the need of evolution by going for a conservative
and add-only strategy as much as possible.</p>
      <p>There is usually no e cient support for round-tripping
from code to models. More speci cally, companies would
nd it bene cial to propagate changes done on code back to
models and documentation (across di erent tools), for
instance in terms of warnings. The impossibility to e ciently
do this, as well as the aforementioned intrinsic di culties
in bridging the many tools composing the ecosystem, \..
make often software development start from scratch in new
projects rather than reusing models, documents and code (or
parts of them) from previous successful projects.". Instead,
new projects should be intended as evolutions of previous
ones, with artefacts that evolve from one project to the other
in a unbroken manner.</p>
      <p>The common trait with di /merge is that all companies
try to avoid merging as much as they can. Di erencing is,
on the other hand, considered a very important aspect but,
being often a manual task, it is error-prone and tedious.
Implicit di /merge is done by versioning tools used by the
companies, such as Subversion; also in this case, several
issues arise when versioning graphical models exploiting their
textual representation. Moreover, the heterogeneity of
formats among the many di erent tools and shaky links among
them clearly does not simplify di /merge and con ict
resolution.
4.3</p>
    </sec>
    <sec id="sec-9">
      <title>Concurrent development</title>
      <p>Concurrent modelling is commonly achieved by
partitioning models in sub-portions (either physical les or logical
sub-systems) in order to avoid concurrent changes on the
same model portion. While developers do not work with
the same model portion, they usually work on the same
database concurrently and the data is continuously
synchronised through automatic database-speci c mechanisms so
that everyone has the same overall picture of the up-to-date
product version. There does not seem to be any
particular problems with this practice; this is explained by the fact
that in reality no concurrent modelling ever takes place since
sub-portions are not meant to be concurrently accessed by
multiple persons. Nevertheless, the possibility of disruptive
changes to dependent software modules is still possible both
at model and code level due to (i) human
misunderstandings and (ii) because no dependency analysis is done among
di erent software modules. \These kind of problems do not
come up until testing production code.. for instance by
getting compilation errors.".
4.4</p>
    </sec>
    <sec id="sec-10">
      <title>Envisioned improvements</title>
      <p>An aspect which seems to be of high priority for the
interviewed companies is the need for improving traceability,
that is to say back-tracing of changes done at lower
levels of abstraction (e.g., code) to related artefacts at higher
abstraction levels (e.g., models and documents). This is
seen as crucial for being able to enhance traceability as
well as improving versioning and boosting reuse.
Particularly important is considered to achieve much more e cient
(and automated) ways to ensure consistency between
models and code in the long run. From our interviews it became
clear that practitioners are starting to perceive the current
xed tool-centric idea as somewhat obsolete within a
modeldriven or model-based development process. Instead, they
put emphasis on the need to move the attention towards
more exible (meta)model-centric approaches.
Functionalities get more in number and more complex; additionally,
there is a much higher dependability among di erent parts
of the software system than before. This complicates
evolution, also considering the huge variations among product
versions; legacy running systems must be supported and
updated in a smart, non-breaking way. Having a
(meta)modelcentric approach would permit to \.. de ne variation points
in the metamodel that would simplify evolution tasks.".</p>
    </sec>
    <sec id="sec-11">
      <title>DISCUSSION</title>
      <p>So far we described the feedbacks collected during the
interviews with companies, grouped by topic. Based on those
feedback, this section highlights a set of relevant issues that
we believe hamper a better management of evolution,
together with a set of possible corresponding research
investigation directions in order to improve the current practice.</p>
      <p>
        A critical aspect that seems to be underestimated by
current empirical investigations on the adoption of MDE in
industry is the transitional nature of such a process [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. In
fact, usually software is developed by companies whose main
products are not software (e.g., cars, satellites). Therefore,
software development gets intertwined with other
engineering activities and very often imposing a one-step adoption of
a completely (even if fully featured) new development
platform is not realistic.
      </p>
      <sec id="sec-11-1">
        <title>Challenge 1: Heterogeneity of tools and languages in the toolchain</title>
        <p>Issue Heterogeneity of the many (modelling) tools and
languages typically exploited in an industrial
development process is a major hinder for e ective
evolution due to the lack of appropriate format
exchange and change propagation support.</p>
        <p>Investigation directions Introduce more powerful
and automated links between interconnected
artefacts across di erent tools and languages, and in
the long run create bidirectional bridges (through
e.g. model transformations) supporting
uncertainty.</p>
        <p>A more realistic scenario is a step-wise adoption of
domainor task-speci c tools that contribute to the development
process. The process is orchestrated by means of a centralised
storage support, which is format-agnostic, and where tool
interconnections are kept through links. Since in general the
tools cannot communicate with each other, change
propagation can only be supported in its minimal terms, that is
raising warnings for artefacts linked to entities involved in
evolution activities. Moreover, consistency management
becomes necessarily a manual task.</p>
        <p>The companies solve consistency and change propagation
issues by constraining the development in a waterfall
process. More precisely, all the artefacts related to a certain
development step or abstraction level (that is, horizontally)
are iteratively developed until they satisfy a planned goal.
After that, those artefacts are frozen, i.e. kept as read-only
until the next development process iteration. In this way,
consistency between abstraction levels is enforced by the
subsequent steps, since each higher abstraction level is input
for lower ones. Besides, whenever there is a need to make
changes outside the speci cation coming from a higher level
of abstraction, this would be recorded in terms of a change
request to be dealt with in the next iteration.</p>
        <p>Given this scenario, we propose two possible investigation
directions: introducing more powerful links in the central
storage and/or creating transformations between tools. The
former can be conceived as a short term solution, since it
does not require many changes in an existing development
process. However, already by adding semantic information
to the links (notably, the degree of dependence between
linked artefacts) it would improve change impact analysis.
This solution would require a company-speci c investigation
of the evolution characteristics that artefacts undergo during
a typical development process.</p>
        <p>
          In the long run, tools should be connected by means of
model transformations. These transformations should be
bidirectional to allow the synchronisation on both sides, and
supporting uncertainty to be able to e ectively deal with
the intrinsic heterogeneity of the mappings [
          <xref ref-type="bibr" rid="ref6 ref7">6, 7</xref>
          ]. In this
case, the degree of interconnection between the various tools
should be carefully evaluated, in order to avoid the need of
writing dozens of model transformations.
        </p>
      </sec>
      <sec id="sec-11-2">
        <title>Challenge 2: Di /merge at the appropriate abstraction level</title>
        <p>Issue Di erencing and merging are mostly manually
performed (when they cannot be avoided) since
currently employed versioning tools are text-based
and not able to e ectively operate di /merge on
complex artefacts, such as graphical models. The
XMI format does not seem to help in this matter.
Investigation directions Introduce di /merge
operations at the modelling level of abstraction.</p>
        <p>Di erencing and merging models at an appropriate level
of abstraction is a known problem for the MDE research
community. The proliferation of tools illustrated in the
previous challenge stresses this need since manipulations
might have di erent interpretations/impacts depending on
the consumer of the modi ed artefact. Moreover, in general
modelling tools are not equipped with di /merge features.</p>
        <p>Companies tackle this issue by avoiding di /merge, i.e. by
serialising concurrent manipulations through the
exploitation of disjoint sub-portions of models and/or the adoption
of artefact locks. Even more, in some cases code is edited by
hand instead of re-generated after an appropriate modi
cation of the source models it originates from, especially in case
of small re nements. This relieves companies from making
an additional e ort in understanding how model changes
would propagate to interconnected artefacts at higher
abstraction levels.</p>
        <p>For this challenge we propose the study of appropriate
di /merge mechanisms. The solutions could be gradually
developed and introduced rstly based on the improved links
discussed in the previous challenge, and hence trying to
detect at least the changes relevant for tool
interconnections. In the long run, change detection should provide
enough information to enable a reliable change impact
analysis and possibly automated propagation through
synchronisation transformations.</p>
        <p>
          Challenge 3: Explicit traceability between related
artefacts
Issue The lack of e ective support for explicitly
keeping track [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ] of dependencies among di erent
artefacts in the many tools makes round-trip
engineering very di cult and error-prone.
        </p>
        <p>Investigation directions Analyse the changes at
various levels of abstraction, at di erent development
stages, with respect to the used tools, etc., and
classify them in terms of their impact on other
artefacts. In the long run, produce estimates of
propagation e ort due to changes.</p>
        <p>The central storage used to coordinate the development
process can be considered as a very basic support for
traceability. However, the lack of adequate interconnection
information makes this tracking support not e ective. Notably,
the dependencies among di erent artefacts in the many tools
can make cautious concurrent modelling still cause
disruptive changes that can go unnoticed until production code is
tested. In turn, this slows down the whole process due to the
e orts required to understand the origins of the problem.</p>
        <p>Another important issue caused by the lack of
traceability is the poor support for round-trip engineering. Since the
link between the various artefacts gets typically blurry when
going from an abstraction level to another, it is very di cult
to understand how modi cations at lower abstraction levels
should be propagated back to higher levels. The companies
mitigate this issue by adopting the waterfall-like process
described before, which however slows down the development
process and limits the opportunities for concurrent
development.</p>
        <p>Our proposal is to empirically retrieve historical
evolution information and propose a characterisation of possible
system evolutions. The improved interconnections between
the tools proposed for challenge 1 would support a more
e ective synchronisation of artefacts at di erent levels of
abstraction. Together, these two investigations can create
the potentials for an enhanced round-trip engineering
process, in which code and other artefacts can be consciously
modi ed, and the e ects of the modi cations can be better
analysed and propagated to interconnected artefacts.
6.</p>
      </sec>
    </sec>
    <sec id="sec-12">
      <title>THREATS TO VALIDITY</title>
      <p>
        When it comes to internal validity, we adopted a
systematic approach in preparing the study, gathering, analysing
and synthesising data. On the one hand, since we did not
opt for structured interviews with a strict set of questions,
but rather went for semi-structured interviews, the rigour
of the study and its results could be questioned. On the
other hand, less structured methods [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] have already proven
very useful when the interviewer seeks a broad spectrum of
information. This is possible since the interviewee is given
more freedom and somehow participates actively to steer the
discourse even towards unforeseen (but not less interesting)
directions [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. In order to avoid misinterpretations of
answers given by interviewees, interviews were always carried
out by at least two members of the research team. Moreover,
analysis and synthesis of the gathered data as well as
elicitation of the ndings were performed by the entire research
team.
      </p>
      <p>Regarding external validity, the interviewed companies
develop large-scale software to run on safety-critical embedded
real-time systems with long lifetime. This means that our
results can happen to not being applicable to very small
business cases or short lifetime products. Moreover, due to
the fact that we did not adopt a strictly structured interview
method and given the rather limited number of interviewees
we do not claim statistical relevance of our results.
Nevertheless, we believe that the results coming out from our
study, especially considering the fact that they were agreed
by all interviewed companies, represent a rst step towards
understanding the practical issues of evolving software
artefacts when adopting model-driven or model-based
development.
7.</p>
    </sec>
    <sec id="sec-13">
      <title>RELATED WORKS</title>
      <p>
        The last decade has seen an increasing amount of
publications devoted to empirically assess the industrial practices
in adopting MDE and both its good and bad e ects [
        <xref ref-type="bibr" rid="ref11 ref9">11, 9</xref>
        ].
Usually the existing literature surveys the problem from an
overall software development process perspective, analysing
the e ects across di erent applicative domains [
        <xref ref-type="bibr" rid="ref17 ref4 ref5">5, 17, 4</xref>
        ]
and/or target systems [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. On the contrary, this work
specifically targets evolutionary scenarios and the impact of MDE
in their management. In this respect, as mentioned in
Section 5, even if our data cannot be considered as statistically
relevant, it is possible to notice some trends con rming other
existing results, and also to deduce interesting explanations
about some current challenges in adopting MDE in concrete
industrial settings.
      </p>
      <p>
        Burden et al. [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] present a study of MDE adoption at
three large companies, two of which are also involved in
this work. It is therefore not surprising that we share
several observations with the cited paper, especially related
to the development process and the need of freezing
artefacts/speci cations pertaining to an abstraction level (or
development stage) before proceeding further. More generally,
studies like [
        <xref ref-type="bibr" rid="ref16 ref4 ref5">5, 4, 16</xref>
        ] or the one described in this work
remark the distinction between companies producing software
as main business and companies using software in their
products: in particular, the latter typically face more problems
due to the need for integration of the software development
with the remaining part of the system realisation process.
      </p>
      <p>
        It is worth noting that most of the empirical
investigations seem to assume the adoption of MDE as a one step
process, or they observe the e ects once the adoption
process is considered as satisfying/completed. However, MDE
adoption usually happens as a transition [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] in which MDE
methods are incrementally plugged in in the development
process. This also emerges in our interviews, where there
exist several degrees of adoption even when considering
different departments in the same company. The consequence
is that issues due to the partial adoption of MDE are
revealed through other side-e ects and troubles, notably the
lack of modelling competence, the inadequacy of the tools
and their integration, the extra e orts required to boot-strap
MDE-based development processes.
      </p>
    </sec>
    <sec id="sec-14">
      <title>CONCLUSIONS</title>
      <p>This paper discussed the issues faced in the management
of evolution in industrial software development processes
adopting MDE. These issues have been identi ed by analysing
the data gathered from semi-structured interviews with
practitioners in the context of an industry-academia joint
research project aiming at enhancing development processes.</p>
      <p>The problems described by the interviewees remarkably
a ect the development performances and hamper e ective
round-trip engineering. Starting from those problems, in
this paper we list a number of relevant challenges together
with their e ects on the development process. Moreover, we
propose a set of corresponding research directions that we
plan to investigate as next steps in the joint research project
mentioned above.</p>
    </sec>
    <sec id="sec-15">
      <title>ACKNOWLEDGMENTS</title>
      <p>The authors would like to thank all the interviewees that
accepted to collaborate in our project and provided useful
and honest insights about the internal development practices
at their companies. The project is supported by Software
Center.
10.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>N.</given-names>
            <surname>Aizenbud-Reshef</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B. T.</given-names>
            <surname>Nolan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Rubin</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Y.</given-names>
            <surname>Shaham-Gafni</surname>
          </string-name>
          .
          <article-title>Model traceability</article-title>
          .
          <source>IBM Systems Journal</source>
          ,
          <volume>45</volume>
          (
          <issue>3</issue>
          ):
          <volume>515</volume>
          {
          <fpage>526</fpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>J.</given-names>
            <surname>Aranda</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Damian</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Borici</surname>
          </string-name>
          . Transition to Model-Driven Engineering, pages
          <volume>692</volume>
          {
          <fpage>708</fpage>
          . Springer, Berlin, Heidelberg,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>J.</given-names>
            <surname>Bezivin</surname>
          </string-name>
          .
          <source>On the Uni cation Power of Models. SoSym</source>
          ,
          <volume>4</volume>
          (
          <issue>2</issue>
          ):
          <volume>171</volume>
          {
          <fpage>188</fpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>M.</given-names>
            <surname>Broy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Kirstan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Krcmar</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Scha</surname>
          </string-name>
          <article-title>tz. What is the Bene t of a Model-Based Design of Embedded Software Systems in the Car Industry?</article-title>
          , pages
          <fpage>343</fpage>
          {
          <fpage>369</fpage>
          . IGI Global,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>H.</given-names>
            <surname>Burden</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Heldal</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Whittle</surname>
          </string-name>
          .
          <article-title>Comparing and contrasting model-driven engineering at three large companies</article-title>
          .
          <source>In Procs. of the 8th ACM/IEEE Int. Symposium on Empirical Software Engineering and Measurement</source>
          ,
          <source>ESEM '14</source>
          , pages
          <issue>14:1</issue>
          {
          <fpage>14</fpage>
          :
          <fpage>10</fpage>
          , New York, NY, USA,
          <year>2014</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>R.</given-names>
            <surname>Eramo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Pierantonio</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Rosa</surname>
          </string-name>
          .
          <article-title>Managing uncertainty in bidirectional model transformations</article-title>
          .
          <source>In Procs. of the 2015 ACM SIGPLAN Int. Conf. on Software Language Engineering</source>
          ,
          <string-name>
            <surname>SLE</surname>
          </string-name>
          <year>2015</year>
          , pages
          <fpage>49</fpage>
          {
          <fpage>58</fpage>
          , New York, NY, USA,
          <year>2015</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>C.</given-names>
            <surname>Hardebolle</surname>
          </string-name>
          and
          <string-name>
            <given-names>F.</given-names>
            <surname>Boulanger</surname>
          </string-name>
          .
          <article-title>Exploring multi-paradigm modeling techniques</article-title>
          .
          <source>SIMULATION</source>
          ,
          <volume>85</volume>
          (
          <fpage>11</fpage>
          -12):
          <volume>688</volume>
          {
          <fpage>708</fpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>S. E.</given-names>
            <surname>Hove</surname>
          </string-name>
          and
          <string-name>
            <given-names>B.</given-names>
            <surname>Anda</surname>
          </string-name>
          .
          <article-title>Experiences from conducting semi-structured interviews in empirical software engineering research</article-title>
          .
          <source>In 11th IEEE International Software Metrics Symposium (METRICS'05)</source>
          , pages
          <fpage>10</fpage>
          {
          <fpage>23</fpage>
          . IEEE,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>G.</given-names>
            <surname>Liebel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Marko</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Tichy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Leitner</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Hansson</surname>
          </string-name>
          .
          <article-title>Model-based engineering in the embedded systems domain: an industrial survey on the state-of-practice</article-title>
          .
          <source>Software &amp; Systems Modeling</source>
          , pages
          <volume>1</volume>
          {
          <fpage>23</fpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>R. C.</given-names>
            <surname>Martin</surname>
          </string-name>
          .
          <article-title>Agile software development: principles, patterns, and practices</article-title>
          . Prentice
          <string-name>
            <surname>Hall</surname>
            <given-names>PTR</given-names>
          </string-name>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>P.</given-names>
            <surname>Mohagheghi</surname>
          </string-name>
          and
          <string-name>
            <given-names>V.</given-names>
            <surname>Dehlen</surname>
          </string-name>
          . Where Is the Proof ?
          <article-title>- A Review of Experiences from Applying MDE in Industry</article-title>
          , pages
          <volume>432</volume>
          {
          <fpage>443</fpage>
          . Springer, Berlin, Heidelberg,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>K.</given-names>
            <surname>Musante</surname>
          </string-name>
          and
          <string-name>
            <given-names>B. R.</given-names>
            <surname>DeWalt</surname>
          </string-name>
          .
          <article-title>Participant observation: A guide for eldworkers</article-title>
          .
          <source>Rowman Altamira</source>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>G.</given-names>
            <surname>Mussbacher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Amyot</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Breu</surname>
          </string-name>
          ,
          <string-name>
            <surname>J.-M. Bruel</surname>
            ,
            <given-names>B. H. C.</given-names>
          </string-name>
          <string-name>
            <surname>Cheng</surname>
            , P. Collet,
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Combemale</surname>
            ,
            <given-names>R.</given-names>
            B. France, R.
          </string-name>
          <string-name>
            <surname>Heldal</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Hill</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Kienzle</surname>
            , M. Schottle,
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Steimann</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Stikkolorum</surname>
            , and
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Whittle</surname>
          </string-name>
          .
          <source>The Relevance of Model-Driven Engineering Thirty Years from Now</source>
          , pages
          <volume>183</volume>
          {
          <fpage>200</fpage>
          . Springer International Publishing, Cham,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>D. C.</given-names>
            <surname>Schmidt</surname>
          </string-name>
          . Guest Editor's Introduction:
          <string-name>
            <surname>Model-Driven Engineering</surname>
          </string-name>
          . Computer,
          <volume>39</volume>
          (
          <issue>2</issue>
          ):
          <volume>25</volume>
          {
          <fpage>31</fpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>B.</given-names>
            <surname>Selic</surname>
          </string-name>
          .
          <article-title>The Pragmatics of Model-driven Development</article-title>
          .
          <source>IEEE Software, (5):</source>
          <volume>19</volume>
          {
          <fpage>25</fpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>M.</given-names>
            <surname>Staron</surname>
          </string-name>
          .
          <source>Adopting Model Driven Software Development in Industry { A Case Study at Two Companies</source>
          , pages
          <volume>57</volume>
          {
          <fpage>72</fpage>
          . Springer, Berlin, Heidelberg,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>J.</given-names>
            <surname>Whittle</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Hutchinson</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>Rounce eld</article-title>
          , H. Burden, and
          <string-name>
            <given-names>R.</given-names>
            <surname>Heldal</surname>
          </string-name>
          .
          <article-title>Industrial Adoption of Model-Driven Engineering: Are the Tools Really the Problem?</article-title>
          , pages
          <fpage>1</fpage>
          <lpage>{</lpage>
          17. Springer, Berlin, Heidelberg,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>