<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article  PUBLIC "-//NLM//DTD Journal Publishing DTD v3.0 20080202//EN" "http://dtd.nlm.nih.gov/publishing/3.0/journalpublishing3.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="3.0" xml:lang="en" article-type="research article"><front><journal-meta><journal-id journal-id-type="publisher-id">JSEA</journal-id><journal-title-group><journal-title>Journal of Software Engineering and Applications</journal-title></journal-title-group><issn pub-type="epub">1945-3116</issn><publisher><publisher-name>Scientific Research Publishing</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.4236/jsea.2023.162003</article-id><article-id pub-id-type="publisher-id">JSEA-123334</article-id><article-categories><subj-group subj-group-type="heading"><subject>Articles</subject></subj-group><subj-group subj-group-type="Discipline-v2"><subject>Computer Science&amp;Communications</subject></subj-group></article-categories><title-group><article-title>
 
 
  An Approach towards Goal-Oriented Requirements Ontology: Consistency and Completeness Based Requirements Analysis
 
</article-title></title-group><contrib-group><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Mohammad</surname><given-names>Mustafa Taye</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Said</surname><given-names>Ghoul</given-names></name><xref ref-type="aff" rid="aff2"><sup>2</sup></xref></contrib></contrib-group><aff id="aff2"><addr-line>Research Laboratory on Bio-Inspired Software Engineering, Philadelphia University, Amman, Jordan</addr-line></aff><aff id="aff1"><addr-line>Software Engineering Department, Philadelphia University, Amman, Jordan</addr-line></aff><pub-date pub-type="epub"><day>21</day><month>02</month><year>2023</year></pub-date><volume>16</volume><issue>02</issue><fpage>31</fpage><lpage>49</lpage><history><date date-type="received"><day>23,</day>	<month>January</month>	<year>2023</year></date><date date-type="rev-recd"><day>25,</day>	<month>February</month>	<year>2023</year>	</date><date date-type="accepted"><day>28,</day>	<month>February</month>	<year>2023</year></date></history><permissions><copyright-statement>&#169; Copyright  2014 by authors and Scientific Research Publishing Inc. </copyright-statement><copyright-year>2014</copyright-year><license><license-p>This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/</license-p></license></permissions><abstract><p>
 
 
  The paper presents a new approach to managing software requirement elicitation techniques with a high level of analyses based on domain ontology techniques, where we established a mapping between user scenario, structured requirement, and domain ontology techniques to improve many attributes such as requirement consistency, completeness and eliminating duplicate requirements to reduce risk of overrun time and budgets. One of the main targets of requirement engineering is to develop a requirement document with high quality. So, we proposed a user interface to collect all vital information about the project directly from the regular user and requirement engineering; After that, the proposal will generate an ontology based on semantic relations and rules. Requirements Engineering tries to keep requirements throughout a project’s life cycle consistent necessities clear, and up to date. This prototype allows mapping requirement scenarios into ontology elements for semantically interrupted. The general points of our prototype are to guarantee the identification requirements and improved nature of the Software Requirements Specification (SRS) by solving incomplete and conflicting information in the requirements specification.
 
</p></abstract><kwd-group><kwd>Requirements Engineering</kwd><kwd> Requirements Elicitation</kwd><kwd> Domain Ontology</kwd><kwd> Ontology</kwd></kwd-group></article-meta></front><body><sec id="s1"><title>1. Introduction</title><p>Requirements Engineering [<xref ref-type="bibr" rid="scirp.123334-ref1">1</xref>] is a document used as a contract between the customer and developer to identify and specify the requirements. A good document should have attributes such as unambiguous, completeness, consistency, and verifiable [<xref ref-type="bibr" rid="scirp.123334-ref2">2</xref>] . Therefore, lacking or inaccurate requirements cause the entire system’s development to be incomplete or erroneous at every stage. On the other hand, it is challenging to create such a document the first time and when making any change is very hard to handle the modification. Therefore, we proposed this prototype.</p><p>Several demands, aspirations, and requirements are frequently at odds with one another while developing software systems because of various stakeholder perspectives. Elicitation errors are often essential factors in systems failures with very high costs, either in the total loss or correcting errors [<xref ref-type="bibr" rid="scirp.123334-ref3">3</xref>] .</p><p>The main process of Requirements Engineering is shown in the following <xref ref-type="fig" rid="fig1">Figure 1</xref>; the process starts with requirement elicitations which concern how to collect needs and goals from stakeholders. Indeed, the main idea of requirements elicitation techniques is determining the problems, opportunities, and all potential needs of the clients; because of this, a software engineer can develop systems that resolve those issues and cover those opportunities and/or additionally address clients’ needs [<xref ref-type="bibr" rid="scirp.123334-ref4">4</xref>] . The next process is to analyze this information to make sure about it, then specify them in many different ways to make more knowledge for the developing team. The last process is to apply the verification and validation techniques to check for any inconsistency or completeness [<xref ref-type="bibr" rid="scirp.123334-ref5">5</xref>] .</p><p>All projects are dependent on requirement elicitation to achieve their goals. The process of requirement elicitation concentrates on communication among stakeholders and requirements engineers. Moreover, it is used to understand a problem and its application domain to improve the quality of extended requirements [<xref ref-type="bibr" rid="scirp.123334-ref6">6</xref>] .</p><p>Most successful or failed software projects are based on Requirements Engineering. Also, different requirements from versus stakeholders lead to incomplete and ambiguous requirements.</p><p>Modern IT projects are complex because of the high number and complexity of requirements, as well as because of the different backgrounds and terminologies of stakeholders. Consequently, suitable requirements management tools play a major role in the discourse of these challenges [<xref ref-type="bibr" rid="scirp.123334-ref7">7</xref>] .</p><p>The software requirements specification is the yield from the requirements elicitation activity, which is written in a client requirements document.</p><p>The main activities of requirements engineers using requirement elicitation are:</p><p>&#183; Knowledge and understanding of the domain and area where the system is applied.</p><p>&#183; Understanding the specific customer problem.</p><p>&#183; Knowledge environment and Interaction of system with others.</p><p>&#183; Detailed examination of client needs.</p><p>&#183; Define the constraints of the system that are applied.</p><p>There are essentially two types of Elicitation Techniques [<xref ref-type="bibr" rid="scirp.123334-ref8">8</xref>] .</p><p>Direct approach: this strategy is used to get requirements from clients who can interact directly with the domain expert. It will be used to improve the understanding of the problems through Interviews, case studies, and Prototypes [<xref ref-type="bibr" rid="scirp.123334-ref9">9</xref>] . Analyses are examples.</p><p>Indirect approach: this strategy helps to get information that cannot be easily accessed or obtained from the direct methods. Questioners and Documents analyses are examples of this approach [<xref ref-type="bibr" rid="scirp.123334-ref8">8</xref>] .</p><p>The main point is not just to collect requirements; it is normally understood that requirements. So, requirement elicitation is considered a complex process involving several activities with various available techniques, approaches, and tools for performing them. In fact, the best idea for using requirements elicitation is to apply a variety of techniques during different stages in the software development life cycle.</p><p>In general, incomplete and inconsistent requirements could appear from the gaining and specification of goals and requirements from different stakeholders and sources. Therefore, repairing inconsistent and incomplete requirements is vital to successfully model requirements specifications. In this research, we used first order logic to deal with problems [<xref ref-type="bibr" rid="scirp.123334-ref10">10</xref>] . Moreover, the backbone of this work is the Ontologies that provide conceptual models and the expressivity to capture requirements sufficiently; moreover, checking and reasoning rules are combined to measure the validity and coverage of the evolving requirements model [<xref ref-type="bibr" rid="scirp.123334-ref11">11</xref>] .</p><p>Based on the previous point, we considered the main challenge for requirements engineering is dealing with inconsistencies and incompleteness in the requirements specification phase.</p><p>Obtaining the needs from the relevant parties and additional sources, knowing the application domain, it is important to thoroughly explore and examine the situation or “real world” in which the application will be used before beginning the cycle of requirements elicitation. It is crucial to define the system’s scope and thoroughly investigate the demands and preferences of all stakeholders during this activity [<xref ref-type="bibr" rid="scirp.123334-ref11">11</xref>] .</p><p>Finding the requirements’ sources makes it possible for requirements to be dispersed across several sources and to exist in various combinations [<xref ref-type="bibr" rid="scirp.123334-ref12">12</xref>] . Overall, product development opens up several possible hotspots for requirements that may be identified.</p><p>To eloquently clarify information regarding the challenges, problems, and customer demands, clients and topic experts are used. The depicted existing systems and processes, particularly when a current or legacy system has to be replaced, are another source for eliciting requirements.</p><p>Manuals, organizational structures, and reports regarding the existing system and business processes, as well as the requirements for the new framework and their justification and relevance, may all provide useful information about the association and environment [<xref ref-type="bibr" rid="scirp.123334-ref13">13</xref>] .</p><p>Analyzing the stakeholders: Stakeholders are everyone who is interested in the system or who will be impacted by its development and deployment. They must thus be questioned as part of the requirements elicitation process. Stakeholders often comprise groups and individuals who may be internal and external to the company [<xref ref-type="bibr" rid="scirp.123334-ref10">10</xref>] . In general, the project sponsor (customer) is the most apparent stakeholder in the system. In some cases, the end users could be the most important. On the other hand, some systems could consider the system operations, customers, and partners, as stakeholders if they are affected [<xref ref-type="bibr" rid="scirp.123334-ref6">6</xref>] .</p><p>Selecting the techniques, approaches, and tools to use—in general, selecting the elicitation technique depends on what the analyst knows, the analyst’s favorite, a specific methodology that is being followed by the system development, and the decision of strategy administered exclusively by the instinct of the examiner to be viable in the current context.</p><p>In reality, conceptual domain modeling using ontologies will lessen the consequences of confusing and insufficient requirements procedures. “An explicit statement of a shared idea” describes the ontologies [<xref ref-type="bibr" rid="scirp.123334-ref14">14</xref>] [<xref ref-type="bibr" rid="scirp.123334-ref15">15</xref>] . Ontologies include machine-understandable notions and restrictions explicitly well-defined, typically understood, and well-covered. It might be used to represent, categories, and debate the required papers [<xref ref-type="bibr" rid="scirp.123334-ref15">15</xref>] . Ontology is a formal definition of items and the attributes, connections, limitations, and guidelines that control those connections.</p><p>In fact, any problem or inconsistency in requirements will lead to faulty software designs and implementations. Thus, one significant problem requirements engineers have to cope with is to improve Requirements Engineering, which will contribute to building better-quality software; this could lead moreover to reducing the risk of overrun time budgets and eliminating the risk of project failures [<xref ref-type="bibr" rid="scirp.123334-ref16">16</xref>] .</p><p>We proposed a requirements analysis method by using domain ontology. To specify the needs, goals, and tasks, this prototype starts with an elicitation page used by different stockholders and developing teams to collect all goals and needs about specific applications. Then the system will create ontology based on their input data, which will be examined manually by engineering and the reasoning system to check any inconsistency between functions.</p><p>In our proposal, we collected all information and knowledge from different users, then stored it in spirit ontology, then applied some matching and merging techniques on all these ontologies to create one global ontology about an application from resulted ontology we could Crete some UML diagram (use case) and requirements [<xref ref-type="bibr" rid="scirp.123334-ref1">1</xref>] .</p><p>Accordingly, the Requirements Ontology empowers the documentation of organized, reusable, unambiguous, traceable, complete, and reliable requirements as requested by the IEEE specification for Software Requirement Specifications (SRS) [<xref ref-type="bibr" rid="scirp.123334-ref17">17</xref>] .</p><p>The remainder of this paper is organized as follows: In Section 2, an overview of related work is given as literature review. The approach of our proposal is explained in Section 3. Section 4 gives analytical information. In Section 5, the evaluation analysis is explained, and we give the case study. In the last sections, we gave an overview of the work that will be done in the future and provided a conclusion.</p></sec><sec id="s2"><title>2. Literature Review</title><p>Recently, many researchers have introduced different approaches for dealings and provided a new requirement elicitation based on ontologies to understand desired functions and the method for expressing stakeholders’ and users’ problems. The primary objective is to find a way toward looking for, learning, uncovering, procuring, and explaining client necessities to any computer-based system by communicating these needs to the system developers.</p><p>Surveys [<xref ref-type="bibr" rid="scirp.123334-ref18">18</xref>] and [<xref ref-type="bibr" rid="scirp.123334-ref19">19</xref>] have shown many studies demonstrating the effectiveness of using the ontology domain in supporting the requirements engineering process.</p><p>[<xref ref-type="bibr" rid="scirp.123334-ref20">20</xref>] has proposed a process for developing ontologies as a subprocess of the requirements engineering process.</p><p>While [<xref ref-type="bibr" rid="scirp.123334-ref21">21</xref>] used the domain as an infrastructure for specifying software requirements.</p><p>[<xref ref-type="bibr" rid="scirp.123334-ref22">22</xref>] proposed an approach to automating the validation process of knowledge about the requirements.</p><p>In [<xref ref-type="bibr" rid="scirp.123334-ref23">23</xref>] , the ontological methodology is applied to improve the necessities of the designing cycle in the Agile process. The ontology is intended to work with user story templates. Ontology empowers the recognition of interchangeable ideas, hyperonymic and hyponymic relations between the concepts after it empowers the requirements engineering process to describe user stories that must be achieved for user roles of applications that include other roles.</p><p>In [<xref ref-type="bibr" rid="scirp.123334-ref24">24</xref>] , two kinds of ontologies are recognized, which can be utilized to describe the product area being created: the application domain ontology and the application domain feature model ontology.</p><p>In [<xref ref-type="bibr" rid="scirp.123334-ref25">25</xref>] , the requirements are considered a specific subset of a lot of information about the area. At the same time, the domain ontology is utilized as a “background source” while extricating requirements for a product item from characteristic language texts.</p><p>In [<xref ref-type="bibr" rid="scirp.123334-ref26">26</xref>] , a way to deal with the automatic construction of an ontology from many stockholder stories is proposed. For text handling in the regular English language, the spaCy library is utilized, which considers parsing sentences dependent on a reliance tree, looking for named gatherings.</p><p>In [<xref ref-type="bibr" rid="scirp.123334-ref27">27</xref>] , a way to deal with building up a recommender framework that bolsters the development of the Agile requirements is introduced. It is proposed to utilize the accompanying four ontologies: “Environmental Context Ontology”, “Problem Domain Ontology”, “Requirements Ontology,” and “Agile Requirements Ontology”.</p><p>Issues of requirements traceability are tended to in the [<xref ref-type="bibr" rid="scirp.123334-ref28">28</xref>] given to the improvement of casing cosmology which empowers to make a predictable model of necessities types for a particular software development project.</p><p>The significance of the created way to deal with extraction, computerization, and analysis of the requirements in natural language is dictated by the inconstancy of the necessities and the requirement for a speedy correlation of the requirements texts.</p><p>Thus, to summarize the above information about using ontologies in the field of requirements engineering:</p><p>1) If you are going to develop ontologies to represent knowledge about the requirements engineering process, you should consider requirements types and attributes of their quality.</p><p>2) If you are going to develop ontologies to represent knowledge about the application domain, you should take into account describing the components domain of the system, concepts, relationships, and actions.</p><p>3) if you are going to develop requirements ontologies, you should consider identifying conflicts and duplicates between the requirements.</p><p>Current requirements management tools ordinarily work with a typical requirements database, which all stakeholders can access to retrieve information on requirements content. Moreover, these kinds of tools could help all stakeholders to keep the overview of large amounts of requirements by supporting the following:</p><p>a) Requirements categorize the Requirements and cluster them into user-defined subsets.</p><p>b) Analysis and solve the conflict between Requirements (consistency checking).</p><p>c) Trace the Requirements and find the dependencies between them.</p><p>Requirements management suffers from many limitations, such as: Incompleteness, consistency, and conflict identification and tracking, especially with a huge number of requirements; therefore, the use of semantic technologies looks hopeful for addressing these limitations [<xref ref-type="bibr" rid="scirp.123334-ref29">29</xref>] .</p><p>Ontologies deliver the means for describing the concepts of a domain and the relationships between these concepts in a way that could allow for automated reasoning to support categorization, conflict, and tracing of requirements.</p><p>We propose a prototype to deal with requirements engineering managing and elicitation designing dependent on a combination of the OWL ontology.</p></sec><sec id="s3"><title>3. The Proposal Approach (Method)</title><p>In this paper, we presented the prototype of a semantic guidance system that supports normal users and requirements engineers to easily capture requirements. We built our prototype based on the important part information needed for developing modern IT projects. We collect all helpful information to write, analyze and improve requirements using domain ontology.</p><p>We built our prototype based on the important part information needed for developing modern IT projects, that allows users to specify the needs, goals, and tasks of an application. The system will make an ontology based on the data they give it. This ontology will be reviewed by engineering and the reasoning system to make sure there are no incompatibilities between features. In our approach, we compiled user data and insights into a single ontology, where they could be matched and fused using various methods.</p><p>Our prototype started with the above <xref ref-type="fig" rid="fig2">Figure 2</xref> user interface to collect the main information about a specific project from building a requirement ontology.</p><p>The following <xref ref-type="table" rid="table1">Table 1</xref> shows the main concepts of our proposal.</p><p>Natural language descriptions of topics of interest are captured by ontologies. The description section of an ontology includes the concepts that make up the ontology, together with their respective definitions and the connections between them. A “conceptualization” describes this kind of mental representation. In this context, ontology stands in for domain knowledge (domain ontology), and needs may be thought of as a subset of it.</p><p>Reasoning component: a logical theory that limits the desired model and includes: 1) integrity rules of the domain model expressing the domain knowledge; 2) derivation rules and constraint rules of the problem model. While taxonomies have been widely used for modelling, ontologies provide inferential capabilities via reasoning.</p><table-wrap id="table1" ><label><xref ref-type="table" rid="table1">Table 1</xref></label><caption><title> Main concepts of our proposal</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Concept</th><th align="center" valign="middle" >Definition</th></tr></thead><tr><td align="center" valign="middle" >Domain Concept</td><td align="center" valign="middle" >Domain Concept is a kind of thesaurus that is used as pointers to concepts; we could unify different concepts or terms for the same terms by using synonym relationships among them.</td></tr><tr><td align="center" valign="middle" >Stakeholder</td><td align="center" valign="middle" >Groups of stakeholders, they specified what is expected from a system</td></tr><tr><td align="center" valign="middle" >Goal</td><td align="center" valign="middle" >Goals are indicative statements to identify and correlate requirements to be achieved by the system under development.</td></tr><tr><td align="center" valign="middle" >Requirement</td><td align="center" valign="middle" >(Functional Requirement): is an outcome of behavior that shall be provided by a function of a system, A non-functional requirement (also a quality requirement)</td></tr><tr><td align="center" valign="middle" >Function Requirements</td><td align="center" valign="middle" >Define what a product must do. Requirements artifacts comprise all concepts related to requirements knowledge</td></tr><tr><td align="center" valign="middle" >Non-Functional Requirements</td><td align="center" valign="middle" >Describe the quality attributes of a system.</td></tr><tr><td align="center" valign="middle" >Actor</td><td align="center" valign="middle" >The real users who interact with the system</td></tr><tr><td align="center" valign="middle" >Activity</td><td align="center" valign="middle" >High Level Function -&gt; Sub-function -&gt; Process -&gt; Activity</td></tr><tr><td align="center" valign="middle" >Constraint</td><td align="center" valign="middle" >Constraints of the functionality.</td></tr><tr><td align="center" valign="middle" >Scenario</td><td align="center" valign="middle" >Scenario A textual description of a sequence of user actions that leads to the desired result.</td></tr></tbody></table></table-wrap></sec><sec id="s4"><title>4. Analysis</title><p>All of the requirement artifacts, which comprise all concepts related to requirements knowledge (stakeholder, concepts, relations, attributes, data, etc.), must be captured appropriately. We will specify requirements artifacts by using the ontology elements (e.g., classes, properties, instances of classes, and relations between instances). To specify the requirements, we use an Ontology as a metamodel, as Requirements Ontology.</p><p>In order to use an ontology, we have borrowed the idea from [<xref ref-type="bibr" rid="scirp.123334-ref30">30</xref>] as the following <xref ref-type="fig" rid="fig3">Figure 3</xref>. The potential uses of ontologies in RE embody the illustration of:</p><p>Requirements Ontology: The Requirements model imposes and sanctionative a selected paradigmatic manner of structuring needs.</p><p>Requirements Specification Document Ontology: Acquisition structures for domain information; In RE, completely different approaches and area units are used as intermediate steps for getting needs. The employment of ontologies for describing the structure of needs specification documents cut back the lean needs’ specifications.</p><p>Application Domain Ontology: The information and fact of the applying domain Application Domain metaphysics. This metaphysics represents the application domain information, object properties and classes characteristic, and business information needed for building code applications in a very specific domain concept [<xref ref-type="bibr" rid="scirp.123334-ref31">31</xref>] .</p><p>Our approach is semantic guidance which uses of ontologies elements to build on to define requirements [<xref ref-type="bibr" rid="scirp.123334-ref32">32</xref>] .</p><p>For the design phase of software development, as well as for evaluating and reusing elicited needs, having a well-characterized requirements specification is crucial. Both the format of the document and its contents make up a specification. The way a document is laid out greatly impacts how its contents are understood. To be considered a successful software product, reuse must be a major component. It depends on the way in which needs are articulated, recorded, and organized.</p><p>However, a number of obstacles stand in the way of the reuse. Requirements specification papers, the recommendations conclude, may benefit especially from ontologies, especially when the content of such documents expands in a disorganized fashion. One solution to this problem is to structure the knowledge by adding semantics to the documents via metadata enrichment and the discovery of related, valuable material; this way, the semantics are written in a machine-understandable manner as shown in <xref ref-type="fig" rid="fig4">Figure 4</xref> and <xref ref-type="fig" rid="fig5">Figure 5</xref>.</p><p>In order to define requirements, we used the boilerplate, which states a textual requirement template. In fact, the term boilerplate was first used by Hull, Jackson, and Dick [<xref ref-type="bibr" rid="scirp.123334-ref33">33</xref>] . A boilerplate involves a classification of attributes and fixed syntax elements.</p><p>Indeed, many formulas are proposed for dealing with boilerplate, but we have chosen the following two structures, which we think are very suitable for most projects. Also, keeping the number of required boilerplates is relatively low and has high flexibility, as shown in <xref ref-type="table" rid="table2">Table 2</xref>. Moreover, we could use attribute values to state the entities in the ontology domain.</p><p>For example</p><p>1) The &lt; system &gt; shall be able to &lt; action &gt; at a minimum rate of &lt; number&gt; time per</p><p>2) If &lt; condition&gt; the &lt; system &gt; shall &lt; action&gt; with</p><table-wrap id="table2" ><label><xref ref-type="table" rid="table2">Table 2</xref></label><caption><title> Boilerplate attributes</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >attribute</th><th align="center" valign="middle" >Description</th></tr></thead><tr><td align="center" valign="middle" >Action</td><td align="center" valign="middle" >The behavior of a system to be fulfilled</td></tr><tr><td align="center" valign="middle" >Number</td><td align="center" valign="middle" >A quantity ex. 3</td></tr><tr><td align="center" valign="middle" >Unit</td><td align="center" valign="middle" >Unit of measurement, ex. second</td></tr><tr><td align="center" valign="middle" >Condition</td><td align="center" valign="middle" >An event or condition that happened during system operation</td></tr><tr><td align="center" valign="middle" >System</td><td align="center" valign="middle" >The system or any part of it</td></tr></tbody></table></table-wrap><p>Requirement artifacts contain all concepts connected to requirements knowledge (e.g., goal, obstacle, stakeholder, use-case, test-case). The object properties reproduce the relations between instances of the ontology classes.</p><p>Based on the ontology, the mapping rule is followed to produce a domain model.</p><p>&#183; The classes in the ontology are transferred to the classes in the domain model.</p><p>&#183; Entities are associated with instances.</p><p>&#183; Properties in the ontology are linked to their corresponding counterparts in the domain model.</p><p>&#183; Inheritance is mapped to the corresponding synonym for a connection between classes.</p><p>Domain Concept is a kind of thesaurus that is used as pointers to concepts; we could unify different concepts or terms for the same terms by using synonym relationships among them, as shown in <xref ref-type="table" rid="table3">Table 3</xref>.</p><p>In order to support the process of Requirements Engineering semantically, we established requirements engineering ontology <xref ref-type="fig" rid="fig6">Figure 6</xref> below.</p><table-wrap id="table3" ><label><xref ref-type="table" rid="table3">Table 3</xref></label><caption><title> The Ontology and their domains and ranges</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Domain</th><th align="center" valign="middle" >Object property</th><th align="center" valign="middle" >Range</th></tr></thead><tr><td align="center" valign="middle" >ActivityOrTask</td><td align="center" valign="middle" >isCondition</td><td align="center" valign="middle" >Condition</td></tr><tr><td align="center" valign="middle" >ActivityOrTask</td><td align="center" valign="middle" >isPostCondition</td><td align="center" valign="middle" >Condition</td></tr><tr><td align="center" valign="middle" >ActivityOrTask</td><td align="center" valign="middle" >isPreCondition</td><td align="center" valign="middle" >Condition</td></tr><tr><td align="center" valign="middle" >Stakeholder</td><td align="center" valign="middle" >isDefinedby</td><td align="center" valign="middle" >Goal</td></tr><tr><td align="center" valign="middle" >Condition</td><td align="center" valign="middle" >isDerivedFrom</td><td align="center" valign="middle" >Event</td></tr><tr><td align="center" valign="middle" >informationEntity</td><td align="center" valign="middle" >isInputFrom</td><td align="center" valign="middle" >Event</td></tr><tr><td align="center" valign="middle" >Actor</td><td align="center" valign="middle" >isProvidedBy</td><td align="center" valign="middle" >informationEntity</td></tr><tr><td align="center" valign="middle" >FunctionalRequirement</td><td align="center" valign="middle" >isRequieredBy</td><td align="center" valign="middle" >ActivityOrTask</td></tr><tr><td align="center" valign="middle" >ActivityOrTask</td><td align="center" valign="middle" >isResourceFor</td><td align="center" valign="middle" >Application</td></tr><tr><td align="center" valign="middle" >Actor</td><td align="center" valign="middle" >IsResponsibleFor</td><td align="center" valign="middle" >ActivityOrTask</td></tr></tbody></table></table-wrap><p>Sorts of requirements, their descriptions, and the test phrases that correspond to them. Although most of the needs in the analysis fell into a single category, it is important to note that a requirement might fall into many categories and be linked to multiple test expressions.</p><p>Class-related (Type of requirement)</p><p>&#183; Equivalence: Similarity in function between two classes. X Equivalent To Y</p><p>&#183; Subsumption: A (super)class’s definition is defined by the relationship it has with its subclasses. The two categories are ineligible for inclusion in this subsumption. X SubClassOf Y.</p><p>Property-related</p><p>&#183; Property between two concepts: Clarification of a relational quality between ideas P Domain A, P Range B</p><p>&#183; Symmetry: a property must have an equal and opposite counterpart, or be symmetric.</p><p>&#183; Intersection: Cardinality-based definition of a set of concepts that overlap A SubClassOf P min/max/exactly</p><p>Individual related</p><p>&#183; Definition of an individual: Instance definition for a certain type s type S</p></sec><sec id="s5"><title>5. Discussion (Evaluation and Case Study)</title><p>In order to evaluate our approach, we applied a smart house system which is controlling the house which gives the ability to control the house without making a huge amount of effort.</p><sec id="s5_1"><title>5.1. System Requirements</title><p>- Hardware Requirement:</p><p>&#183; lights, motors, smoke sensors, motion sensors, cameras, power resources, wired cables, Bluetooth, logic board, capacitors, and microcontroller.</p><p>- Functional Requirement:</p><p>&#183; The System allows the owner to control the air system, Doors, and lights system as shown in <xref ref-type="fig" rid="fig7">Figure 7</xref>.</p><p>&#183; The System will notify the owner when the bill rings.</p><p>&#183; The system will give the user some choice if he would like to receive a guest or not.</p><p>&#183; The system will allow users to set a specific time to turn on any device according to time.</p><p>&#183; The System will send Turn Alerts When Doing Something Strange Like; Fires/Theft problems</p><p>- Non-Functional Requirements:</p><p>The System should be:</p><p>&#183; High Performance when Home Alert (Must Be detected within 1 second).</p><p>&#183; The system must work fine with multiple users at home at any time (availability).</p></sec><sec id="s5_2"><title>5.2. Requirements Specification Document Ontology</title><p>Acquisition structures for domain information, the employment of ontologies for describing the structure of needs specification documents cut back the lean needs’ specifications see <xref ref-type="fig" rid="fig8">Figure 8</xref>.</p></sec><sec id="s5_3"><title>5.3. Matching and Merging</title><p>In order to get the Requirements Ontology, we need to connect the concepts of different documents to gather. So, there are two options: matching and merging [<xref ref-type="bibr" rid="scirp.123334-ref14">14</xref>] .</p><p>Ontology Matching is the process of finding semantic equivalence between concepts from different ontologies [<xref ref-type="bibr" rid="scirp.123334-ref34">34</xref>] . The merging step combines two concepts of semantic equivalence from different ontologies and groups them into one ontology [<xref ref-type="bibr" rid="scirp.123334-ref35">35</xref>] .</p></sec><sec id="s5_4"><title>5.4. Approach Steps</title><p>Step 1: Goal Identification</p><p>The user can control the home remotely</p><p>Task 1.1: Identify Goal Task</p><p>The user can take control of rooms like; lights turn on or off, opening doors and cameras, and some of the sensors responsible for motion, smoke, and fires to make a secure home.</p><p>Task 2.1: Assign Author to Goal</p><p>The application gives users three basic functions: “Doors, Lights, and Camera”. Also, the home has a motion sensor to detect an illegal access to a home by</p><p>covering a wide area depending on the home area. The same with the fire sensor; it works if it’s got smoking in a home and then releases alerts.</p><p>Task 1.3: Refine Goal</p><p>Check the inputs manually and see if they are right.</p><p>Step 2: Requirements Identification</p><p>Task 1.2: Identify functional requirements with non -functional requirements</p><p>&#183; Open/Close Doors.</p><p>&#183; Turn On/Off Lights.</p><p>&#183; Turn Alerts When Doing Something Strange Like Fires/Theft problems.</p><p>Step 3: Extra information Completion</p><p>The system should be smart enough to react to all user input and requests. It should generate other types of security sides like fries and home theft, which notify when doors open and show who is in the door by a simple interface application.</p><p>Step 4: Checking</p><p>Check both answers, then apply the merging approach in order to get one ontology and SRS (Export the SRS).</p><p>This evaluation has shown that the method can deal with a set of requirements from a real-world problem and classify where these requirements are inconsistent or incomplete.</p><p>Far more difficult than locating missing data is determining when and where there is inconsistency and offering advice for how to fix it. We need to take into account several factors for a consistency rule, in contrast to the completeness validation.</p><p>In this light, it is crucial that we check for continuity in the setup of the requirements. The requirements engineer selects a subset of needs, and then we construct the requirements configuration by including all of those needs.</p><p>As part of this prototype, we include the right features to prompt the requirements engineer to choose the most important criteria and save them as a set of unique objects.</p><p>There are three distinct dialects of OWL, each tailored to a different group of developers and end users: OWL Lite, OWL DL, and OWL Full. [<xref ref-type="bibr" rid="scirp.123334-ref36">36</xref>] . However, the Requirements Ontology has been labelled as OWL DL, meaning it guarantees the computational completeness and decidability (all calculations will finish in a limited time) of reasoning systems. Many different reasoners are now available, each with its own set of advantages and disadvantages in areas like reasoning speed, rule support, expressivity, and more [<xref ref-type="bibr" rid="scirp.123334-ref37">37</xref>] .</p></sec></sec><sec id="s6"><title>6. Conclusions and Future Works</title><p>Today, it is widely accepted that projects will fail if the software requirements specification is absent, contradictory, or conflicting. Therefore, requirements engineering works to maintain consistent, up-to-date requirements across a project’s life cycle. To achieve this, we provide a domain ontology-based method for analyzing software requirements.</p><p>The Requirements Ontology and Requirements Metamodel, which have been established, serve as the foundation for validation and measurement assistance. It enables requirements analysts to look through a requirements specification according to the application domain’s semantics.</p><p>This needs ontology considers the conceptualization of requirements knowledge, made possible by ontologies and is suitable for goal-oriented requirements engineering. Requirements Ontology is used as a prototype to demonstrate our technique. By hiding the ontology from the requirements engineer and allowing the validation of the information contained therein, ontology considers the specifics of the requirements definition.</p><p>The Requirements Ontology has been exposed to be effective at capturing the knowledge of a software requirements specification’s requirements, and it is practical to use ontologies by requirements engineering tools to highlight inconsistencies, incompleteness, and quality flaws during phases of requirement modeling. We utilized a smart home system to evaluate the idea. The focus of future research in this field is on the requirements traceability’s direction. Additionally, as future studies should concentrate on the effectiveness and quality of ontology construction, it is necessary to investigate the methodical steps involved.</p></sec><sec id="s7"><title>Conflicts of Interest</title><p>The authors declare no conflicts of interest regarding the publication of this paper.</p></sec><sec id="s8"><title>Cite this paper</title><p>Taye, M.M. and Ghoul, S. (2023) An Approach towards Goal-Oriented Requirements Ontology: Consistency and Completeness Based Requirements Analysis. Journal of Software Engineering and Applications, 16, 31-49. https://doi.org/10.4236/jsea.2023.162003</p></sec></body><back><ref-list><title>References</title><ref id="scirp.123334-ref1"><label>1</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Joseph</surname><given-names> E. </given-names></name>,<etal>et al</etal>. (<year>2017</year>)<article-title>Survey on Requirement Elicitation Techniques: Its Effect on Software Engineering</article-title><source> International Journal of Innovative Research in Computer and Communication Engineering</source><volume> 5</volume>,<fpage> 9201</fpage>-<lpage>9215</lpage>.<pub-id pub-id-type="doi"></pub-id></mixed-citation></ref><ref id="scirp.123334-ref2"><label>2</label><mixed-citation publication-type="other" xlink:type="simple">Wiegers, K.E. (2013) Software Requirements. 3rd Edition, Microsoft Press, Redmond.</mixed-citation></ref><ref id="scirp.123334-ref3"><label>3</label><mixed-citation publication-type="other" xlink:type="simple">Van Lamsweerde, A., Darimont, R. and Letier, E. (1998) Managing Conflicts in Goal-Driven Requirements Engineering. IEEE Transactions on Software Engineering, 24, 908-926. https://doi.org/10.1109/32.730542</mixed-citation></ref><ref id="scirp.123334-ref4"><label>4</label><mixed-citation publication-type="other" xlink:type="simple">Amyot, D. (2003) Introduction to the User Requirements Notation: Learning by Example. Computer Networks, 42, 285-301. https://www.sciencedirect.com/science/article/pii/S1389128603002445</mixed-citation></ref><ref id="scirp.123334-ref5"><label>5</label><mixed-citation publication-type="other" xlink:type="simple">Leffingwell, D. and Widrig, D. (2003) Managing Software Requirements—A User Case Approach. 2nd Edition, Addison-Wesley, Boston.</mixed-citation></ref><ref id="scirp.123334-ref6"><label>6</label><mixed-citation publication-type="other" xlink:type="simple">Loucopoulos, P. and Karakostas, V. (1995) System Requirements Engineering. McGraw Hill, London.</mixed-citation></ref><ref id="scirp.123334-ref7"><label>7</label><mixed-citation publication-type="other" xlink:type="simple">Gavrilova, T. and Andreeva, T. (2012) Knowledge Elicitation Techniques in a Knowledge Management Context. Journal of Knowledge Management, 16, 523-537. https://doi.org/10.1108/13673271211246112</mixed-citation></ref><ref id="scirp.123334-ref8"><label>8</label><mixed-citation publication-type="other" xlink:type="simple">Bourque, P. and Fairley, R.E. (2014) Guide to the Software Engineering Body of Knowledge (SWEBOK (R)). Version 3.0. IEEE Computer Society Press, Washington DC.</mixed-citation></ref><ref id="scirp.123334-ref9"><label>9</label><mixed-citation publication-type="other" xlink:type="simple">Davis, A.M. (1992) Operational Prototyping: A New Development Approach. IEEE Software, 9, 70-78. https://doi.org/10.1109/52.156899</mixed-citation></ref><ref id="scirp.123334-ref10"><label>10</label><mixed-citation publication-type="other" xlink:type="simple">Sajjad, U. and Hanif, M. (2010) Issues and Challenges of Requirement Elicitation in Large Web Projects. School of Computing, Blekinge Institute of Technology, Ronneby.</mixed-citation></ref><ref id="scirp.123334-ref11"><label>11</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Mohd Kasirun</surname><given-names> Z. </given-names></name>,<etal>et al</etal>. (<year>2005</year>)<article-title>A Survey on the Requirements Elicitation Practices among Courseware Developers</article-title><source> Malaysian Journal of Computer Science</source><volume> 18</volume>,<fpage> 70</fpage>-<lpage>77</lpage>.<pub-id pub-id-type="doi"></pub-id></mixed-citation></ref><ref id="scirp.123334-ref12"><label>12</label><mixed-citation publication-type="other" xlink:type="simple">Zhu, X. and Jin, Z. (2005) Inconsistency Measurement of Software Requirements Specifications: An Ontology-Based Approach. 10th IEEE International Conference on Engineering of Complex Computer Systems (ICECCS’05), Shanghai 16-20 June 2005, 402-410. https://doi.org/10.1109/ICECCS.2005.55</mixed-citation></ref><ref id="scirp.123334-ref13"><label>13</label><mixed-citation publication-type="other" xlink:type="simple">Loucopoulos, P. and Katsouli, E. (1992) Modelling Business Rules in an Office Environment. SIGOIS Bulletin, 13, 28-37. https://doi.org/10.1145/134376.134384</mixed-citation></ref><ref id="scirp.123334-ref14"><label>14</label><mixed-citation publication-type="other" xlink:type="simple">Taye, M.M. (2009) Ontology Alignment Mechanisms for Improving Web-Based Searching. Ph.D. Thesis, De Montfort University, United Kingdom, England.</mixed-citation></ref><ref id="scirp.123334-ref15"><label>15</label><mixed-citation publication-type="other" xlink:type="simple">Taye, M.M. (2010) State-of-the-Art: Ontology Matching Techniques and Ontology Mapping Systems. The International Journal of ACM Jordan, 1, 68.</mixed-citation></ref><ref id="scirp.123334-ref16"><label>16</label><mixed-citation publication-type="book" xlink:type="simple">A&amp;#223;mann, U., Zschaler, S. and Wagner, G. (2006) Ontologies, Metamodels, and the Model-Driven Paradigm. In: Calero, C., Ruiz, F. and Piattini, M., Eds., Ontologies for Software Engineering and Software Technology, Springer, Berlin, 249-273. https://doi.org/10.1007/3-540-34518-3_9</mixed-citation></ref><ref id="scirp.123334-ref17"><label>17</label><mixed-citation publication-type="other" xlink:type="simple">[IEEE-830] Institute of Electrical and Electronics Engineers (1998) IEEE Recommended Practice for Software Requirements Specifications. IEEE Std 830-1998, Institute of Electrical and Electronics Engineers, New York.</mixed-citation></ref><ref id="scirp.123334-ref18"><label>18</label><mixed-citation publication-type="other" xlink:type="simple">Alsanad, A.A., Chikh, A. and Mirza, A. (2019) A Domain Ontology for Software Requirements Change Management in Global Software Development Environment. IEEE Access, 7, 49352-49361. https://doi.org/10.1109/ACCESS.2019.2909839</mixed-citation></ref><ref id="scirp.123334-ref19"><label>19</label><mixed-citation publication-type="other" xlink:type="simple">Dermeval, D., Vilela, J., Bittencourt, I.I., et al. (2016) Applications of Ontologies in Requirements Engineering: A Systematic Review of the Literature. Requirements Engineering, 21, 405-437. https://doi.org/10.1007/s00766-015-0222-6</mixed-citation></ref><ref id="scirp.123334-ref20"><label>20</label><mixed-citation publication-type="other" xlink:type="simple">Breitman, K.K. and Prado Leite, J.C.S. (2003) Ontology as a Requirements Engineering Product. International Requirements Engineering Conference, Monterey Bay, CA, 12 September 2003, 309-319.</mixed-citation></ref><ref id="scirp.123334-ref21"><label>21</label><mixed-citation publication-type="book" xlink:type="simple">Zowghi, D. and Coulin, C. (2005) Requirements Elicitation: A Survey of Technique, Approaches and Tools. In: Aurum, A. and Wohlin, C., Eds., Engineering and Managing Software Requirements, Springer, Berlin, 19-46.</mixed-citation></ref><ref id="scirp.123334-ref22"><label>22</label><mixed-citation publication-type="other" xlink:type="simple">Siegemund, K. (2014) Contributions to Ontology-Driven Requirements Engineering. Dissertation, Technischen Universitat Dresden, Dresden, 236 p.</mixed-citation></ref><ref id="scirp.123334-ref23"><label>23</label><mixed-citation publication-type="other" xlink:type="simple">Thamrongchote, C. and Vatanawood, W. (2016) Business Process Ontology for Defining User Story. 2016 IEEE/ACIS 15th International Conference on Computer and Information Science (ICIS), Okayama, 26-29 June 2016, 1-4. https://doi.org/10.1109/ICIS.2016.7550829</mixed-citation></ref><ref id="scirp.123334-ref24"><label>24</label><mixed-citation publication-type="other" xlink:type="simple">Bhatia, M.P.S., Kumar, A. and Beniwal, R. (2015) Ontologies for Software Engineering: Past, Present and Future. Indian Journal of Science and Technology, 9, 1-16. https://doi.org/10.17485/ijst/2016/v9i9/71384</mixed-citation></ref><ref id="scirp.123334-ref25"><label>25</label><mixed-citation publication-type="other" xlink:type="simple">Murugesh, S. and Jaya, A. (2015) Construction of Ontology for Software Requirements Elicitation. Indian Journal of Science and Technology, 8, 1-5. https://doi.org/10.17485/ijst/2015/v8i29/86271</mixed-citation></ref><ref id="scirp.123334-ref26"><label>26</label><mixed-citation publication-type="other" xlink:type="simple">Robeer, M., Lucassen, G., et al. (2016) Automated Extraction of Conceptual Models from User Stories via NLP. 24th International Requirements Engineering (RE) Conference, Beijing, 12-16 September 2016, 196-205. https://doi.org/10.1109/RE.2016.40</mixed-citation></ref><ref id="scirp.123334-ref27"><label>27</label><mixed-citation publication-type="other" xlink:type="simple">Sitthithanasakul, S. and Choosri, N. (2016) Using Ontology to Enhance Requirement Engineering in Agile Software Process. 2016 10th International Conference on Software, Knowledge, Information Management &amp; Applications (SKIMA), Chengdu, 15-17 December 2016, 181-186. https://doi.org/10.1109/SKIMA.2016.7916218</mixed-citation></ref><ref id="scirp.123334-ref28"><label>28</label><mixed-citation publication-type="other" xlink:type="simple">Avdeenko, T.V. and Pustovalova, N.V. (2015) The Ontology-Based Approach to Support the Completeness and Consistency of the Requirements Specification. International Siberian Conference on Control and Communications (SIBCON2015), Vol. 9, 1-4. https://doi.org/10.1109/SIBCON.2015.7147184</mixed-citation></ref><ref id="scirp.123334-ref29"><label>29</label><mixed-citation publication-type="other" xlink:type="simple">Verhodubs, O. and Grundspenkis, J. (2013) Ontology Merging in the Context of Semantic Web Expert System. 4th Conference, KESW 2013, St. Petersburg, 7-9 October 2013, 191-201. https://doi.org/10.1007/978-3-642-41360-5_15</mixed-citation></ref><ref id="scirp.123334-ref30"><label>30</label><mixed-citation publication-type="other" xlink:type="simple">Casta&amp;#241;eda, V., Ballejos, L., Caliusco, M.L. and Galli, M.R. (2010) The Use of Ontologies in Requirements Engineering. Global Journal of Researches in Engineering, 10, 2-8.</mixed-citation></ref><ref id="scirp.123334-ref31"><label>31</label><mixed-citation publication-type="other" xlink:type="simple">Siegemund, K., Thomas, E.J., Zhao, Y., Pan, J. and Assmann, U. (2011) Towards Ontology-Driven Requirements Engineering. 10th International Semantic Web Conference (ISWC), Bonn, Bonn, 1-6.</mixed-citation></ref><ref id="scirp.123334-ref32"><label>32</label><mixed-citation publication-type="other" xlink:type="simple">Awal, A., et al. (2018) Ontology Development for the Domain of Software Requirement Elicitation Technique. International Journal of Engineering Research &amp; Technology (IJERT), 7, 334-338. https://doi.org/10.17577/IJERTV7IS040237</mixed-citation></ref><ref id="scirp.123334-ref33"><label>33</label><mixed-citation publication-type="other" xlink:type="simple">Hull, E., Jackson, K. and Dick, J. (2005) Requirements Engineering. Springer, Berlin.</mixed-citation></ref><ref id="scirp.123334-ref34"><label>34</label><mixed-citation publication-type="other" xlink:type="simple">Wikipedia. Ontology Merging. http://en.wikipedia.org/wiki/Ontology_merging</mixed-citation></ref><ref id="scirp.123334-ref35"><label>35</label><mixed-citation publication-type="other" xlink:type="simple">Chen, X., Yin, B. and Jin, Z. (2011) Ontology-Guided Requirements Modeling Based on Problem Frames Approach. Journal of Software, 22, 177-194. https://doi.org/10.3724/SP.J.1001.2011.03755</mixed-citation></ref><ref id="scirp.123334-ref36"><label>36</label><mixed-citation publication-type="other" xlink:type="simple">Hitzler, P., Kr&amp;#246;tzsch, M., Parsia, B., et al. (2012) OWL 2 Web Ontology Language Primer. Second Edition.</mixed-citation></ref><ref id="scirp.123334-ref37"><label>37</label><mixed-citation publication-type="other" xlink:type="simple">Gruber, T.R. (1993) A Translation Approach to Portable Ontologies. Knowledge Acquisition, 5, 199-220. https://doi.org/10.1006/knac.1993.1008</mixed-citation></ref></ref-list></back></article>