<!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>A Usable MDE-based Tool for Software Process Tailoring</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Luis Silvestre</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Mar´ıa Cecilia Bastarrica</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Sergio F. Ochoa</string-name>
          <email>sochoag@dcc.uchile.cl</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Computer Science Department, University of Chile Beauchef 851</institution>
          ,
          <addr-line>Santiago -</addr-line>
          <country country="CL">Chile</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>-In order to systematize development, software companies define their organizational processes. The process engineer is in charge of this activity. Tailoring software processes is an activity that allows project managers to adapt organizational software processes to the needs of particular projects. Modeldriven engineering (MDE) has been applied with that purpose using process model tailoring transformations. Although this approach is technically feasible, there are still factors that jeopardize its usage in industry. First, current transformation languages and tools are not simple for defining and applying tailoring transformations. Second, the potential users -process engineers and project managers- do not usually have the required knowledge for writing transformations. Trying to deal with these usability challenges, this paper proposes an MDE-based tool that allows defining the models for the organizational software process and the organizational context, as well as tailoring rules using a usable user interface, so that the project manager just requires to define the project context of the particular project in order to automatically obtain the tailored process. This usable interface hides the complexities of the tool backend built as a megamodel, requiring from the process engineer and the project manager only knowledge about project characteristics and how they affect tailoring. We report our experience of applying the tool in a real-world software process and we outline this experience in http://www.dcc.uchile.cl/gems/docs/DemoMODELS2015.pdf.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
      <p>
        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 process is not equally
appropriate for all of them. Process tailoring is the activity of
adapting a general process to match the needs of the project
at hand. Such a tailoring activity is generally performed by
the process engineer and the project manager: the process
engineer knows about the organizational process and how
project characteristics affect tailoring, while the project
manager knows about the project’s particular characteristics. There
are several proposals for 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="ref7">7</xref>
        ]. We have worked with
MDEbased process tailoring for the last five years and it has proved
to be technically feasible [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>
        MDE-based tailoring consists of defining an organizational
software process model along with its variability and the
project context model, and then use these models as input
of a tailoring transformation, whose output is the project
adapted process model [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Writing tailoring transformations
requires knowledge about model transformation programming
languages, and also about the software process model and the
way its variability should be resolved according to the project
context. 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 companies, where the
average expertise of the staff is not high [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. Moreover, even
if there is someone that counts on both kinds of knowledge,
manually writing complex model transformations is still an
error-prone activity.
      </p>
      <p>
        As part of a previous work [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], we have built a prototype
toolset that allows specifying tailoring rules through a user
interface, and automatically generating the corresponding
tailoring transformations. This toolset was composed of a set of
loosely coupled tools that allowed defining just simple optional
rules. However, while testing it in industrial scenarios, we
have realized that more complex tailoring rules are required;
alternative options should be chosen as part of the tailoring
activity, and there are some rules that require compound
conditions. Moreover, the toolset was not usable by our target
users since it needed dealing with intermediate models and
transformations, not for building them but to run each tool
with the appropriate models and transformations.
      </p>
      <p>
        In this paper we present an integrated MDE-based tool that
allows the process engineer defining the organizational process
and context as well as the transformation rules, and provides
the project manager an interface for defining the project
context and obtaining the tailored software process. All these
activities are executed without the need to manipulate models
or transformations. The tool’s complete structure is shown in
Fig. 1. Notice that its back-end is built as a megamodel [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]
and the front-end contains all the user interfaces.
      </p>
      <p>In this paper we show the application of the tool in the case
of one of our industrial partners, Amisoft, a small Chilean
software company. The case study includes the activities of
the process engineer –the software process, context and rule
definition–, the transformation generation and the project
manager activities –the project context definition and the tailoring
transformation execution–. We also show how this improved
tool is able to generate transformations that produce the correct
tailored software processes in a usable manner, only requiring
from the process engineer and the project manager knowledge
about the software process tailoring, but hiding the complexity
of managing models and writing model transformations. This
integrated tool is also more expressive than its previous
version, being able to define more sophisticated rules.</p>
      <p>Section II presents related work concerning MDE-based
tailoring and transformation generation. Section III describes
how the process engineer interacts with the tool, Sec. IV
how the tailoring transformation is generated, and Sec. V
the interaction of the project manager with the tool. Finally,
Sec. VI presents the conclusions and describes ongoing work.</p>
    </sec>
    <sec id="sec-2">
      <title>II. RELATED WORK</title>
      <p>
        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="ref4">4</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="ref15">15</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="ref9">9</xref>
        ] proposes an extension to the Atlas
Transformation Language (ATL), 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 HOT. Although the proposal raises the abstraction level, the
process engineer still needs to understand the ATL extension
and interact with code.
      </p>
      <p>
        AToMPM [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] is a Web-based metamodeling and
transformation tool for multi-paradigm modeling. It allows defining
DSLs through an interactive interface for specifying their
abstract syntax. It also provides support for rule definition and
scheduling using graph transformation rules. In this sense their
approach is similar to ours. However, in AToMPM rules still
need to be specified using a custom language, and it only
allows for simple conditions.
      </p>
      <p>
        There are also proposals such as MTBE (Model
Transformations By Example) [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] and MTBD (Model Transformation By
Demonstration) [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], which present solutions for simplifying
the implementation of model transformations by using
strategies and patterns with a visual support. They both generate
part of the transformation code, but the user still needs to
complete the generated code, and thus the transformation rule
generation becomes a semi-automatic process. Both proposals
highlight the need for developing new solutions that simplify
the rule definition, so that they become usable solutions for
non-experts in MDE.
      </p>
    </sec>
    <sec id="sec-3">
      <title>III. PROCESS ENGINEER’S USER INTERFACE</title>
      <p>The process engineer is in charge of defining the
organizational process model, the organizational context model, and
the variation decision model, i.e., the model that represents
the tailoring rules. Our tool integrates user interfaces for
performing each of these activities. We show the application of
the tool for the case of Amisoft, one of our industrial partners.</p>
      <p>
        Amisoft is a small Chilean software company. For the last
6 years, it has defined and enacted its software process.We
have applied the previous MDE-based software process
tailoring toolset in Amisoft [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] and, although they validated the
correctness of the resulting tailored processes, they admitted
that building tailoring transformations was beyond their
capabilities, even though they counted on a vast experience with
formalized software processes. In the following sections we
show how the new integrated tool improved this situation.
      </p>
      <sec id="sec-3-1">
        <title>A. Organizational Process Definition</title>
        <p>
          Several Chilean software companies are already using EPF
Composer as the framework for defining their software
process, even though there are other available tools [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ]. We will
include this tool as part of our solution in order to enhance
adoption. It allows defining the process breakdown, including
primitives for specifying process element variability, as well as
process behavior using activity diagrams. EPF Composer
allows exporting the software process as an XML file that is used
as input for other activities. Figure 2 shows the Requirements
activity, that is a portion of Amisoft’s software process. Notice
that Requirement Specification and Prototyping are highlighted
in the diagram for indicating optionality, even though this is
not standard SPEM [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ]; internally in the tool, they are formally
specified as optional.
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>B. Organizational Context Definition</title>
        <p>We have developed a user interface for defining the
organizational context. Here, the process engineer defines the
attributes that may determine how the process should be
tailored, as well as their potential values. For example, in
Fig. 3, we see that the attribute Technical Knowledge may take
values High or Medium/Low. The user interface allows editing
this organizational context by adding or deleting attributes,
and/or modifying their potential values. The output of this
interface will be saved as the Organizational Context Model.</p>
      </sec>
      <sec id="sec-3-3">
        <title>C. Tailoring Rules Definition</title>
        <p>
          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 user interface. This interface allows defining the
tailoring rules for each variation point of the software process
according to the values in the context; therefore, the interface
takes the Organizational Software Process and the
Organizational Context Model previously defined as input as shown in
Fig. 4. This tool implements a DSL formally defined in [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ].
        </p>
        <p>This activity involves two steps, the definition of tailoring
rules and the automatic generation of a Variation Decision
Model (VDM). In the first step, the tool guides the users
presenting them only the process elements defined as variable
and allowing them specify a rule either simple or complex for
each variation point. The tool also counts on a menu where
the context attributes and their potential values can be selected
not requiring any typing. The second step is done without the
user intervention.</p>
        <p>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 VDM is a set
of rules of the form condition ) conclusion, where a
condition is a predicate about the application domain, and the
conclusion indicates how a variation point is resolved when
the condition holds. A condition may be simple, i.e., when
it states attribute = value, or it may be complex when it is
formed by a series of simple conditions combined with logical
operations. The definition of the tailoring rule associated to the
Requirements Specification task is shown in Fig. 4.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>IV. TAILORING TRANSFORMATION GENERATION</title>
      <p>Transformation generation has two steps: generate the
tailoring transformation model and extract the tailoring
transformation code, as shown as part of the megamodel back-end in
Fig. 1. This activity is completely automatic and transparent
for both users. It is only generated once and can be used to
tailor all particular project contexts.</p>
      <p>We have built a Higher Order Transformation (HOT) that
takes the VDM as input, and uses a transformation synthesis
pattern for generating the tailoring transformation model using
a M2M transformation. This HOT is an exogenous and
vertical. The resulting tailoring transformation model conforms
to the ATL metamodel. The tailoring transformation code is
obtained through a M2T transformation that takes the tailoring
transformation model as input.</p>
      <p>Figure 5 shows an excerpt of the generated tailoring
transformation where variable process elements are identified as
well as their corresponding helper rules for resolving their
inclusion in the tailored process. Figure 6 shows the rules for
Prototyping and Requirements Specification. We can see that
rule condition for Requirements Specification is the same as
that specified with the tool in Fig. 4.</p>
    </sec>
    <sec id="sec-5">
      <title>V. PROJECT MANAGER’S USER INTERFACE</title>
      <p>The project manager is the final user of the tailoring tool
since he is in charge of executing the tailored process in each
project. To this end, he defines the context of the project at
hand, and the tool returns the tailored software process.</p>
      <p>We have built a tool for defining the project context.
Figure 7 shows the use of this tool for defining a Maintenance
project where Technical Knowledge is High and Development
Skills is High too. With these conditions, and according to
rules included in Fig. 6, neither Prototyping nor Requirements
Specification will be included in the tailored software
process since it is a Maintenance project. However, if it were
a Development project, Prototyping would be included, but
Requirements Specification would still not be included since</p>
      <sec id="sec-5-1">
        <title>Development Skills is High.</title>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>VI. CONCLUSIONS AND FUTURE WORK</title>
      <p>
        This article presents an MDE-based integrated tool for
defining and executing software process tailoring. It provides a
usable user interface that allows its users -the process engineer
and the project manager- to deal only with process and
context-related concepts hiding all the models and
transformations involved. The tool is better than its predecesor [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] in two
ways: it is an integrated tool that hides even the existence of
models and transformations and not only their generation, and
it is more expressive since it allows specifying more complex
tailoring rules. These enhancements were motivated by the
application of the tool in three of our industrial partners.
      </p>
      <p>We are currently applying the tool in two other small
Chilean companies. So far, the results are promising.
Nevertheless, we are aware that the reality of different software
companies may be also different, and thus the applicability of
our tool 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 does not support this kind of conditions
yet but we have not found the need in practice.</p>
    </sec>
    <sec id="sec-7">
      <title>ACKNOWLEDGEMENTS</title>
      <p>This work has been partly funded by Project Fondef
GEMS IT13I20010 and Luis Silvestre was also supported
by PhD Scholarship Program of Conicyt, Chile
(CONICYTPCHA/2013-63130130).</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>Daniel</given-names>
            <surname>Balasubramanian</surname>
          </string-name>
          , Anantha Narayanan, Chris vanBuskirk, and
          <string-name>
            <given-names>Gabor</given-names>
            <surname>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>Julio</given-names>
            <surname>Ariel Hurtado</surname>
          </string-name>
          <article-title>Alegr´ıa, Mar´ıa Cecilia Bastarrica, Sergio F Ochoa, and Jocelyn Simmonds</article-title>
          .
          <article-title>MDE software process lines in small companies</article-title>
          .
          <source>Journal of Systems and Software</source>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>Julio</given-names>
            <surname>Ariel Hurtado</surname>
          </string-name>
          <article-title>Alegr´ıa, Mar´ıa Cecilia Bastarrica, Alcides Quispe, and</article-title>
          <string-name>
            <given-names>Sergio 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="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>Audris</given-names>
            <surname>Kalnins</surname>
          </string-name>
          , Janis Barzdins, and
          <string-name>
            <given-names>Edgars</given-names>
            <surname>Celms</surname>
          </string-name>
          .
          <article-title>Model Transformation Language MOLA</article-title>
          . In
          <source>In proceedings of MDAFA</source>
          <year>2004</year>
          , volume
          <volume>3599</volume>
          <source>of LNCS</source>
          , pages
          <fpage>62</fpage>
          -
          <lpage>76</lpage>
          , Twente, The Netherlands,
          <year>2005</year>
          . Springer.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>Georg</given-names>
            <surname>Kalus</surname>
          </string-name>
          and
          <string-name>
            <given-names>Marco</given-names>
            <surname>Kuhrmann</surname>
          </string-name>
          .
          <article-title>Criteria for Software Process Tailoring: A Systematic Review</article-title>
          .
          <source>In In proceedings of ICSSP</source>
          <year>2013</year>
          , pages
          <fpage>171</fpage>
          -
          <lpage>180</lpage>
          , New York, NY, USA,
          <year>2013</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <source>[6] 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="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>Oscar</given-names>
            <surname>Pedreira</surname>
          </string-name>
          , Mario Piattini,
          <string-name>
            <surname>Miguel R. Luaces</surname>
          </string-name>
          , and
          <string-name>
            <surname>Nieves</surname>
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <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>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>Alcides</given-names>
            <surname>Quispe</surname>
          </string-name>
          , Maira Marques, Luis Silvestre,
          <string-name>
            <given-names>Sergio F.</given-names>
            <surname>Ochoa</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Romain</given-names>
            <surname>Robbes</surname>
          </string-name>
          .
          <article-title>Requirements engineering practices in very small software enterprises: A diagnostic study</article-title>
          .
          <source>In In Proceedings of SCCC</source>
          <year>2010</year>
          , Antofagasta, Chile, pages
          <fpage>81</fpage>
          -
          <lpage>87</lpage>
          . IEEE Computer Society,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>Marten</given-names>
            <surname>Sijtema</surname>
          </string-name>
          .
          <article-title>Introducing Variability Rules in ATL for Managing Variability in MDE-based Product Lines</article-title>
          .
          <source>In Marcos Didonet Del Fabro</source>
          , Fre´dric Jouault, and Ivan Kurtev, editors,
          <source>Proceedings of the 2nd International Workshop on Model Transformation with ATL</source>
          , volume
          <volume>10</volume>
          , pages
          <fpage>39</fpage>
          -
          <lpage>49</lpage>
          , Malaga, Spain,
          <year>2010</year>
          . CEUR Workshop.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Luis</surname>
            <given-names>Silvestre</given-names>
          </string-name>
          , Mar´ıa Cecilia Bastarrica,
          <string-name>
            <given-names>and Sergio F.</given-names>
            <surname>Ochoa</surname>
          </string-name>
          .
          <article-title>A Model-based Tool for Generating Software Process Model Tailoring Transformations</article-title>
          . In
          <source>In proceedings of MODELSWARD</source>
          <year>2014</year>
          , Lisbon, Portugal, pages
          <fpage>533</fpage>
          -
          <lpage>540</lpage>
          . SciTePress,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Jocelyn</surname>
            <given-names>Simmonds</given-names>
          </string-name>
          , Daniel Perovich, and
          <article-title>Mar´ıa Cecilia Bastarrica. A Megamodel for Software Process Line Modeling and Evolution</article-title>
          . In To appear
          <source>in Proceedings of MODELS</source>
          <year>2015</year>
          , Ottawa, Canada,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Yu</surname>
            <given-names>Sun</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Jules</given-names>
            <surname>White</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Jeff</given-names>
            <surname>Gray</surname>
          </string-name>
          .
          <article-title>Model Transformation by Demonstration</article-title>
          .
          <source>In In proceedings of MoDELS</source>
          <year>2009</year>
          , volume
          <volume>5795</volume>
          <source>of LNCS</source>
          , pages
          <fpage>712</fpage>
          -
          <lpage>726</lpage>
          , Denver, CO, USA,,
          <year>2009</year>
          . Springer.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Eugene</surname>
            <given-names>Syriani</given-names>
          </string-name>
          , Hans Vangheluwe, Raphael Mannadiar, Conner Hansen, Simon Van Mierlo, and Hu¨seyin Ergin.
          <article-title>Atompm: A web-based modeling environment</article-title>
          . In Demos/Posters/StudentResearch@ MoDELS
          <year>2013</year>
          , pages
          <fpage>21</fpage>
          -
          <lpage>25</lpage>
          . CEUR Workshop Proc.,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>Dniel</given-names>
            <surname>Varr</surname>
          </string-name>
          .
          <article-title>Model transformation by example</article-title>
          .
          <source>In In proceedings of MoDELS</source>
          <year>2006</year>
          , volume
          <volume>4199</volume>
          <source>of LNCS</source>
          , pages
          <fpage>410</fpage>
          -
          <lpage>424</lpage>
          . Springer Berlin Heidelberg,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>Da</surname>
          </string-name>
          <article-title>´niel Varro´, Gergely Varro´, and Andra´s Pataricza. Designing the automatic transformation of visual languages</article-title>
          .
          <source>Science of Computer Programming</source>
          ,
          <volume>44</volume>
          (
          <issue>2</issue>
          ):
          <fpage>205</fpage>
          -
          <lpage>227</lpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>