<!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>The detection of conflicts in the requirements specification based on an ontological model and a production rule system</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>M Sh Murtazina</string-name>
          <email>murtazina@corp.nstu.ru</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>T V Avdeenko</string-name>
          <email>tavdeenko@mail.ru</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Novosibirsk State Technical University</institution>
          ,
          <addr-line>Karla Marksa ave., 20, Novosibirsk, Russia, 630073</addr-line>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2019</year>
      </pub-date>
      <fpage>63</fpage>
      <lpage>73</lpage>
      <abstract>
        <p>The paper presents an approach to organizing the detection of conflicts between requirements based on an ontological model and a system of production rules. Requirements in the form of plain text are converted to instances of OWL ontologies for analysis. There are three basic elements “subject”, “action” and “object” in the requirements. These elements become classes of the ontology. The object properties between instances of the same classes are defined in the ontology. In the system of rules it is determined that one of four types of relations can be established between a pair of the requirements: isConflict, isDuplicate, isInterconnect, isNotInterconnect. We develop the software product in the Python language for building and applying production rules system for classes and property objects of the ontology. Protégé 5.2 is used to work with the ontology. Also Python library PySwip and development environment SWI-Prolog 7.6.4 are used in the work. The paper also considers the issues of extracting requirements ontology instances from the automated processing results of textual requirements. The UDPipe with Russian language model is used for text processing</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        Essential precondition for successful implementation of the software products is the preliminary
development of high-quality software requirements specification (SRS). The latter task is solved
during requirements engineering (RE) process, in which inaccurate and incomplete ideas about what
services should the software product provide in order to solve the potential users’ problems are
converted into a formal SRS. Moreover, it is necessary to take into account the limitations under
which the software product should be implemented and work. According to SEBoK (version1.9.1) a
set of requirements must satisfy the following characteristics: complete, consistent, feasible,
comprehensible and able to be validated.Тhe completeness means that the set of requirements need not
be further refined. The consistency criterion assumes that the requirement set does not contain
conflicting requirements, the requirements are not duplicated, and the same term is used for the same
element in the whole set of requirements. The feasibility criterion means that a solution can be
developed for a set of requirements that meets the requirements taking into account the limitations of
the project (for example, cost) with an acceptable level of risk. The comprehensibility criterion implies
that a set of requirements has to be formulated so that to give a clear idea of what is expected of the
software product, and in what way it relates to the whole system. The validability criterion implies that
it should be possible to prove that the set of requirements will lead to the user needs satisfaction under
existing constraints of the project [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <p>For the agile software development approach, the requirements specification is usually not a single
document, but logical structure filled with requirements to the software product. The creation of such
specifications is usually preceded by the development of a document called «Vision and scope»,
which gives an overview of the developed software product in terms of the key needs and constraints
under which the project will be implemented. Then, the work begins on the creation of the product
backlog containing prioritized list of requirements. The major feature of an agile approach is
permanent readiness to change the requirements, therefore only those elements of the product backlog
that have the highest priorities are worked out in detail at the current time. The requirements with low
priorities remain in the product backlog, where they can be added, removed, or changed at any time.
Under conditions of variability of the requirements their coordination becomes one of the most
difficult problems in the requirements engineering.</p>
      <p>
        Requirements negotiation involves detection and resolution of conflicts. Therefore, it seems that at
the stage of collecting the product backlog elements, the most important of the above quality
characteristics is to ensure the consistency of the set of product backlog elements. In this paper we will
consider the main component of this quality characteristic, namely, conflict-free set of requirements.
The proposed approach can be used as part of the intellectual support of the engineering process based
on ontological models. The ontology data of requirements can be processed together with the data of
other ontologies in the field of requirements engineering described by us in works [
        <xref ref-type="bibr" rid="ref2 ref3 ref4">2-4</xref>
        ].
      </p>
      <p>The paper is organized as follows. Section 2 provides an overview of publications on the research
theme. In section 3 we propose an approach to converting text requirements into the ontology. In
section 4, we describe the developed software based on production model to search for conflicts
between the requirements represented by instances of the ontology. Section 5 concludes on the
prospects of the proposed approach.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Theoretical background</title>
      <p>
        The paper [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] describes a prototype of the «Oz» design system, which provides automated methods for
conflict detection, generation of conflict resolution variants, and explanation of the decision choice. So
the experimental tool «Oz» is designed to develop harmonized requirements. Requirements from
different stakeholders are presented in the form of scenarios. The «Oz» prototype includes
requirements language, specification language, specification planner, and requirements negotiation
tools. The work [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] of the same authors presents an approach to the identification and resolution of
conflicts between the requirements within the framework of the paradigm of Conflict-Oriented
Requirements Analysis (CORA). Requirements ontology is used to describe the structure of the
requirements, which providing formulation of the requirements and their interaction. Conflicts
between the requirements are presented in the requirements ontology as types of interaction. The
interactions between the requirements are determined directly from the requirements concept
description. Conflict resolution is based on the generation of alternative requirements’ variants
resolving the conflict.
      </p>
      <p>
        The authors of [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] mentioned that manually produced conflict-analysis of the requirements needs
considerable effort and is prone to the errors. They propose to use semantic technologies as a basis for
automating the analysis of conflicts between the requirements implementing ontological approach
OntRep. In [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] three types of conflicts are distinguished: conflicts between the requirements and the
constraints, conflicts between the requirements and the guidelines (for example, on formalization of
requirements), conflicts between the requirements. Conflicts between the requirements are divided
into two groups: simple (between two requirements) and complex (between several requirements). To
implement the conflict analysis approach, all terms used in the requirements must be formulated as
Glossary terms in the ontology OntRep, and the requirements must be formulated using a specific
structure. The OntRep tool consists of two basic components. The first component is an instance
collector that takes input data. For example, these might be requirement tickets from the project
management tool and bug tracking in Trac software. A ticket in this system means a virtual card with a
description of the requirement (task) or the error that needs to be corrected. The OntRep tool instance
collector analyzes the contents of the ticket and assigns categories of the requirements (classes)
defined in the ontology (for example, security requirement). The second component of OntRep tool is
intended to generate a report on conflicts between the requirements [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
      </p>
      <p>
        The paper [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] describes an automated tool EA-Analyzer for revealing conflicts. This tool is
designed to identify conflicts in aspect-oriented requirements specified in natural language text.
Requirements are written using RDL (Requirements Description Language), which uses XML tags to
annotate the natural language specification. The main elements of the language are &lt;subject&gt;,
&lt;object&gt; and &lt;relationship&gt; tags. The &lt;subject&gt; tag grammatically corresponds to the subject of the
sentence, the &lt;object&gt; tag corresponds to the object to which the action applies, and the &lt;relationship&gt;
tag defines the action performed by the subject over the object. There can be several objects in one
sentence. Classification of verbs in RDL is based on semantic categories proposed in the works of R.
Dixon [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. Also RDL uses categories of degrees (for example, showing the differences between the
modal verbs), reflecting the importance degree of the requirement. Contamination (merging
heterogeneous factors) consists of three sub-elements: constraint, basic requirement and result. In
EAAnalyzer, the conflict detection problem is formulated as a classification problem that is a well-studied
machine learning problem. The EA-Analyzer tool uses annotated requirements in RDL to decide if
there are inconsistencies in the requirements [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>
        The paper [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] proposes a set of rules for conflict analysis of class diagrams. The conflict-analysis
process is a four-step cycle: modeling a priori knowledge, modeling new requirements, identifying
conflicts, and resolving conflicts. The rules process four possible types of conflicts: inconsistency,
redundancy, overriding, and missing parts.
      </p>
      <p>
        The paper [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] deals with the definition of cooperation and conflicts between the requirements. The
requirements conflict if they contain conflicting statements about common software attributes, and
they are in a cooperative state if they complement each other's statements about attributes. The
approach proposed in [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] includes manual transformation of the requirements into the software
attributes, automatic detection of conflicts and cooperation between the requirements based on their
attributes, automatic tracing of dependencies between the requirements.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] an approach is proposed that allows comparing the stakeholder’s points of view on the
subsystems of the information system. Requirements of stakeholders, written in natural English
language, are processed with the help of the syntactic StanfordParser and the tool TreeTagger for
morphological tagging of texts. On the basis of the analysis of the received semantic-syntactic
relations on a set of rules the ontology of functional requirements is created. The concepts of the
resulting ontologies are collated using external resources such as WordNet and string matching
methods such as the N-gram method. As a result of comparison between the concepts of two textual
descriptions of the requirements the following semantic relations are determined: the concepts are
equivalent, one concept is more or less general against another concept, two or more concepts belong
to the same subset or not.
      </p>
      <p>The paper [14] proposes an approach to the automatic building the ontology out of a set of user
stories. SpaCy library is used for processing texts in natural English language that allows to make
parsing sentences based on the dependency tree, searching named groups, extracting registered
entities, as well as permitting coreference. The problem of extracting knowledge in a natural language
for further reflection in the ontology of a subject area is reflected in [15].</p>
      <p>Thus, the conducted analysis of publications on the topic of the study allows us to conclude that
one of the promising areas in search for conflicts between the requirements are approaches involving
presentation of text requirements in the form of ontology instances. This can be done manually and
semi-automatically. Automatic construction of ontologies from the texts of requirements is currently
extremely relevant and still not well covered topic. The considered papers on the construction of
ontologies from the texts of requirements does not directly affect the problem of conflict
determination, but the ideas used in them can be used as a basis for extracting from the results of
automatic text processing of requirements of instances of ontology, structured for the task of finding
conflicts between requirements.</p>
    </sec>
    <sec id="sec-3">
      <title>3. The conversion of textual requirements into ontology instances</title>
      <p>In a sentence that expresses a requirement, regardless of the requirements recording technique used
(for example, requirements can be written in the IEEE 830 or user stories style), three main parts can
be distinguished: the subject, the action, and the object on which the action is directed. Each
requirement must be represented in the ontology as a set of instances of these three classes. The object
properties between pairs of instances for each class must be determined. For each requirement it is
necessary to create an instance of the class “Requirement”, which will be associated with
corresponding instances of the classes “subject” (“actor”), “action” and “object”. It is also necessary to
determine the possible relations between instances of classes. It should be noted that a class, the
elements of which grammatically correspond to the subjects of sentences with requirements, in an
ontology may be called differently, for example, “actor” or “functional user role”. In the example
below which illustrates the proposed approach the term “actor” will be used to designate the subject.</p>
      <p>First, in the Protégé 5.2 environment, the structure of classes was implemented and the object
properties between them were set. Figure 1 shows the object properties of ontology, their domains and
ranges.</p>
      <p>The object properties between instances of the same class “Actor” are grouped into the object
properties class “relationActor”. Also, the relations between the instances of the classes “Action” and
“Object” are grouped into object properties classes “relationAction” and “relationObject”.</p>
      <p>The object properties of the “sameAsActor”, “sameAsAction”, “sameAsObject” are set up between
instances of the corresponding classes if one name is used for the elements of two requirements or the
full name is in one and an abbreviation in the second. These properties are symmetric. For example,
instances of the class “Actor” with the values “senior manager” (“sr. manager”) and “senior manager”
will be connected by the object property “sameAsActor”. Also, each of them will be connected with
itself by this property. It is necessary for comparing two requirements without including duplicates of
the same instances of the class “Actor” in the ontology (see Figure 2).</p>
      <p>The object properties “isaActor”, “isaAction” and “isaObject” are used to setting hierarchical
relations. For example, the “senior manager” is a “manager”.</p>
      <p>The object properties “synonymsActor”, “synonymsAction” and “synonymsObject” are set if the
values of the corresponding requirements elements have a synonymous value. For example, the action
“to view” records is synonymous with the action “to list” records.</p>
      <p>The object properties “antonymsAction” and “antonymsObject” are set between instances of the
corresponding classes if they have the opposite meaning. For example, the object “my comment” and
the object “someone else's comment”.</p>
      <p>The object properties “partOfAction” and “partOfObject” are set between instances of the
respective classes if one is part of the other. For example, the “product” object is part of the object
“shopping basket”. Or, for example, the “delete” action is part of the “edit” action.</p>
      <p>In all other cases, it is considered that the corresponding elements of the requirements are bound by
the object properties “no-relationActor”, “no-relationAction” and “no-relationObject”. In other words,
the relation between them is not revealed.</p>
      <p>Figure 3 shows an example of requirement elements transformed into ontology instances.
Requirements:
User story 01: Как менеджер, Я могу удалить только добавленные мною описания товаров…</p>
      <p>As a manager, I can only delete the product descriptions I added ...</p>
      <p>User story 02: Как менеджер, Я могу редактировать описания всех товаров из каталога….</p>
      <p>As a manager, I can edit descriptions for all products from the catalog ....</p>
      <p>It should be noted that the conversion of textual requirements into ontology instances can be
carried out in semi-automatic mode using automatic text processing tools. The UDPipe with the
Russian language model can be used for processing of textual requirements in Russian. The UDPipe
parses the proposal and provides the results in the format CoNLL-U.</p>
      <p>The following fields are used to describe the annotation of text token (word, punctuation mark, or
special character) of a sentence in the CoNLL-U format:
1) ID: token index
2) FORM: word form or punctuation symbol,
3) LEMMA: lemma of word form,
4) UPOSTAG: universal part of speech tag,
5) XPOSTAG: language tag of a part of speech (if not, a dash is indicated),
6) FEATS: list of morphological features from the universal feature inventory or from a specific
language extension,
7) HEAD: number of the parent token or zero for the root token,
8) DEPREL: universal dependency relation to parent token (set to “root” if HEAD = 0),
9) DEPS: list of secondary dependencies
10) MISC: additional information.</p>
      <p>Figure 4 illustrates the presentation in the CoNLL-U format of the sentence “Как менеджер, Я
хочу удалять товар из каталога” (“As a manager, I want to remove product from the catalog”).</p>
      <p>A subject (actor), an action and an object can be automatically extracted from the results of a
sentence analysis, provided that the sentence with the requirement is formulated simply enough, that is
does not contain a lot of speech turns (see Figure 5).</p>
      <p>The setting of object properties between instances of requirements elements can also be performed
in semi-automatic mode. For example, using regular expressions, modal verbs and negatives can be
searched. The linguistic ontologies like WordNet can be used to search for synonyms. It should be said
that the search for antonyms with the help of linguistic ontologies for verbs can lead to undesirable
results, since, for example, the actions “add” and “delete” can be viewed as antonyms, however, the
verb phrases “can remove” and “cannot remove” will have an antonymous meaning .</p>
      <p>Production rules can be applied for processing the parser results of sentences. For example:
If X is an animated noun (UPOSTAG = NOUN and FEATS: Animacy = Anim), then this is a subject
(actor). Next, it is necessary to check whether the noun has a definitive in order to extract the whole
name of the subject. For example, if the actor “senior manager” is used instead of the actor “manager”
then the actor is described as an animated noun (ID = 3, UPOSTAG = NOUN, FEATS: Animacy =
Anim) and definitive “senior” (ID = 2, UPOSTAG = ADJ, DEPREL = amod, HEAD = 3). The
universal dependence relation “amod” indicates that the adjective “senior” serves as a definitive for
the noun “manager”. In the case of user story, the case of actor search is simplified due to a certain
position of the actor in the sentence, so the actor can be extracted even without the use of special tools.</p>
      <p>To extract the «action», it is necessary to analyze the tokens that are defined as verbs (UPOSTAG
= VERB). At the same time, attention should be paid to the morphological features of the token in
order to separate the verbs from the participles (FEATS: VerbForm = Part) and the adverbial
participles (FEATS: VerbForm = Conv). In the example in Figure 5, the words «“want” (UPOSTAG =
VERB, FEATS: VerbForm = Fin) and “delete” (UPOSTAG = VERB, FEATS: VerbForm = Inf) are
the verbs. The phrase “I want” in the user Story is predefined, therefore, we extract the word “delete”
as an action.</p>
      <p>The object will be a noun associated with the word-action. In this example, this is the word
“description” (ID = 11, UPOSTAG = NOUN, DEPREL = obj, HEAD = 6). The universal dependence
relation “obj” indicates that the noun “description” plays the role of a direct object for the verb
“delete”. Next, it is need to check whether the word “description” has attribute relations with other
words of a sentence in order to extract the whole object.</p>
      <p>Determining object properties between the instances of the requirements elements can also be
performed in semi-automatic mode. For example, modal verbs and negatives can be searched using
regular expressions. Besides, the linguistic ontologies like WordNet can be used to search for
synonyms. It should be noted that the search for antonyms of verbs with the help of linguistic
ontologies can lead to undesirable results. For example, the actions “add” and “delete” can be viewed
as antonyms, however, the verb phrases “can delete” and “cannot delete” will have an antonymous
meaning in terms of the problem to be solved.</p>
    </sec>
    <sec id="sec-4">
      <title>4. An approach to detection of conflicts between the requirements</title>
      <p>To determine the type of relationship between the requirements, a system of production rules of the
following form can be generated:</p>
      <sec id="sec-4-1">
        <title>IF ObjectProperty_between_class_instances (Actor1, Actor2) AND ObjectProperty_between_class_instances (Action1, Action2) AND ObjectProperty_between_class_instances (Object1, Object2) THEN Objectproperties_between_class_instances (Requirement1, Requirement2)</title>
        <p>For the ontology with the properties of objects presented in figure 1, 144 rules were formed with
the proposed approach. Below we give some examples of conflict detection rules:</p>
      </sec>
      <sec id="sec-4-2">
        <title>1. IF isaActor (Actor1, Actor2) AND antonymsAction (Action1, Action2)</title>
        <p>AND isaObject (Object1, Object2) THEN isConflict (Requirement1, Requirement2)</p>
      </sec>
      <sec id="sec-4-3">
        <title>2. IF isaActor (Actor1, Actor2) AND antonymsAction (Action1, Action2)</title>
        <p>AND partOfObject (Object1, Object2) THEN isConflict (Requirement1, Requirement2)</p>
      </sec>
      <sec id="sec-4-4">
        <title>3. IF isaActor (Actor1, Actor2) AND partOfAction (Action1, Action2)</title>
        <p>AND antonymsObject (Object1, Object2) THEN isConflict (Requirement1, Requirement2)
Depending on the used rule, one of the following four relations between the requirements are
detected: “conflicting requirements”, “requirements are duplicates”, “requirements are related” or
“connection is not detected”.</p>
        <p>To implement the proposed approach, an application with a graphical interface in Python was
developed. The application provides the following functions:</p>
        <p>• building a system of production rules to process relations between instances of
ontology classes and saving them as a model into XML file;
• editing the system of production rules previously saved as a model;
• application of the model rules to the requirements, presented in the form of class
instances of OWL ontology.</p>
        <p>To implement the first function, a constructor was created that helps the user to build a system of
rules for analyzing the relations between the requirements elements in a few «clicks». The constructor
allows you to select a file with OWL ontology for which the model was built. In the next steps of
working with the designer, you can define which ontology classes correspond to the elements «actor»,
«action» and «object», as well as select the properties of objects that will be used for analysis. This
allows the end user to create their own rules for processing the data they have. At the last step of
working with the application, the generated combinations of antecedents for the production rules are
issued. The user needs to define rule consequents by selecting the type of relation between the
requirements for each rule. Semi-automatic rule generation does not allow the user to skip any rule
because it covers all possible combinations for rule antecedents. Figure 6 shows the last step in
building the model.</p>
        <p>Further we consider two examples for rules obtained from the ontology described above. The first
example analyzes the requirements in the form of user stories; the second example analyzes the
requirements in the form of simple statements.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Example 1:</title>
      <p>IF sameAsActor(Actor1, Actor2)
AND partOfObject(Action1, Action2)</p>
      <sec id="sec-5-1">
        <title>AND isaObject(Object1, Object2) THEN isConflict(Requirement1, Requirement2)</title>
        <p>Substitution of data into the rule:
IF sameAsActor(«менеджер», «менеджер»)
AND partOfAction(«удалить», «редактировать»)
AND isaObject(«добавленное менеджером описание товара», «описание товара в каталоге»)
THEN isConflict(Requirement1, Requirement2)</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Example 2:</title>
      <p>IF sameAsActor(Actor1, Actor2)
AND antonymsAction(Action1, Action2)
AND sameAsObject(Object1, Object2)
THEN isConflict(Requirement1, Requirement2)</p>
      <sec id="sec-6-1">
        <title>Requirements:</title>
        <p>R1: Пользователь может удалять комментарии.</p>
        <p>The user can delete comments
R2: Пользователь может только просматривать комментарии.</p>
        <p>The user can only view comments.</p>
        <p>Substitution of data into the rule:
IF sameAsActor(«пользователь», «пользователь»)
AND antonymsAction(«может удалять», «может только просматривать»)
AND sameAsObject(«комментарии», «комментарии»)
THEN isConflict (Requirement1, Requirement2)</p>
        <p>In the first example, the Manager on the one hand can edit the descriptions of any goods (regardless
of whether he added them or not), and on the other hand he has a ban on editing the descriptions of
goods added not by him. In the second example, we see a contradiction in the actions of the user on
one object “comments”, which also requires clarification and correction, because it is not clear what
kind of comments we mean: only the comments created by the user himself, or all the comments to the
objects created by the user in the system. And at first glance, “understandable flaws” can lead to the
implementation of functionality that does not correspond to the original idea.</p>
        <p>In the course of requirements analysis, data in the form of classes’ instances and relationships
between them are imported into the database of facts in Prolog language, the generated production
rules are imported into Prolog Rules. Then the Prolog Inference Engine is used to detect conflicts
between the requirements. The results of the requirements analysis are saved into a text file. Python
library PySwip and SWI-Prolog 7.6.4 development environment were used to implement this
functionality.</p>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>5. Conclusion</title>
      <p>The paper proposed an approach to detection of conflicts in the set of requirements based on an
ontological model and a production rules system. To organize the processing of textual requirements,
it was proposed to extract from the textual requirements the subject (actor), the action and the object
on which the action is directed and save them in the form of ontology instances. It was also proposed
to establish relations between instances of classes belonging to a pair of requirements that are defined
in the ontology as object properties. The production rules system for determining the type of relation
between a pair of requirements is based on these object properties. The developed toolkit to be able to
facilitate the process of detection conflicting requirements since it performs the matching of
requirements in a semi-automatic mode, which contributes to the detection of seemingly minor
inaccuracies in the requirements formulation. It should be noted that the application of this approach
requires the recording of textual requirements in the form of simple sentences that can be partially
processed automatically, since it is quite labor-intensive to completely manually convert textual
requirements into ontology instances.</p>
    </sec>
    <sec id="sec-8">
      <title>Acknowledgments</title>
      <p>The reported study was funded by Russian Ministry of Education and Science, according to the
research project No. 2.2327.2017/4.6.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>SEBoK</surname>
          </string-name>
          <article-title>Guide tothe Systems Engineering Body of Knowledge (Version 1</article-title>
          .9.1)
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Murtazina</surname>
            <given-names>M S</given-names>
          </string-name>
          and
          <string-name>
            <surname>Avdeenko</surname>
            <given-names>T V</given-names>
          </string-name>
          <year>2018</year>
          <article-title>Ontology-Based Approach to the Requirements Engineering in Agile Environment Proc</article-title>
          .
          <source>of 14th International Scientific-Technical Conference on Actual Problems of Electronic Instrument Engineering</source>
          <volume>8546144</volume>
          <fpage>496</fpage>
          -
          <lpage>501</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Avdeenko</surname>
            <given-names>T</given-names>
          </string-name>
          and
          <string-name>
            <surname>Murtazina M 2018 Intelligent</surname>
          </string-name>
          <article-title>Support of Requirements Management in Agile Environment Studies in</article-title>
          <source>Computational Intelligence</source>
          <volume>803</volume>
          <fpage>97</fpage>
          -
          <lpage>108</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Murtazina</surname>
            <given-names>M Sh</given-names>
          </string-name>
          and
          <string-name>
            <surname>Avdeenko T V 2019</surname>
          </string-name>
          <article-title>An ontology-based approach to support for requirements traceability in agile development</article-title>
          <source>Procedia Computer Science</source>
          <volume>150</volume>
          <fpage>628</fpage>
          -
          <lpage>635</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Robinson</surname>
            <given-names>W N</given-names>
          </string-name>
          <source>and Volkov S 1998 Supporting the Negotiation Life Cycle Communications of the ACM</source>
          <volume>41</volume>
          (
          <issue>5</issue>
          )
          <fpage>95</fpage>
          -
          <lpage>102</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Robinson</surname>
            <given-names>W N</given-names>
          </string-name>
          and
          <string-name>
            <surname>Volkov S 1999 Requirement Conflict Restructuring GSU CIS Working Paper</surname>
          </string-name>
          99-5
          <fpage>1</fpage>
          -
          <lpage>47</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Heindl</surname>
            <given-names>M</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Moser</surname>
            <given-names>T</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Winkler</surname>
            <given-names>D</given-names>
          </string-name>
          and
          <article-title>Biffl S 2011 Automating the Detection of Complex Semantic Conflicts between Software Requirements: An empirical study on requirements conflict analysis with semantic technology</article-title>
          <source>Proc. Int. Conf. on Software Engineering and Knowledge</source>
          Engineering (Miami Beach: USA Knowledge Systems Institute Graduate School)
          <fpage>729</fpage>
          -
          <lpage>735</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Moser</surname>
            <given-names>T</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Winkler</surname>
            <given-names>D</given-names>
          </string-name>
          ,
          <source>HeindlM and Biffl S 2011 Requirements Management with Semantic Technology: An Empirical Study on Automated Requirements Categorization and Conflict Analysis Proc. Int. Conf. on Advanced Information Systems Engineering</source>
          <volume>3</volume>
          -17
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>Sardinha</surname>
            <given-names>A</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chitchyan</surname>
            <given-names>R</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Araújo</surname>
            <given-names>J</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Moreira</surname>
            <given-names>A</given-names>
          </string-name>
          and
          <string-name>
            <surname>Rashid</surname>
            <given-names>A 2013</given-names>
          </string-name>
          <article-title>Conflict identification with EA-Analyzer Aspect-oriented requirements engineering 209-224</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Chitchyan</surname>
            <given-names>R</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rashid</surname>
            <given-names>A</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rayson</surname>
            <given-names>P</given-names>
          </string-name>
          and
          <string-name>
            <surname>Waters</surname>
            <given-names>R 2007</given-names>
          </string-name>
          <article-title>Semantics-Based Composition for Aspect-Oriented Requirements Engineering Proc</article-title>
          .
          <source>Int. Conf. on Aspect-oriented software development 36-48</source>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Liu C-L and Huang H-H 2015 Ontology-Based Requirement</surname>
          </string-name>
          Conflicts Analysis in
          <source>Class Diagrams Proc.of the World Congress on Engineering</source>
          <volume>1</volume>
          <fpage>471</fpage>
          -
          <lpage>476</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Egyed</surname>
            <given-names>A</given-names>
          </string-name>
          and
          <string-name>
            <surname>Grunbacher P 2004 Identifying Requirements</surname>
          </string-name>
          <article-title>Conflicts and Cooperation: How Quality Attributes</article-title>
          and
          <source>Automated Traceability Can Help IEEE Software</source>
          <volume>21</volume>
          (
          <issue>6</issue>
          )
          <fpage>50</fpage>
          -
          <lpage>58</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Assawamekin</surname>
            <given-names>N</given-names>
          </string-name>
          ,
          <article-title>SunetnantaT and Pluempitiwiriyawej C 2010 Ontology-based [14] multiperspective requirements traceability framework Knowledge</article-title>
          and
          <source>Information Systems</source>
          <volume>25</volume>
          (
          <issue>3</issue>
          )
          <fpage>493</fpage>
          -522
          <string-name>
            <surname>Robeer</surname>
            <given-names>M</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lucassen</surname>
            <given-names>G</given-names>
          </string-name>
          ,
          <string-name>
            <surname>van der Werf J M E M</surname>
            , Dalpiaz
            <given-names>F</given-names>
          </string-name>
          <source>and Brinkkemper S 2016 Automated Extraction of Conceptual Models from User Stories via NLP Proc. Int. Requirements Engineering Conf</source>
          .
          <fpage>196</fpage>
          -205
          <string-name>
            <surname>Mikhaylov D</surname>
            <given-names>V</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kozlov A P and Emelyanov G M 2016</surname>
          </string-name>
          <article-title>Extraction the knowledge and relevant linguistic means with efficiency estimation for formation of subject-oriented text sets</article-title>
          <source>Computer Optics</source>
          <volume>40</volume>
          (
          <issue>4</issue>
          )
          <fpage>572</fpage>
          -
          <lpage>582</lpage>
          DOI: 10.18287/
          <fpage>2412</fpage>
          -6179-2016-40-4-
          <fpage>572</fpage>
          -582
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>