<!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>COVER: Change-based Goal Veri er and Reasoner</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Claudio Menghi</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Paola Spoletini</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Carlo Ghezzi</string-name>
          <email>carlo.ghezzig@polimi.it</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Kennesaw State University</institution>
          ,
          <addr-line>Marietta</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Politecnico di Milano</institution>
          ,
          <addr-line>Milano</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>COVER is a uni ed framework that supports the interplay between requirements analysts and software developers. It contracts a bridge between the requirements analyst's and the software developer's artifacts by enabling goal model analysis during software design. The goal model produced by the requirements analyst is kept alive and updated while the system is designed. Whenever the design of the system changes, COVER veri es the new design against the requirements of interest. The veri cation results are used to trigger a goal model analysis procedure. The results of this analysis can be used by the requirements analyst and the software developer to update the goal model or the design of the system. In this paper, we present the tool support developed for COVER.</p>
      </abstract>
      <kwd-group>
        <kwd>iterative design</kwd>
        <kwd>goal model analysis</kwd>
        <kwd>partial models</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Software development is a complex activity which relies on a sequence of
development steps. It usually starts with the requirements analyst collecting the
requirements of the system. The identi ed requirements are used by the software
developer as guidelines in the system design, in which a model of the system is
produced. The system design is not a straightforward activity. It usually includes
a set of development rounds, in which a partial and incomplete model of the
system is iteratively re ned. In order to satisfy the customer needs, the software
developer must ensure that the nal, fully speci ed, version of the system satis es
the requirements of interest.</p>
      <p>
        Researchers' interest has been mainly focused on two separate aspects. On
the one hand, researchers have been working on developing techniques and
frameworks to help the requirements analyst in collecting and analyzing requirements.
KAOS [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], TROPOS [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] and i [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] are examples of modeling formalisms used to
collect and represent requirements. Over the years many techniques have been
proposed to analyze them (e.g., [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]). On the other hand, several algorithms and
? Copyright 2017 for this paper by its authors. Copying permitted for private and
academic purposes.
tools to help software developers in the speci cation of the system behavior and
in checking whether the speci cation satis es the requirements of the system [
        <xref ref-type="bibr" rid="ref10 ref7 ref8">8,
7, 10</xref>
        ] have been proposed.
      </p>
      <p>One of the main problems of current software development techniques is the
lack of integration between these two set of tools, and, consequently, the lack of
a bridge between requirements analysts' and the software developers' work. This
mismatch particularly a ects modern development life cycles which 1. are heavily
based on iterative and incremental development processes and 2. require a strong
interaction between the requirements analyst and the software developer.</p>
      <p>
        COVER (Change-based gOal VEri er and Reasoner) [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] is a uni ed
framework that enables goal model analysis during software design. Its goal is to
integrate models used by the requirements analyst and the software developer
to support a continuous interaction between these two actors. This would allow
requirements and design to evolve together. COVER enables the continuous
veri cation of the requirements of the system through design iterations and
triggers the analysis of the veri cation results over the goal model. It is a general
framework that can applied independently of the chosen goal model and the
design formalisms.
      </p>
      <p>
        This paper presents the tool support (hereafter called either COVERTool
or just COVER) used in a speci c instantiation of the framework, where the
variation of the TROPOS modeling language presented in [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], Modal Transition
Systems (MTS) [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], and Fluent Linear Temporal Logic (FLTL) [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] are chosen as
a goal model framework, model for the design of the system, and speci cation
language for functional requirements, respectively. The generic approach and a
discussion on the limits of the current instantiation can be found in [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
      </p>
      <p>The rest of the paper is organized as follows. Section 2 gives an overview
of COVERTool. Section 3 describes the user experience in using COVERTool.
Finally, Section 4 concludes the paper.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Overview</title>
      <p>
        COVER3 is a framework that supports the interplay between requirements
analysis and design. It can be used to verify which goals of the goal models are
satis ed by the new design every time the developer changes the design of the
system, and to verify how the current design satis es the goals of the goal model,
when the requirements analyst modi es the goal model. The overall tool support
for COVER is a Java 8 application that uses the Goal Reasoning Tool (Gr-tool) [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]
as a design framework of goal models and for the label propagation and the
Modal Transition System Analyzer (MTSA) [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] for supporting the developer in
the system design. An high-level representation of COVER is presented in Fig. 1.
Additional details on the framework can be found in [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
      </p>
      <p>The framework consists mainly of three main parts: the goal model design
and requirements speci cation, the system design, and the design veri cation,
which enables the goal model analysis.
3 The tool is available at https://github.com/claudiomenghi/COVER.
Goal Model Design</p>
      <p>G1</p>
      <p>Goal model design and requirements speci cation. The requirements
analyst develops a TROPOS goal model for the system using Gr-tool. Goals are
re ned into requirements, which, in turn, are decomposed into tasks, i.e., the
functionalities the system has to provide. The completion of a task is indicated
by the developer with an event: the system generates the event if and only if the
task of interest has been accomplished. The analyst uses these events to provide a
formal description of some of the goals of the system. The analyst chooses the set
of requirements to be formally speci ed in FLTL depending on the system under
development. Note that events and FLTL formulae are not part of TROPOS;
they are used to link the requirements analyst and developers models.
System design. The software developer produces a high-level model of the
system to be in MTSs. Then, she/he iteratively decomposes the system until the
behaviors of all of its components are speci ed.</p>
      <p>Design veri cation and goal model analysis. COVER veri es the new
(incomplete/partial) design of the system. It relies on MTSA as a veri cation
tool for MTSs. Since the model is incomplete, the veri cation procedure may
return three di erent values: &gt; if the property is satis ed by the current design,
no matter how the unde ned parts of the system will be later re ned; ? if the
property is not satis ed; ? whether its satisfaction depends on the parts which
still have to be re ned.</p>
      <p>
        The values obtained from the veri cation of the system design are used to
trigger the analysis of the goal model. Each goal of the goal model is associated
with an initial value, which speci es whether it is satis ed, possibly satis ed,
or not satis ed by the current design. The goals that have not been formalized
are considered as not satis ed. A label propagation algorithm is then used to
propagate the initial values. The label propagation algorithm in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] is modi ed
according to the three valued semantic used in the veri cation of the goal model.
The results are used by the requirements analyst and the software developer to
change the goal model and the design of the system, respectively. Further details
can be found in [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>User experience</title>
      <p>We describe how COVER can be used by requirements analysts and software
developers.</p>
      <p>Requirements analyst perspective. The analyst identi es the requirements
of the system in TROPOS, using the Gr-Tool. We assume that the developer
speci es each goal by means of an identi er followed by the goal name, i.e.,
the textual description of each goal matches the following pattern: IDENTIFIER:
GOAL NAME. When the nal version of the goal model is produced, the requirements
analyst formally speci es the requirements of interest. The analyst provides the
speci cation of the requirements in a le with extension .lts. This le contains
a set of FLTL formulae that formally specify the goals of the system. Each goal
starts with an identi er followed by a semi column (e.g., G1 :) which is preceded
by the keyword assert. When the formalization of the requirements ends, the
requirements analyst forwards the produced le to the software developer.
1 java - jar COVER . jar initGoalModel . goal design . lts PROC
finalGoalModel . goal</p>
      <p>Listing 1.1. Running COVER</p>
      <p>When the software developer produces a new (partial) model of the system,
a modi ed version of the le .lts, containing also a behavioral model of the
system, is delivered to the requirements analyst. The analyst runs COVERTool
by executing the command in Listing 1.1, where:
{ initGoalModel.goal is the original goal model to be considered;
{ design.lts is the design to be veri ed;
{ PROC is the identi er of the process speci ed by the MTS contained in the
le design.lts to be considered by the veri cation procedure;
{ finalGoalModel.goal is a le that will contain the goal model updated with
the results of the label propagation.</p>
      <p>An example of the tool's output is shown in Fig. 2a. COVERTool loads the goal
model and iteratively analyzes its goals. When a goal is analyzed, COVERTool
extracts the identi er of the goal and checks if the le design.lts contains an
FLTL property associated with the goal. If a property is speci ed, it is veri ed
w.r.t. the process PROC speci ed as parameter in the COVER Tool invocation.
When all the properties are veri ed, the label propagation algorithm is executed.
(a) An example of COVER output.</p>
      <p>(b) Inspecting the output using the Gr-Tool.</p>
      <p>
        The requirements analyst can graphically inspect the results obtained by
COVERTool and contained in the le finalGoalModel.goal using the Gr-Tool.
For example, Fig. 2b shows an example of results obtained using COVER. The
column Input SAT contains the results of the veri cation procedure, where the
values T and P specify that the property is satis ed and possibly satis ed,
respectively. When a goal is associated with no value, it is either violated or not
associated with an FLTL formula. The column Output SAT contains the results
obtained by running the label propagation algorithm. The requirements analyst
can use these results to improve its goal model. Additional details on how these
results are used to change the goal model can be found in [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
      </p>
      <p>The analyst executes the previously described procedure also when she/he
already possesses a design of the system and she/he changes its goal model. This
allows her/him to verify which goals of the new goal model are satis ed by design.
Software developer perspective. The software developer receives from the
requirements analyst the le containing the requirements that the system has
to satisfy. The developer produces a behavioral model of the system basing
his/her decision on the received requirements and then uses MTSA to verify if the
produced model satis es/possibly satis es the requirements of interest. MTSA
per se does not provide any feedback about the impact of the design decision over
the goal satisfaction, but COVERTool in which MTSA is integrated provides
this functionality and propagates the results obtained with MTSA back to the
goal model. This allows the software developer to analyze the consequences of
her/his design choices over the goal satisfaction.</p>
      <p>
        COVERTool is executed using the command speci ed in Listing 1.1. The
obtained results are inspected using the Gr-Tool. The software developer can use
the results of the label propagation algorithm to improve its design. Additional
details can be found in [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
4
      </p>
    </sec>
    <sec id="sec-4">
      <title>Conclusion</title>
      <p>This paper presented the tool support for COVER, a uni ed framework that
enables goal model analysis during the software development. The goal model
produced by the requirements analyst is kept alive during the design of the
system. At each re nement round, i.e., whenever the developer produces a new
increment or changes something in the model, the new (incomplete) design of
the system is veri ed. The veri cation results are used to analyze the set of goals
of the goal model that are currently satis ed, possibly satis ed and not satis ed.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>P.</given-names>
            <surname>Bresciani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Perini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Giorgini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Giunchiglia</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Mylopoulos</surname>
          </string-name>
          . Tropos:
          <article-title>An agent-oriented software development methodology</article-title>
          .
          <source>Autonomous Agents and Multi-Agent Systems</source>
          ,
          <volume>8</volume>
          (
          <issue>3</issue>
          ):
          <volume>203</volume>
          {
          <fpage>236</fpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>A.</given-names>
            <surname>Dardenne</surname>
          </string-name>
          ,
          <string-name>
            <surname>A. Van Lamsweerde</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Fickas</surname>
          </string-name>
          .
          <article-title>Goal-directed requirements acquisition</article-title>
          .
          <source>Science of computer programming</source>
          ,
          <volume>20</volume>
          (
          <issue>1</issue>
          ):3{
          <fpage>50</fpage>
          ,
          <year>1993</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>N. D'Ippolito</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Fischbein</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Chechik</surname>
            , and
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Uchitel</surname>
          </string-name>
          . MTSA:
          <article-title>The Modal Transition System Analyser</article-title>
          .
          <source>In International Conference on Automated Software Engineering</source>
          , pages
          <volume>475</volume>
          {
          <fpage>476</fpage>
          . IEEE,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>D.</given-names>
            <surname>Giannakopoulou</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Magee</surname>
          </string-name>
          .
          <article-title>Fluent Model Checking for Event-Based Systems</article-title>
          .
          <source>In Symposium on Foundations of Software Engineering</source>
          , pages
          <volume>257</volume>
          {
          <fpage>266</fpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>P.</given-names>
            <surname>Giorgini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Mylopoulos</surname>
          </string-name>
          , E. Nicchiarelli, and
          <string-name>
            <given-names>R.</given-names>
            <surname>Sebastiani</surname>
          </string-name>
          .
          <article-title>Formal reasoning techniques for goal models</article-title>
          .
          <source>In Journal on Data Semantics I. Springer</source>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>P.</given-names>
            <surname>Giorgini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Mylopoulos</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Sebastiani</surname>
          </string-name>
          .
          <article-title>Goal-oriented requirements analysis and reasoning in the tropos methodology</article-title>
          .
          <source>Engineering Applications of Arti cial Intelligence</source>
          ,
          <volume>18</volume>
          (
          <issue>2</issue>
          ):
          <volume>159</volume>
          {
          <fpage>171</fpage>
          ,
          <string-name>
            <surname>Mar</surname>
          </string-name>
          .
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>M.</given-names>
            <surname>Huth</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Jagadeesan</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Schmidt</surname>
          </string-name>
          .
          <article-title>Modal transition systems: A foundation for three-valued program analysis</article-title>
          .
          <source>In Programming Languages and Systems</source>
          , pages
          <fpage>155</fpage>
          {
          <fpage>169</fpage>
          . Springer,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>K. G.</given-names>
            <surname>Larsen</surname>
          </string-name>
          and
          <string-name>
            <given-names>B.</given-names>
            <surname>Thomsen</surname>
          </string-name>
          .
          <article-title>A modal process logic</article-title>
          .
          <source>In Logic in Computer Science</source>
          , pages
          <volume>203</volume>
          {
          <fpage>210</fpage>
          . IEEE,
          <year>1988</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>S.</given-names>
            <surname>Liaskos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. A.</given-names>
            <surname>McIlraith</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Sohrabi</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Mylopoulos</surname>
          </string-name>
          .
          <article-title>Integrating preferences into goal models for requirements engineering</article-title>
          . In Requirements Engineering Conference, pages
          <volume>135</volume>
          {
          <fpage>144</fpage>
          . IEEE,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>C. Menghi</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Spoletini</surname>
            , and
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Ghezzi</surname>
          </string-name>
          .
          <article-title>Dealing with incompleteness in automatabased model checking</article-title>
          .
          <source>In Formal Methods</source>
          , volume
          <volume>9995</volume>
          , pages
          <fpage>531</fpage>
          {
          <fpage>550</fpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>C. Menghi</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Spoletini</surname>
            , and
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Ghezzi</surname>
          </string-name>
          . To appear in: Requirements engineering:
          <article-title>Foundation for software quality</article-title>
          ,
          <source>REFSQ. Lecture Notes in Computer Science</source>
          . Springer,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>E. S.</given-names>
            <surname>Yu</surname>
          </string-name>
          .
          <article-title>Towards modelling and reasoning support for early-phase requirements engineering</article-title>
          . In Requirements Engineering Conference, pages
          <volume>226</volume>
          {
          <fpage>235</fpage>
          . IEEE,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>