<!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>
      <journal-title-group>
        <journal-title>Nakagawa, H., Ohsuga, A., Honiden, S.: A goal model elaboration for localizing changes in software evolution.
In:</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Goal Model Construction Based on User Review Classi cation</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Hironori Shimada, Hiroyuki Nakagawa, and Tatsuhiro Tsuchiya Graduate School of Information Science and Technology Osaka University</institution>
          ,
          <addr-line>Suita-shi, 565-0871</addr-line>
          ,
          <country country="JP">Japan</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2013</year>
      </pub-date>
      <volume>21</volume>
      <abstract>
        <p>In a software development process, developers should elicit various requirements correctly; however, it is difficult to capture all of the requirements. User reviews can be useful source to capture bug information or features that users request. In this paper, we propose an approach to construct a goal model from user reviews of an application. The goal model visualizes requirements in a hierarchical structure and helps the developer to obtain an overview of the requirements. To evaluate the proposed approach, we implement a tool that automates the approach and construct a goal model from mobile application reviews.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
    </sec>
    <sec id="sec-2">
      <title>Background</title>
      <p>
        Requirements analysis is an important process in software development. In this process, analysts organize
requirements that are obtained from reviews or interviews. The analysts also have to analyze requirements
con icts and de ne countermeasures. Requirements incompleteness may cause insufficient implementation of
functions that users request. To prevent requirement incompleteness, various requirements analysis models are
proposed in prior work. In our research, we focus on the goal model, one of the requirements analysis models. The
goal model visualizes requirements as goals in a hierarchical structure. It also enables the analysts to decompose
goals into subgoals systematically and to nd implicit goals easily. Examples of goal models include KAOS [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ],
i* [9], NFR [6], and AGORA [5]. In our previous work, we proposed an approach of goal model elaboration for
localizing changes in software evolution [7].
      </p>
      <p>Copyright ⃝c 2019 by the paper's authors. Copying permitted for private and academic purposes.</p>
      <p>!"#$
%"&amp;'#(()*+</p>
      <p>,#*#"-.#
/-+$&amp;0$1&amp;"2(
3#'.&amp;")4#5"#6)#7(
-*25(.&amp;"#5.8#95)*5</p>
      <p>-59-."):</p>
      <p>B.#%5C@5D&lt;?(.#")*+
F#9&amp;6#5
(.&amp;%7&amp;"2(</p>
      <p>D-&lt;'?&lt;-.#</p>
      <p>GH</p>
      <p>B&amp;".57&amp;"2(</p>
      <p>I=5GH</p>
      <p>B#&lt;#'. 7&amp;"2( -(
- +&amp;-&lt; 2#('")%.)&amp;*</p>
      <p>
        Some research focuses on collecting and using user reviews. Chen et al. [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] proposed a framework,
ARMiner, that shows grouped and ranked reviews to analysts. The framework lters non-informative reviews and
groups reviews by topic modeling. Finally, it visualizes useful information and facilitates the developers to mine
information. Fu et al. [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] examined the validity of each review by digitization of emotion that a word represents.
They implemented a tool, WisCom, that discovers inconsistencies in reviews and identi es reasons why users like
or dislike an application. Williams and Mahmoud [8] proposed a method of collecting and organizing technical
information such as software bug reports and user requests from Twitter. In this paper, we propose an approach
that visualizes requirements as goals that are derived from reviews.
3
3.1
      </p>
    </sec>
    <sec id="sec-3">
      <title>Goal Model Construction</title>
      <p>Overview</p>
      <p>Step 1: Clustering. Fig. 2 illustrates the overview of the clustering. Each review as input data contains
its title and body text. First, reviews are pre-processed by lemmatization and stopwords elimination. Then
a bag-of-words (BoW) is generated from each review and stored in a matrix as a vector. Finally, the Ward
method [4], which is a hierarchical clustering method, is applied. The Ward method couples clusters in order
of the distance between clusters and organizes them into a tree structure. We use the tree structure as the
structure of the goal model to be constructed. Moreover, compared with non-hierarchical clustering methods
such as k-means clustering, the hierarchical clustering method does not require the user to x the number of
clusters in advance. Since our approach aims to cluster reviews with respect to functions, it is difficult to predict
the number of clusters. Therefore, we use the hierarchical clustering method for constructing a goal model.</p>
      <p>Step 2: Goal de nition. Fig. 3 illustrates the overview of the goal de nition. In the previous step, pairs
of clusters whose distance between them is close are coupled to generate a hierarchical structure. To construct
a goal model from the clustering result, we regard the coupled clusters as goals. This step rst weightens words
in a cluster and then selects several words that characterize reviews in the cluster as a goal description. Before
weightening words, general words that do not represent functions should be excluded. We use DF (document
frequency), which represents the number of documents where the word appears, as the weight of a word. Several
words are selected to de ne goal descriptions according to the DF values. Through these two steps, a goal model
is constructed from user reviews. Fig. 4 illustrates an example of a generated goal model.
!"#$%&amp;'
!"#$"%</p>
      <p>&amp;
!"#$%&amp;'',."#$%&amp;'()&amp;
!"#$%&amp;'()</p>
      <p>)(*+(,
!"#$%&amp;'()
)(*+(,
We examined whether the construction method can construct an appropriate goal model from user reviews. We
implemented a tool that automatically performs the construction method. The Python programming language,
and NLTK for word division and lemmatization, and Gensim library for generating bag-of-words are used for
tool implementation.</p>
      <p>Experimental Method. We performed an experiment as follows. First, we collected 500 reviews of Google
Docs application from Apple App Store using iTunes search API. Google Docs is a le manager application to
edit, save and share les. It also has a function to access les offline. In Google Docs, users can access les by
the application using PC, mobile phone, or tablet. Next, we manually removed reviews that are not described
in English. We nally used 491 reviews as the input of the tool. We also manually constructed a goal model
from the application reviews for comparison. Finally, we constructed a goal model by the proposed approach.
By tuning a design parameter, we let the automatically generate goal model have the same number of leaf goals
as the manually constructed one for comparison purposes.</p>
      <p>Experimental Results and Discussion. In the evaluation, we focus on leaf goals and evaluate how closely
each leaf goal in the automatically generated goal model matches a leaf goal in the manually generated goal
model. When constructing the goal models, leaf goal nodes are created by aggregating a set of reviews. Thus
every review is associated with one of the leaf goals in both goal models. Now let ri;j = nj =ni where ni is the
number of reviews associated with leaf goal i in the automatically generated goal model and nj is the number
!"#$%&amp;'()*+,%-$&amp;
).%-&amp;'/01%&amp;'2#3%
!"#$%&amp;'()*+,%-$&amp;
0((&amp;'%4+0$#)-&amp;'3#/$</p>
      <p>).%-&amp;'2#3%&amp;
/01%&amp;'0**%//&amp;'20/$''
5%1#%!'6
5%1#%!'7
5%1#%!'8</p>
      <p>).%-&amp;'2#3%&amp;
0**%//&amp;')223#-%&amp;'+.3)0(
of those in the ni reviews that are associated with leaf goal j in the manually generated goal model.</p>
      <p>Fig. 5 shows top three ri;j for each automatically generated leaf goal i. For example, let i be the third goal
\phone, time, space, press, responsive." This goal shares associated reviews with two goals in the manually
constructed goal model. In fact, three reviews are associated with i and two of them are associated with one
manually generated leaf goal j1, while the remaining one is associated with another leaf goal j2. Hence ri;j1 = 2=3
and ri;j2 = 1=3.</p>
      <p>The results show that for many of the automatically generated leaf goals, a majority of their associated reviews
are concentrated on one or two manually generated goals, which means that the leaf goals in the two goal models
match each other to a substantial extent.
5</p>
    </sec>
    <sec id="sec-4">
      <title>Conclusions</title>
      <p>In this paper, we reported the experience of the goal model construction based on user review classi cation. We
developed a prototype tool that implements the proposed approach. In the experiment, we constructed a goal
model from user reviews and evaluated the results obtained.</p>
      <p>For future work, we identi ed the following improvement points:</p>
      <p>Goal description readability: in our approach, words in reviews are weighted and several words are
selected as a goal description. However, some goal descriptions are still difficult to understand the
corresponding functions. To improve the goal description readability, we may have to rede ne the metrics instead
of DF.</p>
      <p>The quality of a goal model: the nal objective of our research is to construct a goal model that explicitly
visualizes function requests and bug information. To accomplish this objective, the tool should introduce a
mechanism that visualizes goal types, such as function request or bug information.
!"))$
!"))$
!"))$
!"))$
!"))$
!"))$
!"))$
!"&amp;($
!"&amp;'$
!"&amp;'$
!"&amp;'$
!"&amp;&amp;$
!"&amp;!$
!"&amp;!$
!"'!$
!"'!$
!"'!$
!"%*$
!"%*$
!"#*$
!"#*$
!"#)$</p>
      <p>!"#)$
!"#+$
!"&amp;'$
!"&amp;'$
!"&amp;&amp;$
!"&amp;!$
!"&amp;!$
#"!!$
#"!!$
!"))$
!"))$
!"))$
!"))$
!"))$
!"#+$
!"##$
!"&amp;!$
!"&amp;!$
!"&amp;!$
#87
&amp;1=
).=
!"#*$
!"#*$
!"&amp;'$
!"&amp;'$
!"'!$
!"'!$
!"'!$
!"))$
!"))$
!"))$
!"))$
!"))$
!"))$
!"))$
6?-145$72945$860&gt;45$6.4885$.486-182B4</p>
      <p>&lt;2D5$260=5$E;//C5$&gt;:2&gt;A5$;8;0::C
.4949E4.5$47&gt;5$06685$=0.A5$2B4
6.0&gt;72&gt;0:5$0;7-9072&gt;0::C5$:-845$&gt;060E2:27C5$7C64
&lt;-:=4.5$&lt;-175$6.-F4&gt;75$72945$260=
26?-145$-672-15$907?49072&gt;0:5$74..2E:45$@4E
&gt;-96;74.5$&gt;.08?5$7;7-.20:5$/--/:4=-&gt;85$260=
=-&gt;;94175$&lt;2D5$864::5$26?-145$&gt;?4&gt;A
@-.A5$=-&gt;85$0&gt;&gt;4885$?0.=5$C40.</p>
      <p>@.2745$7C645$72945$4B4.C5$&gt;.4074</p>
      <p>=-&gt;85$6088&gt;-=45$:-&gt;A5$:2&lt;45$/.-;6
@-.A5$=-&gt;;94175$&lt;21=5$&gt;.40745$7294
7C645$&lt;-.95$&gt;.065$&lt;2D5$&gt;-96;74.
function.
236{244
[9] Yu, E.S.K.: Towards modelling and reasoning support for early-phase requirements engineering. In:
Proceedings of the Third IEEE International Symposium on Requirements Engineering, 1997. pp. 226{235 (January
1997)
=-&gt;;94175$8&gt;?--:5$@-.A5$8?0.45$80B4
!"#%$
!"#)$</p>
      <p>!"!%$
-./012345$-672-15$8296:45$64.8-10:5$87;&lt;&lt;
!"#!$
!"#!$</p>
      <p>!"#!$
!"!!$
!"#!$
!")!$
!"+!$
!"'!$
!"%!$
!"*!$
!",!$
!"(!$
#"!!$</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Chen</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lin</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hoi</surname>
            ,
            <given-names>S.C.H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Xiao</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhang</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Ar-miner: Mining informative reviews for developers from mobile app marketplace</article-title>
          .
          <source>In: Proceedings of the 36th International Conference on Software Engineering</source>
          . pp.
          <volume>767</volume>
          {
          <fpage>778</fpage>
          .
          <source>ICSE</source>
          <year>2014</year>
          , ACM (
          <year>2014</year>
          ), http://doi.acm.
          <source>org/10</source>
          .1145/2568225.2568263
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Dardenne</surname>
            ,
            <given-names>A</given-names>
          </string-name>
          .,
          <string-name>
            <surname>van Lamsweerde</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fickas</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Goal-directed requirements acquisition</article-title>
          .
          <source>Science of Computer Programming</source>
          <volume>20</volume>
          (
          <issue>1-2</issue>
          ),
          <volume>3</volume>
          {
          <fpage>50</fpage>
          (Apr
          <year>1993</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Fu</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lin</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Li</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Faloutsos</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hong</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sadeh</surname>
          </string-name>
          , N.:
          <article-title>Why people hate your app: Making sense of user feedback in a mobile app store</article-title>
          .
          <source>In: Proceedings of the 19th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining</source>
          . pp.
          <volume>1276</volume>
          {
          <fpage>1284</fpage>
          . KDD '13,
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2013</year>
          ), http://doi.acm.
          <source>org/10</source>
          .1145/2487575.2488202
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>