<!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>Designing Domain Speci c Languages for Veri cation: First Steps</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Phillip James, Markus Roggenbach Swansea University</institution>
          ,
          <country country="UK">UK</country>
        </aff>
      </contrib-group>
      <fpage>40</fpage>
      <lpage>45</lpage>
      <abstract>
        <p>This paper introduces a rst approach at developing a design methodology for creating domain speci c languages focused towards modelling and veri cation. The work presented is ongoing. The overall aim of the work is to show how capturing domain speci c knowledge, and then tailoring proof goals around this domain speci c knowledge, can improve automatic veri cation results, whilst also providing a graphical domain speci c language.</p>
      </abstract>
      <kwd-group>
        <kwd>To illustrate our approach we use the railway domain</kwd>
        <kwd>Here we review existing work in the area of veri cation within the railway domain and the area of domain speci c language design</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Modelling and Veri cation in the Railway Domain
A prominent example of where formal methods have been applied is the railway domain.
Approaches that have been taken include algebraic speci cation, e.g. [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], process algebraic modelling
and veri cation, e.g. [
        <xref ref-type="bibr" rid="ref18 ref22">22, 18</xref>
        ], and model oriented speci cation, where, for example the B method
has been used in order to verify part of the Paris Metro railway [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] in terms of both safety and
liveness properties. These approaches show the successful application of formal methods to the
railway domain, but fail to comment on the applicability of such processes by domain engineers.
      </p>
      <p>
        This work is inspired by the work of Bj rner [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. To this end, we follow the natural language
speci cation of the railway domain given by Bj rner [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Bj rner has also given a formal version
of this natural language speci cation using the RSL speci cation language [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. In contrast, we
focus on using Casl, the Common Algebraic Speci cation Language [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] as it provides us with
more features than RSL, including established tool support in the form of the Heterogeneous
Toolset (Hets) [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. The Hets environment not only provides both interactive and automatic
theorem proving support, but also allows translation between di erent logics through institution
maps [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. Such a translation is shown to be useful in Section 3.
2.2
      </p>
      <p>
        Domain Speci c Language Design
The creation of domain speci c languages is often aided by the use of a development framework.
There are several examples of such tools including ASF+SDF [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] a meta-environment based
on a combination of the algebraic speci cation formalism ASF and the syntax de ning language
SDF. ASF+SDF allows creation of domain speci c languages and tools such as parsers, compilers
and static analysers for the created domain speci c language. Extending ASF+SDF, there is
Rascal [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], which is currently under development at CWI. Finally, MetaEdit+ [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] is an industrial
tool allowing the creation of visual domain speci c languages. Interestingly, MetaEdit+ has been
used to create a domain speci c modelling for railway layouts, see [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
      </p>
      <p>
        With respect to our approach for creating domain speci c languages, we make use of the
Graphical Modelling Framework, GMF [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. GMF is an Eclipse plugin that provides the
infrastructure to create, from a UML like model, a Java based graphical editor. This editor can then
easily be extended with Java code allowing it to output Casl speci cations. The simplicity of
this creation process ts well with our design methodology outlined in Section 3.
3
      </p>
    </sec>
    <sec id="sec-2">
      <title>Towards a Design Methodology</title>
      <p>
        In this section, we outline a rst proposal for a design methodology for creating domain speci c
languages for veri cation. Figure 1 illustrates the proposed design and veri cation process.
Capturing knowledge: The rst area that is illustrated in the left of Figure 1 is the capture of
domain knowledge. A natural language speci cation can be formalised using the OWL Ontology
language [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. OWL has been designed to formalise knowledge about a given domain and thus
provides a range of constructs to allow the capture of domain knowledge. It allows speci cation
of concepts within a given domain via classes, speci cation of attributes of the concepts via data
properties and speci cation of relations between concepts via object properties. It also allows
axioms to be stated over such properties. These constructs are very similar to those within
UML or any object orientated language. OWL has a well de ned formal semantics [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] meaning
that every OWL speci cation has a precise and unambiguous meaning. As we wish to use only
automatic tool support, we make use of a decidable fragment of full OWL known as OWL-DL [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]
Creating the DSL: Given an OWL speci cation, an automatic translation to a GMF (UML
like) meta-model is possible.1 This meta-model along with a set of graphical elements can be
used within the GMF process to create a graphical editing tool for the domain. The production
1We are currently implementing this XML based translation.
Graphical
Elements
      </p>
      <p>Meta Model
AddedTo</p>
      <p>EFM+GMF</p>
      <p>DSL Editor
Automatic
Translation</p>
      <p>DSLEditor
Produces
Natural
Language
Specification</p>
      <p>Formalise</p>
      <p>OWL
Specification</p>
      <p>Automatic
Translation</p>
      <p>CASL DS
Knowledge
Specification</p>
      <p>Import</p>
      <sec id="sec-2-1">
        <title>CASLPSlacnheme</title>
        <p>Specification
Import</p>
      </sec>
      <sec id="sec-2-2">
        <title>CASLGDoSalProof</title>
        <p>Import</p>
        <p>ImprovedVerification</p>
        <p>Hets
CASL DS
Theorems</p>
        <p>Verification</p>
        <p>
          Result
Yes/No/Maybe
of this graphical editing tool is outlined in the top branch of Figure 1. Here we provide an
overview of the steps involved in the GMF process and for more details we refer the reader
to [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]. The rst step within the GMF creation process is to select the concepts of the domain
which should become graphical constructs within the language. These graphical constructs can
be split into two main classes essentially representing nodes and edges within the nal graphical
editor. The next step is to associate with each chosen construct for the language, a graphical
image to represent it. Finally, the attributes (or properties for a given concept) which should
be attached to each graphical element can be selected. Once these steps have been completed,
the GMF tool will automatically produce a Java based graphical editor. This editor consists
of a drawing canvas and a palette. Graphical elements from the palette can be dragged and
positioned onto the drawing canvas. Along with these features, the Java code base for the editor
is readily extensible and we use this fact to extend the editor to produce Casl speci cations.
Namely, we add a small amount of code for each construct that simple produces a Casl
speci cation for that construct when it is added to the drawing canvas. Obtaining such a Casl
speci cation for each construct is discuss below.
        </p>
        <p>
          Semantics: To provide a semantics for the graphical editing tool we propose the use of
Casl [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ]. The main motivation for the use of Casl is thanks to the tool support that is
available in the form of the Hets environment [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ]. Hets not only provides syntax checking and
static analysis of CASL speci cations, but also an interface to various interactive and
automated theorem provers. The central path of Figure 1 illustrates the addition of Casl to the
graphical editing tool as a semantic base. Within Hets, an automatic semantic preserving
translation from OWL into Casl has been implemented [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]. The motivation for using OWL and
translating to Casl, rather than directly using Casl, is that OWL provides constructs suited
towards capturing domain knowledge in a UML style which can be easily adopted by most
domain engineers. Using the resulting Casl domain knowledge speci cation, the graphical editing
tool can be extended to produce Casl speci cations for domain models created using the editor.
Veri cation: Finally, veri cation of the Casl speci cations produced by the graphical editing
tool is possible using the Hets framework. At this point, Figure 1 highlights the advantage of
adding domain knowledge to the veri cation process. That is, there are two possibilities for
veri cation. The rst { illustrated by the solid lined box { is simply verifying the given problem
without any domain speci c theorems on the domain knowledge level. The second { illustrated
by the dotted lined box { includes domain speci c theorems that have been proven on the
domain knowledge level. These theorems provide a potential gain for automated veri cation:
(1) They have the potential to remove false counter examples like those experienced in [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ];
(2) They allow general domain speci c theorems to be added, these in turn improve the speed
of the proof process for particular domain speci c proof goals.
4
        </p>
        <p>A First Example: Domain Knowledge Helps
To illustrate the advantages that can be gained through adding domain knowledge to the veri
cation process, we study a common installation within the railway domain. Figure 2 shows part
of a standard \double lead" junction.</p>
        <p>R1
A
R2
lu1</p>
        <p>P
lu2
lu3</p>
        <p>R3
E
F
R4</p>
        <p>Trains can travel from location A to locations E or F , or from locations E or F to location
A. The path along which a train will travel is determined by the position of point P . Logically,
the junction is segmented into routes. Here there are four possible routes. Route R1 can be
set, i.e. trains can travel from A to E when the point is in \reverse" position and there are no
trains occupying the point and track segments lu1 and lu2. Route R2 can be set, i.e. trains can
travel from A to F when the point is set in \normal" position and there are no trains occupying
the point and track segments lu1 and lu3. In a similar manner, routes R3 and R4 can be set to
allow trains to travel from E to A and F to A respectively.
spec Junction [op p: Switch; op lu1: Linear; ... ] =
%% axioms for connecting components such as points and tracks
...
forall t: Time . point_EnabledReverseAndLu2At n if p stateAt n = unocc /\
p positionAt n = reverse /\
(exists t :Time . n &lt; t /\ lu2 stateAt t = unocc);
...
forall n: Time . route1_enabledAt n if lu1 stateAt n = unocc /\</p>
        <p>(exists t : Time . n &lt; t /\ point_EnabledReverseAndLu2At t);
...
then %implies
...
forall n : Time . exists t: Time . n &lt; t /\ route1_enabledAt t
forall n : Time . exists t: Time . n &lt; t /\ route2_enabledAt t
forall n : Time . exists t: Time . n &lt; t /\ route3_enabledAt t
forall n : Time . exists t: Time . n &lt; t /\ route4_enabledAt t
end
%(Thm1)%
%(Thm2)%
%(Thm3)%
%(Thm4)%</p>
        <p>
          As such a junction is a common installation within the railway domain, it would naturally
form a concept or class within an OWL speci cation for the railway domain, e.g see [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]. Within
Casl, it makes sense to capture a junction with parametrisation. Part of the parametrised Casl
speci cation for the junction is given in Figure 3.
        </p>
        <p>The junction speci cation illustrates the use of domain speci c theorems. These theorems
capture domain knowledge about the junction. Thm1 expresses that there always exists a time
in the future where route R1 is enabled, and similarly Thm2, Thm3 and Thm4 expresses this
for routes R2, R3 and R4 respectively. Here, due to space constraints, we omit the behaviour
of trains and points and assume they behave as expected. These theorems are provable using
the Hets toolset in a few seconds.2 Via instantiation of the junction speci cation, we can now
specify the example train station in Figure 4. This station consists of six junctions in total.</p>
        <p>Platform 1
Platform 2
Platform 3
Platform 4</p>
        <p>X
Y</p>
        <p>Over this new track plan for a station, we would like to reason about the enabling of routes
allowing trains to enter or leave the station. For example we may wish to know that there always
exists a time in the future when a train can leave Platform 1 and travel to X. This condition is
dependent on the setting of several routes across junctions. This property can be expressed as:
8 n : Time 9 t1, t2, t3 : Time n &lt; t1 ^ t1 &lt; t2 ^ t2 &lt; t3 ^</p>
        <p>route3 1 enabledAt t1 ^ route4 3 enabledAt t2 ^ route2 5 enabledAt t3</p>
        <p>Referring to Figure 1, if we try to verify such a condition without adding domain speci c
theorems, i.e. Thm1 through to Thm4, to the veri cation process, then veri cation with Hets
is not possible.3 When adding the domain speci c theorems into the process, the veri cation
is possible within ten seconds. This illustrates that exploiting domain speci c knowledge of
particular domain constructs can aid the veri cation process considerably.
5</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Summary and Future Work</title>
      <p>In this paper, we have brie y introduced a rst attempt at a design methodology for creating
domain speci c languages focused towards veri cation. We have also illustrated how the
capture and exploitation of domain speci c knowledge obtained via this design methodology can
provide gains within the automatic veri cation process. As future work, we wish to explore
further examples of how domain speci c knowledge can be advantageous. The result will be a
classi cation of types of knowledge and the bene ts they can bring to the veri cation process.
We also wish to explore providing useful feedback to domain engineers when a prove attempt is
not successful. That is, we wish to explore the production of counter-examples on the level of
the graphical editing tool.</p>
      <p>2Veri cation times are only rough guidelines and not exact scienti c benchmarks.</p>
      <p>3Within fteen minutes.
Acknowledgements: We would like to thank our industrial partner Invensys Rail for their
useful co-operation throughout this work. A special thanks also goes to Erwin R. Catesbeiana
(Jr.) for his re ections and comments on our design methodology.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>Invensys</given-names>
            <surname>Rail Data Model</surname>
          </string-name>
          { Version 1A,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2] MetaEdit+, Webpage,
          <source>last accessed April</source>
          <year>2011</year>
          . http://www.metacase.com/.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>G.</given-names>
            <surname>Antoniou</surname>
          </string-name>
          and
          <string-name>
            <given-names>F.</given-names>
            <surname>Harmelen</surname>
          </string-name>
          .
          <article-title>Web ontology language: Owl</article-title>
          . Handbook on ontologies,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>D.</surname>
          </string-name>
          <article-title>Bj rner</article-title>
          . Domain Engineering { Technology Management, Research and Engineering. JAIST Press,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>J.</given-names>
            <surname>Boulanger</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Gallardo</surname>
          </string-name>
          .
          <article-title>Validation and veri cation of METEOR safety software</article-title>
          . In J. Allen,
          <string-name>
            <given-names>R. J.</given-names>
            <surname>Hill</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. A.</given-names>
            <surname>Brebbia</surname>
          </string-name>
          , G. Sciutto, and S. Sone, editors,
          <source>Computers in Railways VII</source>
          , volume
          <volume>7</volume>
          . WIT Press,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>W.</given-names>
            <surname>Fokkink</surname>
          </string-name>
          and
          <string-name>
            <given-names>P.</given-names>
            <surname>Hollingshead</surname>
          </string-name>
          .
          <article-title>Veri cation of interlockings: from control tables to ladder logic diagrams</article-title>
          . In J. Groote,
          <string-name>
            <given-names>S.</given-names>
            <surname>Luttik</surname>
          </string-name>
          , and
          <string-name>
            <surname>J. V</surname>
          </string-name>
          . Wamel, editors,
          <source>FMICS'98</source>
          ,
          <string-name>
            <surname>Formal</surname>
          </string-name>
          <article-title>Methods for Industrial Critical Systems</article-title>
          . CWI,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>M.</given-names>
            <surname>Fowler</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.</given-names>
            <surname>Parsons</surname>
          </string-name>
          . Domain Speci c Languages.
          <string-name>
            <surname>Addison-Wesley</surname>
          </string-name>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>R. C.</given-names>
            <surname>Gronback</surname>
          </string-name>
          .
          <article-title>Eclipse Modeling Project: A Domain-Speci c Language (DSL) Toolkit</article-title>
          .
          <source>AddisonWesley Professional</source>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>G.</given-names>
            <surname>Holland</surname>
          </string-name>
          , T. Kahsai,
          <string-name>
            <given-names>M.</given-names>
            <surname>Roggenbach</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.-H.</given-names>
            <surname>Schlinglo</surname>
          </string-name>
          .
          <article-title>Towards formal testing of jet engine rolls-royce BR725</article-title>
          . In L. Czaja and M. Szczuka, editors,
          <source>Proc. 18th Int. Conf on Concurrency, Speci cation and Programming</source>
          , Krakow, Poland,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>P.</given-names>
            <surname>James</surname>
          </string-name>
          .
          <article-title>SAT-based Model Checking and its applications to Train Control Software</article-title>
          .
          <source>Master's thesis</source>
          , Swansea University,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>P.</given-names>
            <surname>James</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Roggenbach</surname>
          </string-name>
          .
          <article-title>SAT-based Model Checking of Train Control Systems</article-title>
          .
          <source>Technical report, CALCO-jnr'09</source>
          , University of Udine, n.5-
          <fpage>2010</fpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>P.</given-names>
            <surname>Klint</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Van Der Storm</surname>
          </string-name>
          , and
          <string-name>
            <surname>J. Vinju. EASY</surname>
          </string-name>
          <article-title>Meta-programming with Rascal</article-title>
          .
          <source>Generative and Transformational Techniques in Software Engineering III</source>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>O.</given-names>
            <surname>Kutz</surname>
          </string-name>
          , D. Lucke, T. Mossakowski,
          <string-name>
            <surname>and I. Normann.</surname>
          </string-name>
          <article-title>The OWL in the CASL - Designing Ontologies Across Logics</article-title>
          . In C. Dolbear,
          <string-name>
            <given-names>A.</given-names>
            <surname>Ruttenberg</surname>
          </string-name>
          , and U. Sattler, editors,
          <source>OWLED. CEUR-WS.org</source>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>T.</given-names>
            <surname>Mossakowski</surname>
          </string-name>
          .
          <article-title>Relating CASL with other speci cation languages: the institution level</article-title>
          .
          <source>Theoretical Computer Science</source>
          ,
          <volume>286</volume>
          (
          <issue>2</issue>
          ),
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>T.</given-names>
            <surname>Mossakowski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Maeder</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Lu</surname>
          </string-name>
          <article-title>ttich. The Heterogeneous Tool Set, Hets. Tools and Algorithms for the Construction</article-title>
          and
          <source>Analysis of Systems</source>
          ,
          <volume>4424</volume>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <surname>P. D.</surname>
          </string-name>
          Mosses, editor.
          <source>CASL Reference Manual</source>
          , volume
          <volume>2960</volume>
          . Springer,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>P. F.</given-names>
            <surname>Patel-Schneider</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Hayes</surname>
          </string-name>
          ,
          <string-name>
            <surname>and I. Horrocks.</surname>
          </string-name>
          <article-title>Owl web ontology language semantics and abstract syntax</article-title>
          .
          <source>Technical report, W3C</source>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>J.</given-names>
            <surname>Peleska</surname>
          </string-name>
          , D. Gro e,
          <string-name>
            <given-names>A. E.</given-names>
            <surname>Haxthausen</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Drechsler</surname>
          </string-name>
          .
          <article-title>Automated veri cation for train control systems</article-title>
          . In E. Schnieder and G. Tarnai, editors,
          <source>Proceedings of Formal Methods for Automation and Safety in Railway and Automotive Systems</source>
          . Technical University of Braunschweig,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>A.</given-names>
            <surname>Simpson</surname>
          </string-name>
          .
          <article-title>A formal speci cation of an automatic train protection system</article-title>
          . In G. Goos,
          <string-name>
            <given-names>J.</given-names>
            <surname>Hartmanis</surname>
          </string-name>
          , and
          <string-name>
            <surname>J. V</surname>
          </string-name>
          . Leeuwen, editors,
          <source>FME '94: Proceedings of the Second International Symposium of Formal Methods Europe on Industrial Bene t of Formal Methods</source>
          . Springer,
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <surname>The</surname>
            <given-names>RAISE Language</given-names>
          </string-name>
          <string-name>
            <surname>Group</surname>
          </string-name>
          .
          <article-title>The RAISE speci cation language</article-title>
          .
          <source>Prentice Hall</source>
          ,
          <year>1993</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <surname>M. Van Den Brand</surname>
            ,
            <given-names>A. Van Deursen</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Heering</surname>
          </string-name>
          , H. De Jong, M. De Jonge,
          <string-name>
            <given-names>T.</given-names>
            <surname>Kuipers</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Klint</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Moonen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Olivier</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Scheerder</surname>
          </string-name>
          .
          <article-title>The ASF+SDF Meta-environment: A Component-Based Language Development Environment</article-title>
          . LNCS,
          <year>2027</year>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>K.</given-names>
            <surname>Winter</surname>
          </string-name>
          .
          <article-title>Model checking railway interlocking systems</article-title>
          .
          <source>Australian Computer Science Communications</source>
          ,
          <volume>24</volume>
          (
          <issue>1</issue>
          ),
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>