<!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>Automatic Generation of Transformations for Software Process Tailoring</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Luis Silvestre Computer Science Department, University of Chile Beauchef 851</institution>
          ,
          <addr-line>Santiago -</addr-line>
          <country country="CL">Chile</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>-Tailoring software processes is an activity that allows process engineers to adapt organizational software processes to the needs of particular projects. Model-driven engineering (MDE) has been used for tailoring software processes using models and transformations. Even though there are some proposals for automatically generating part of the transformations, they are not easily applicable in the software industry because there are still factors that jeopardize its usage in small software enterprises. First, the potential users -process engineers- do not usually have the required knowledge for writing transformations. Second, current transformation languages and tools are not simple for defining and applying tailoring transformations. Trying to deal with these challenges, this research proposes a tool-set that balances the formality required by MDE and the usability needed by the users. We define a domain-specific language for defining tailoring rules. These rules are the input for a higher-order transformation that automatically generates tailoring transformations with no direct user interaction with the code. The tool-set reduces the complexity of defining tailoring rules and allows for the automatic generation of tailoring transformations. We illustrate the application of our approach in a small Chilean software company.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
      <p>
        A software process is a structured set of activities required
to develop a software system from traditional models such as
the Waterfall [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], to more modern ones such as Scrum or
XP [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Software process formal specification allows
companies to rigorously document their development process and
tool support for process analysis and evolution. Development
projects faced by a particular company may be of different
kinds, e.g., large or small, complex or simple, new
development or evolution, and therefore the same software process is
not equally appropriate for all of them.
      </p>
      <p>
        Software process tailoring is the activity of adapting a
general software process to match the needs of the project at hand.
There are several proposals for software process tailoring, such
as using the same process for addressing all projects, counting
on a family of predefined processes or configuring a process
by putting together appropriate pieces [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. Empirical studies
show that process tailoring is difficult because it involves
intensive knowledge generation and application [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Therefore,
the tailoring process is unrepeatable and difficult to evolve.
      </p>
      <p>
        MDE [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] looks forward to improving development
productivity and software quality by reducing the semantic gap
between the problem domain and its solution, using models
and transformations. We have worked with MDE-based
tailoring for the last five years and it has proved to be technically
feasible [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. MDE-based tailoring consists of defining as a
model the organizational software process along with its
variability and the project context, and then use these models
as input of a tailoring transformation whose output is the
project adapted process model [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
      </p>
      <p>Motivation and Problem Statement.</p>
      <p>
        Writing tailoring transformation requires not only
knowledge about transformation programming languages, but also
about the process model and the way its variability should be
resolved according to the project context characteristics. These
two kinds on knowledge –programming a model
transformation and configuring a software process– are almost never
mastered by the same person in the company, and it is even
less frequent in Small Software Enterprises (SSEs), where the
average expertise of the staff is not high [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. Moreover, even
if there is someone that counts on both kinds of knowledge,
manually writing complex model transformation is still an
error-prone activity.
      </p>
      <p>
        MDE solutions are powerful and suitable for different
application domains, but they are almost always complex and thus
difficult to adopt. There are social and organizational factors
that threaten MDE industrial adoption [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] (e.g., technological
factors, resistance to change). In this sense, if SSEs would like
to reuse their processes through automatic tailoring by defining
and applying model transformations, they should not require a
direct interaction with the source code of any transformation.
      </p>
      <p>
        Related work. Proposals trying to address MDE
solutions should balance the formality required by MDE and
the usability needed by the process engineers. MOLA [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]
and GREaT [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] allow specifying transformation rules through
visual mapping patterns and VIATRA [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ] provides a textual
rule editor for specifying patterns. These proposals still need
the process engineer to interact with metamodels, models,
classes or code to adjust them to match the features of a
specific project. Therefore, if the user does not count on the
required experience for managing these elements, he could
neither write nor maintain the transformation code.
      </p>
      <p>
        Sijtema [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] proposes an extension to the Atlas
Transformation Language (ATL) [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], which is based on feature models
and requires the specification of the so-called variability rules.
In the approach, variability rules are transformed to standard
ATL code, i.e., variability is translated to called rules in ATL
using a Higher-order Transformation (HOT). HOT [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ] is a
special kind of transformations that may take a transformation
as input and/or generate a transformation as output. Although
the proposal raises the abstraction level, the process engineer
still needs to understand the ATL extension and directly
interact with code.
      </p>
      <p>
        The Atlas Model Weaver (AMW) [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] tool includes an
interactive interface for defining a weaving model that defines
the relationships between two models. The weaving model
can then be used as input for automatically generating model
transformations. The purpose of AMW is to generate
transformations for traceability or matching, so the rules are simple
and they do not include complex structures; in particular it is
not possible to include conditions for matching elements as
we need for tailoring process models according to the project
context. Nevertheless, we follow the structure of the AMW
tool for our solution: defining the relationship between both
input models and the output model, use this model as the input
for a HOT and generate the ATL transformation.
      </p>
      <p>
        There are some recent proposals such as Model
Transformations By Example [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ] and Model Transformation By
Demonstration [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ] that present innovative solutions for
simplifying the implementation of model transformations using
visual strategies and patterns. These strategies generate part
of the code of the model transformations; however, it is still
needed to complete such code. Therefore, this represents a
semi-automatic approach to generate model transformations
that is still not enough for process engineers.
      </p>
      <p>Goal. This paper describes the automatic generation of
tailoring transformations that improves the usability and hides
the complexity of MDE components for final users in SSEs.
We has two specific goals: (1) defining tailoring rules from
a domain-specific language (DSL) and automatically
generating tailoring transformations using a HOT, and (2) applying
the generated tailoring transformation for obtaining project
adapted software processes.</p>
      <p>We illustrate the whole tool-set –the tailoring rule definition
using the DSL and the tailoring transformation execution– by
applying it to the process of an industrial partner. We show
how this tool-set is able to generate tailoring transformations
that are correct by construction, in a usable manner,
requiring from the process engineer knowledge about the process
tailoring, but hiding the complexity of managing models and
writing model transformations.</p>
    </sec>
    <sec id="sec-2">
      <title>II. RUNNING EXAMPLE</title>
      <p>
        Mobius is a small Chilean company that was created four
years ago. It develops integrated software and hardware for the
public transportation system in Santiago, Chile. Mobius has 20
employees; 8 are directly working in software maintenance and
development. Smaller projects typically last a couple of days,
while larger development projects are three to four months
long. The software development process is loosely based on
Rational Unified Process [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] and is quite detailed in its
definition, with 104 tasks, 10 roles and 44 work products. They
formalized their software process three years ago using Eclipse
Process Framework Composer (EPFC)1. EPFC is a software
1www.eclipse.org/epf/
process modeling tool that supports Software and Systems
Process Engineering Metamodel Specification (SPEM) [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]
for modeling software process and UML activity diagrams for
representing software process behavior.
      </p>
      <p>Figure 1 shows the Architecture validation activity that is
part of Mobius’s process. Note that variability is represented
in the figure as a set of annotations. Tasks with annotations
denote optionality while dark decisions with annotations denote
alternatives; however variability is formally specified using
SPEM variability primitives in EPFC. Mobius’s process has
16 variability points.</p>
      <p>Mobius is part of GEMS2 research project. Mobius with
help of the GEMS team, specified a organizational software
process model, organizational context model and decision
rules for tailoring software process. We will show how the
proposed tool-set is applied for automatically generating the
tailoring transformation and executes the software process
tailoring. For this purpose, we will illustrate the approach
using the System architecture definition task (see Fig. 1).</p>
    </sec>
    <sec id="sec-3">
      <title>III. GENERAL APPROACH</title>
      <p>The approach requires two input models: an organizational
software process model (component 2 in Fig. 2) that conforms
to the eSPEM (experimental SPEM) metamodel that is a subset
of SPEM, and a project context (component 7 in Fig. 2)
that is a configuration of the organizational context model
(component 1 in Fig. 2) that conforms to the Software Process
Context Metamodel (SPCM). This approach uses a tailoring
transformation (component 7 in Fig. 2) that is a
model-tomodel transformation to generate an adapted software process
model (component 8 in Fig. 2) as output. The resulting process
model also conforms to eSPEM but includes no variability.
The proposed solution is called A Tool-set for Automatically</p>
      <sec id="sec-3-1">
        <title>Generating Tailoring Transformations (ATAGeTT). ATAGeTT</title>
        <p>is a model-based tool that allows process engineers to
interactive and transparently define the tailoring rules and generate
the tailoring transformation that can be used to adapt the
organizational software process. Figure 2 shows the general
architecture of the ATAGeTT.</p>
      </sec>
      <sec id="sec-3-2">
        <title>A. Tailoring Rules Definition</title>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Tailoring rules definition requires two input models.</title>
      <p>The first input is the organizational context model
(component 1 in Fig. 2). This model describes the potential values that
context attributes may take for particular projects. The second
input is the organizational software process model
(component 2 in Fig. 2) defined by the SSE for guiding software
development. This model specifies the potential variability of
activities, roles and work products that are optional or have
alternative implementations.</p>
      <p>
        Tailoring rules definition involved two steps: 1) identifying
the domain-specific concepts involved in tailoring rule
definition and 2) developing the DSL as a language that allows
defining tailoring rules. Next we explain these activities.
1) Conceptualizing the Process Tailoring Rules. We define
process tailoring rules as a set of conditions, conclusions
and logical operators that decide an action about a
variable process element. Consequently, a decision model is
a set of rules of the form condition ) conclusion,
where a condition is a predicate about the project
context, and the conclusion indicates how a variation
point is resolved when the condition holds. We define
the Variation Decision Model (VDM) (component 3 in
Fig. 2) for formally representing tailoring rules that
conforms to Variation Decision Metamodel (VDMM) (see
Fig. 3). The VDM is inspired by decision models [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ]
and Semantics of Business Vocabulary and Business
Rules used for building decision rules [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ].
2) Rule Definition. By keeping in mind the goal of reducing
the skills required to define tailoring transformation
rules, we developed a tool that allows the process
engineer to create models through a graphical interface
(Fig. 4). This graphical interface allows defining the
tailoring rules for each variation point of the software
process to be tailored without interacting with the code.
The graphical interface includes three activities: the
selection of input models, the definition of tailoring rules
and the automatic generation of the VDM. Concerning
the first one, the tool allows the user to select the input
models –organizational software process and
organizational context model– in a simple way. Concerning the
second activity, the tool guides the user presenting only
the software process elements defined as variable and
allowing to specify a rule either simple or complex
for each variation point (optional or alternative). The
tool also counts on a menu where the context attributes
and their potential values can be selected not
requiring any typing. Concerning the third activity, the tool
automatically generates the VDM using a text-to-model
transformation. This VDM is a DSL specifically defined
for modeling tailoring rules (see Fig. 5).
      </p>
      <p>In the running example (Fig. 4), the process
engineer defines that the System architecture definition task
(tsk system arq def in the interface) should not be included
when the Project type is “New Development”, or when the</p>
      <sec id="sec-4-1">
        <title>Interaction with other systems is “Complex”. These decisions</title>
        <p>are part of the adaptations defined by Mobius for its
organizational software process (see Fig. 1). Figure 5 shows the VDM
generated through the graphical interface. We can see that the
Configuration Content is formed by the Context Elements and
the process variability point elements. On the other hand, in
the Configuration Rule we can see that rule2 is highlighted
and in the lower part we can see that the Project type attribute
has been assigned the “New Development” value. As part
of this rule conclusion, System architecture definition task
(tsk system arq def in the model) is set to True, i.e., it will
be included as part of the adapted process; if the condition
does not hold, the activity will not be included.</p>
      </sec>
      <sec id="sec-4-2">
        <title>B. Tailoring Transformation Generation</title>
        <p>The VDM is used as input for a HOT that automatically
generates the process tailoring transformation. The tailoring
transformation is generated only once, and it can be used for
tailoring different projects’ contexts.</p>
        <p>Tailoring transformation generation has two steps: 1)
generate the tailoring transformation model and 2) extract the
tailoring transformation code.</p>
        <p>1) The HOT (component 4 in Fig. 2) is a generic
transformation and has the VDM as input. The HOT implements
a kind of transformation called synthesis pattern for
generating the tailoring transformation model using a
model-to-model transformation. This HOT is an
exogenous transformation because its input and output
models are expressed using different languages (decision
and transformation models, respectively). The resulting
tailoring transformation model (component 5 in Fig. 2)
conforms to the ATL metamodel.
2) The tailoring transformation code is obtained through
a model-to-text transformation that takes the tailoring
transformation model as input. This is a vertical
transformation –code generation– because its source and
target models are at different levels of abstraction (model
representation and code generation).</p>
        <p>Figure 6 shows the tailoring transformation automatically
generated for tailoring Mobius’s process. As stated in Fig. 4,
System architecture definition (tsk system arq def in the code)
is optional, and it has an associated rule in the tailoring
transformation. Figure 6 highlights the helper called by rule2
for deciding about the inclusion of the System architecture
definition task in the adapted process.</p>
      </sec>
      <sec id="sec-4-3">
        <title>C. Tailoring Software Process</title>
      </sec>
      <sec id="sec-4-4">
        <title>The adapted software process model (component 8 in Fig. 2)</title>
        <p>is the output of applying the generated transformation using
the organizational software process (component 2 in Fig. 2)
and the project context (component 7 in Fig. 2) as input. Such
a process includes all the process elements that are needed for
the specified context and nothing else.</p>
        <p>We developed a tool for applying the tailoring software
process in a usable way. The graphical interface allows the user
to select the project context and automatically generates the
adapted software process. The user does not need to interact
with the tailoring transformation execution.</p>
        <p>Mobius has a maintenance project and the project
context has the following configuration: Project Type is
“Maintenance”, and Interaction with other systems is “Simple”.
Figure 7 shows the generated adapted software process
using ATAGeTT and we can see that the System architecture
definition task was not included because the result of rule2 in
Fig. 6 is False.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>IV. RESULTS AND CONTRIBUTIONS</title>
      <p>The paper presents a tool-set for automatically generating
model transformations for tailoring software processes,
reducing thus the skills required by process engineers to perform this
task. The proposal makes an extensive use of MDE technology
and encapsulates highly sophisticated concepts within the
toolset that allows to address a practical industrial problem.</p>
      <p>
        We tried using some of the most promising techniques and
tools for developing HOTs such as AMW and MOFScript but
we found limitations for dealing with two input models [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ].
We built a proof of concept of ATAGeTT and applied it
through a running example [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ]. We automatically generated
transformation rules using the graphical interface and the
VDM. We also generated tailoring transformations for various
other Chilean SSEs using the generic HOT.
      </p>
      <p>
        We applied an exploratory case study [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ] for evaluating
correctness and productivity in two small Chilean SSEs. We
analyzed three software projects for each small Chilean SSE.
We compared the productivity of adapted software processes
obtained by using two different approaches: template-based
tailoring [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] and automatic tailoring [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ]. The productivity was
measured in terms of the missing and extra tasks between both
tailoring approaches. We found that the automatic tailoring is
always more efficient for generating the adapted process [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
The correctness was evaluated by comparing the adapted
software processes obtained manually and automatically.
      </p>
      <p>
        We are currently applying a confirmatory case study [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ]
for evaluating usability and expressiveness in two Chilean
SSEs. We are evaluating the usability by applying structured
questionnaires to process engineers [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] about their perception
about the graphical interface usability focusing on the elements
of Quality in Use Integrated Measurement (QUIM) [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. We
are evaluating the expressiveness by verifying that it counts
on all the required constructs for expressing the software
process engineer’s intentions for tailoring software processes.
Usability and expressiveness will be analyzed using qualitative
methods [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ], while correctness and productivity evaluation
use quantitative methods [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ].
      </p>
      <p>From our practical experience with our industrial partners,
we have validated that the proposed tool-set is easy to learn
and use for process engineers. Also, the generated tailoring
transformations yield the expected tailored software processes,
raising our confidence on the correctness on the tool-set.
We have not found in practice any tailoring rule that could
not be specified using the VDM, also raising our confidence
about its expressiveness for this application domain. However,
more practical experimentation is required to have conclusive
evidence.</p>
      <p>So far, the results are promising. Nevertheless, we are
aware that process and tailoring strategies of larger software
companies may be more complex, and thus the applicability
of our tool-set is not guaranteed. For instance, it may be the
case that some conditions for resolving variability do not just
depend on context values, but also on the way other variation
points are resolved; the tool-set does not support this kind of
conditions yet.</p>
      <p>Acknowledgments: This work has been partly funded by
Project Fondef GEMS IT13I20010 and Luis Silvestre was
also supported by PhD Scholarship Program of Conicyt, Chile
(CONICYT-PCHA/2013-63130130).</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>D.</given-names>
            <surname>Balasubramanian</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Narayanan</surname>
          </string-name>
          , C. vanBuskirk, and
          <string-name>
            <surname>G. Karsai.</surname>
          </string-name>
          <article-title>The graph rewriting and transformation language: GReAT</article-title>
          .
          <source>Electronic Communications of the EASST, 1</source>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>K.</given-names>
            <surname>Beck</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Beedle</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. Van</given-names>
            <surname>Bennekum</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Cockburn</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Cunningham</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Fowler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Grenning</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Highsmith</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Hunt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Jeffries</surname>
          </string-name>
          , et al.
          <source>Manifesto for agile software development</source>
          .
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>M. A.</given-names>
            <surname>Campion</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. E.</given-names>
            <surname>Campion</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J. P.</given-names>
            <surname>Hudson. Structured Interviewing</surname>
          </string-name>
          :
          <article-title>A note on Incremental Validity and Alternative Questions Types</article-title>
          .
          <source>Journal of Applied Psychology</source>
          ,
          <volume>79</volume>
          (
          <issue>6</issue>
          ):
          <fpage>998</fpage>
          <lpage>1002</lpage>
          ,
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>P.</given-names>
            <surname>Clarke</surname>
          </string-name>
          and
          <string-name>
            <given-names>R. V.</given-names>
            <surname>OConnor</surname>
          </string-name>
          .
          <article-title>The situational factors that affect the software development process: Towards a comprehensive reference framework</article-title>
          .
          <source>Information and Software Technology</source>
          ,
          <volume>54</volume>
          (
          <issue>5</issue>
          ):
          <fpage>433</fpage>
          -
          <lpage>447</lpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>A.</given-names>
            <surname>Cockburn</surname>
          </string-name>
          .
          <article-title>Crystal Clear a Human-powered Methodology for Small Teams</article-title>
          .
          <string-name>
            <surname>Addison-Wesley</surname>
            <given-names>Professional</given-names>
          </string-name>
          ,
          <source>first edition</source>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>M. D. Del Fabro</surname>
            ,
            <given-names>J</given-names>
          </string-name>
          . Be´zivin, and
          <string-name>
            <given-names>P.</given-names>
            <surname>Valduriez</surname>
          </string-name>
          .
          <article-title>Weaving Models with the Eclipse AMW plugin</article-title>
          .
          <source>In Eclipse Modeling Symposium, volume Eclipse Summit Europe</source>
          <year>2006</year>
          , Esslingen, Germany,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>T.</given-names>
            <surname>Dyba˚</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V. B.</given-names>
            <surname>Kampenes</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D. I. K.</given-names>
            <surname>Sjøberg</surname>
          </string-name>
          .
          <article-title>A systematic review of statistical power in software engineering experiments</article-title>
          .
          <source>Information &amp; Software Technology</source>
          ,
          <volume>48</volume>
          (
          <issue>8</issue>
          ):
          <fpage>745</fpage>
          -
          <lpage>755</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>F.</given-names>
            <surname>Gonzalez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Silvestre</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Solari</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M. C.</given-names>
            <surname>Bastarrica</surname>
          </string-name>
          .
          <article-title>TemplateBased vs. Automatic Process Tailoring</article-title>
          .
          <source>In XXXIII International Conference of the Chilean Computer Science Society SCCC</source>
          <year>2014</year>
          , Talca,Chile,
          <year>November 2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>J. A.</given-names>
            <surname>Hurtado Alegria</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. C.</given-names>
            <surname>Bastarrica</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Quispe</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S. F.</given-names>
            <surname>Ochoa</surname>
          </string-name>
          .
          <article-title>MDE-based process tailoring strategy</article-title>
          .
          <source>Journal of Software: Evolution and Process</source>
          ,
          <volume>26</volume>
          (
          <issue>4</issue>
          ):
          <fpage>386</fpage>
          -
          <lpage>403</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>J.</given-names>
            <surname>Hutchinson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Whittle</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Rouncefield</surname>
          </string-name>
          .
          <article-title>Model-driven engineering practices in industry: Social, organizational and managerial factors that lead to success or failure</article-title>
          .
          <source>Science of Computer Programming</source>
          ,
          <volume>89</volume>
          :
          <fpage>144</fpage>
          -
          <lpage>161</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>A.</given-names>
            <surname>Kalnins</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Barzdins</surname>
          </string-name>
          , and
          <string-name>
            <given-names>E.</given-names>
            <surname>Celms</surname>
          </string-name>
          .
          <article-title>Model Transformation Language MOLA</article-title>
          . In U. Aßmann,
          <string-name>
            <given-names>M.</given-names>
            <surname>Aksit</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <surname>A</surname>
          </string-name>
          . Rensink, editors,
          <source>MDAFA</source>
          , volume
          <volume>3599</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>62</fpage>
          -
          <lpage>76</lpage>
          , Twente, The Netherlands,
          <year>2004</year>
          . Springer.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>G.</given-names>
            <surname>Kalus</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Kuhrmann</surname>
          </string-name>
          .
          <article-title>Criteria for Software Process Tailoring: A Systematic Review</article-title>
          .
          <source>In Proceedings of the 2013 International Conference on Software and System Process</source>
          ,
          <string-name>
            <surname>ICSSP</surname>
          </string-name>
          <year>2013</year>
          , pages
          <fpage>171</fpage>
          -
          <lpage>180</lpage>
          , New York, NY, USA,
          <year>2013</year>
          . ACM press.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>P.</given-names>
            <surname>Kruchten</surname>
          </string-name>
          .
          <article-title>The Rational Unified Process: An Introduction</article-title>
          . AddisonWesley Longman Publishing Co., Inc., Boston, MA, USA,
          <volume>3</volume>
          <fpage>edition</fpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>J.</given-names>
            <surname>Lonchamp</surname>
          </string-name>
          .
          <article-title>A Structured Conceptual and Terminological Framework for Software Process Engineering</article-title>
          . In
          <source>In Proceedings of the Second International Conference on the Software Process</source>
          , pages
          <fpage>41</fpage>
          -
          <lpage>53</lpage>
          . IEEE Computer Society Press,
          <year>1993</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>OMG</surname>
          </string-name>
          .
          <article-title>Semantics of Business Vocabulary and Business Rules (SBVR) Version 1.0</article-title>
          .
          <source>Technical Report 2008-04-01</source>
          ,
          <year>2008</year>
          . http://www.omg.org/spec/SBVR/1.0/.
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          <source>[16] OMG. Software &amp; Systems Process Engineering Metamodel Specification (SPEM) Version 2.0. Technical Report 2008-04-01</source>
          , Object Management Group,
          <year>2008</year>
          . http://www.omg.org/spec/SPEM/2.0/PDF/.
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>H.</given-names>
            <surname>Padda</surname>
          </string-name>
          .
          <article-title>QUIM: A Model for Usability/Quality in Use Measurement</article-title>
          . LAP Lambert Academic Publishing, Germany,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>O.</given-names>
            <surname>Pedreira</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Piattini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. R.</given-names>
            <surname>Luaces</surname>
          </string-name>
          , and
          <string-name>
            <given-names>N. R.</given-names>
            <surname>Brisaboa</surname>
          </string-name>
          .
          <article-title>A Systematic Review of Software Process Tailoring</article-title>
          .
          <source>SIGSOFT Softw. Eng. Notes</source>
          ,
          <volume>32</volume>
          (
          <issue>3</issue>
          ):
          <fpage>1</fpage>
          -
          <lpage>6</lpage>
          , May
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>A. E.</given-names>
            <surname>Project</surname>
          </string-name>
          .
          <article-title>Atlas Transformation Language</article-title>
          .
          <source>Technical report, ATL Eclipse Project</source>
          ,
          <year>January 2006</year>
          . http://www.eclipse.org/atl/.
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>A.</given-names>
            <surname>Quispe</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Marques</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Silvestre</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. F.</given-names>
            <surname>Ochoa</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Robbes</surname>
          </string-name>
          .
          <article-title>Requirements engineering practices in very small software enterprises: A diagnostic study</article-title>
          . In S. F.
          <string-name>
            <surname>Ochoa</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Meza</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Mery</surname>
          </string-name>
          , and C. Cubillos, editors,
          <source>SCCC 2010, Proceedings of the XXIX International Conference of the Chilean Computer Science Society</source>
          , Antofagasta, Chile,
          <fpage>15</fpage>
          -19
          <source>November</source>
          <year>2010</year>
          , pages
          <fpage>81</fpage>
          -
          <lpage>87</lpage>
          . IEEE Computer Society,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>D. C.</given-names>
            <surname>Schmidt</surname>
          </string-name>
          .
          <article-title>Guest Editor's Introduction: Model-Driven Engineering</article-title>
          . IEEE Computer,
          <volume>39</volume>
          (
          <issue>2</issue>
          ):
          <fpage>25</fpage>
          -
          <lpage>31</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>C. B.</given-names>
            <surname>Seaman</surname>
          </string-name>
          .
          <article-title>Qualitative Methods in Empirical Studies of Software Engineering</article-title>
          .
          <source>IEEE Trans. Software Eng.</source>
          ,
          <volume>25</volume>
          (
          <issue>4</issue>
          ):
          <fpage>557</fpage>
          -
          <lpage>572</lpage>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>M.</given-names>
            <surname>Sijtema</surname>
          </string-name>
          .
          <article-title>Introducing Variability Rules in ATL for Managing Variability in MDE-based Product Lines</article-title>
          . volume
          <volume>10</volume>
          , pages
          <fpage>39</fpage>
          -
          <lpage>49</lpage>
          . CEUR Workshop Proceedings,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>L.</given-names>
            <surname>Silvestre</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. C.</given-names>
            <surname>Bastarrica</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S. F.</given-names>
            <surname>Ochoa</surname>
          </string-name>
          .
          <article-title>Implementing HOTs that Generate Transformations with Two Input Models</article-title>
          .
          <source>In XXXII International Conference of the Chilean Computer Science Society SCCC</source>
          <year>2013</year>
          , Temuco, Chile,
          <year>November 2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>L.</given-names>
            <surname>Silvestre</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. C.</given-names>
            <surname>Bastarrica</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S. F.</given-names>
            <surname>Ochoa</surname>
          </string-name>
          .
          <article-title>A Model-based Tool for Generating Software Process Model Tailoring Transformations</article-title>
          . In L. F. Pires,
          <string-name>
            <given-names>S.</given-names>
            <surname>Hammoudi</surname>
          </string-name>
          , and J. Filipe, editors,
          <source>MODELSWARD</source>
          , pages
          <fpage>533</fpage>
          -
          <lpage>540</lpage>
          . SciTePress,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Sun</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>White</surname>
          </string-name>
          ,
          <string-name>
            <given-names>and J.</given-names>
            <surname>Gray</surname>
          </string-name>
          .
          <article-title>Model Transformation by Demonstration. In A. Sch u¨rr and B</article-title>
          . Selic, editors,
          <source>MoDELS</source>
          , volume
          <volume>5795</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>712</fpage>
          -
          <lpage>726</lpage>
          , Denver, CO, USA,,
          <year>2009</year>
          . Springer.
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>M.</given-names>
            <surname>Tisi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Jouault</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Fraternali</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ceri</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Be</surname>
          </string-name>
          <article-title>´zivin. On the Use of Higher-Order Model Transformations</article-title>
          . In R. F.
          <string-name>
            <surname>Paige</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Hartman</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <surname>A</surname>
          </string-name>
          . Rensink, editors,
          <source>ECMDA-FA</source>
          , volume
          <volume>5562</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>18</fpage>
          -
          <lpage>33</lpage>
          , Enschede, The Netherlands,
          <year>2009</year>
          . Springer.
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <surname>D.</surname>
          </string-name>
          <article-title>Varr o´. Model transformation by example</article-title>
          . In O. Nierstrasz,
          <string-name>
            <given-names>J.</given-names>
            <surname>Whittle</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Harel</surname>
          </string-name>
          , and G. Reggio, editors,
          <source>Model Driven Engineering Languages and Systems</source>
          , volume
          <volume>4199</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>410</fpage>
          -
          <lpage>424</lpage>
          . Springer Berlin Heidelberg,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <given-names>D.</given-names>
            <surname>Weiss</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Slye</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Dinh-Trong</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Hongyu</surname>
          </string-name>
          .
          <article-title>DecisionModel-Based Code Generation for SPLE</article-title>
          .
          <source>In SPLC</source>
          , pages
          <fpage>129</fpage>
          -
          <lpage>138</lpage>
          ,
          <year>Sept 2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <given-names>M.</given-names>
            <surname>Wimmer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Strommer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Kargl</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Kramler. Towards Model Transformation Generation By-Example. In</surname>
          </string-name>
          <string-name>
            <surname>HICSS</surname>
          </string-name>
          , page
          <volume>285</volume>
          ,
          <string-name>
            <surname>Big</surname>
            <given-names>Island</given-names>
          </string-name>
          ,
          <string-name>
            <surname>HI</surname>
          </string-name>
          , USA,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <given-names>R.</given-names>
            <surname>Yin</surname>
          </string-name>
          .
          <article-title>Case study research: design and methods</article-title>
          .
          <source>Sage Publications</source>
          , Newbury Park, CA, third edition,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>