<!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>Patterns and metamodel for a natural-language-based requirements specification language€</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Carlos Videira</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Alberto Rodrigues da Silva</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>INESC-ID</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Universidade Autónoma de Lisboa</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Rua de Santa Marta</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Lisboa</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Portugal cvideira@acm.org</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>INESC-ID</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Instituto Superior Técnico</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Rua Alves Redol</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Lisboa</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Portugal alberto.silva@acm.org</string-name>
        </contrib>
      </contrib-group>
      <abstract>
        <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 ProjectIT-RSL, based on the identification of the linguistic patterns that are most frequently used in requirements documents written in natural language.</p>
      </abstract>
      <kwd-group>
        <kwd />
        <kwd>Requirements</kwd>
        <kwd>Requirements Specification Languages</kwd>
        <kwd>Controlled Natural Languages</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <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 [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]) 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
€ 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).
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
ProjectIT-Requirements [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], 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 [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. 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>
    </sec>
    <sec id="sec-2">
      <title>2 ProjectIT-RSL Patterns</title>
      <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.</p>
      <p>&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;*</p>
      <p>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.</p>
      <p>&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:
System manages entities.</p>
      <p>User creates invoices.</p>
      <p>User enters invoice date.</p>
      <p>System gets invoice number.</p>
      <p>If invoice total greater than 1000€, then invoice discount equals 10%.</p>
      <p>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>
    </sec>
    <sec id="sec-3">
      <title>3 ProjectIT-RSL Metamodel</title>
      <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.</p>
      <p>Type
Primitive Types</p>
      <p>Entity
relates with</p>
      <p>Property
performs operation
Operation
specializes</p>
      <p>Actor
Action</p>
      <p>Activity</p>
      <p>The main concepts of our language (the ontology) are represented in Figure 1:
Actors are active resources (e.g., an external system or an end-user role) that
perform operations involving one or more entities.</p>
      <p>Entities are static resources affected by operations (e.g., a client or an invoice).
Entities have Properties that represent and describe their state.</p>
      <p>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.</p>
      <p>The metamodel includes other concepts whose goal is to define the organization of
the requirements, and which are represented in Figure 2.</p>
      <p>imports</p>
      <p>Package</p>
      <p>Requirements Module
imports
Sentence</p>
      <p>System
Description</p>
      <p>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,</p>
      <p>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>
      <p>Requirements describe what the system is expected to do, and are represented by a
number of concepts, as Figure 3 shows.</p>
      <p>Requirement
Other Requirement</p>
      <p>Functional Requirement</p>
      <p>Non-Functional Requirement
Simple Requirement</p>
      <p>Conditional Requirement</p>
      <p>Condition
Actor</p>
      <p>Operation</p>
      <p>Entity</p>
      <p>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).</p>
      <p>Sentence
Description</p>
      <p>Declaration
Entity Description</p>
      <p>Actor Description</p>
      <p>Entity Declaration</p>
      <p>Actor Declaration</p>
      <p>Package Declara
Operation Description</p>
      <p>Operation Declaration</p>
      <p>System Declaration</p>
      <p>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 4); 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>
    </sec>
    <sec id="sec-4">
      <title>4 Open Issues and Future Work</title>
      <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 3 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 [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] and [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] reduce the level of imprecision in
requirements by using a limited number of sentence patterns to specify a requirement
for a particular domain. In [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] 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 [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], 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 [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Attempto Controlled English (ACE), first
described in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], 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>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>Ben</given-names>
            <surname>Achour</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            ,
            <surname>Guiding Scenario</surname>
          </string-name>
          <string-name>
            <surname>Authoring</surname>
          </string-name>
          ,
          <source>Proceedings of the 8th European-Japanese Conference on Information Modeling and Knowledge Bases</source>
          , pp.
          <fpage>152</fpage>
          -
          <lpage>171</lpage>
          , IOS Press, Vamala, Finland, May 1998
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Denger</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <article-title>High Quality Requirements Specifications for Embedded Systems through Authoring Rules</article-title>
          and
          <string-name>
            <given-names>Language</given-names>
            <surname>Patterns</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Sc</surname>
          </string-name>
          . Thesis, Fachbereich Informatik, Universität Kaiserslautern, Kaiserslautern, Germany 2002
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Fuchs</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schwitter</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <source>Attempto Controlled English (ACE)</source>
          ,
          <source>CLAW 96, First International Workshop on Controlled Language Applications</source>
          , University of Leuven, Belgium, March 1996
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Juristo</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Morant</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Moreno</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <article-title>A formal approach for generating oo specifications from natural language</article-title>
          ,
          <source>The Journal of Systems and Software</source>
          , Vol.
          <volume>48</volume>
          , pp.
          <fpage>139</fpage>
          -
          <lpage>153</lpage>
          ,
          <year>1999</year>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Konrad</surname>
            , S., Cheng,
            <given-names>B.</given-names>
          </string-name>
          ,
          <article-title>Requirements patterns for embedded systems</article-title>
          ,
          <source>Proceedings of the IEEE Joint International Conference on Requirements Engineering (RE02)</source>
          , Essen, Germany,
          <year>September 2002</year>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Rolland</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Proix</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>A Natural</given-names>
            <surname>Language</surname>
          </string-name>
          <article-title>Approach for Requirements Engineering</article-title>
          ,
          <source>Proceedings of the 4th Int. Conf. Advanced Information Systems, CAiSE 1992</source>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <source>The Chaos Report</source>
          , available at http://www.standishgroup.com
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Videira</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Silva</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <article-title>The ProjectIT-RSL Language Overview, UML Modeling Languages and Applications: UML 2004 Satellite Activities</article-title>
          , Lisbon, Portugal,
          <year>October 2004</year>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Videira</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Silva</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <article-title>ProjectIT-Requirements, a Formal and User-oriented Approach to Requirements Specification</article-title>
          ,
          <source>Actas de las IV Jornadas Iberoamericanas en Ingeniería del Software e Ingeniería del Conocimiento - Volumen</source>
          I - pp
          <fpage>175</fpage>
          -
          <lpage>190</lpage>
          , Madrid, Spain, November 2004
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>