<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Patterns and metamodel for a natural-language-based requirements specification language €</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author role="corresp">
							<persName><forename type="first">Carlos</forename><surname>Videira</surname></persName>
							<email>cvideira@acm.org</email>
							<affiliation key="aff0">
								<orgName type="department">INESC-ID</orgName>
								<orgName type="institution">Universidade Autónoma de Lisboa</orgName>
								<address>
									<addrLine>Rua de Santa Marta, nº 56</addrLine>
									<postCode>1169-023</postCode>
									<settlement>Lisboa</settlement>
									<country key="PT">Portugal</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Alberto</forename><surname>Rodrigues Da Silva</surname></persName>
							<affiliation key="aff1">
								<orgName type="department">INESC-ID</orgName>
								<orgName type="institution">Instituto Superior Técnico</orgName>
								<address>
									<addrLine>Rua Alves Redol, nº 9</addrLine>
									<postCode>-1000-029</postCode>
									<settlement>Lisboa</settlement>
									<country key="PT">Portugal</country>
								</address>
							</affiliation>
						</author>
						<author>
							<affiliation key="aff2">
								<orgName type="department">Faculdade de Engenharia</orgName>
								<orgName type="institution">Universidade do Porto</orgName>
								<address>
									<addrLine>ISBN 972</addrLine>
									<postCode>2005 --752-078-2</postCode>
									<country key="PT">Portugal</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Patterns and metamodel for a natural-language-based requirements specification language €</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">10F266A73FE744F4E8031AFDB6E28DCD</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-25T06:09+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>Requirements</term>
					<term>Requirements Specification Languages</term>
					<term>Controlled Natural Languages</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Software requirements engineering is an essential activity for the successful development of information systems. Requirements can be specified using different techniques, but taking into account the different stakeholders that have to deal with requirements information, a successful approach has to balance the need to use a widely understood requirements notation, with the importance of eliminating the frequent ambiguity and imprecision, by adding rigor to the specification. In this paper we present the metamodel of a controlled natural language for interactive systems requirements specification, called Pro-jectIT-RSL, based on the identification of the linguistic patterns that are most frequently used in requirements documents written in natural language.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introduction</head><p>The development of information systems is a complex process usually initiated with the identification and specification of the requirements of the system to be developed, and in particular of its software components. Requirements describe what the system should do, which is obviously critical for the success of the whole development process. Several surveys and studies (such as <ref type="bibr" target="#b6">[7]</ref>) have emphasized the costs and quality problems that can result from mistakes in the early phases of system development, such as inadequate, inconsistent, incomplete, or ambiguous requirements.</p><p>Software requirements are normally described using a requirements specification language. These languages can be classified through many perspectives; one that is particularly interesting for our work is the level of formality used, ranging from the formal initiatives to those completely informal. The ideal solution should combine the benefits of simultaneously using natural language and a precise (not necessarily formal) approach for requirements specification, which leads to the idea of using a controlled natural language. A controlled natural language is a subset of the words used in our common natural language, where the selected terms have their usual meaning, but can also be interpreted in specialized contexts (normally using tools).</p><p>As a result of the experience gathered from previous research and practical projects, the Information Systems Group of INESC-ID [http://gsi.inesc-id.pt/], in Lisbon, Portugal, started an initiative in the area of requirements engineering, named Projec-tIT-Requirements <ref type="bibr" target="#b8">[9]</ref>, which proposes a new approach to successfully achieve some of the goals of this discipline. One of the results of this project is a new requirements specification language, called ProjectIT-RSL <ref type="bibr" target="#b7">[8]</ref>. The goal of this paper is to describe the current status of its metamodel, and the underlying patterns. Section 2 presents an overview of the requirements patterns we have identified. Section 3 describes the most important concepts of the metamodel. Section 4 presents previous related work, describes some open issues, and identifies the work to be performed in the future.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">ProjectIT-RSL Patterns</head><p>The analysis of the interactive systems requirements can lead to the identification of a number of frequently occurring patterns. Most of the sentences are used to specify what the system should (a verb frequently found in requirements specifications) do, and present an operational perspective of the system. This is why they follow a simple and common structure, where a subject performs an operation (expressed by a verb), which affects an object. More elaborated sentences can also include a condition, which describes a constraint about a simpler fact. So we started with some basic patterns, described below using an EBNF notation; the list presented here is representative of our current requirement patterns and not complete. The above list introduces the patterns for higher level requirements, but also demonstrates that, using some of them, we can describe detailed operations. One important goal we wanted to achieve is to provide a single (or at least integrated) technique for the specification of early and late requirements. This is also demonstrated by the list of patterns involved in the specification of conditional requirements. The introduction of rigour in the specification, even when using natural language, imposes some rules that necessarily make a requirements specification different from another used without such restrictions. We can see from the above patterns that we try to simplify the description, for example by eliminating verbs frequently found in requirements specification, such as shall, will or must, or by eliminating words such as the. In this area there are still some issues under discussion, for example, a complete definition about the use of singular or plural forms of verbs.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">ProjectIT-RSL Metamodel</head><p>After the identification of requirement's patterns for this type of systems, we derived a metamodel that can adequately represent the patterns identified. ProjectIT-RSL is currently a simple language represented by a metamodel and a grammar that defines the rules to map the metamodel's concepts into sentences, which are validated by the requirements tools. The main concepts of our language (the ontology) are represented in Figure <ref type="figure" target="#fig_1">1:</ref> -Actors are active resources (e.g., an external system or an end-user role) that perform operations involving one or more entities. -Entities are static resources affected by operations (e.g., a client or an invoice).</p><p>Entities have Properties that represent and describe their state. -Operations are described by their respective workflows, which consist of a sequence of simpler Operations that affect Entities and their Properties. Operations are specialized in Actions, which are atomic and primitive (and provided by default by our framework), and Activities, which are not atomic. The metamodel includes other concepts whose goal is to define the organization of the requirements, and which are represented in Figure <ref type="figure" target="#fig_2">2</ref>. All requirements information is expressed in terms of Sentences (which represents every sentence of our text), which can be a Requirement, a Description or a Declaration. These statements are included in requirements documents, which we call Requirements Modules that are specialized in: 1. Packages allow the specification of information about concepts (Actors, Entities, Operations, Requirements) that can be reused in other requirements documents. 2. A System, which represents a software component (either a complete application or a reusable software component) with which an actor interacts, by executing operations to access or manage entities and their properties.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Requirements Module</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Requirement</head><p>Requirements describe what the system is expected to do, and are represented by a number of concepts, as Figure <ref type="figure" target="#fig_3">3</ref> shows. Requirements are currently specialized in: 1. Functional Requirements are the current focus of our research and specify the functional features of the system; these requirements are themselves specialized into (1) Simple Requirements, which is basically a relationship between an Actor, an Operation and an Entity or an Entity's Property, and (2) Conditional Requirements, which add a condition to a Simple Requirement. 2. Non-Functional Requirements (e.g., for timing restrictions) 3. Other Requirements (e.g., to include information about the need to use a specific database management system). Besides the requirements sentences, a requirements specification in ProjectIT-RSL can also include two other types of sentences, represented in our metamodel by Description and Declaration classes (Figure <ref type="figure" target="#fig_4">4</ref>); the first represents the sentences that begin the detailed information about a concept, such as an entity (Entity Description), an actor (Actor Description) or an operation (Operation Description). Declarations represent sentences that enumerate the entities, the operations and the actors of the system (Entity Declaration, Operation Declaration and Actor Declaration, respectively), as well as those name the requirements module being defined, a System or Package (System Declaration and Package Declaration). For simplicity reasons, there are other classes in our current metamodel that are not shown in the above figures, such as the classes that represent the description of the properties of an Entity.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Description</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Open Issues and Future Work</head><p>We recognise that there are a number of issues in ProjectIT-RSL that need to be addressed. One of the most important questions still under discussion is the level of resemblance to natural language that we will adopt; the option is between a description very close to natural language (the current option), or one that adopts a style similar to a programming language. Other types of requirements will have to be supported by our language. As Figure <ref type="figure" target="#fig_3">3</ref> has shown, he have already included in the metamodel two classes for Non-Functional Requirements and Other Requirements, for future use. However, as we have not provided any feature in our tools to validate these requirements and to take them into consideration by code generation techniques, they have not been object of current research, which is a situation we will change in the future.</p><p>An area considered of prime importance in this project is the support of requirements reuse. Besides the possibility of reusing a previously specified operation in the same requirements module, we have developed other techniques, such as "including" requirements modules in new modules. The information contained in the included module can be reused by the including module. This poses other questions, such as the visibility of the information of the included module, which are currently being discussed.</p><p>In our work, we have been influenced by a number of different approaches that have researched on the elaboration of requirements specification using patterns of natural language. Approaches such as <ref type="bibr" target="#b0">[1]</ref> and <ref type="bibr" target="#b5">[6]</ref> reduce the level of imprecision in requirements by using a limited number of sentence patterns to specify a requirement for a particular domain. In <ref type="bibr" target="#b4">[5]</ref> the authors propose a set of requirements patterns for embedded software systems; these patterns are represented in UML and cover both structural and behavioral aspects of a requirements specification. Their work influenced the one described in <ref type="bibr" target="#b1">[2]</ref>, where the authors have also identified natural language patterns that can be used to specify functional requirements of embedded systems, from which they developed a requirements statements metamodel. A formalization process based on the analysis of natural language sentences in order to create precise conceptual models is described in <ref type="bibr" target="#b3">[4]</ref>. Attempto Controlled English (ACE), first described in <ref type="bibr" target="#b2">[3]</ref>, is one of the approaches that use a controlled natural language to write precise specifications that, for example, enable their translation into first-order logic.</p><p>In the near future we will concentrate on the open issues of ProjectIT-RSL, above all in the development of the requirements reuse mechanisms and in advancing tool support. In a further iteration, it is our intention to include support for the specification of the goals of the system, and from them deriving the requirements specification</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head></head><label></label><figDesc>&lt;Requirement&gt;: &lt;Simple Requirement&gt; | &lt;Conditional Requirement&gt; &lt;Simple Requirement&gt;: &lt;Subject&gt; &lt;Operation&gt; &lt;Object&gt; &lt;Subject&gt;: &lt;System&gt; | &lt;Actor&gt; &lt;Object&gt;: &lt;Entity&gt; | &lt;Entity property&gt; | &lt;Entity&gt;* | &lt;Entity Property&gt;* &lt;Operation&gt;: &lt;Action&gt; | &lt;Complex Operation&gt; &lt;Action&gt;: &lt;Interaction Action&gt; | &lt;Database Action&gt; | … &lt;Interaction Action&gt;: manages | enters | shows | gets | creates | … &lt;Database Action&gt;: inserts | updates | deletes &lt;Complex Operation&gt;: &lt;Operation&gt;*</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Figure 1 -</head><label>1</label><figDesc>Figure 1 -ProjectIT-RSL metamodel -basic concepts</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Figure 2 -</head><label>2</label><figDesc>Figure 2 -ProjectIT-RSL metamodel -organizational concepts</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Figure 3 -</head><label>3</label><figDesc>Figure 3 -ProjectIT-RSL metamodel -requirements classes</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_4"><head>Figure 4 -</head><label>4</label><figDesc>Figure 4 -ProjectIT-RSL metamodel -description and declaration classes</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head></head><label></label><figDesc>&lt;Conditional Requirement&gt;: &lt;Condition&gt; &lt;Requirement&gt; &lt;Condition&gt;: &lt;Simple Condition&gt; | &lt;Complex Condition&gt; &lt;Simple Condition&gt;: &lt;Condition Type&gt; &lt;Expression&gt; &lt;Comparison&gt; &lt;Expression&gt; &lt;Complex Condition&gt;: &lt;Condition&gt; &lt;Logical Operator&gt; &lt;Condition&gt; &lt;Condition Type&gt;: if | while &lt;Logical Operator&gt;: or | and | not &lt;Comparison&gt;: greater than | less than | equal to | … These simple patterns enable the representation of requirements sentences such as:</figDesc><table><row><cell>System manages entities.</cell></row><row><cell>User creates invoices.</cell></row><row><cell>User enters invoice date.</cell></row><row><cell>System gets invoice number.</cell></row><row><cell>If invoice total greater than 1000€, then invoice discount equals 10%.</cell></row></table></figure>
		</body>
		<back>

			<div type="funding">
<div xmlns="http://www.tei-c.org/ns/1.0"><p>€ The work presented in this paper is partially funded by FCT (Portuguese Research and Technology Foundation), project POSI/EIA/57642/2004 (Requirements engineering and model-based approaches in the ProjectIT research program).</p></div>
			</div>

			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Guiding Scenario Authoring</title>
		<author>
			<persName><forename type="first">C</forename><surname>Ben Achour</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 8 th European-Japanese Conference on Information Modeling and Knowledge Bases</title>
				<meeting>the 8 th European-Japanese Conference on Information Modeling and Knowledge Bases<address><addrLine>Vamala, Finland</addrLine></address></meeting>
		<imprint>
			<publisher>IOS Press</publisher>
			<date type="published" when="1998-05">May 1998</date>
			<biblScope unit="page" from="152" to="171" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<monogr>
		<title level="m" type="main">High Quality Requirements Specifications for Embedded Systems through Authoring Rules and Language Patterns</title>
		<author>
			<persName><forename type="first">C</forename><surname>Denger</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2002">2002</date>
			<pubPlace>Kaiserslautern, Germany</pubPlace>
		</imprint>
		<respStmt>
			<orgName>Fachbereich Informatik, Universität Kaiserslautern</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">M.Sc. Thesis</note>
</biblStruct>

<biblStruct xml:id="b2">
	<monogr>
		<author>
			<persName><forename type="first">N</forename><surname>Fuchs</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Schwitter</surname></persName>
		</author>
		<title level="m">Attempto Controlled English (ACE), CLAW 96, First International Workshop on Controlled Language Applications</title>
				<meeting><address><addrLine>Belgium</addrLine></address></meeting>
		<imprint>
			<date type="published" when="1996-03">March 1996</date>
		</imprint>
		<respStmt>
			<orgName>University of Leuven</orgName>
		</respStmt>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">A formal approach for generating oo specifications from natural language</title>
		<author>
			<persName><forename type="first">N</forename><surname>Juristo</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Morant</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Moreno</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">The Journal of Systems and Software</title>
		<imprint>
			<biblScope unit="volume">48</biblScope>
			<biblScope unit="page" from="139" to="153" />
			<date type="published" when="1999">1999</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Requirements patterns for embedded systems</title>
		<author>
			<persName><forename type="first">S</forename><surname>Konrad</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Cheng</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the IEEE Joint International Conference on Requirements Engineering (RE02)</title>
				<meeting>the IEEE Joint International Conference on Requirements Engineering (RE02)<address><addrLine>Essen, Germany</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2002-09">September 2002</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">A Natural Language Approach for Requirements Engineering</title>
		<author>
			<persName><forename type="first">C</forename><surname>Rolland</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Proix</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 4 th Int. Conf. Advanced Information Systems</title>
				<meeting>the 4 th Int. Conf. Advanced Information Systems<address><addrLine>CAiSE</addrLine></address></meeting>
		<imprint>
			<date type="published" when="1992">1992</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<monogr>
		<ptr target="http://www.standishgroup.com" />
		<title level="m">The Chaos Report</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<monogr>
		<title level="m" type="main">The ProjectIT-RSL Language Overview, UML Modeling Languages and Applications: UML 2004 Satellite Activities</title>
		<author>
			<persName><forename type="first">C</forename><surname>Videira</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Silva</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2004-10">October 2004</date>
			<pubPlace>Lisbon, Portugal</pubPlace>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">ProjectIT-Requirements, a Formal and User-oriented Approach to Requirements Specification</title>
		<author>
			<persName><forename type="first">C</forename><surname>Videira</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Silva</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="s">Actas de las IV Jornadas Iberoamericanas en Ingeniería del Software e Ingeniería del Conocimiento -Volumen I -</title>
		<imprint>
			<biblScope unit="page" from="175" to="190" />
			<date type="published" when="2004">2004</date>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
