<!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 Bottom Up Approach to Model Based Program Validation</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Thomas Calder</string-name>
          <email>Thomas.Peter.Calder@stud.hib.no</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Yngve Lamo</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Bergen University College</institution>
          ,
          <country country="NO">Norway</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Validators are used to ensure that internet based services present information in an adequate way to the end users. However, today's validators are not transparent making it di cult for the users to understand their feedback. To enhance the transparency we propose a MDE based approach to program validation, where domain requirements are presented in a metamodel. The validation is based on a bottom up approach where programs are parsed and represented as models before they are checked against the metamodel.</p>
      </abstract>
      <kwd-group>
        <kwd>Model Driven Engineering</kwd>
        <kwd>Model Driven Reverse Engineering</kwd>
        <kwd>Meta-model hierarchies</kwd>
        <kwd>Model Based Validation</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        As the internet becomes an increasingly more important tool for communication,
it is necessary to ensure that not only is the quality of internet based digital
services adequate, but that they are also equally accessible to all end users.
Furthermore, as web based technologies continue to develop rapidly, the need arises for
automated tools that can ensure that web pages and digital services comply with
the latest recommended standards. These standards are designed for the bene t
of the end user, ensuring that the provided digital service functions adequately
and is accessible to all end users, especially those with disabilities. Moreover, by
following the appropriate guidelines for the digital service, the developer can be
certain that the digital service they have designed, is of a decent level of quality.
In other words, these standards are bene cial to both those who develop the
digital services, and those who use them. One of the better known accessibility
standards is the The Web Content Accessibility Guidelines 2.0 (WCAG 2.0) [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ].
WCAG 2.0 was developed by the Web Accessibility Initiative (WAI), as a means
to provide a common set of standards that ensures the contents of a web page is
more accessible to end users with disabilities. These disabilities can range from
visual and auditory, to learning and other neurological disabilities. WCAG 2.0
also attempts to make the web content more accessible to older individuals with
limited experience with web browsers and similar technologies.
      </p>
      <p>
        It is common practice to determine the quality of a web page with the aid
of an automated web evaluation tool. A web evaluation tool can be de ned
as an application that inspects if a web page satis es a set of requirements.
Any elements contained within the web page that violates one or more of the
requirements are agged as invalid, and included in a report that is presented
at the end of the evaluation process. Some of the more advanced evaluation
tools, such as Wave [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] and Sortsite5 [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], suggest possible corrections for the
invalid element [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. There exists a number of web evaluation tools that are able to
determine if a web page is valid based on a set of requirements. However, many
of these tools are limited to parsing a provided web page, and returning a report
highlighting elements that have failed to meet the necessary requirements. The
actual evaluation process is obscured from the user, which becomes problematic
when we consider the fact that the user has to depend upon the tools ability to
evaluate the web page correctly [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. This is referred to as the transparency
problem in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
      <p>
        Furthermore, the lack of transparency in the evaluation process makes it
di cult for the user to evaluate the e ectiveness and legitimacy of the web
evaluation tool. In [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], Brajnik addresses several aspects that must be assessed
when evaluating such a tool:
{ The Completeness Problem: How can the user determine if the tool has
done a complete evaluation, i.e. is the tool returning any false negatives?
{ The Correctness Problem: How can the user determine the correctness
of the tool, i.e. is the tool returning any false positives?
{ The Speci city Problem: How can the user determine the root cause of
the errors reported by the tool?
      </p>
      <p>
        Finally, the lack of consensus in the number of errors reported by existing web
evaluation tools indicate a need for clearer and more precise formulation of the
requirements in the WCAG 2.0 guidelines [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Moreover the requirements should
be speci ed in such a way that they can be understood by individuals who are
not necessarily experts within the current domain, but still must have a correct
understanding of the requirements. This could be for instance a developer who
is creating a digital service that must meet the requirements speci ed in WCAG
2.0. In other words not only should the requirements be described precisely, they
must also communicate their contents correctly and e ciently to all interested
parties. This is referred to as the The Ambiguity Problem in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
      <p>
        To solve these problems we introduce a validation tool based on the
bottom up approach to program validation. The approach utilizes methods and
techniques from Model Driven Engineering [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] to determine if a web page
satis es the necessary requirements imposed upon it, and in doing so, resolve if
the web page is valid or not. Furthermore by specifying a Domain Speci c
Modelling Language (DSML) [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], it is possible to provide a precise formalisation of
the necessary requirements. Due to space limitations, this paper focuses on the
conceptual ideas of the bottom up approach, interested readers can nd more
detailed information about the approach and the validation tool in the master
thesis of the rst author, [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
      <p>The remainder of this paper is organised as follows: In section 2 we give a high
level description of the The Bottom-Up Model Validation approach before we</p>
      <p>Technological Space Conceptual Space
Web page
.html
.css
.js
extract
extract
extract</p>
      <p>HTML
Model Discoverer</p>
      <p>CSS
Model Discoverer</p>
      <p>JS
Model Discoverer
generate
generate
generate
Phase One: Model Discovery</p>
      <p>The WCAG 2.0 model</p>
      <p>Conformance</p>
      <p>Check
Derived Model
model-to-model
transformation
Initial Model</p>
      <p>Phase Three:
Model Validation
Phase Two:
Model Understaning
give a more detailed description of each of the phases: in section 2.1 we describe
the metamodel used in the bottom up validation approach, in section 2.2 we
describe the model discovery phase, in section 2.3 the model understanding phase
is explained and in section 2.4 is it explained how the model is validated against
the WCAG 2.0 standard. In section 3 we discuss how the bottom up approach is
related to other contributions before we conclude the paper and envision some
possible further work in section 4.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Bottom-Up Model Validation</title>
      <p>
        The Bottom-up Model Validation approach, hereby referred to as the Bottom-up
approach, is inspired by the interactive Bottom-Up Meta-Modelling approach
described in [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], where they generate a meta-model which can be used to describe
other models from model sketches. In contrast to the Bottom-Up
Metamodelling approach the Bottom-up approach generates a model representation of a
program artefact and checks if it conforms to an existing meta-model.
      </p>
      <p>
        Our solution consists of two parts; the rst part focuses on designing a DSML
capable of providing a clear and precise description of the mandatory
requirements. The second part combines the DSML with Model Driven Reverse
Engineering (MDRE) techniques, to determine if the digital service in question
satis es all the necessary requirements [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Before going in to details, it is
important to clarify the two separate spaces the bottom-up approach spans across.
The rst space consists of technology dependent artefacts such as source code
and other platform speci c components, this space is referred to as the
technological space. The second space contains only technology independent components
from the speci c domain under study, and is referred to as the conceptual space
[
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. In the Bottom-up approach, the conceptual space consists of graph-based
models with diagrammatic constraints. In the context of the problems described
in section 1, it can be assumed that the conceptual space is comprehensible to
the user, and the technical space is not. This means that by conducting the
evaluation process solely in the conceptual space, the bottom up approach provides
an adequate solution to the transparency problem.
      </p>
      <p>The basic idea behind the Bottom-up approach is to extract an abstract
model representation of a web page using Reverse Engineering (RE) combined
with MDE. The extracted model can be manipulated, transformed and
validated using techniques from MDE. By con rming that the model is valid, our
evaluation process can state that the corresponding artefact is also valid. The
actual evaluation process itself is reduced to a conformance check between the
extracted model representation of the artefact, and the meta-model that models
the necessary requirements. Figure 1 presents an overview of the process, and as
we can see in the gure, the bottom-up approach consists of three phases:
{ Phase One: An initial model is extracted from the artefact using platform
speci c model discoverers. The main goal of this phase is to transfer the
problem from the technological space to the conceptual space as early as
possible in the validation process, details will be given in section 2.2.
{ Phase Two: The initial model is manipulated using techniques from MDE.</p>
      <p>The main goal of this phase is to transform the initial model into a model
more suitable for our purposes. The transformed model is referred to as the
derived model. More details about this will be presented in section 2.3.
{ Phase Three: In the third phase, a conformance check between the
derived model and the metamodel is executed. The metamodel contains the
requirements the artefact must meet. The goal of this phase is to determine
if the abstract model representation of the artefact is a valid instance of the
metamodel. This will be discussed further in section 2.4.
2.1</p>
      <sec id="sec-2-1">
        <title>Meta-modelling</title>
        <p>
          As previously mentioned, the main purpose of the DSML is to provide a clear
and precise de nition of the requirements our artefact must satisfy. One of the
advantages with describing the requirements using a DSML is that the domain
expert get the opportunity to con rm that the requirements have been
correctly interpreted by the evaluation process, thus providing the means to reduce
the number of false negatives and false positives in the results. The
BottomUp approach uses a multi level metamodelling hierarchy [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ] to represent the
requirements our artefact must meet. The top level metamodel describes the
        </p>
        <p>Value
AttributeValue</p>
        <p>AttributeName</p>
        <p>Event
Attribute</p>
        <p>Reference
[irr]</p>
        <p>Element
[irr]</p>
        <p>Containment
types belonging to the domain, and how they are related. Figure 2 shows an
example of the top level metamodel describing an element in a web page. The
gure shows that each element may have an arbitrary number of attributes and
events, and that each element may relate to other elements by either containing
them, or by referring to them. The irre exive constraint, represented using the
[irr] -notation, prevents any element from containing or referring to itself.</p>
        <p>
          The metamodel at the next level in the metamodelling hierarchy describes the
actual requirements we wish to impose upon the artefact. At this level we include
in addition to the typing of the artefacts and the relationships between them,
modelling constraints that ensure that the corresponding part of the artefact is
valid. Figure 3 display a model of an actual requirement from WCAG 2.0. The
1.1.1 Non-text Content requirement [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ] states that all non-textual elements in a
web page must have some sort of descriptive text attached to it. Within the web
page domain, this requirement is satis ed by ensuring that non-textual content
(an image element in this case), has an alt -attribute that contains a description
of the image. The model in gure 3 enforces this using the [1..1] -multiplicity
constraint, ensuring that every valid Image element has exactly 1 alt -attribute.
        </p>
        <p>The bottom metalevel of the hierarchy is where the derived model is placed
after the model understanding phase, this will be elaborated in section 2.4.
2.2</p>
      </sec>
      <sec id="sec-2-2">
        <title>The Model Discovery Phase</title>
        <p>
          The Model Discovery phase is the rst part of the MDRE process, a raw model
is extracted from the artefact in question, see gure 4. These raw models are
referred to as initial models and are extracted as early as possible during the
MDRE process in order to avoid losing any essential information [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]. In order to
identify and extract the initial model, platform speci c components referred to
as Model Discoverers are used to populate the initial model with data from the
artefact. The Model Discoverer is tailored for a speci c technology [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ].
        </p>
        <p>
          We now continue our example involving the 1.1.1 Non-text Content
requirement. At this stage in the bottom-up approach we do not know what parts of
the HTML-document are of importance when determining if all non-text
content are adequately described. Therefore the initial model is extracted using a
HTML speci c model discoverer, which transforms the HTML document model
to a generic XML based model that conforms the HTML metamodel. This model
is of a low level of abstraction ensuring that as little information as possible is
lost during the transition from the technological space to the conceptual space.
The main purpose of this generated initial model is to serve as a starting point
for the model understanding phase [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ].
2.3
        </p>
      </sec>
      <sec id="sec-2-3">
        <title>The Model Understanding Phase</title>
        <p>
          During the Model Understanding phase, chains of model manipulation
techniques are used to query and transform the initial model in order to obtain a
model of the artefact at a higher level of abstraction, see gure 4. The result of
this phase is the Derived Model [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]. The most important function of this phase
is to abstract away any unnecessary information contained within the initial
model, ensuring that the derived model consists only of relevant content. It is
also important that the derived model has been altered in such a way that it
suits its intended purpose [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]. Continuing the running example, the HTML image
elements contained in the initial model are mapped to an instance of our
metamodel. This process is automated using a simple algorithm and set of mapping
rules: if there exists a rule for mapping the current HTML element to an element
in Metamodel A, the element is included in the Derived Model A, otherwise the
Model Discovery Phase
        </p>
        <p>Model Understanding Phase
HTML-metamodel</p>
        <p>Metamodel A</p>
        <p>Metamodel driven
Legacy
Artefact</p>
        <p>Extract</p>
        <p>Platform specific
Model Discoverer</p>
        <p>Populate</p>
        <p>Initial Model
Representation of</p>
        <p>Conforms to
dMreivteanmodel</p>
        <p>Conforms to
Transformation</p>
        <p>Derived Model A
Fig. 4. The Model Discovery Phase and the Model Understanding Phase
Meta-model
Derived Model
Webpage</p>
        <p>img1 :
HtmlImageElement</p>
        <p>img2 :</p>
        <p>HtmlImageElement
&lt;img src="car.png" /&gt;
&lt;img src="car.png" alt="An image of a nice red car" /&gt;</p>
        <p>alt
:AttributeType
altValue</p>
        <p>text
:AttributeValue
attr
alt : alt
value An image of a nice red car :</p>
        <p>text
HTML element is excluded from the process. This phase transforms the HTML
element to a generic a set of nodes and edges representing the HTML element
and its attributes with a graph-based visual syntax. Irrelevant information such
as user events attached to the element are not included in the transformation,
ensuring that the new representation of the HTML image element only contains
the information that is necessary in order to con rm that it satis es the 1.1.1
Non-text Content requirement.
2.4</p>
      </sec>
      <sec id="sec-2-4">
        <title>The Model Validation Phase</title>
        <p>The nal step in the Bottom-Up approach consists of checking if the derived
model successfully conforms to the metamodel, if any part of the derived model
is incorrectly typed, or doesn't satisfy the corresponding predicate, it is agged
as invalid. This encompasses the actual evaluation process that determines if
the artefact contains any components that fail to meet the necessary
requirements. The feedback presented to the user is purely graphical, consisting of
a graph-based model representation of the HTML-document and a graph-based
representation of the metamodel containing the constraints the HTML-document
must satisfy. Any parts of the model representation that violates the metamodel,
is highlighted red, warning the user of the violation. Concluding the example
from the two previous steps, any HTML image element that is missing the alt
attribute will not conform to the metamodel reporting that the multiplicity
predicate has not satis ed. Figure 5 illustrates the model validation phase using
two image elements. The image element img1 does not contain an alternative
text, therefore it does not conform to the meta-model and is agged as invalid.
The image element img2 however, does contain an alternative text and therefore
conforms to the meta-model.
3</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Related Work</title>
      <p>
        We now compare the Bottom-up approach to related approaches and existing
web evaluation tools. The model driven reverse engineering framework MoDisco
introduced in [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] is a tool intended to improve the design of legacy systems.
It is only concerned with the rst two phases of the MDRE process: the model
discovery phase, and the model understanding phase. Upon obtaining the derived
model, it allows it to be exported to external tools for software modernization,
refactoring, retro documentation, quality analysis and so on. This means that
MoDisco is adaptable to many di erent scenarios.
      </p>
      <p>
        Software Modernization is a typical application of MDRE according to [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
Software modernization involves migrating and redeploying legacy systems into
modern software programs. This is achieved by extracting legacy platform
speci c components, transforming them to a generic derived model, then using the
derived model to generate source code as functioning modern software
components. In other words, the third phase of software modernization consists of a
code generation process.
      </p>
      <p>
        The Bottom-up approach suggests an alternative use of the derived model.
Where [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] suggests to use the derived model as a starting point of a code
generation process, and [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] suggests exporting the derived model to an external tool
for further processing, the bottom-up approach preserves the derived model in
the conceptual space, inserting it at the bottom level of a metamodelling
hierarchy, thus providing the means to check if the model is a valid instance of the
metamodel positioned at the level above. By con rming that the model is a valid
instance of its metamodel, we can claim that the artefact it represents meets the
necessary requirements described in the metamodel. A prototype of the
bottomup approach has been developed as a plug-in in WebDPF [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. WebDPF is a
multilevel metamodelling tool with model completion and simulation
functionality. The plug-in extends WebDPF with the ability to create model discoverers
and automatically validate web pages. A demonstration can be found at [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
      </p>
      <p>
        AChecker presented in [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] is a non-commercial web-based tool for evaluating
the accessibility of a web site. It attempts to overcome the transparency problem
by distributing the tool as an open source software, this is however considered an
inadequate solution in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], since it is only transparent to those with the necessary
technical skills. AChecker does nonetheless provide an adequate amount of
documentation of what is included in the evaluation process, and how it is evaluated,
thus providing a potential solution to the Completeness and Correctness
problem. SortSite 5 is a commercial web site testing tool from PowerMapper [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ],
that validates a web page based on its level of accessibility as well as a number
of other factors. It does not explain how it evaluates a web page or what it
includes in the evaluation process. This means that it does not provide a solution
to any of the challenges described in section 1. Wave is another commercial web
accessibility evaluation tool which is part of the WebAIM project. The WebAim
project was started at the State University of Ohio in 1999 and focuses on
improving web accessibility for individuals with disabilities. Wave provides limited
information about what is included in the evaluation process, and no
information about how it evaluates the web page. It does however present the results
graphically, and provides according to [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], an adequate solution to the speci city
problem. Since the evaluation process in the Bottom-Up approach resides solely
in the observable conceptual space as a model conformance check, we can state
that this approach is transparent. Furthermore, the metamodel included in the
evaluation process, contains a su cient description to determine how complete
the evaluation process is, and how each element is evaluated. Table 1 gives an
overview of the di erent tools, and which challenges they are able to overcome.
Further details can be found in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
      <sec id="sec-3-1">
        <title>Challenge</title>
        <p>Transparency Problem
Completeness Problem
Correctness Problem
Speci city Problem
Ambiguity Problem</p>
      </sec>
      <sec id="sec-3-2">
        <title>AChecker SortSite 5 Wave Bottom Up Approach</title>
        <p>No No No Yes
Yes No No Yes
Yes No No Yes
Partly Partly Yes Yes</p>
        <p>
          N/A N/A N/A Yes
The Bottom-Up approach and the validation tool indicate that it may serve as
a viable automated web evaluation tool that addresses several critical concerns.
Based on what is presented in [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ], and its ability to detect violations in a web
page, it can be declared that the web evaluation tool has successfully ful lled its
intended purpose. Moreover, the approach proposed in this paper is to the best
of the authors knowledge, introducing a new possible application for MDE. This
solution has made it possible to formalize a set of requirements as a metamodel,
then use that metamodel to evaluate artefacts belonging to the domain under
study. In theory the solution can use a metamodel to evaluate any piece of
accessible data. This could be considered as an innovative technique for reducing
the gap between the conceptual world of modelling and the domain under study.
Finally, by reducing the evaluation process to a conformance check between a
model and it's metamodel, the process becomes transparent to the user.
        </p>
        <p>We now envision some possible extensions of the bottom up approach.</p>
        <p>
          Model Veri cation: Model conformance is just the tip of the iceberg when
discussing model validation and veri cation, another factor that should be
examined is the models consistency. This is addressed in the satis ability problem
which investigates if a meta-model contains any contradicting constraints, if so
it will be impossible for a model to successfully conform to the meta-model. This
problem could be applied to the metamodel describing the requirements, where
it could be determined if the artefact can actually satisfy all of the requirements
included in the metamodel, or if changes to the requirements con ict with other
existing ones. In the future we will use similar techniques as presented in [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ] to
check the satis ability of the metamodel.
        </p>
        <p>
          Model Adequacy: The Bottom-Up approach does not evaluate the actual
artefact, but rather an abstract model representation of it. This means that in
order for the evaluation process to present accurate results, the derived model
needs to be adequate. An adequate derived model must contain all the necessary
information that is relevant to the evaluation process. In order to ensure that
the model is adequate, some sort of automated mechanism should be included
in solution. The problem with model adequacy was rst addressed in [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ].
        </p>
        <p>
          Completing the Metamodel: The metamodel described in this paper only
covered 1 of the 35 mandatory requirements described in the WCAG 2.0
guidelines. However in [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ] ve out of the nine requirements included in the thesis
were successfully included in the evaluation process and therefore supported by
the tool. In order for the bottom-up approach to function as a complete web
evaluation tool, the metamodel must include all of the mandatory requirements.
        </p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Atkinson</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          , and Kuhne, T.:
          <article-title>The essence of multilevel metamodeling</article-title>
          .
          <source>International Conference on the Uni ed Modeling Language, pp19{33</source>
          ,
          <string-name>
            <surname>Springer</surname>
          </string-name>
          (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <article-title>Bottom up model validation approach: www</article-title>
          .youtube.com/watch?v=qqUtLjSpj90
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Brajnik</surname>
          </string-name>
          , G.:
          <article-title>Comparing accessibility evaluation tools: a method for tool e ectiveness</article-title>
          .
          <source>Universal Access in the Information Society</source>
          (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Brambilla</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cabot</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Wimmer</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Model-driven software engineering in practice</article-title>
          . Volume
          <volume>1</volume>
          Morgan &amp; Claypool Publishers. (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Bruneliere</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cabot</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dup</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Madiot</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Modisco: A model driven reverse engineering framework</article-title>
          .
          <source>Information and Software Technology</source>
          ,
          <volume>56</volume>
          (
          <issue>8</issue>
          ) (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Calder</surname>
          </string-name>
          , T.:
          <article-title>A Model Driven Approach to Web Page Evaluation</article-title>
          .
          <source>Master Thesis</source>
          , Bergen University College (
          <year>2016</year>
          ), available at http://dpf.hib.no/publications/
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Chikofsky</surname>
            ,
            <given-names>E. J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cross</surname>
            ,
            <given-names>J. H.</given-names>
          </string-name>
          , et al.:
          <article-title>Reverse engineering and design recovery: A taxonomy</article-title>
          .
          <source>Software, IEEE</source>
          ,
          <volume>7</volume>
          (
          <issue>1</issue>
          ):
          <volume>13</volume>
          {
          <fpage>17</fpage>
          (
          <year>1990</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Gay</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Li</surname>
            ,
            <given-names>C. Q.</given-names>
          </string-name>
          :
          <article-title>Achecker: open, interactive, customizable, web accessibility checking</article-title>
          .
          <source>In Proceedings of W4A</source>
          , ACM DL (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Fowler</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Domain-speci c languages</article-title>
          .
          <source>Pearson Education</source>
          (
          <year>2010</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Rabbi</surname>
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lamo</surname>
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yu</surname>
            <given-names>I.</given-names>
          </string-name>
          , Kristensen L.:
          <article-title>WebDPF: A Web-based Metamodelling and Model Transformation Environment</article-title>
          .
          <source>Modelsward</source>
          (
          <year>2016</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Rugaber</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Stirewalt</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          <article-title>Model-driven reverse engineering</article-title>
          . Software, IEEE,
          <volume>21</volume>
          (
          <issue>4</issue>
          ):
          <fpage>4553</fpage>
          . (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Sanchez-Cuadrado</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>De Lara</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Guerra</surname>
          </string-name>
          , E.:
          <article-title>Bottom-up meta-modelling: An interactive approach</article-title>
          .
          <source>Proceedings of Models 2012 in LNCS</source>
          vol.
          <volume>7590</volume>
          , pp.
          <fpage>3</fpage>
          -
          <lpage>19</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13. PowerMapper: www.powermapper.com/products/sortsite/.
          <source>Accessed: 2016-04-01</source>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Wang</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rutle</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lamo</surname>
            ,
            <given-names>Y. Towards</given-names>
          </string-name>
          <string-name>
            <surname>User-Friendly</surname>
          </string-name>
          and
          <article-title>E cient Analysis with Alloy</article-title>
          ,
          <source>In CEUR workshop proceedings</source>
          , Vol.
          <volume>1514</volume>
          ,
          <string-name>
            <surname>MoDevva</surname>
          </string-name>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Wave</surname>
          </string-name>
          ,
          <article-title>web accessibility evaluation tool: wave</article-title>
          .webaim.org.
          <source>Accessed: 2016-04-07</source>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <article-title>World Wide Web Consortium and others: Web content accessibility guidelines (WCAG) 2</article-title>
          .0 World Wide Web Consortium (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>