<!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 Domain Specific Modelling Language for Specifying and Visualizing Requirements</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Niklas Mellegård</string-name>
          <email>niklas.mellegard@ituniv.se</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Miroslaw Staron</string-name>
          <email>miroslaw.staron@ituniv.se</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Göteborgs Universitet SE-412 96 Gothenburg</institution>
          ,
          <country country="SE">Sweden</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>IT University of Gothenburg</institution>
          ,
          <addr-line>Chalmers Tekniska Högskola</addr-line>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2009</year>
      </pub-date>
      <abstract>
        <p>ion Model (RAM). We evaluated our results via a pilot controlled experiment and the results show a statistically significant improvement in the time required to assess the impact of changes by 37% with the same accuracy.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. INTRODUCTION</title>
      <p>
        Model Driven Engineering [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] is an established software analysis and design
paradigm, bringing software engineering even closer to other engineering disciplines
[
        <xref ref-type="bibr" rid="ref2 ref3">2,3</xref>
        ]. Nevertheless, in order to achieve significant improvements after introducing
models into development processes, domain-specific modelling notations should be
used [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Here, the notion of the domain can either be a vertical domain (e.g.
automotive or telecom) or a horizontal one (e.g. requirements engineering,
architecture). In our work with the industrial partner (Volvo Car Corporation) we
noticed that there is a need for improvement in the area of these horizontal domains.
In particular to introduce (although not necessarily develop from scratch) a graphical
notation for modelling requirements. Despite the numerous advantages of the existing
modelling techniques which can be used for modelling requirements (e.g. UML [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ],
DSLs1 [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], SysML [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]) engineers still struggle to efficiently link requirements to
design models for the purpose of documentation, traceability, or later change impact
assessment. In the automotive domain, the textual requirements are common as this
domain often combines heterogeneous disciplines like hardware engineering, software
engineering, mechanical engineering, each with different tools and techniques. These
different tools and techniques usually result in using text as the common ground for
communication between the teams. The complexity and volume of the requirement
specifications in vehicle projects are often problematic for the understanding of
specifications. The problems with understanding and incompleteness of the
specification [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] might lead to quality problems with the final products or timeliness
of car development projects (when the quality has to be improved before the release).
In this paper, we present a notation developed in order to evaluate whether using a
graphical way of structuring requirements leads to improved quality of the design
models during car development projects. The modelling language is based on the
existing framework for structuring requirements – Requirement Abstraction Model
(RAM) and is intended to fulfil the following requirements:
•
•
•
•
•
      </p>
      <p>The models should graphically visualize requirements at different abstraction
levels and the relationships between them.</p>
      <p>
        The models should be fully integrated with the existing requirements engineering
tools, e.g. RequisitePro [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] from IBM/Rational.
      </p>
      <p>The models should support both forward and reverse engineering – i.e. modelling
the requirements and generating text specifications (forward) and vice-versa
(reverse).</p>
      <p>By using the models, business analysts and developers should be able to assess
the impact of requirement change in a shorter time, identify contradicting and
missing requirements in a shorter time and thus increase the quality of the final
software product.</p>
      <p>All requirements should be traceable to the design documents (e.g. UML or
Simulink models) to support assessment of changes in the design (as an effect of
optimizations) on the requirement specification.</p>
      <p>These requirements resulted in developing a new modelling notation as a
domainspecific modelling language gRAM. The initial evaluation of this language via a
controlled experiment shows that such a notation fulfils the requirements for
shortening the time required for assessing the impact of change.</p>
      <p>This paper is structured as follows; Section 2 presents work related to this research.
Section 3 briefly introduces the requirements specification format used in this
evaluation. Section 4 reports the design and result of the evaluation and section 5
concludes the paper.</p>
    </sec>
    <sec id="sec-2">
      <title>2. RELATED WORK</title>
      <p>
        The work presented in this paper is part of our ongoing research outlined in [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]
within the research project ASIS done in cooperation with Volvo Car Corporation
[
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. One part of the project aims at improving the way requirements is specified, and
in particular, the extent to which requirement specification can be reused with a
minimum of effort. As part of this research, a model for the requirements
specification process is developed with the intention of finding areas where
ModelDriven Engineering (MDE) approaches may improve efficiency. The research in this
paper contributes to that research; by examining to what extent a graphical model of
the requirements affect the process of assessing the impact of a change request, a
common way of reusing a requirements specification, to a specified system.
      </p>
      <p>
        Existing graphical modelling languages which include requirements modelling are
the UML [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] (after Objectory [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]) and SysML [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. In the latter, the requirements are
specified as stereotyped objects linked to first-order design entities. The notion of ‘use
case’ is used in UML to capture requirements, which makes them more structured
than textual documents, although leaving the format of specifying and linking
requirements open for interpretation for the modellers (which usually leads to
problems). The Entity-Relationship diagrams were used historically to capture
requirements for databases. The modelling notation presented in EAST-DSL [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]
(after AUTOSAR [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]) also advocates modelling requirements using abstraction
levels, although does not solve this problem in the current version of the modelling
language.
      </p>
      <p>
        Modelling of requirements has also been advocated in the context of MDE/MDA,
e.g. in [
        <xref ref-type="bibr" rid="ref15 ref16 ref17">15-17</xref>
        ] and in particular in the context of executable UML [
        <xref ref-type="bibr" rid="ref18 ref19 ref20">18-20</xref>
        ]. In the
executable UML the requirements are very closely linked with the conceptual models
(domain models) which are used as the first steps in creating working software.
      </p>
      <p>
        Studies to validate the effectiveness of the RAM approach have been done in e.g.
[
        <xref ref-type="bibr" rid="ref21 ref22 ref23">21-23</xref>
        ] and in our paper we intend to extend these studies by investigating change
impact assessment and using graphical DSL. In this paper, we evaluate whether
adding a graphical representation for RAM-structured requirement specification can
lead to further improvements. However, we also consider time as one of the factors,
thus focusing on efficiency, not only effectiveness.
      </p>
    </sec>
    <sec id="sec-3">
      <title>3. REQUIREMENTS SPECIFICATION FORMAT</title>
      <p>In this section we present the graphical modelling language for structuring
requirements and summarize the basis for it – the textual format of Requirement
Abstraction Model.</p>
      <sec id="sec-3-1">
        <title>3.1. REQUIREMENTS ABSTRACTION MODEL</title>
        <p>
          The Requirement Abstraction Model (RAM) [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ] has the goal of ensuring
consistency and traceability among requirements in order to increase the overall
quality of requirement specifications. The RAM defines a number of abstraction
levels to which each requirement is classified and checklists to ensure that the
requirements are assigned their proper level. In their original paper Gorschek and
Wohlin [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ] suggest, but do not limit their model to, four abstraction levels:
− Product: Product level requirements have a goal-like nature, very high-level
descriptions of the desired functional and qualitative properties of the product.
− Feature: Feature-level requirements describe the features that fulfil the product
level goals.
− Function: Function level requirements define which functions should be provided
by the system in order to provide the features.
− Component: Component level requirements describe how something should be
solved, i.e. bordering to design information.
        </p>
        <p>RAM ensures traceability between requirements through all levels of abstraction by
enforcing that, with the exception of the product level, no requirement may exist
without a link to the more abstract requirement. The rationale is that no requirement
may exist unless there is a clear and unambiguous reason for its existence motivated
by higher-level requirements, and conversely, high-level requirements should be
traceable to the lower-level requirements that satisfy them.</p>
      </sec>
      <sec id="sec-3-2">
        <title>3.2. gRAM – DSL FOR MODELLING REQUIREMENTS</title>
        <p>gRAM is a Model-Driven Engineering (MDE) approach to requirements specification
with the purpose of creating an easy to use environment for direct on-screen
manipulation of a requirements structure, from which other documents can be
automatically generated. The gRAM is a formalized graphical Domain Specific
Language2 (DSL) complying with the RAM, where validation rules (i.e. static
semantics) built into the gRAM ensures that the model and the resulting requirement
specification are syntactically correct and well-formed according to the RAM. gRAM
defines traceability links according to the RAM with its Owns/Satisfies link between
requirements at adjacent abstraction levels, and adds the Depends-on traceability link,
which indicates that there is a dependency between two requirements within the same
abstraction level.</p>
        <p>
          The definition of the gRAM follows the approach for language engineering as
advocated by Evans et al. [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ] and is divided into three parts:
− Abstract syntax – a meta-model complying with the RAM, defined using MS
        </p>
        <p>
          Visual Studio 2008 DSL Toolkit [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ].
− Concrete syntax – a set of graphical shapes for elements. The concrete syntax is
defined using the domain designer in MS Visual Studio.
− Semantics – The semantic parts of the gRAM are (i) static semantics (validation
rules) in order to ensure that the diagram complies with the specifications of RAM
and (ii) translational semantics for information interchange with other tools. The
rules for transforming the requirements structure to a structured text document are
part of the latter.
        </p>
        <p>The above elements are defined in the following sub-sections.</p>
      </sec>
      <sec id="sec-3-3">
        <title>Syntax</title>
        <p>The main component in the abstract syntax, shown as a UML meta-model in Fig. 1,
is the concept of abstraction level as defined in RAM. The top node in the abstract
2 In this context the term “domain” is requirement engineering, not a vertical application
domain like automotive or telecom
syntax is the notion of the model (Model), which contains abstraction levels
(Abstraction Level). The abstraction levels contain requirements (Requirement).
These two containment relationships are denoted by the name “BelongsTo”.</p>
        <p>Each requirement, with the exception of ones at Product level, must be linked to a
requirement one abstraction level higher – denoted by relationship Owns/OwnedBy.
Any given requirement can also depend on other requirements – as defined by the
relationship DependsOn/UsedBy. Furthermore, requirements at the lowest level of
abstraction (Component in our case) also have a link to the module in the logical
design that implements the requirement.</p>
        <p>This abstract syntax defines models that contain requirements grouped in
abstraction levels. The constraint that each requirement must link to a requirement at
a higher abstraction level is not expressed in the abstract syntax, but is expressed as
static semantics – validation rules. This particular design choice is dictated by the
need to be able to move requirements between abstraction levels during requirement
engineering processes.</p>
        <p>The concrete syntax is defined using a set of geometric shapes in MS DSL Toolkit
Domain Designer. The concrete syntax is shown as an example gRAM requirements
structure presented in the following subsection.
The semantic parts of the gRAM are (i) static semantics, in the form of validation
rules in order to ensure that the diagram complies with the specifications of RAM and
(ii) translational semantics for information interchange with other tools.</p>
        <sec id="sec-3-3-1">
          <title>Static semantics</title>
          <p>The static semantics are validation rules ensuring that the model complies with the
RAM. The validation rules in gRAM is written in a general purpose programming
language (C#) which allows for the creation of custom complex rule sets.</p>
          <p>
            Although our proposed DSL as shown here is based on the four abstraction levels
suggested in [
            <xref ref-type="bibr" rid="ref21">21</xref>
            ], the static semantics does not limit the number of levels.
          </p>
        </sec>
        <sec id="sec-3-3-2">
          <title>Translational semantics</title>
          <p>
            The translational semantics of the gRAM allows information exchange with other
tools. The version of gRAM proposed in this paper, three such semantic sets were
defined; ability to export the requirements structure to a format compatible with
IBM/Rational RequisitePro [
            <xref ref-type="bibr" rid="ref9">9</xref>
            ] and two different styles of structured text in Microsoft
Word format (used to generate the requirement specifications used in the evaluation
as described in section 4). The translational semantics allow for manipulating the
graphical requirements structure in gRAM, and then automatically generating
documents in other formats, thus localizing changes to one artefact (the model).
          </p>
        </sec>
      </sec>
      <sec id="sec-3-4">
        <title>3.3. EXAMPLE</title>
        <p>The purpose of this example is to illustrate how a set of requirements can be designed
using gRAM.</p>
        <p>Let us consider a roadside speed surveillance camera, which should be able to
identify and take a picture of a speeding vehicle, and from that image identify the
vehicle model or type, the registration plate number and extract a cropped image of
the drivers face. An excerpt of a simplified requirement structure is shown in Fig. 2.</p>
        <p>In the requirements structure, the level a requirement belongs to is automatically
assigned to the requirement depending on where it is placed. The tool allows
requirements to be dragged and dropped into another abstraction level, with automatic
integrity checks. An invalid model cannot be saved and the modeller is asked to
correct the problems.</p>
        <p>When a valid
requirement
structure is
considered ready
for use in an
external tool, it
is exported to
the textual
interchange Fig. 4 A generated gRAM requirement (full version)
format, which
can be used for
import into the
desired tool. Fig.
3 and Fig. 4
show two Fig. 3 A generated gRAM requirement (short version)
versions of a
requirement exported to Microsoft Word format (these versions were used in the
evaluation reported in the following section).</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. EVALUATION</title>
      <p>The purpose of this initial evaluation is to examine how the use of a graphical
requirements specification model, such as gRAM, affects change impact assessment.
The study examined whether there is any statistically significant impact on the
efficiency, with respect to speed and accuracy, of assessing change impact on a
specified system.</p>
      <p>In the following subsections, the experiment design is briefly outlined and then the
results are reported.</p>
      <sec id="sec-4-1">
        <title>4.1. Experiment design</title>
        <p>The evaluation of the gRAM was conducted through one initial and one replication
experiment using the same basic instrumentation. Two groups of subjects were
introduced to the requirements specification and logical design of a toy software
system. One group was presented with the graphical requirements structure together
with a short textual requirements specification, as shown in figure Fig. 2 and Fig. 3,
while the other group with a the full textual requirements specification as shown in
Fig. 4. Both of these requirements specifications were generated from the same
model to ensure consistency. The subjects were then asked to perform a number of
change impact assessment tasks, common to both groups, using the provided material.</p>
        <p>The following subsections details the experiment design.</p>
      </sec>
      <sec id="sec-4-2">
        <title>Population and Sample</title>
        <p>The population of this experiment is software designers working with implementation
of software requirement specifications and systems analysts creating/maintaining
these specifications.</p>
        <p>In the initial experiment, the participants were 14 first and second year master
students (i.e. in their 4th and 5th year of university studies) attending Software
Engineering and Management programme and four 3rd year bachelor students (i.e.
their 3rd year of education) from the same programme. Most of the participating
master students had over one year of industrial experience prior to their studies.</p>
        <p>In the replication experiment, 12 bachelor students, attending the first year of the
Software Engineering and Management programme, participated.</p>
      </sec>
      <sec id="sec-4-3">
        <title>Instrumentation</title>
        <p>In each experiment, the test subjects were introduced to the context of a toy software
system by the following scenario:</p>
        <p>A vehicle manufacturing company has designed and implemented a simulator
for a new type of drive-by-wire power steering system. The intention of the
simulator is to provide a realistic environment for engineers to experiment
with, e.g. different algorithms for solving certain tasks related to the power
steering system. The design of the simulator has the goals of providing a
realistic physical environment, a realistic software architecture and easy
visualization of the vehicle; in particular, the parts related to steering.
The simulator was implemented in Java prior to the experiment and the requirements
were traced to the software components of the simulator (via the requirements at the
lowest level of abstraction). Two versions of software requirements specifications
were prepared – a textual and a gRAM-based one, both generated from the same
gRAM model, by using the translational semantics built into gRAM to ensure
consistency. The toy system was inspired by the real-world systems our partners work
with, and which could not be used due to confidentiality and the complexity of the
systems.</p>
        <p>The experiment objects were: (i) written experiment instructions, (ii) a
requirements specification, and (iii) logical view of the system. An introductory
lecture was given to each group separately, with the only difference in contents being
the requirements specification format; where one group was presented with the textual
RAM format (an example requirement is shown in Fig. 4), while the other with the
gRAM format (an excerpt of a graphical example requirements structure is shown in
Fig. 2, and an example requirement is shown in Fig. 3). The written experiment
instructions and requirements specification differed between the groups in the same
way. The requirements specification consisted of 56 requirements, of which 29 were
at the lowest (component) level of abstraction.</p>
        <p>
          The logical view, showing a high-level class diagram of the implemented power
steering simulator, was identical for both groups, and consisted of 10 logical modules
and 15 inter-module dependencies. The full set of experiment material is available at
[
          <xref ref-type="bibr" rid="ref26">26</xref>
          ].
        </p>
      </sec>
      <sec id="sec-4-4">
        <title>Measurements</title>
        <p>The measurements collected for each task include the time taken, the score as a
percentage of correct answers, number of false positives and the subjects’ perceived
confidence. The following variables were derived from the collected variables for
each subject:
− AVG_SCORE
− TOT_FP
− TOT_TIME
− AVG_CONF
− EFF</p>
        <p>The subject’s average score over all tasks (%)
The subject’s total number of false positives for all tasks
The total amount of time the subject spent on the tasks
The average of the subject’s confidence level over all tasks
The efficiency of the change impact assessment process,
calculated as AVG_SCORE / TOT_TIME
The null hypotheses posed are that there is no difference in mean values in the derived
variables between the two groups of subjects.</p>
      </sec>
      <sec id="sec-4-5">
        <title>Validity Evaluation</title>
        <p>
          The main threats to the validity of the study are external and conclusion validity, as
described by Wohlin et al. [
          <xref ref-type="bibr" rid="ref27">27</xref>
          ].
        </p>
        <sec id="sec-4-5-1">
          <title>External Validity</title>
          <p>
            The main threat to the external validity is the use of student subjects, which may limit
the ability to generalize the result to an industrial situation. The study was done
mainly to evaluate the impact of the format of the requirements specification, and we
do not make any conclusions about its applicability in an industrial situation yet. An
industrial evaluation of gRAM is planned for the future in the same way as an
industrial evaluation presented in [
            <xref ref-type="bibr" rid="ref28">28</xref>
            ].
          </p>
        </sec>
        <sec id="sec-4-5-2">
          <title>Conclusion Validity</title>
          <p>The statistical power of the conclusions is quite low due to the small sample size. This
threat to validity limits the strength of the conclusions drawn from the study. Rather
than stating firm conclusion, we limit ourselves to indications and tendencies.</p>
          <p>Testing of the collected data showed that many of the variables did not fit to the
normal distribution. Of this reason, non-parametric tests were chosen, which further
decreases the statistical power of the result but does avoid the risk of violating
assumptions and introducing further threats to the validity of the conclusions.</p>
        </sec>
      </sec>
      <sec id="sec-4-6">
        <title>4.2. RESULTS</title>
        <p>Variable
Mean
Std. Dev.
Sign. (p)</p>
      </sec>
      <sec id="sec-4-7">
        <title>Descriptive statistics</title>
        <p>No
(0.424)
Table 1 shows the No
descriptive statistics (0.351)
for the derived Yes
variables in the (0.002)
experiment. The No
results indicate (with (0.501)
statistical significance No
as shown in Table 1) (0.183)
that the gRAM group
was 37% faster than Table 1 Descriptive statistics
the text group
(TOT_TIME). Although not significant,
the results also show that the text group
scores 12% better (AVG_SCORE) and
produce 22% less false positives
(TOT_FP) than the gRAM group,
indicating that the textual specification
improves the accuracy of change impact
assessment. A hypothesis for this is that
the graphical notation quickly gives a
sense of overview and understanding of
the structure of the requirements, which
in turn leads to the subject being
confident more quickly and hence
satisfied with the answer more quickly.</p>
        <p>This hypothesis was supported by post-experiment interviews with a sample of the
test subjects. There is an indication of a difference in the perceived confidence of the
answers (TOT_CONF) with slightly higher confidence in the gRAM group, further
supporting this hypothesis.</p>
        <p>The efficiency (EFF), calculated as
score over time, is 44% higher for the
gRAM group indicating a great
improvement in efficiency, considered as
the number of correctly given answers
per time unit. The difference in
efficiency could however not be shown
statistically significant. Fig. 5 and Fig.
6 show the boxplots of the time and
efficiency variables, where group 1 was
provided with the textual requirements
specification and group 2 with the
graphical version.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>CONCLUSION</title>
      <p>
        One of the more prominent problems with realizing the visions of model-driven
development is limited traceability between requirements and design models [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ].
This lack of traceability can lead to inefficient change impact assessment, a common
activity when reusing requirement specifications. In this paper, we presented a
Domain Specific Modelling Language for modelling requirements according to the
principles of Requirements Abstraction Model (RAM), named gRAM.
      </p>
      <p>Our preliminary conclusions from using the gRAM are that it makes it easier to
develop a requirement specification, provides means for automatic verification of the
specifications, and provides more flexibility in the process of creating the
specification. The visualization of requirements gives a clear overview of the
requirements structure and allows for direct manipulation and on-screen feedback of
the implications of the manipulations (e.g. automatically changing the requirement
properties when moving the requirement between abstraction levels), thus making
graphical requirements modelling a more powerful approach than a textual-based one.
Using gRAM enables automatic verification of requirements format and structure by
validating static semantics as defined by the RAM. Preliminary observations that
using gRAM results in more complete and less inconsistent requirement
specifications were confirmed during the development of the experiment material
reported in this paper, when several inconsistencies in the requirements specification
were detected; the inconsistencies had not been spotted when inspecting the text
format prior to that. During the development of experiment materials, the gRAM
allowed for quick restructuring of requirements in order to try different approaches,
allowing for flexibility that is not as easily achieved in a pure textual format.</p>
      <p>The goal of information exchange with other established requirement management
tools was partly accomplished by the using translational semantics in gRAM, which
converts the gRAM requirements model into a textual format understandable by the
desired tool (e.g. IBM/Rational Requisite Pro)</p>
      <p>We performed an experiment conducted in two sessions to evaluate what effect the
use of gRAM has on the efficiency of assessing the impact of a requested change. The
conclusions from the evaluation shows that using the gRAM visual requirement
structure improves the speed of assessing the impact of a requested change, in our
case by 37%.</p>
      <p>In our future research, as part of the evaluating this approach a study at a company
is planned. The study is expected to discover whether this approach adequately
addresses the challenge of producing complete and structurally sound requirements
documents in industry.</p>
    </sec>
    <sec id="sec-6">
      <title>ACKNOWLEDGMENTS</title>
      <p>This research is partially sponsored by VINNOVA under the V-ICT program and the
ASIS (Algorithms and Software for Improved Safety) project.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>S.</given-names>
            <surname>Kent</surname>
          </string-name>
          , “Model Driven Engineering,” Integrated Formal Methods,
          <year>2002</year>
          , pp.
          <fpage>286</fpage>
          -
          <lpage>298</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>R.</given-names>
            <surname>France</surname>
          </string-name>
          and
          <string-name>
            <given-names>B.</given-names>
            <surname>Rumpe</surname>
          </string-name>
          , “
          <article-title>Model-driven Development of Complex Software: A Research Roadmap,” 2007 Future of Software Engineering</article-title>
          , IEEE Computer Society,
          <year>2007</year>
          , pp.
          <fpage>37</fpage>
          -
          <lpage>54</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>J.</given-names>
            <surname>Ludewig</surname>
          </string-name>
          , “
          <article-title>Models in software engineering - an introduction</article-title>
          ,
          <source>” Software and Systems Modeling</source>
          , vol.
          <volume>2</volume>
          ,
          <string-name>
            <surname>Mar</surname>
          </string-name>
          .
          <year>2003</year>
          , pp.
          <fpage>5</fpage>
          -
          <lpage>14</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>Miroslaw</given-names>
            <surname>Staron</surname>
          </string-name>
          , “
          <article-title>Transitioning from code-centric to model-driven industrial projects - empirical studies in industry and academia</article-title>
          ,”
          <source>Model Driven Software Development: Integrating Quality Assurance, Information Science Reference</source>
          ,
          <year>2008</year>
          , pp.
          <fpage>236</fpage>
          -
          <lpage>262</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>Object</given-names>
            <surname>Management</surname>
          </string-name>
          <string-name>
            <surname>Group</surname>
          </string-name>
          [Internet], Available from 'http://www.omg.org/', (
          <year>Accessed 2008</year>
          -
          <volume>09</volume>
          -22).
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>J.</given-names>
            <surname>Greenfield</surname>
          </string-name>
          and
          <string-name>
            <given-names>K.</given-names>
            <surname>Short</surname>
          </string-name>
          , “
          <article-title>Software factories: assembling applications with patterns, models, frameworks and tools,” Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications</article-title>
          , Anaheim, CA, USA: ACM,
          <year>2003</year>
          , pp.
          <fpage>16</fpage>
          -
          <lpage>27</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>SysML - Open Source Specification Project</surname>
          </string-name>
          [Internet], Available from 'http://www.sysml.org/', (
          <year>Accessed 2008</year>
          -
          <volume>09</volume>
          -22).
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>J.</given-names>
            <surname>Noppen</surname>
          </string-name>
          , P. van den Broek, and
          <string-name>
            <given-names>M.</given-names>
            <surname>Aksit</surname>
          </string-name>
          , “Imperfect Requirements in Software Development,” Requirements Engineering: Foundation for Software Quality, Springer Berlin / Heidelberg,
          <year>2007</year>
          , pp.
          <fpage>247</fpage>
          -
          <lpage>261</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>IBM</given-names>
            <surname>/Rational RequisitePro - Software</surname>
          </string-name>
          [Internet], Available from 'http://www01.ibm.com/software/awdtools/reqpro/', (
          <year>Accessed 2008</year>
          -
          <volume>09</volume>
          -22).
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>N.</given-names>
            <surname>Mellegård</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Staron</surname>
          </string-name>
          , “
          <article-title>Methodology for Requirements Engineering in ModelBased Projects for Reactive Automotive Software</article-title>
          ,” Paphos, Cyprus: Springer--Verlag,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <article-title>ASIS - Algorithms and Software for Improved Safety</article-title>
          [Internet], Available from 'http://www.ait.gu.se/english/research_groups/se_management/research_projects/ASIS_A ctive_Safety_Systems/', (
          <year>Accessed 2009</year>
          -
          <volume>04</volume>
          -7).
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>I. Jacobson</surname>
          </string-name>
          , Object Oriented Software Engineering:
          <string-name>
            <given-names>A Use</given-names>
            <surname>Case Driven Approach</surname>
          </string-name>
          ,
          <string-name>
            <surname>Addison-Wesley Professional</surname>
          </string-name>
          ,
          <year>1992</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>ATESST</given-names>
            <surname>Webpage</surname>
          </string-name>
          [Internet], Available from 'http://www.atesst.org',
          <source>(Accessed</source>
          <year>2008</year>
          -
          <volume>05</volume>
          - 09).
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>AUTOSAR</given-names>
            <surname>Webpage</surname>
          </string-name>
          [Internet], Available from 'http://www.autosar.org',
          <source>(Accessed</source>
          <year>2008</year>
          -
          <volume>05</volume>
          -09).
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>M.D. Miguel</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Jourdan</surname>
            , and
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Salicki</surname>
          </string-name>
          , “
          <article-title>Practical Experiences in the Application of MDA,”</article-title>
          <source>Proceedings of the 5th International Conference on The Unified Modeling Language</source>
          , Springer-Verlag,
          <year>2002</year>
          , pp.
          <fpage>128</fpage>
          -
          <lpage>139</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>A.</given-names>
            <surname>Wegmann</surname>
          </string-name>
          and
          <string-name>
            <given-names>O.</given-names>
            <surname>Preiss</surname>
          </string-name>
          , “
          <article-title>MDA in enterprise architecture? The living system theory to the rescue</article-title>
          ,
          <source>” Enterprise Distributed Object Computing Conference</source>
          ,
          <year>2003</year>
          . Proceedings. Seventh IEEE International,
          <year>2003</year>
          , pp.
          <fpage>2</fpage>
          -
          <lpage>13</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>T.</given-names>
            <surname>Meservy</surname>
          </string-name>
          and
          <string-name>
            <given-names>K.</given-names>
            <surname>Fenstermacher</surname>
          </string-name>
          , “
          <article-title>Transforming software development: an MDA road map</article-title>
          ,” Computer, vol.
          <volume>38</volume>
          ,
          <year>2005</year>
          , pp.
          <fpage>52</fpage>
          -
          <lpage>58</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>S.J.</given-names>
            <surname>Mellor</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Balcer</surname>
          </string-name>
          ,
          <string-name>
            <surname>Executable</surname>
            <given-names>UML</given-names>
          </string-name>
          :
          <article-title>A foundation for model-driven architecture</article-title>
          ,
          <source>Addison Wesley</source>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>L.</given-names>
            <surname>Starr</surname>
          </string-name>
          , Executable UML How to Build Class Models,
          <string-name>
            <surname>Prentice Hall</surname>
            <given-names>PTR</given-names>
          </string-name>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>S.J.</given-names>
            <surname>Mellor</surname>
          </string-name>
          , Executable and
          <string-name>
            <surname>Translatable</surname>
            <given-names>UML</given-names>
          </string-name>
          [Internet], Available from 'http://www.embedded.com/9900932', (
          <year>Accessed 2009</year>
          -
          <volume>04</volume>
          -08).
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>T.</given-names>
            <surname>Gorschek</surname>
          </string-name>
          and
          <string-name>
            <given-names>C.</given-names>
            <surname>Wohlin</surname>
          </string-name>
          , “Requirements abstraction model,” Requir. Eng., vol.
          <volume>11</volume>
          ,
          <year>2006</year>
          , pp.
          <fpage>79</fpage>
          -
          <lpage>101</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>T.</given-names>
            <surname>Gorschek</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Garre</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Larsson</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Wohlin</surname>
          </string-name>
          , “
          <article-title>Industry evaluation of the Requirements Abstraction Model,” Requirements Engineering</article-title>
          , vol.
          <volume>12</volume>
          ,
          <string-name>
            <surname>Jul</surname>
          </string-name>
          .
          <year>2007</year>
          , pp.
          <fpage>163</fpage>
          -
          <lpage>190</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>N.</given-names>
            <surname>Mohammad</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Vandewoude</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Berbers</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Feldt</surname>
          </string-name>
          , “
          <article-title>Suitability of Requirements Abstraction Model (RAM) Requirements for High-Level System Testing</article-title>
          ,”
          <source>International Journal of Computer and Information Science and Engineering</source>
          , vol.
          <volume>2</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>T.</given-names>
            <surname>Clark</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Evans</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Sammut</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Willans</surname>
          </string-name>
          , Applied metamodelling:
          <article-title>A foundation for language driven development</article-title>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <surname>Microsoft</surname>
          </string-name>
          ,
          <string-name>
            <surname>Redmond</surname>
            <given-names>WA</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Microsoft Visual Studio 2008 Software Development</surname>
            <given-names>Kit</given-names>
          </string-name>
          [Internet], Available from 'http://msdn.microsoft.com/en-us/library/bb166441.aspx',
          <source>(Accessed</source>
          <year>2008</year>
          -
          <volume>09</volume>
          -22).
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26] gRAM Experiment Material [Internet], Available from 'http://www.ituniv.se/~miroslaw/ram-dsl_experiment/', (
          <year>Accessed 2009</year>
          -
          <volume>04</volume>
          -7).
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>C.</given-names>
            <surname>Wohlin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Runeson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Höst</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.C.</given-names>
            <surname>Ohlsson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Regnell</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Wesslèn</surname>
          </string-name>
          , Experimentation in Software Engineering: An Introduction, Boston MA: Kluwer Academic Publisher,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <given-names>M.</given-names>
            <surname>Staron</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Kuzniarz</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Wohlin</surname>
          </string-name>
          , “
          <article-title>Empirical assessment of using stereotypes to improve comprehension of UML models: A set of experiments</article-title>
          ,
          <source>” Journal of Systems and Software</source>
          , vol.
          <volume>79</volume>
          ,
          <year>2006</year>
          , p.
          <fpage>727</fpage>
          -
          <lpage>742</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <given-names>M.</given-names>
            <surname>Staron</surname>
          </string-name>
          , “
          <article-title>Adopting MDD in Industry - A Case Study at Two Companies,”</article-title>
          <source>ACM/IEEE 9th International Conference on Model Driven Engineering Languages and Systems</source>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Nierstrasz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Whittle</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Harel</surname>
          </string-name>
          , and G. Reggio, eds., Genova, Italy: Springer-Verlag,
          <year>2006</year>
          , pp.
          <fpage>57</fpage>
          --
          <lpage>72</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>