<!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>Mapping MOF-based requirements representations to ontologies for software reuse</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Katharina Wolter</string-name>
          <email>kwolter@informatik.uni-hamburg.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Michal Smialek</string-name>
          <email>smialek@iem.pw.edu.pl</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Lothar Hotz</string-name>
          <email>hotz@informatik.uni-hamburg.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Stephanie Knab</string-name>
          <email>knab@informatik.uni-hamburg.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jacek Bojarski</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Wiktor Nowakowski</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>HITeC e.V., University of Hamburg</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Warsaw University of Technology</institution>
          ,
          <country country="PL">Poland</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>In this paper, we combine MOF-based software representations and description logic-based mechanisms for facilitating software reuse. All software representations (requirements speci cations, design models, code) arising from one project are combined in a software case and stored in a repository for later retrieval. For reuse purposes, we use requirements as search indexes. We map metamodel-based requirements speci cations to an ontology and use a Description Logic reasoner for classi cation. This makes implicit taxonomical relations explicit. The inferred taxonomical hierarchy is then used to compute the taxonomical similarity between the current (initial) requirements and those in the repository. Doing so, we retrieve software cases with a high reuse potential. This approach has already been validated in an industrial context.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        The underlying goal of our work is to enable reuse of model-based software
development artifacts. For this task, we combine all artifacts that arise in the course
of a software development project in a \software case". A software case is a set
of interlinked models and code written in textual and graphical languages that
have their syntax de ned formally (normally with a metamodel or a context-free
grammar). The contents of a software case are manifested through the contained
requirements model, which is speci ed using a precise and semantic-oriented
requirements language. In this language, meaning of words is de ned by linking
them to WordNet [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. The requirements model is mapped to other models
(using model-based transformations) so that all syntactic elements of these models
have their source in at least one element of the requirements model. All software
cases that have been developed are stored in a repository for later reuse.
      </p>
      <p>
        The retrieval of similar software cases from the repository is a key
prerequisite for this reuse approach. In order to retrieve such similar software cases we
compare requirements models. This is based on the assumption that cases with
similar requirements models can have similar design models, too. The retrieval
uses a combination of di erent similarity measures [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. In this paper, we
focus on the ontology-based similarity measure for software cases.
      </p>
      <p>Such an ontology-based similarity measure requires the representation of all
software cases (more precisely their requirements models) in an ontology. One
resulting advantage of representing them in an ontology is the availability of
reasoning techniques provided by Description Logic (DL) reasoners like Pellet or
Racer3. One of these reasoning techniques (namely classi cation) supports our
similarity measure. The classi cation makes implicit relations between elements
in the ontology explicit by changing the taxonomical hierarchy. These newly
inferred relations can then be used by our ontology-based similarity measure.</p>
      <p>The rest of this paper is structured as follows: Section 2 sketches the facilities
Description Logics supply and elaborates on main questions that have to be
answered when Description Logics are applied in a certain domain. In Section 3,
we introduce the general reuse approach in which our ontology-based similarity
measure is embedded and we describe the MOF-based requirements speci cation
language (RSL). In order to realize the similarity measure we had to construct
an ontology containing all requirements models, the related metamodel, and the
linked elements from WordNet (see Section 4 for details). The use of classi cation
as a reasoning technique for supporting software retrieval is explained in Section
5. Our ontology-based similarity measure uses this inferred taxonomic hierarchy
(Section 6). Section 7 describes the validation experiments as well as rst results.
Finally, the approach is discussed (Section 8) and a summary concludes the
paper.
2</p>
    </sec>
    <sec id="sec-2">
      <title>DL Modeling and Reasoning Facilities</title>
      <p>For our current task (ontology-based similarity measure), we need to select from
a diverse range of modeling and reasoning facilities of Description Logic. It
provides facilities to de ne concepts and roles (or sometimes called properties)
between two concepts. A concept (given with a unique name) indicates the set
of individuals that belongs to it, and a role indicates a relationship between
concepts. Concepts and roles are combined via constructors to so-called
descriptions. Typical constructors are those of ALCHIF , i.e. Attributive Language
with universal restrictions, existential quali cation, concept intersection (ALC),
role hierarchy (H), inverse roles (I), and functional properties (F ). With these
constructors, one can de ne a specialization relation between concepts, which
provides superconcepts and subconcepts in a taxonomy, i.e. general or speci c
concepts. Furthermore, a Description Logic allows to distinguish between
primitive (i.e. necessary) and de ned (i.e. necessary and su cient) concepts, indicated
with implies and equivalent, respectively. If several somehow combined roles are
su cient for a concept, an individual who ful lls such roles would be part of the
set the concept describes. If an instance belongs to a concept, the instance ful lls
the necessary roles of that concepts.</p>
      <p>
        Given such modeling facilities, DL reasoners provide reasoning techniques.
Examples are (see www.w3.org/Submission/owl11-tractable/ or [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]):
{ Concept Subsumption (classi cation): A concept A subsumes B, when the
description of A is more general than the description of B.
      </p>
      <sec id="sec-2-1">
        <title>3 clarkparsia.com/pellet, www.racer-systems.com</title>
        <p>{ Instance Checking: Given an individual a and a concept A, verify whether a
is an instance of A.
{ Ontology Consistency: Check whether a given ontology is not contradictory.
{ Concept Satis ability: Given a concept A, verify whether the description of</p>
        <p>A yields a non-empty set of individuals.
{ Conjunctive Query Answering: Given an ontology O and a conjunctive query
q, return the answers of the query with respect to O.</p>
        <p>Generally, when ontologies should e ectively be applied in a task, like here
in ontology-based similarity computation, four design decisions are concerned:
1. What reasoning techniques should be used for supporting the solution of the
task? In our case, classi cation is used (see Section 5 for details).
2. What entities should be mapped to the ontology? In our case, what elements
of a software case are relevant for realizing the reasoning technique? Section
3 introduces the main elements of a software case and Section 4 explains the
mapping to the ontology.
3. What concepts should be modeled as de ned concepts and which should be
necessary? Especially de ned concepts enable reasoning tasks (Section 4).
4. Which logical language should be used for solving the task (see Section 4 for
details)? This comes from previous decisions which impact the expressiveness
of the language and computational e ciency.
3</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Model-driven Software Cases</title>
      <p>Figure 1 shows an example of a software case. Elements of the requirements
model within the software case (R) are interlinked with appropriate elements of
the design model (D), which, in turn, are re ected in code (C). Design and code
form a solution to the software problem manifested by the requirements. The
initial requirements for a new problem (Q) can be compared with the
requirements models of already existing software cases. Thus, the requirement models
serve as indexes to the design models which facilitates searching and retrieval
of past solutions that can be applied to the current problem. For the indexing
mechanism to work properly we have designed a special-purpose Requirements
Speci cation Language (RSL). Its syntax contains detailed constructs which
allow for automatic comparison and transformation to the design models.</p>
      <p>RSL enables two scenarios of software development: constructing and storing
a software case, and retrieving a software case. When starting a new software
project, initially we create its requirements model (see R21 in Figure 1). The
model contains the description of the application logic with a separate
description of the problem domain. Such a complete requirements model written in
controlled language, is automatically transformed into the design model (see
D21). This model can be manually updated to conform to certain non-functional
constraints. Then, the code (see C21) is generated, which includes also some of
the contents of the methods (the application logic). Finally, all these artifacts,
together with the mappings generated between them are stored in a software
case repository.</p>
      <p>WordNet
terminology</p>
      <p>Q1</p>
      <p>UserInterface::
UIComponent</p>
      <p>«interface»
CourseManagement:</p>
      <p>IAddNewCourse
+ entersCourse()
+ wantsToAddCourse()</p>
      <p>UI IAddNewCourse
CourseManagement IChangeCourseData</p>
      <p>IShowOwnedCourses
«interface»
CoursesServices:</p>
      <p>ICourseList
+ builds(CourseListDTO)</p>
      <p>ICourseList</p>
      <p>ICourse
BusinessLogic::
CoursesServices</p>
      <p>«interface»
CoursesServices:</p>
      <p>ICourse
+ registers(CourseDTO)
+ verifies(CourseDTO)</p>
      <p>D21</p>
      <p>C21
course manager :course
manager
wants to see course list()</p>
      <p>UIComponent
:UIComponent</p>
      <p>UI :UI</p>
      <p>«interface»
IShowExtendedCourseList
:IShowExtendedCourseList
«interface»
ICourseList
:ICourseList
wantsToSeeCourseList()
showsCourseList()
builds(CourseListDTO)
package coursesServices;
interface ICourse {
void registers(CourseDTO c);
void verifies(CourseDTO c);
}
package courseManagement;
interface IAddNewCourse {
void entersCourse();
void wantsToAddCourse();
}</p>
      <p>After some time, when we start a next project, we write an initial
requirements model which is used to build a query (see Q1) to search for past solutions
that can be reused. The query engine compares the query with the requirements
models of past software cases. The most similar software cases or their parts are
picked by the team and copied to the current workspace for merging with the
current project. After merging, the newly created software case can be stored in
the repository for further reuse.</p>
      <p>Figure 1 explains the details of RSL. It shows three use cases (see boxes with
tabs within Q1 and R21) which are the basic units of functionality in RSL. Use
cases have their detailed representations in the form of textual scenarios
(graphical versions also can be used). Every such scenario is a sequence of numbered
Requirements</p>
      <p>Requirement</p>
      <p>UseCase</p>
      <p>UseCase
+scenarios 0..*</p>
      <p>RequirementRepresentation
ConstrainedLanguageScenario +subject 1</p>
      <p>PhraseHyperlink *</p>
      <p>Subject
+scenarioSteps 1..*</p>
      <p>1..*
SVOSentence</p>
      <p>PhraseHyperlink *</p>
      <p>Predicate
+1verbWithObjects</p>
      <p>Project specific vocabulary</p>
      <p>Terminology</p>
      <p>Phrase</p>
      <p>VerbPhrase
1
1</p>
      <p>
        1
SimpleVerbPhrase
sentences in the SVO grammar { consisting of a subject (S), a verb (V) and one
or two objects (O), e.g. System shows course list. Actually, scenario sentences are
not pure text but they are built of hyperlinks pointing to notions in a domain
vocabulary (e.g. course list ). These notions can have their de nitions speci c
to the system's problem domain. Notions can also contain domain statements
which are verb phrases associated with the given notion (e.g. show course list ).
An example domain vocabulary is shown in Figure 1 to the left of the scenarios.
In order to make requirements models comparable for reuse purposes, we have
to additionally link all elements of the domain vocabulary to one global
terminology, like WordNet [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] that contains meanings of words in the general context.
This makes possible to calculate semantic-oriented similarity of di erent
requirements models as it will be shown in the following sections. In this context it can
be noted that RSL models can both form parts of software cases (R21) and serve
as queries (Q1) for software case retrieval.
      </p>
      <p>
        To facilitate automatic transformations, the RSL syntax is de ned through
a meta-model in MOF. This was a natural choice which facilitates constructing
transformations to design models written in the MOF-based UML. It also
allows for mapping RSL to an ontology. For transformations we use the MOLA
transformation language (see [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]).
      </p>
      <p>
        A relevant fragment of the RSL metamodel expressed in MOF is presented in
Figure 2. The metamodel is composed of three parts, divided with metaclasses
constituting hyperlink relations. First part is the requirements part (left frame).
In RSL, requirements can be modeled as general requirements written in natural
language (not included in Figure 2) or as use cases with scenarios de ned in
constrained language. Scenarios (ConstrainedLanguageScenario4 metaclass) are
composed of SVOSentences. Every such sentence is composed of a Subject and
a Predicate which are in fact hyperlinks to de nitions of the proper phrases in a
4 With this font we will denote elements of the RSL metamodel.
vocabulary (center frame). The Subject points to a Phrase containing one Noun
and optionally one Modi er and one Determiner. The Predicate points to one of
the two VerbPhrase subclasses. It contains the VO(O) part of the sentence. If the
sentence contains only the direct object (SVO sentence), the predicate points to a
SimpleVerbPhrase. This subtype of VerbPhrase contains a Noun (inherited from
the Phrase) and an additional Verb added before the Noun (eg. ,,add user").
Phrases containing both the direct and indirect object (VOO) are stored in
a ComplexVerbPhrase. This subtype of the VerbPhrase links an instance of a
SimpleVerbPhrase (the VO part of the phrase) followed by a Preposition and an
indirect object (the Noun inherited from the Phrase, eg. ,,add user to user list").
In RSL, the vocabulary is project speci c and contains notions' and phrases'
de nitions characteristic to the current problem domain. All the words used
in the project-speci c phrases are summarized in a terminology (see the right
frame). The TermHyperlinks connect the Phrases and the Terms. Each Term links a
WordNet element (by referring to its ID) in order to de ne the terms's meaning
in a general context. WordNet is a sematic lexicon which currently consists
of more than 200.000 synonyms grouped in more than 100.000 synonym sets
(called synsets, see [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]). Semantic relations (like is-a and has-parts) connect
these synsets.
      </p>
      <p>This three-level language infrastructure enables clear separation between the
behavior speci cation (use case scenarios' steps) and the description of the
domain (vocabulary). The third level { the terminology { de nes the meaning of
words in a global context and thus gives the possibility to perform meaningful
comparison of di erent requirements models.</p>
      <p>
        For expressing design models within software cases, we use a subset of UML
elements de ned through a pro le. A design model is generated automatically
as a result of a transformation that takes a requirements model in RSL as its
source. The transformation procedure adds to the information contained in
requirements all the details of the technical solution: the architectural style, design
patterns, etc. In the example we present the results of a transformation from
requirements R21 to design D21. The example uses a 3-tier architectural model
as the transformation target. Use cases are transformed into interfaces of the
application logic layer and domain element are transformed into interfaces of
the business logic layer and also into data access objects. Sequences of scenario
sentences can be transformed into sequence diagrams on the architectural level.
For more details on the transformation rules see [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. During the transformation,
the mapping links between elements of the requirements model and the design
model are created. By following these links, the design elements and the resulting
code (see C21) can be retrieved for reuse.
      </p>
      <p>
        Validation e orts conducted in the industrial context proved that despite of
its very detailed meta-model, the language is readable and understandable for
its users (see [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]). The full speci cation of the RSL can be found in [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
      </p>
      <p>
        Mapping the MOF-based Models to an Ontology
In order to use the classi cation facilities provided by DL reasoners we had to
represent the RSL metamodel, the requirements models and the linked
WordNet elements in an ontology using ontology languages like OWL [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] or KRSS
[
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. The goal was to represent the requirements models in a way such that
similar requirements have short taxonomical distances after classi cation. This
representation is explained in the following, starting with the RSL metamodel.
4.1
      </p>
      <sec id="sec-3-1">
        <title>Mapping the RSL Metamodel</title>
        <p>The RSL metamodel consists of 127 classes, sub- and superclasses, and many
associations between them. These classes and associations are represented in
the ontology as follows: classes of the metamodel are represented with concepts,
generalization relations are represented with specialization relations, and
associations are represented with roles. Furthermore, the associations of a class in
the metamodel de ne the class, i.e. if an object with such relations exists, then
it belongs to that class and if an object belongs to a class it has the relations
of that class (see Figure 3). The classes of the RSL metamodel are furthermore
disjoint, because every element of a requirements model is an instance of exactly
one class of the metamodel.</p>
        <p>Although navigation across associations is bidirectional in the RSL
metamodel, we do not use inverse roles in the ontology since the similarity
computation only requires roles directing down from the concept representing the
requirements model to the synsets of WordNet. Likewise, we avoided a role
hierarchy because only a relatively at hierarchy of associations is given in the RSL
metamodel. Finally, functional properties are not needed for de ning concepts
because they relate a class to a primitive type not to another concept. Thus, we
can use the DL language ALC instead of the more complex language ALCHIF .
4.2</p>
      </sec>
      <sec id="sec-3-2">
        <title>Mapping Requirements Models</title>
        <p>The requirements models of speci c software cases are represented through
instances of classes of the RSL metamodel. This is illustrated in Figure 4. The
RSL metamodel can be found on M2 while the speci c requirements models
are located on M1 (in the context of the MDA metamodeling layers). Thus, the
SVO sentences de ned in a particular requirements model are instances of the
class SVOSentence in the RSL metamodel. Please note that we represent these
instances with further concepts in the ontology. They are mapped to
subconcepts of the concepts representing the classes of the RSL metamodel. This is</p>
        <p>M3
M2
M1</p>
        <p>EMOF
SDSL metamodel</p>
        <p>RSL metamodel
Requirements Model C1</p>
        <p>Requirements Model Cn</p>
        <p>WordNet</p>
        <p>Represented
in ontology
illustrated in Figure 5 which shows a part of an ontology, which we created
manually for illustration purposes. Concepts for SVO sentences are coded by a
software case id starting with C and a readable string re ecting the text of the
sentence (e.g. SVOSentenceC2GuestChoosesEquipment5). The concept SVOSentence
is the superconcept of four SVO sentences contained in distinct requirements
models.</p>
        <p>As a result, the concepts representing the classes of the RSL metamodel form
the upper part of our ontology. Thus, the part of the ontology representing the
model from the M2 level is called upper model of the ontology. The concepts
representing the elements of speci c requirements models from the M1 level are
modeled as specializations of these concepts and form the lower part of our
ontology.</p>
        <p>We do not use individuals for representing the elements of particular speci
cations because taxonomical relationships cannot be computed between
individuals. In our approach this is the key to infer taxonomical relationships between
the elements of requirements models, because the similarity is based on
taxonomical relations.</p>
        <p>Thus, each class of a speci c requirements model is mapped to a concept
with a unique id as its name and the corresponding upper model concept as its
superconcept. The concepts representing the elements of requirements models
5 With this font we will denote elements de ned in the ontology.</p>
        <p>element from M2 level
elements from M1
level
Fig. 5. Concepts in the ontology representing classes from the M2 and the M1 level.
(equivalent SVOSentenceC2GuestChoosesEquipment
(and SVOSentence
(some subject SubjectC2Guest)
(some predicate PredicateC2ChoosesEquipment)))
(equivalent PredicateC2ChoosesEquipment
(and Predicate</p>
        <p>(some verbPhrase SimpleVerbPhraseC2Choose)))
(equivalent SimpleVerbPhraseC2Choose
(and SimpleVerbPhrase
(some verb PhraseVerbLinkC2Choose)
(some object NounPhraseC2Equipment)))
(equivalent PhraseVerbLinkC2Choose
(and PhraseVerbLink</p>
        <p>(some linkedVerb VerbC2Choose)))
(equivalent VerbC2Choose
(and Verb</p>
        <p>(some termLinksToWordnetEntry ChooseSelectSynset)))
(equivalent NounPhraseC2Equipment
(and NounPhrase</p>
        <p>(some noun NounLinkC2Equipment)))
(equivalent NounLinkC2Equipment
(and NounLink</p>
        <p>(some linkedNoun NounC2Equipment)))
(equivalent NounC2Equipment
(and Noun</p>
        <p>(some termLinksToWordnetEntry EquipmentSynset)))
are related through roles de ned in the upper model. Furthermore, these roles
de ne the requirements model concepts (see Fig. 6). Thus, not only necessary
relations (i.e. subclass) but necessary and su cient relations are used for relating
software cases. This modeling enables the reasoning techniques described in the
Section 5.</p>
        <p>
          This general mapping can be used to convert all elements of a requirements
model to our ontology. However, this is not necessary since RSL requirements
models contain some elements not relevant for our ontology-based similarity
measure like all TermHyperlinks in Figure 2 (see [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] for details). Mapping these
elements would cost signi cant amount of computing time and would not
improve the similarity measure. Thus, we only map RSL elements that are relevant
for our similarity calculation.
4.3
        </p>
      </sec>
      <sec id="sec-3-3">
        <title>Mapping WordNet Elements</title>
        <p>The WordNet metamodel consists of several classes like Synset, Wordform, Gloss
etc. NounSynsets are related via the relation hyponym and hypernym in a
taxonomy. Classi cation only requires this taxonomical relation between synsets and
the fact that synsets are distinct. Thus, we only map synsets from WordNet.
They are represented with concepts and the synset taxonomy is represented
with the subconcept relation.</p>
        <p>The role termLinksToWordNetEntry relates each term of a requirements model
to a synset (see Fig. 6). However, it is not necessary to map all synsets of
WordNet (i.e. almost 117.000) into the ontology. For our purposes, it is only necessary
to map the synsets that are linked by a term and all the predecessors of these
synsets in the synset taxonomy. Synsets have only taxonomical relations between
(implies ChooseSelectSynset VerbSynset) (implies FixSynset VerbSynset)
(implies PersonSynset NounSynset)
(implies ComputerUserSynset PersonSynset)
(implies System_AdministratorSynset ComputerUserSynset)
(implies UserSynset PersonSynset) (implies ConsumerSynset UserSynset)
(implies CustomerClientSynset ConsumerSynset)
(implies GuestSynset CustomerClientSynset)
(disjoint ComputerUserSynset UserSynset)
(disjoint ChooseSelectSynset FixSynset)
themselves (i.e. no further roles). Thus, the taxonomical relations are necessary
conditions, i.e. implies is used for describing them. Furthermore, synsets that
are siblings are disjoint to each other (see Fig. 7).
5</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Classifying the Ontology</title>
      <p>In this section, we show what can be gained by classifying the constructed
ontology. Using the mapping described in the previous section we can represent
requirements models with concepts and roles in an ontology. However, the
requirements models do not contain information that directly relates the diverse
concepts of distinct requirements models. As a result, all concepts are direct
subconcepts of upper model concepts. In Figure 5 e.g., all SVO sentences are direct
subconcepts of the upper model concept SVOSentence. In this initial ontology, only
the synset taxonomy provides a hierarchical structure (see Fig. 8, left side).</p>
      <p>Figure 8 shows the SVO sentences from Figure 5 plus some additional concepts but
after classi cation. The synset taxonomy provided by WordNet and the fact that the
Pre-classification: Post-classification:
c1 c2
Distance (c1, c2) = 2
Tax-Sim (c1, c2) = 0.644
c2
c1</p>
      <p>Distance (c1, c2) = 1
Tax-Sim (c1, c2) = 0.761</p>
      <p>Distance (c1, c2) = 2
Fig. 8. Left side: synset taxonomy mapped from WordNet. Right side: cutout of
inferred hierarchy: classi cation results are emphasized in gray and blue font.
concepts representing a requirements model are de ned concepts and thus, strongly
related between each other, allow for the classi cation described in the following.</p>
      <p>Our mapping of RSL metamodel and requirements models enables a DL reasoner
to use the synset taxonomy in order to classify the concepts of the requirements
models, i.e. to compute, which concepts are equivalent (Fig. 8, upper part in gray
marked by ) or, which concepts can be taxonomically structured (Fig. 8, lower part
in blue). Relations of the synset taxonomy are propagated one by one to the
subjects of requirements models of C1, C2, C3, and C4. Namely, SubjectC3Client and
SubjectC4System Administrator are subconcepts of the concept SubjectC1Person
due to the fact that CustomerClientSynset and System AdministratorSynset are
subconcepts of PersonSynset, respectively. Thus, after classifying the ontology, the
taxonomy de ned in WordNet is also re ected in the concepts representing the speci c
requirements models. Even more interesting is the impact on structural concepts like
SVOSentence. In Figure 8 for example, the SVO sentences of case C2 and C3 are
classi ed as subconcepts of the SVO sentence of case C1. This is due to the fact that in
both sentences a speci c type of person (being either a guest or a client) chooses an
type of equipment. Since the SVO sentence of C4 is about xing a printer instead of
selecting one, the sentence is not a subconcept of the SVO sentence of case C1. Thus,
classifying the ontology makes these taxonomical relations explicit. Please note that
Figure 8 shows only parts of this information.</p>
      <p>This kind of classi cation takes the structure, i.e. the roles between the concepts,
into account. Through this classi cation, a di erent taxonomical distance between the
concepts of requirements models is introduced and will lead to di erent similarities.
Before classifying the ontology, the taxonomical distance between all SVO sentences
was equal (see Fig. 5). Classi cation reduces the distance between SVO sentences of
C2 and C1 while it increases the distance between sentences of C2 and C4 (comp.
Fig. 5 and Fig. 8). This e ect of classi cation on distances is sketched in the box in
Figure 8. By using the WordNet link and the provided mapping, our similarity measure
considers the meaning de ned in the requirements models.
6</p>
    </sec>
    <sec id="sec-5">
      <title>Similarity Computation</title>
      <p>Once the ontology has been constructed and classi ed we use the inferred taxonomical
hierarchy for computing similarity values. For this purpose, a query is compared with
each requirements model contained in the repository where the query is a (potentially
partial) requirements model. The goal of similarity computation is to get a value
between 0 and 1 that indicates the similarity between a query and a software cases; 0
denoting no similarity and 1 denoting that the query is completely contained in the
software case.</p>
      <p>
        Please note that our measure di ers from most similarity measures. Typically,
similarity measures positively correlate with the amount of commonality between query
and case and at the same time negatively correlate with the amount of di erence (see
[
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]). The latter however, is not wanted for our similarity measure. A query element
that is not found in a software case should of course result in a lower similarity value
but if a software case contains elements that are not part of the query, this should
not have a negative impact on the similarity value. This is due to the assumption
that additional elements in the software case are potential for reuse and thus wanted.
Supported by a tool, the user can browse these additional elements and select those
that are valuable in the current software development project while others are omitted.
In order to allow for this, our measure is asymmetric.
      </p>
      <p>
        The assumption made here is that the taxonomical distance between two concepts
can be the basis of such a similarity measure. Our similarity measure compares pairs of
concepts in the classi ed taxonomy. This comparison includes both the concept
placement in the taxonomical hierarchy (distance-based similarity ) and the roles and role
llers that the concepts de ne (role-based similarity ) (see [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] for a similar approach).
      </p>
      <p>For computing the distance-based similarity between two concepts c1 and c2, the
distance of both concepts to the least common subsumer (LCS) is computed, both
values are added and a value describing the distance-based similarity is returned:
1. lcs = leastCommonSubsumer(c1, c2)
2. distance1 = pathLength(c1, lcs)
3. distance2 = pathLength(c2, lcs)
4. distance = distance1 + distance2</p>
      <p>1
5. return ln(distance+e)
The algorithm has the following properties: The division ensures values between 0
and 1. The further away the concepts are from each other, the smaller the similarity
value gets. The logarithm ensures higher similarity values for low distances, than, for
1
example, distance would provide. Finally, the addition of e ensures a similarity value
of 1 for distance 0, i.e. if c1 and c2 are in fact the same concept. The box in Figure
8 illustrates the e ect of classi cation on the distance-based similarity measure. By
classi cation the distance between c1 and c2 is reduced from 2 to 1. The associated
similarity values of the distance-based measure are also given in the gure.</p>
      <p>The basic idea of role-based similarity is that the similarity of two concepts depends
on the similarity of their subgraphs. When comparing roles, their most important
aspects are their llers: concepts or concrete domains that specify the value of a role.
When comparing two concepts, the function of role-based similarity is recursively
applied. The recursion terminates when two concepts without roles are compared; their
similarity is given by the distance-based similarity function. The roles of both concepts
are recursively compared and similarities are summed up for every concept. A value
describing role-based similarity is returned: 1 means both concepts have the same roles,
and the smaller the value, the less their roles have in common.</p>
      <p>Both aspects can be computed independently from each other. Therefore, we
dened two algorithms, one computing the distance-based similarity between two
concepts and another one comparing the common roles of concepts. The similarity between
two concept de nitions is the sum of the distance-based similarity and the role-based
similarity divided by two.
7</p>
    </sec>
    <sec id="sec-6">
      <title>Experiments</title>
      <p>During the development of our approach we used small examples for testing and
illustration purposes (see previous sections). In order to evaluate the presented similarity
measures we conducted two types of experiments. On the one hand, we produced
several small software cases by varying speci c elements e.g. of a sentence, in order
analyze the impact of these modi cations. On the other hand, we applied the approach
to software cases produced by software development teams in the industrial context
(see Acknowledgements).</p>
      <p>
        Technical Setting. The RSL metamodel was implemented as part of a comprehensive
tool suite [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. Internally, the tool uses a graph representation of the metamodel (see
[
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]). This representation provides the input for the presented ontology construction.
It also serves as the basis for transforming into design and storing of software cases.
      </p>
      <p>A JAVA-based converter maps the RSL metamodel and the requirements models
to an OWL ontology by using the mapping described in this paper. For debugging the
OWL ontology we use Protege. Protege also provides interfaces to the DL reasoners
Pellet and Racer. For debugging inference behavior we apply Pellint.6 The similarity
computation is a further JAVA-component developed by us. It traverses the classi ed
ontology for computing similarity values as presented in Section 6. This similarity
measure is combined with other measures and integrated in the above mentioned software
development tool.</p>
      <p>Experiments. Firstly, we created almost 50 small, arti cial requirements models. These
models vary only in particular elements e.g. one word is added, one word is replaced by a
more speci c term, one sentence is added etc.. Comparing the similarity values for these
requirements models we could analyze the impact of particular modi cations in detail.
Furthermore, we could show that the ontology-based similarity measure computes the
same similarity ranking for these test cases as considered plausible by us beforehand.</p>
      <p>For applying the approach in a broader scale, 16 industrial software cases have
been created by four software development organizations using the above mentioned
tool. The application domains are in the area of internet banking, investment funds
management, emergency systems, forestry systems, nancial contract systems, and
funding systems. The requirements models contained 261 requirements written in RSL
in total, which mapped to more than 30.000 de ned concepts. We were able to reduce
the number of de ned concepts to about 8.000 by converting only concepts that are
relevant for the ontology-based similarity computation (see Section 4).</p>
      <p>
        In addition, 8 more partial requirements models were created. These models were
used to query the repository of the above mentioned cases. The development teams
were to determine the compliance of their understanding of similarity and the
computed measures. This was subject to UTAUT analysis [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] which included appropriate
questionnaires asking about the similarity measures. The results of the analysis showed
general positive attitude and acceptance of the developers. It resulted also with
several remarks which allow for additional improvements in the classi cation approach.
Namely, further work will extend the number of tractable concepts (which is limited
through the capabilities of the used DL-reasoners). The currently gathered repository
of software cases gives good means to further experiment in this direction.
8
      </p>
    </sec>
    <sec id="sec-7">
      <title>Discussion and Related Work</title>
      <p>
        As can be seen in Figure 4 the constructed ontology crosses the border between the
levels M1 and M2. This is due to the fact that the instance-of relationship between an
element on Level M1 (e.g. a speci c SVO sentence) and its class (like the RSL class
SVOSentence) on Level M2 is mapped to a specialization relation of appropriate
concepts in the ontology. Or, as we introduced it in Section 4, the metamodel of RSL is
represented as an upper-model in the ontology. By doing so, de nitions of the metamodel
can be used within the ontology, i.e. by reasoning techniques. This mapping is slightly
di erent from those described in [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] where a level-wise mapping is proposed. With
our mapping the detailed metamodel of RSL is used in the ontology for preclassifying
the elements of M1, i.e. the elements of a requirements model. Thus, the M1-elements
      </p>
      <sec id="sec-7-1">
        <title>6 protege.stanford.edu, pellet.owldl.com/pellint</title>
        <p>are not subconcepts of the root Thing but of speci c concepts like SVOSentence or
VerbPhrase. The preclassi cation provokes that the taxonomical distance between
different elements is higher than it would have been without preclassi cation where all
elements are subconcepts of Thing.</p>
        <p>Other reasoning techniques like Instance Checking could be used for verifying if a
given requirements model complies to the RSL metamodel (i.e. model con rmation).
However, this is not needed in our case, since the software development tool
mentioned above already ensures that each requirements model is compliant with the RSL
metamodel.</p>
        <p>
          Some approaches allow the user to use natural language (e.g. [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ]). This results
in the need to parse the text which can lead to more than one possible model due to
language ambiguities. On the contrary, formal languages which avoid such ambiguities
like Z are not easy to understand for all stakeholders. RSL combines the advantages
of both alternatives. It is understandable for its users [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ] and provides unambiguous
requirements models that can directly be mapped onto ontology elements.
        </p>
        <p>
          ORE [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ] uses a similar approach to de ne the meaning of words in a speci cation;
they are related to concepts of an ontology. However, OREs support is based on a
domain-speci c ontology containing domain-dependent inference rules that need to
be developed and maintained. The same holds for the ontology-driven requirements
analysis described in [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ]. In contrast, our approach is independent of domain-speci c
inference rules. We only require the mature semantic lexicon WordNet as input for our
approach.
9
        </p>
      </sec>
    </sec>
    <sec id="sec-8">
      <title>Summary</title>
      <p>In this paper, we presented our new combination of MOF-based requirements models
and reasoning techniques from Description Logic for supporting the reuse of similar
software cases. We showed how we represent the MOF-based models in an ontology.
Special in our approach is that we combine elements from di erent levels (i.e. M2 and
M1) within one taxonomy in our ontology. Doing so, we are able to infer taxonomical
relations implicitly contained in requirements models. These inferred taxonomical
relations are used by our ontology-based similarity measure. Current experiments using
industrial software cases show promising validation results.</p>
      <p>Acknowledgments. This work is partially funded by the EU: Requirements-Driven
Software Development System (ReDSeeDS) (contract no. IST-2006-33596 under 6FP).
The project is coordinated by Infovide, Poland with technical lead of Warsaw University
of Technology and with University of Koblenz-Landau, Vienna University of
Technology, Fraunhofer IESE, University of Latvia, HITeC e.V. c/o University of Hamburg,
Heriot-Watt University, PRO DV, Cybersoft and Algoritmu Sistemos.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Fellbaum</surname>
          </string-name>
          , C., ed.:
          <source>WordNet: An Electronic Lexical Database</source>
          . MIT Press (
          <year>1998</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Wolter</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Krebs</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hotz</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>A combined similarity measure for determining similarity of model-based and descriptive requirements</article-title>
          .
          <source>In: Proceeding of the Arti cial Intelligence Techniques in Software Engineering Workshop (AISEW) at the ECAI</source>
          <year>2008</year>
          .
          <article-title>(</article-title>
          <year>2008</year>
          )
          <volume>11</volume>
          {
          <fpage>15</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Bildhauer</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Horn</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ebert</surname>
          </string-name>
          , J.:
          <article-title>Similarity-driven software reuse</article-title>
          .
          <source>In: International Workshop on Comparison and Versioning of Software Models (CVSM</source>
          <year>2009</year>
          ).
          <article-title>(</article-title>
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Baader</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Calvanese</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McGuinness</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nardi</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Patel-Schneider</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>The Description Logic Handbook</article-title>
          . Cambridge University Press (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Kalnins</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Barzdins</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Celms</surname>
          </string-name>
          , E.:
          <source>Model transformation language MOLA. Lecture Notes in Computer Science</source>
          <volume>3599</volume>
          (
          <year>2004</year>
          )
          <volume>14</volume>
          {
          <fpage>28</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Kalnins</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kalnina</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Celms</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sostaks</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schwarz</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ambroziewicz</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bojarski</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nowakowski</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Straszak</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kavaldjian</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Falb</surname>
            ,
            <given-names>J.:</given-names>
          </string-name>
          <article-title>Reusable case transformation rule speci cation</article-title>
          .
          <source>Project Deliverable D3</source>
          .3,
          <string-name>
            <given-names>ReDSeeDS</given-names>
            <surname>Project</surname>
          </string-name>
          (
          <year>2007</year>
          )
          <article-title>www</article-title>
          .redseeds.eu.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Mukasa</surname>
            ,
            <given-names>K.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jedlitschka</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Graf</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          , Klockner,
          <string-name>
            <given-names>K.</given-names>
            ,
            <surname>Eisenbarth</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>SteinbachNordmann</surname>
          </string-name>
          , S.:
          <article-title>Requirements speci cation language validation report</article-title>
          .
          <source>Project Deliverable D2.5</source>
          .1,
          <string-name>
            <given-names>ReDSeeDS</given-names>
            <surname>Project</surname>
          </string-name>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Kaindl</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Smialek</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Svetinovic</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ambroziewicz</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bojarski</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nowakowski</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Straszak</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schwarz</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bildhauer</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Brogan</surname>
            ,
            <given-names>J.P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mukasa</surname>
            ,
            <given-names>K.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wolter</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Krebs</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Requirements speci cation language de nition</article-title>
          .
          <source>Project Deliverable D2.4</source>
          .1,
          <string-name>
            <given-names>ReDSeeDS</given-names>
            <surname>Project</surname>
          </string-name>
          (
          <year>2007</year>
          )
          <article-title>www</article-title>
          .redseeds.eu.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9. W3C:
          <article-title>OWL Web Ontology Language Overview</article-title>
          . (
          <year>2004</year>
          ) http://www.w3.org/TR/owl-features.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Patel-Schneider</surname>
            ,
            <given-names>P.F.</given-names>
          </string-name>
          :
          <article-title>Description-logic knowledge representation system speci - cation from the KRSS group of the ARPA knowledge sharing e ort</article-title>
          .
          <source>Technical report</source>
          ,
          <article-title>DARPA Knowledge Representation System Speci cation (KRSS) Group of the Knowledge Sharing Initiative (</article-title>
          <year>1993</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Hotz</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wolter</surname>
            , K.,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            ,
            <surname>Solth</surname>
          </string-name>
          ,
          <string-name>
            <surname>A.</surname>
          </string-name>
          :
          <article-title>Ontology-based Similarity of Software Cases</article-title>
          . In to appear, ed.:
          <source>International Conference on Knowledge Engineering and Ontology Development</source>
          . (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Borgida</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Walsh</surname>
            , Thomas,
            <given-names>J.</given-names>
          </string-name>
          , Hirsh, H.:
          <article-title>Towards measuring similarity in description logics</article-title>
          . In: International Workshop on Description Logics, Edinburgh, Scotland,
          <source>DL2005</source>
          (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Gonzalez-Calero</surname>
            ,
            <given-names>P.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gomez-Albarran</surname>
            ,
            <given-names>M.,</given-names>
          </string-name>
          <article-title>D az-</article-title>
          <string-name>
            <surname>Agudo</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Applying DLs for retrieval in case-based reasoning</article-title>
          .
          <source>In: Proc. of the 1999 International Workshop on Description Logics (DL'99)</source>
          . (
          <year>1999</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Smialek</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ambroziewicz</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bojarski</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nowakowski</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Straszak</surname>
          </string-name>
          , T.:
          <article-title>ReDSeeDS: Requirements Driven Software Development System</article-title>
          . to be presented at ICSR 09 (
          <year>2009</year>
          )
          <article-title>tool demo</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Dahm</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Widmann</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <string-name>
            <surname>GraLab - Das Graphenlabor</surname>
          </string-name>
          .
          <source>Projektbericht 4.3</source>
          .0, University of Koblenz-Landau,
          <article-title>Institute for Software Technology (</article-title>
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Venkatesh</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Smith</surname>
            ,
            <given-names>R.H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Morris</surname>
            ,
            <given-names>M.G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Davis</surname>
            ,
            <given-names>G.B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Davis</surname>
            ,
            <given-names>F.D.:</given-names>
          </string-name>
          <article-title>User acceptance of information technology: Toward a uni ed view</article-title>
          .
          <source>MIS Quarterly</source>
          <volume>27</volume>
          (
          <year>2003</year>
          )
          <volume>425</volume>
          {
          <fpage>478</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Zhao</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pan</surname>
            ,
            <given-names>J.Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pareiras</surname>
            ,
            <given-names>F.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Walter</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          , Groner, G.,
          <string-name>
            <surname>Ren</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jekjantuk</surname>
          </string-name>
          , N.:
          <article-title>Successful Stories and Potential Patterns on Applying Ontologies in Software Engineering</article-title>
          .
          <source>Project Deliverable WP3-D6</source>
          , MOST Project (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Kleiner</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Albert</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bezivin</surname>
          </string-name>
          , J.:
          <article-title>Con guring Models for (Controlled) Languages</article-title>
          .
          <source>In: Proceedings of the IJCAI-09 Workshop on Con guration.</source>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Kaiya</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Saeki</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>Using domain ontology as domain knowledge for requirements elicitation</article-title>
          .
          <source>In: Proc. of 14th IEEE International Requirements Engineering Conference (RE'06)</source>
          , IEEE CS (
          <year>2006</year>
          )
          <volume>189</volume>
          {
          <fpage>198</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Liu</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>He</surname>
            ,
            <given-names>K.Q.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wang</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Peng</surname>
          </string-name>
          , R.:
          <article-title>Heavyweight semantic inducement for requirement elicitation and analysis</article-title>
          .
          <source>In: SKG '07: Proceedings of the Third International Conference on Semantics, Knowledge and Grid</source>
          , Washington, DC, USA, IEEE Computer Society (
          <year>2007</year>
          )
          <volume>206</volume>
          {
          <fpage>211</fpage>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>