<!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>Evaluating the Quality in Use of Domain-Speci c Languages in an Agile Way</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Ankica Barisic</string-name>
          <email>a.barisic@campus.fct.unl.pt</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>CITI, Departamento de Informatica</institution>
          ,
          <addr-line>Faculdade de Ci</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>encias e Tecnologia Universidade Nova de Lisboa Campus de Caparica</institution>
          ,
          <addr-line>2829-516 Caparica</addr-line>
          ,
          <country country="PT">Portugal</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>To deal with the increasing complexity of the software systems to be developed, it is important to have high level approaches to development that support such complexity at a ordable costs. This fosters the development of Domain-Speci c Languages (DSLs) that are claimed to bring important productivity improvements to software developers. Because of that, the quality of the users interaction with this kind of technology is becoming of utmost importance. The goal of this research is to contribute to the systematic activity of software language engineering by focusing on the issue of quality in use evaluation of DSLs, in which design decisions are validated iteratively.</p>
      </abstract>
      <kwd-group>
        <kwd>Experimental Software Engineering</kwd>
        <kwd>Domain-Speci c Languages</kwd>
        <kwd>Software Language Engineering</kwd>
        <kwd>Quality in Use</kwd>
        <kwd>Agile development</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        As software moves to the daily routines and responsibilities of people, there is a
need for developing tools rapidly. Domain-Speci c Languages (DSLs) are claimed
to contribute to a productivity increase in software systems development, while
reducing the required maintenance and required programming expertise. DSLs
are designed to bridge the gap between the problem domain (essential concepts,
domain knowledge, techniques, and paradigms) and the solution domain
(technical space, middleware, platforms and programming languages). DSLs empower
domain experts to specify systems for their own domains. However intuitive this
idea may be, we need to have means to assert the quality and success of the
developed languages. We argue that for this kind of software languages the
measure of success has to be captured by assessing the real impact of using DSL
in real context of use by their target domain users. The alternative is to accept
the risk of deriving inappropriate products that bring more harm by decreasing
productivity or even increasing maintenance costs at the long run.
Domain-driven development is becoming increasingly popular, as it raises the
abstraction level. Language engineers need to deal with the accidental complexity
of the used computer technology, e.g., the use of low level abstraction
programming languages, while integrating a wide plethora of di erent tools and libraries
to create a DSL for target domain context. On the other hand, DSL
development requires domain and language development expertise, and few people have
both. This lead language engineers to cope with the growing of both essential
and accidental complexity [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
      </p>
      <p>
        Software language engineering (SLE) is the application of a systematic,
disciplined and quanti able approach to the development, usage, and maintenance of
software languages [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Although, the phases of DSL life cycle are systematically
de ned [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], this process lack one crucial step, namely language evaluation just
before the deployment [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
      </p>
      <p>
        The software industry does not seem to report investment on the evaluation
of DSLs, as shown in a recent systematic literature review [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. We argue that
this is due the perceived high costs of DSL evaluation, that lack a consistent
and computer-aided integration of two di erent and demanding complementary
software language processes: development and evaluation. Language engineers
should become aware of relevant quality concerns during development, and
identify and apply best practices into their development plan. Evaluation experts
should get better understanding of all the models involved in the DSL
development in order to be able to give appropriate and reliable suggestions towards
the improvement of the language under development.
      </p>
      <p>
        The focus of this research is to propose a systematic evaluation process for
DSLs with the usability concern [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. This process is seen as a number of iterations
that will enable cost control during the development process and will guarantee
success of produced language from the user point of view.
3
      </p>
    </sec>
    <sec id="sec-2">
      <title>Related work</title>
      <p>
        A programming language is a model that describes the allowed terms and how
to compose them into valid sentences. DSLs are generally conceived as
communication interfaces between human and computers. User Interfaces (UIs) can be
also seen as a realization of a language. From this perspective it was discussed in
[
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] that evaluating usability of DSLs is not much di erent from evaluating UIs.
      </p>
      <p>
        Empirical (i.e. experimental) evaluation studies of UI with real users is a
crucial phase of UI validation [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. A relevant set of quantitative and qualitative
measurements must be inferred and combined together to lead to a useful
assessment of the several dimensions that de ne software Quality in Use, often referred
as Usability [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. Meaning of usability for target domain users is a main
criteria to be de ned and analyzed, in order to identify which internal and external
qualities will be relevant to be veri ed during development. These complex
experimental evaluation studies are typically implemented by software evaluation
experts. Their expertise is essential to properly design the evaluation sessions
and to gather, interpret, and synthesize signi cant results. Although it is
desirable to have software evaluation experts in the teams, it is not always possible to
have them available due to, among several reasons, the cost and time involved.
This situation calls for the need of automatic tools that support these experts,
as well as language developers. One way to obtain qualitative measurements is
by means of observations and direct questionnaires to the users [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ].
      </p>
      <p>There is an increasing awareness to the quality in use of languages, fostered
by the competition of language providers. Better usability is a competitive
advantage, although evaluating it remains challenging. While evaluating competing
languages, it is hard to i) interpret the existing metrics in a fair, unbiased way,
ii) provide reliable design changes; and iii) assure that the scope of evaluation is
preserved to target user groups.</p>
      <p>
        In the context of General Purpose Languages (GPLs), comparing the
productivity impact of di erent languages during development process has some
tradition [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. Some of the common techniques is the use of popularity index1,
the cognitive dimensions framework [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], or heuristic based on the studies of
cognitive e ectiveness for visual syntax [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. Some of these methods can be reused
in a case when this techniques are identi ed relevant for usability of DSL (e.g.
Moody work on cognitive e ectiveness can be reused just if visual concrete
syntax is given to target DSL) When usability problems are identi ed too late, a
common approach to mitigate them is to build a tool support that minimizes
their e ect on users productivity [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ].
4
      </p>
    </sec>
    <sec id="sec-3">
      <title>Approach to DSL evaluation</title>
      <p>A systematic approach based on UI experimental validation techniques should
be used to assess the impact of new DSLs. For that purpose, it is necessary to
merge common usability evaluation process with the DSL development process.
We expect that introducing evaluation experts into DSL development will enable
language engineers to build languages that are easier to use, leading to increased
productivity and positive experience by their users.</p>
      <p>In order to evaluate DSLs we need a rigorous collaborative procedure (both
during and after their development), as well as evaluate their sentences (called
instance models). For that it is necessary to (i) de ne the usability criteria to
evaluate DSLs by focusing on indicators that are relevant for users perception of
quality (e.g. e ciency, e ectiveness, reliability,learnability, scalability, reusability
ect.); (ii) integrate in an existing IDE support Quality in Use indicators; and
(iii) de ne a methodological approach to support the evolution of a DSLs based
on experience and infer its impact on quality improvement during its lifecycle
(e.g. traceability of design decisions, reuse of experiment results in a domain).</p>
      <p>
        An iterative user-centered approach DSL for evaluation was proposed in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
Goal was to establish formal correspondences between the DSL development
process and the experimental evaluation. We should research the most suitable
means to provide both reliable DSL evaluation metrics and iterative suggestions
during DSLs development and evolution. The initial vision of the approach is
detailed by a set of practices that are introduced in order to provide a complete
1 http://lang-index.sourceforge.net/
solution to a complex problem of placing intended users as a focal point of DSLs
design and conception, and by that we ensure that the language satis es the
user requirements [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. These interdependent patterns are expected to disseminate
best practices to the end users. It provides means of performing experimental
validation in the most coste ective manner and is expected to give the rationale
about correct and reliable indicators that should be reusable.
      </p>
      <p>
        These patterns outline di erent roles relevant for development and evaluation
of DSL, and are divided into three sets that correspond to a di erent abstraction
space: (i) Agile Development Process includes patterns devoted to project
management and engineering of a DSL. Through organization and planning of
language development we are controlling evaluation activities and tracking success
of the DSL. After each iteration, evaluation and development goals are scoped
and budget is xed in order to proceed to design and implementation activities
that are guided by (ii) Iterative User-Centered Design patterns. These support
engagement of evaluation expert into development process, that collects relevant
informations concerning the language engineer conception of problem solution
and users interpretation. Depending on artifacts to be evaluated (cognitive model
instances), abstraction layers that iteration focus on (abstract or concrete
syntaxes, integration environment, given semantics), evaluation methodology,
metrics de nition and relations used, each iteration evaluation design can vary a
lot. The third set of patterns, (iii) Experimental Evaluation Design supports the
de nition of evaluation process artifacts e.g. hypothesis, tests, metrics, samples
and statements [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. This artifacts are expected to be reused in a cases when they
do not present threat to validity of results.
      </p>
      <p>By planning carefully the development process and organization of
responsibilities and costs, the goal is to establish balanced management and engineering
plan that will satisfy both: business and user needs, by optimizing impact of
evaluation feedback on language development. Also, time that is invested into
strategy and design of problem and its solution can be planned well with the
technical implementation of solution.</p>
      <p>
        By adopting UI evaluation process to DSL development [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], it is found that
a set of language and evaluation goals should be identi ed during the domain
engineering phase of DSL's construction i.e. while eliciting minimum set of
domain concepts. A rst step is to understand and specify the context of use of
DSLs and which kind of user groups it should target. Interviews or
questionnaires with the DSL's intended users should be designed to capture information
about working environment and baseline approach to solve problems in terms of
user stories. In the language design phase, it is necessary to identify which
quality in use attributes are impacted by internal and external quality indicators.
During the implementation phase, the language engineer can bene t from the
collected information by means of tools or instruments that implements chosen
measures directly on the DSL prototype. Finally, in the testing phase, the
language engineer should involve (at least) evaluation expert to validate that the
known quality problems and functional tests can be accepted, and to perform
heuristic evaluation or quasi experiments with domain experts. When evaluation
goals seem to reach acceptable levels, end-user-based evaluation should be
conducted. This experiment is executed by giving the users real problems to solve
in order to cover the most important tasks related to scope of evaluation. Data
about satisfaction and cognitive workload should also be evaluated subjectively
through questionnaires. It is important in this phase to measure all the
learnability issues, since DSLs should be (in principle) easy to learn and remember.
Examples of the user-based evaluations of DSLs can be seen in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] and [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ].
5
      </p>
    </sec>
    <sec id="sec-4">
      <title>Preliminary work and contribution</title>
      <p>
        When we consider GPLs, their users are part of population that master well
mathematical and technical concepts (e.g. they are highly skilled in
computations and logical reasoning). In order to develop programming solutions, GPL
users (i.e. programmers) need to understand also domain concepts. On the other
hand, as DSLs are meant to reduce use of computation concepts by putting focus
on the domain concepts. As such, DSLs are expected to be used by the much
diverse target population in di erent context of use [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] (e.g. experts from physics,
chemistry, nance, management etc.). This means that evaluation criteria for
DSLs need to be appropriate for their target users, technical environment and
social and physical environment. However, the positive coincidence, when
compared to deveres UI users, is that this expected user groups are relatively small
with precisely de ned knowledge sets.
      </p>
      <p>
        Under the perspective of SLE, in order to experimentally evaluate a DSL, we
need to know what are the criteria involved, understand the notion of quality
from the relevant perspectives and understand the experimental process itself.
This complex challenge was covered by general model for DSL experimental
evaluation, i.e. [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], that served as a set of proof of concept instantiations of the
proposed experiment. Experimental model outlines the activities needed to
perform an experimental evaluation of a software engineering claim, following the
scienti c method. In order to e ectively reason about experimental process and
eventually detect aws before it is applied and analysed we systematically
compared four language evaluation experiments that are examples of best practices.
      </p>
      <p>
        Building DSLs is becoming very popular and by that there are increasing
needs of some pointers in topic of their cognitive congeniality to end user. The
value of contribution in this line of research is supported by the evidence of
the interesting return of investment on usability evaluation for other software
products [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. The bene ts of usability evaluation span from a reduction of
development and maintenance costs, to increased revenues brought by an improved
e ectiveness and e ciency by the end users [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. By allowing signi cant changes
to correct de ciencies along the DSL development process, instead of just
evaluating them in the end of it, presented user-centered design is meant to reduce
development and support costs, increase sales, and reduce sta cost for
employers [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. This approach is expected to contribute to increase the external quality
of the dsl and its correct construction according to the target expectations.
Usability is seen as an end goal, but to achieve it we need a means to trace how
close we are to our goal trough development process.
6
      </p>
    </sec>
    <sec id="sec-5">
      <title>Evaluation methodology</title>
      <p>Our goal is to evaluate our approach with respect application of approach to
academical and industrial real cases. In particular, we address following research
questions:</p>
      <p>Q1: Can our approach identify usability problems early in development cycle?
Q2: By using the proposed approach to language development, are we able
to trace and validate design decisions?</p>
      <p>Q3: By using proposed design of evaluation are we able to replicate
experiments and reuse data and metrics?</p>
      <p>Experiment planning. To evaluate rst research question (Q1), a set of
evaluation experiments during DSL development that use presented technique
should be conducted, where the main role of author is to be involved as evaluation
expert (i.e. usability engineer). Comparison to baseline approaches to solving
problem is expected to give us means of better quality of use for the produced
solution. By comparing solutions within same domain, and iteratively comparing
the design solutions from each of iterations we are planning to nd answers to
our second and third research questions (Q2,Q3). By systematically comparing
more DSL solutions within same domain, where each one cycle is focusing of
di erent high level goals, we expect to have a means of reusing evaluation data,
and building up statistical evidence of their validity and correlations. This will
help validating our approach.</p>
      <p>Threats to validity. In some evaluation cases it will be hard to distinguish
if the success of produced DSL is to be due to our approach for usability or
building a DSL by itself. However, we believe that is possible to overcome this
threat by validating success of design decisions through di erent iterations and
performing comparative analysis between them. It is needed to take a special
care that for same context of experiment we use di erent subjects. Threat is that
as there will be hard to nd a lot of expert users in domain, and often we will
end up by having available just novice users for new problem solving approach.
However, it is possible to validate di erent artifacts or abstraction layers with
a same user groups. While performing evaluation experiments we need to be
careful that we don't compare non-related things; like trying to compare DSL
with Java (e.g. we should restrict the GPL just to the constructs that are related
with a target domain: query procedures of Java with a query DSL). That is the
reason why we need to precisely de ne scope and assure that context of use can
t inside. It will be also challenging to evaluate iterative life-cycle.
7</p>
    </sec>
    <sec id="sec-6">
      <title>Research status</title>
      <p>
        Our analysis of target evaluation domain resulted in the conceptual models that
should be involved into the methodological framework (e.g. context model,
survey instruments and indicators, goal and requirements model etc.). In order to
support evaluation and language design, presented patterns are illustrated by
a real life case study of the usability evaluation of a DSL for the High-Energy
Physics [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] by the author in a role of evaluation expert. This language was found
appropriate for analysis, as it had detailed description of domain problem and
development process. It was also rare example of a language that concentrates
on group of users that are not programmers and it had systematic usability
evaluation performed in the end.
      </p>
      <p>Author is currently performing two evaluations of the approach. The rst
one in industrial context that involves iterative development of a DSL for the
humanitarian campaign ow speci cation (FlowSL). This example is expected
to result in the detailed de nition of all artifacts that are needed to support
development process. During the development process, FlowSL is being evaluated
in comparison with baseline approach (hacking Ruby code), and comparative
evaluations of iteration releases. In the end it is expected to be compared with
BPMN with novice users, to assess learnability issues. Other experiment is run
in context of summer schools on DSL development. Here the goal is to capture
and validate design decisions and quality metrics between language solutions
developed parallelly by di erent student groups.</p>
      <p>An additional step is to conceptualize models for performing DSLs evaluation,
metrics and traceability model of design changes and their impact. This support
should be tailored to internal and external quality (e.g. syntactic and semantic
models) and quality in use (e.g. interaction model) artifacts while using a DSL
along several iterative evolution steps. It is expected to support more e cient
performance of evaluation, and enable evaluator to explicitly model the process.
This procedure will give us faster convergence of language development, as it
enable us to monitor the impact of language evolution to the e ciency and
e ectiveness of practitioners using the language (and its companion toolset).</p>
      <p>As a side e ect, this evaluation work is expected to contribute to the
validation of the claim that DSLs are more usable than GPLs. The impact of an
evaluation process for DSLs could be interesting from an industry point of view.
With many organizations developing their own languages, or hiring companies
to develop such languages for them, this framework can aid them in reaching
more usable languages.</p>
      <p>Acknowledgments I gratefully thank to my supervisors Vasco Amaral and
Miguel Goula~o . This work was partially supported by the CITI - PEst - OE /EEI
/UI0527 /2011, Centro de Informtica e Tecnologias da Informao (CITI/FCT/UNL).</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>A.</given-names>
            <surname>Barisic</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Amaral</surname>
          </string-name>
          , and
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>Goul~ao. Usability evaluation of domain-speci c languages</article-title>
          .
          <source>In Quality of Information and Communications Technology (QUATIC)</source>
          ,
          <source>2012 Eighth International Conference on the Quality of Information and Communications Technology (QUATIC'2012)</source>
          , pages
          <fpage>342</fpage>
          {
          <fpage>347</fpage>
          . IEEE,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>A.</given-names>
            <surname>Barisic</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Amaral</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>Goul~ao, and</article-title>
          <string-name>
            <given-names>B.</given-names>
            <surname>Barroca</surname>
          </string-name>
          .
          <article-title>Evaluating the usability of domain-speci c languages</article-title>
          . In Marjan Mernik, editor,
          <source>Formal and Practical Aspects of Domain-Speci c Languages: Recent Developments</source>
          , pages
          <volume>386</volume>
          {
          <fpage>407</fpage>
          . IGI Global,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>A.</given-names>
            <surname>Barisic</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Amaral</surname>
          </string-name>
          , M. Goula~o, and
          <string-name>
            <given-names>M.P.</given-names>
            <surname>Monteiro</surname>
          </string-name>
          .
          <article-title>Patterns for evaluating usability of domain-speci c languages</article-title>
          .
          <source>Proceedings of the 19th Conference on Pattern Languages of Programs (PLoP)</source>
          ,
          <source>SPLASH</source>
          <year>2012</year>
          ,
          <year>September 2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>A.</given-names>
            <surname>Barisic</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Amaral</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>Goula~o, and</article-title>
          <string-name>
            <given-names>B.</given-names>
            <surname>Barroca</surname>
          </string-name>
          .
          <article-title>How to reach a usable DSL? moving toward a systematic evaluation</article-title>
          .
          <source>ECEASST</source>
          ,
          <volume>50</volume>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>A.</given-names>
            <surname>Barisic</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Amaral</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>Goula~o, and</article-title>
          <string-name>
            <given-names>B.</given-names>
            <surname>Barroca</surname>
          </string-name>
          .
          <article-title>Quality in use of DSLs: Current evaluation methods</article-title>
          .
          <source>Proceedings of the 3rd INForum - Simposio de Informatica (INForum2011)</source>
          ,
          <year>September 2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>Ankica</given-names>
            <surname>Barisic</surname>
          </string-name>
          , Vasco Amaral, Miguel Goula~o, and
          <string-name>
            <given-names>Bruno</given-names>
            <surname>Barroca</surname>
          </string-name>
          .
          <article-title>Quality in use of domain-speci c languages: a case study</article-title>
          .
          <source>In Proceedings of the 3rd ACM SIGPLAN workshop on Evaluation and usability of programming languages and tools</source>
          ,
          <source>PLATEAU '11</source>
          , pages
          <fpage>65</fpage>
          {
          <fpage>72</fpage>
          , New York, NY, USA,
          <year>2011</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>R.</given-names>
            <surname>Bellamy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>John</surname>
          </string-name>
          , J. Richards, and
          <string-name>
            <surname>J. Thomas. Using</surname>
          </string-name>
          <article-title>CogTool to model programming tasks. Evaluation and Usability of Programming Languages and Tools (PLATEAU</article-title>
          <year>2010</year>
          ), page 1,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>Fred</given-names>
            <surname>Brooks</surname>
          </string-name>
          .
          <source>The Mythical Man-Month. Addison-Wesley</source>
          ,
          <year>1975</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>T.</given-names>
            <surname>Catarci</surname>
          </string-name>
          .
          <article-title>What happened when database researchers met usability</article-title>
          .
          <source>Information Systems</source>
          ,
          <volume>25</volume>
          (
          <issue>3</issue>
          ):
          <volume>177</volume>
          {
          <fpage>212</fpage>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>Alan</given-names>
            <surname>Dix</surname>
          </string-name>
          .
          <article-title>Human computer interaction</article-title>
          .
          <source>Pearson Education</source>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11. Pedro Gabriel, Miguel Goula~o, and
          <string-name>
            <given-names>Vasco</given-names>
            <surname>Amaral</surname>
          </string-name>
          .
          <article-title>Do software languages engineers evaluate their languages? In Xavier Franch</article-title>
          ,
          <string-name>
            <surname>Itana Maria de Sousa Gimenes</surname>
          </string-name>
          , and
          <article-title>Juan-Pablo Carvallo, editors, XIII Congreso Iberoamericano en "Software Engineering"</article-title>
          (CIbSE'
          <year>2010</year>
          ),
          <source>ISBN: 978-9978-325-10-0</source>
          , pages
          <fpage>149</fpage>
          {
          <fpage>162</fpage>
          ,
          <string-name>
            <surname>Cuenca</surname>
          </string-name>
          , Ecuador,
          <year>2010</year>
          .
          <source>Universidad del Azuay.</source>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Thomas</surname>
            <given-names>R. G.</given-names>
          </string-name>
          <string-name>
            <surname>Green</surname>
            and
            <given-names>Marian</given-names>
          </string-name>
          <string-name>
            <surname>Petre</surname>
          </string-name>
          .
          <article-title>Usability analysis of visual programming environments: a cognitive dimensions framework</article-title>
          .
          <source>Journal of Visual Languages &amp; Computing</source>
          ,
          <volume>7</volume>
          (
          <issue>2</issue>
          ):
          <volume>131</volume>
          {
          <fpage>174</fpage>
          ,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13. International Standard Organization. Iso/iec fdis 25010:
          <article-title>2011 systems and software engineering { systems and software quality requirements and evaluation (square) { system and software quality models</article-title>
          ,
          <year>March 2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Toma</surname>
            <given-names>Kosar</given-names>
          </string-name>
          , Marjan Mernik, and
          <article-title>Je rey Carver. Program comprehension of domain-speci c and general-purpose languages: comparison using a family of experiments</article-title>
          .
          <source>Empirical Software Engineering</source>
          , pages
          <volume>1</volume>
          {
          <fpage>29</fpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <given-names>Aaron</given-names>
            <surname>Marcus</surname>
          </string-name>
          .
          <article-title>The roi of usability</article-title>
          .
          <source>In Bias and Mayhew</source>
          , editors,
          <source>Cost-Justifying Usability. North- Holland: Elsevier</source>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Marjan</surname>
            <given-names>Mernik</given-names>
          </string-name>
          , Jan Heering, and
          <string-name>
            <surname>Anthony</surname>
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Sloane</surname>
          </string-name>
          .
          <article-title>When and how to develop domain-speci c languages</article-title>
          .
          <source>ACM Computing Surveys</source>
          ,
          <volume>37</volume>
          (
          <issue>4</issue>
          ):
          <volume>316</volume>
          {
          <fpage>344</fpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17. D.L. Moody.
          <article-title>The physics of notations: Toward a scienti c basis for constructing visual notations in software engineering</article-title>
          .
          <source>IEEE Transactions on Software Engineering</source>
          , pages
          <volume>756</volume>
          {
          <fpage>779</fpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <given-names>Jakob</given-names>
            <surname>Nielsen</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Gilutz</surname>
          </string-name>
          .
          <article-title>Usability return on investment</article-title>
          .
          <source>Technical report</source>
          , Nielsen Norman Group,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <given-names>Lutz</given-names>
            <surname>Prechelt</surname>
          </string-name>
          .
          <article-title>An empirical comparison of seven programming languages</article-title>
          .
          <source>IEEE Computer</source>
          ,
          <volume>33</volume>
          (
          <issue>10</issue>
          ):
          <volume>23</volume>
          {
          <fpage>29</fpage>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <given-names>J.</given-names>
            <surname>Rubin</surname>
          </string-name>
          and
          <string-name>
            <given-names>D.</given-names>
            <surname>Chisnell</surname>
          </string-name>
          . Handbook of Usability Testing:
          <article-title>How to plan, design and conduct e ective tests</article-title>
          . Wiley-India,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>