<!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>CSE</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Tool Support for Decision and Usage Knowledge in Continuous Software Engineering</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Anja Kleebaum</string-name>
          <email>kleebaum@informatik.uni-heidelberg.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jan Ole Johansseny</string-name>
          <email>jan.johanssen@in.tum.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Barbara Paech</string-name>
          <email>paech@informatik.uni-heidelberg.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Bernd Brueggey</string-name>
          <email>bruegge@in.tum.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Heidelberg University Institute of Computer Science Heidelberg</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2018</year>
      </pub-date>
      <volume>3</volume>
      <fpage>74</fpage>
      <lpage>77</lpage>
      <abstract>
        <p>-Continuous software engineering copes with frequent changes and quickly evolving development projects while maintaining a high software quality. Developers require knowledge about former and ongoing decisions as well as about the users' needs to evolve software. Thus, decision and usage knowledge are two important knowledge types in continuous software engineering. Issue tracking and version control systems are widely used in continuous software engineering but lack a structured approach to integrate decision and usage knowledge. In this paper, we present ideas and requirements for a tool support to manage decision and usage knowledge in continuous software engineering. As a first step, we introduce the JIRA DecDoc plug-in for documenting decision knowledge.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
      <p>
        In continuous software engineering (CSE), developers
continuously handle change while maintaining a high software
quality so that builds are releasable at any time [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. For
this purpose, developers create feature branches to implement
a feature, perform code reviews prior to merging a feature
branch, and write tests to ensure code quality [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
      </p>
      <p>
        In particular, both the individuals’ and teams’ knowledge are
important to guarantee a high quality of the software. Every
member of a software development team needs to know the
major decisions made, so that their own decisions are
consistent with the former ones. If developers lack such decision
knowledge and make inconsistent decisions, they are likely
to contribute to the erosion of the software architecture or
introduce other quality problems. Hence, decision knowledge
is important to handle change [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Decision knowledge covers
knowledge about decisions, the problems they address,
solution proposals, their context, and justifications—rationale—
through arguments and assessments.
      </p>
      <p>In CSE, a special focus is put on aligning software features
to users’ needs. The more the developers know about what the
users want, the better they can develop and adopt software for
them. Such usage knowledge can be derived from explicit and
implicit user feedback. Short feedback cycles in CSE provide a
great opportunity to integrate usage knowledge in the decision
making process. Whenever an artifact has changed, or a new
artifact increment evolved, the artifact creator can make the
artifact available to the users. Then, during the artifact’s usage,
the users’ behavior is observed and feedback is collected.</p>
      <p>
        Thus, as already discussed in our previous work [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ],
decision and usage knowledge are two important knowledge types
that need to be managed during CSE. Since this knowledge is
complex, tool support is needed.
      </p>
      <p>
        According to Burge and Brown, essential requirements for
decision knowledge tool support are its integration into the
development environment, direct association of knowledge with
software artifacts (such as code), automatic presentation of the
knowledge when needed, intuitive display of argumentation,
automatic propagation and reevaluation when criteria change,
and support for filtering and querying knowledge [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. In this
paper, we refine these requirements with CSE specific aspects
in order to promote the paradigm shift in documentation [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
      <p>
        Tool support to manage knowledge can be characterized by
its intrusiveness in the software development process [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Tools
that fit into the development context are less intrusive and
will more likely be used [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. Next to integrated development
environments (IDE), issue tracking systems (ITS) and version
control systems (VCS) are widely adopted [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. We focus on
integrating our tool support into these tools. As a first step,
we introduce a plug-in for JIRA1, the JIRA DecDoc plug-in.
      </p>
      <p>This paper is structured as follows. Section II describes key
ideas on how to handle decision knowledge in CSE. Section III
presents the requirements for tool support for decision and
usage knowledge in CSE. Section IV introduces the JIRA
DecDoc plug-in. Section V discusses related work. Section VI
concludes the paper and sketches ideas for further work.</p>
    </sec>
    <sec id="sec-2">
      <title>II. DECISION KNOWLEDGE IN CSE</title>
      <p>
        During CSE, developers collaboratively implement and
deliver many small increments, which involves
decisionmaking. We use the decision documentation model by Hesse
&amp; Paech [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] to represent the thereby emerging decision
knowledge during CSE. This model supports incremental
documentation of decisions, since it does not prescribe a
complete template for decision documentation. Any part of
the decision knowledge can be captured as soon as it is
available. Furthermore, developers are able to collaborate
while documenting decisions and contribute the part of the
decision knowledge they know best.
      </p>
    </sec>
    <sec id="sec-3">
      <title>1https://atlassian.com/software/jira</title>
      <p>1
start
decision knowledge</p>
      <p>is tacit
and inconsistent
with artifacts
decision knowledge
is explicit, distributed,
and inconsistent
with artifacts
3
finish/make
explicit</p>
      <p>decision knowledge
finish/package is explicit and consistent</p>
      <p>with artifacts
2</p>
      <p>To exploit decision knowledge, it is important that decision
knowledge is consistent with the software artifacts it concerns,
e. g., with requirements, design, and code. Consistency means
that decisions are documented as well as linked to and realized
in the artifacts they relate to. Therefore, it is essential that
decision knowledge is made explicit and checked for consistency.</p>
      <p>
        However, in the beginning, decision knowledge is often tacit
in the head of a few developers (Figure 1). If decisions are
not tacit, they are often discussed informally, captured partly
and in a distributed manner, such as in issue comments [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ],
commit messages, pull-requests [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], or chat messages [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
We refer to this decision knowledge as distributed knowledge.
This knowledge is hard to access later and might even be
outdated. Therefore, we consider tacit and distributed knowledge
as inconsistent with artifacts (cf. Figure 1, left).
      </p>
      <p>Thus, tool support is needed to explicitly capture decision
knowledge consistent with artifacts when developers finish
some work. Practices that indicate that developers finished
work are closing a feature task in the ITS and committing code
or merging a feature branch in the VCS. In contrast, practices
that indicate that developers start work are opening a feature
task in the ITS—and for this purpose—the creation of a feature
branch in the VCS. The integration of tool support into such
short-cycled start and finish practices triggers developers to
explicitly capture decision knowledge consistent with artifacts
and exploit it afterwards, indicated by the labeled state
transitions in Figure 1. The left side of these transitions indicates
the type of CSE practice (start or finish), while the right
side indicates the developers’ tasks that we support (package,
make explicit, and consider consistency). These transitions are
further explained in the following section.</p>
    </sec>
    <sec id="sec-4">
      <title>III. TOOL SUPPORT</title>
      <p>In this section, we introduce a running example, describe
the requirements for tool support in CSE using this example,
and map the requirements to tools.</p>
      <p>Example Imagine the development of a software that
computes three dimensional surface models of the earth from
satellite stereo images. The idea behind this software is
the following: An image matching algorithm detects pixels
belonging to the same object—homologous points—on the
stereo images. The distance between the homologous points—
the disparity—is then used to calculate the relative height of
the object, e. g., of a mountain. Thus, image matching is one
essential feature of the software. In this example, developers
decide on how to implement this image matching feature.</p>
      <p>We derive requirements for tool support in CSE by aligning
the running example to Figure 1 and evolving its decision in
Figure 2. As motivated in Section II, a first requirement is:
R1 Developers are supported in explicitly capturing decision
knowledge consistent with artifacts in the tools they work with.</p>
      <p>A developer opens a feature task in the ITS to
implement image matching, indicated by the start transition in
Figure 1- 1 . Developers discuss image matching algorithms in
chat messages and, thus, get into the state decision knowledge
is explicit, distributed, and inconsistent with artifacts. One
developer makes the proposal to implement a common image
matching algorithm based on detecting the maximum zero
normalized cross correlation. A second developer proposes
to take advantage of algorithms provided by the open source
computer vision library (OpenCV), which they think comes
with less implementation effort. However, this also introduces
third party code. Users will have a higher installation effort,
since they have to make sure that the library is correctly
provided by their operation system. Finally, the developers
decide to implement their own image matching algorithm on a
distinct feature branch in the VCS. When merging this branch
back to the mainline, they perform a finish practice. A second
requirement for our tool support is:
R2 Developers are presented with distributed decision
knowledge when performing a finish practice.</p>
      <p>
        Criteria to classify knowledge as relevant may be its creation
within a specific time frame, by the same person, or textual
similarity with the feature task. In this case, relevant decision
knowledge is extracted from a history of chat messages [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
The developers package this knowledge to make it explicit
and consistent with the implemented code (Figure 1- 2 ). Here,
packaging means that knowledge is captured as in Figure 2- 1 .
If the developers had not explicitly discussed the
implementation of the image matching algorithm, this decision knowledge
would be tacit and inconsistent with the code (Figure 1). In
this case, the finish practice would be that they commit code.
A third requirement for our tool support is:
R3 Developers are presented with summarized artifact
changes when performing a finish practice.
      </p>
      <p>
        As a result, the developers would be presented with the
summarized change that they “inserted methods to calculate
the average and the zero normalized cross correlation” inferred
from the code in Figure 2- 1 . To achieve this, a tool parses
the code before and after the change and compares the nodes
of the two syntax trees [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. This triggers developers to
reconstruct decision knowledge, to make tacit decision knowledge
explicit (Figure 1- 3 ). Ideally, developers document decision
knowledge similar to the packaged one in Figure 2- 1 .
      </p>
      <p>The software is continuously deployed to users. After a
while, multiple users provide explicit feedback in the form of
written text stating that the image matching takes a fairly long
time when they process new high-resolution satellite images
(Figure 2- 2 ). A forth requirement for our tool support is:</p>
      <p>Image Matching Feature
#include "opencv2/highgui.hpp"
#include "opencv2/imgproc.hpp"
Implement Image Matching Feature Task 3Improve Image Matching Feature Task #include &lt;iostream&gt;
attached to attached to .#.i.nclude &lt;stdio.h&gt;
4ImzrpeelvreoimsenedonrtmimalaiDzgeeedcmicsraiootnscshicnogrrbealasetiodnon Use farno mimtahgeDeOempcaiestnicoChnVinglibarlagroyrithm Use OSpoelnuCtioVnlibrary
attacks becomes
high-reTsaokleustCiotoononstblrtoaaensreegdofooimrnages UsczereoriAmsobslatanecsgoroeenrrdmarmetoailvaanlietztcieohdning Users might notChoanvsetrianisnttalLeedstshiismlpibleramPryer.ontation effort
2Users repoUrtspeerrFfoeremdabnaccek problems. HowpocianntswoendsIsetesterueceothimomagoelosg?ous
R4 Developers are presented with assessed user feedback,
resulting in pro and contra arguments that are linked to the
respective decision knowledge or to new proposals.</p>
      <p>Based on this insight, a developer creates the contra
argument and attaches it to the image matching decision.
Alternatively, the tool support could automatically assess implicit user
feedback when a certain threshold is reached, such as a drop
in feature usage after its internals have been changed. After
that, the developers create a new feature task to improve image
matching (Figure 2- 3 ). Developers who open the feature task
perform a start practice. A fifth requirement is:
R5 Developers are presented with relevant knowledge and
artifacts when performing a start practice.</p>
      <p>The decision knowledge as well as the former feature task
and code in Figure 2- 1 are presented to the developers.
This triggers the developers to consider consistency when
changing the software (Figure 1- 4 ). Figure 1- 1 indicates a
start practice without any initial knowledge for presentation.
By reflecting the former decision knowledge, the developers
remember the alternative that they could employ the OpenCV
library, which offers fast image matching methods. Therefore,
they revise their former decision (Figure 2- 4 ) and implement
the new code. After a while, a new developer joins the project
team and is asked to improve the image matching even further.
The sixth requirement for our tool support is:
R6 Developers are supported in accessing knowledge by
filtering and searching from within the tools they use and from
a dashboard, not bound to start and finish practices, also from
artifacts such as code and features.</p>
      <p>
        To learn about existing knowledge, developers use a
knowledge dashboard [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] and search for image matching. They are
presented with the feature, the two feature tasks, code, decision
and usage knowledge as depicted on the right side of Figure 2.
      </p>
      <p>Integrated Development Environment</p>
      <p>These requirements could be fulfilled by multiple tools,
though we prefer their implementation into that tool the
developers work with. Figure 3 shows a possible mapping from
the requirements to tools.</p>
    </sec>
    <sec id="sec-5">
      <title>IV. JIRA DECDOC PLUG-IN</title>
      <p>
        In this section, we present the JIRA DecDoc plug-in2 as
a first ITS extension towards our tool support. Thurimella
et al. suggest to customize JIRA to support rationale
guidelines [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], but to the best of our knowledge, this is the
first work to explicitly capture decision knowledge in JIRA.
The JIRA DecDoc plug-in is based on the Unicase DecDoc
tool [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. Both tools—JIRA and Unicase DecDoc—support
developers in documenting decision knowledge in a structured,
collaborative, and incremental way according to the decision
documentation model (DDM) by Hesse &amp; Paech [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. JIRA
DecDoc transfers the concepts from the research prototype
Unicase DecDoc to the widely used commercial tool JIRA.
      </p>
      <p>The JIRA DecDoc plug-in supports two strategies to
implement the DDM: the issue strategy and the active object
strategy. The issue strategy represents the concepts of the
DDM as JIRA issues. JIRA issue links are used to link DDM
elements to each other and to JIRA issues of other types
such as feature tasks. The advantage of this strategy is that
all features available for JIRA issues can be used to manage
decision knowledge, e. g., searching for a decision in the list
of issues. The disadvantage is that the dedicated issue type
scheme needs to be assigned to the JIRA project. To overcome
this disadvantage, the active object strategy uses distinct model
classes for decision, decision components, and links. This
strategy uses object-relational mapping to communicate with
JIRA’s internal database. The JIRA DecDoc plug-in provides a
view that presents decision knowledge similar to Figure 2.
Developers are supported to document decision knowledge either
by using a context menu or an accordion editor. Furthermore,
JIRA DecDoc enables developers to textually filter decision
knowledge. The JIRA DecDoc plug-in fulfills the requirement
R1. It partly fulfills the requirement R6, as it allows to filter
for decision knowledge. Thus, it provides the key decision
knowledge infrastructure that facilitates the implementation of
the other requirements on top of it.</p>
      <p>2The JIRA DecDoc plugin as well as further implementation details and
screenshots are available at https://github.com/cures-hub.</p>
      <p>V. RELATED WORK</p>
      <p>
        There are various tools to manage decision
knowledge during software development. Hesse et al. [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] and
Capilla et al. [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] provide a comparison between existing
tools, such as SEURAT [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] or Archie [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. Alexeeva et al.
provide a literature overview about 56 decision
documentation approaches of which 32 provide tool support [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ].
The requirements for our tool support differ from other tools
as follows: We use short-cycled CSE practices to integrate
tool support that triggers the developers to document and
exploit knowledge, which none of the existing tools address,
e. g., merging of feature branches in the VCS or opening
and closing a feature task in the ITS. We will integrate
informal and distributed knowledge from sources such as chat
messages, pull requests, or issue comments. We will employ
summarization techniques to encourage the reconstruction of
decision knowledge. To the best of our knowledge, none of the
existing tools integrates usage knowledge into the
decisionmaking process. Leveraging the capabilities of CSE, we will
support developers in reflecting on usage knowledge.
      </p>
      <p>
        For usage knowledge, Guzman et al. report on an interactive
visualization to display the summarization of unstructured user
feedback in the form of app reviews [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. Maalej and Nabil
describe the automatic classification of explicit application
reviews into four types and derive requirements for an analytic
tool [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. We extend the presented work in the context of usage
knowledge with a relation to decision knowledge, combined
with a continuous analysis perspective enabled by CSE.
      </p>
    </sec>
    <sec id="sec-6">
      <title>VI. CONCLUSION AND FUTURE WORK</title>
      <p>Continuous software engineering provides great
opportunities for employing decision and usage knowledge—if tool
support is provided. We introduced six requirements for
establishing a tool support and presented the JIRA DecDoc plug-in
as a first step for their implementation.</p>
      <p>We will continue to extend tool support for decision and
usage knowledge in JIRA by implementing requirements R2
to R6. We will implement an IDE-integrated Git client, which
supports developers both in accessing decision knowledge
from code and commits, as well as in documenting it when
committing code or merging branches. It also will support
changes of decision knowledge and code.</p>
      <p>There are various kinds of usage knowledge that are not
addressed in this paper. In requirement R4, we point out the
relevance of explicit usage knowledge in the form of written
user feedback. However, implicit usage knowledge, such as
the results of A/B tests or controlled experiments, require
further tool support. We are working on a usage analytics
system to explore requirements and enable usage knowledge
management in CSE.</p>
      <p>To understand the developers’ needs, we plan to evaluate
the tool support during industrial projects that are part of a
practical course at university. In particular, we will investigate
which knowledge is worth capturing. Furthermore, we will
clarify how to maintain the knowledge in order to keep it
useful and how to access the relevant parts of knowledge.</p>
    </sec>
    <sec id="sec-7">
      <title>ACKNOWLEDGEMENT</title>
      <p>This work was supported by the DFG (German Research
Foundation) under the Priority Programme SPP1593: Design
For Future – Managed Software Evolution (CURES project).
We thank Ewald Rode and Tim Kuchenbuch for their work on
the JIRA DecDoc plugin and their very helpful discussions.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>S.</given-names>
            <surname>Krusche</surname>
          </string-name>
          and
          <string-name>
            <given-names>B.</given-names>
            <surname>Bruegge</surname>
          </string-name>
          , “
          <article-title>CSEPM - A continuous software engineering process metamodel</article-title>
          ,
          <source>” in 3rd Int. Workshop on Rapid Continuous Software Engineering</source>
          ,
          <year>2017</year>
          , pp.
          <fpage>2</fpage>
          -
          <lpage>8</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>S.</given-names>
            <surname>Krusche</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Alperowitz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Bruegge</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M. O.</given-names>
            <surname>Wagner</surname>
          </string-name>
          , “
          <article-title>Rugby: An agile process model based on continuous delivery</article-title>
          ,
          <source>” in 1st Int. Workshop on Rapid Continuous Software Engineering</source>
          ,
          <year>2014</year>
          , pp.
          <fpage>42</fpage>
          -
          <lpage>50</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>A. H.</given-names>
            <surname>Dutoit</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>McCall</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Mistrík</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Paech</surname>
          </string-name>
          , Rationale Management in Softw.
          <source>Engineering: Concepts and Techniques</source>
          . Springer,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>J. O.</given-names>
            <surname>Johanssen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Kleebaum</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Bruegge</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Paech</surname>
          </string-name>
          , “
          <article-title>Towards a systematic approach to integrate usage and decision knowledge in continuous software engineering</article-title>
          ,
          <source>” in 2nd Workshop on Continuous Software Engineering</source>
          ,
          <year>2017</year>
          , pp.
          <fpage>7</fpage>
          -
          <lpage>11</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>J. E.</given-names>
            <surname>Burge</surname>
          </string-name>
          and
          <string-name>
            <given-names>D. C.</given-names>
            <surname>Brown</surname>
          </string-name>
          , “Software engineering using RATionale,
          <source>” Journal of Systems and Software</source>
          , vol.
          <volume>81</volume>
          , no.
          <issue>3</issue>
          , pp.
          <fpage>395</fpage>
          -
          <lpage>413</lpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>M. P.</given-names>
            <surname>Robillard</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Marcus</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Treude</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Bavota</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Chaparro</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Ernst</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. A.</given-names>
            <surname>Gerosa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Godfrey</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Lanza</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Linares-Vásquez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G. C.</given-names>
            <surname>Murphy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Moreno</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Shepherd</surname>
          </string-name>
          , and E. Wong, “
          <article-title>On-demand developer documentation</article-title>
          ,
          <source>” in Int. Conf. on Softw. Mainten. and Evol</source>
          .,
          <year>2017</year>
          , p.
          <fpage>5</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>P.</given-names>
            <surname>Kruchten</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Capilla</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J. C.</given-names>
            <surname>Dueñas</surname>
          </string-name>
          , “
          <article-title>The decision view's role in software architecture practice</article-title>
          ,
          <source>” IEEE Software</source>
          , vol.
          <volume>26</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>36</fpage>
          -
          <lpage>42</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>S.</given-names>
            <surname>Saito</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Iimura</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. K.</given-names>
            <surname>Massey</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <surname>A. I. Antón</surname>
          </string-name>
          , “
          <article-title>How much undocumented knowledge is there in agile software development? Case study on industrial project using issue tracking system and version control system</article-title>
          ,
          <source>” in 25th Int. Requir. Eng. Conf.</source>
          ,
          <year>2017</year>
          , pp.
          <fpage>186</fpage>
          -
          <lpage>195</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>T.-M. Hesse</surname>
            and
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Paech</surname>
          </string-name>
          , “
          <article-title>Supporting the collaborative development of requirements and architecture documentation</article-title>
          ,
          <source>” in 3rd Int. Workshop on the Twin Peaks of Requir. and Architecture</source>
          . IEEE,
          <year>2013</year>
          , pp.
          <fpage>22</fpage>
          -
          <lpage>26</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>T.-M. Hesse</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          <string-name>
            <surname>Lerche</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Seiler</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          <string-name>
            <surname>Knoess</surname>
            , and
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Paech</surname>
          </string-name>
          , “
          <article-title>Documented decision-making strategies and decision knowledge in open source projects: An empirical study on firefox issue reports</article-title>
          ,
          <source>” Information and Software Technology</source>
          , vol.
          <volume>79</volume>
          , pp.
          <fpage>36</fpage>
          -
          <lpage>51</lpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>J.</given-names>
            <surname>Brunet</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G. C.</given-names>
            <surname>Murphy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Terra</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Figueiredo</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Serey</surname>
          </string-name>
          , “
          <article-title>Do developers discuss design?</article-title>
          ”
          <source>in 11th Working Conference on Mining Software Repositories. ACM</source>
          ,
          <year>2014</year>
          , pp.
          <fpage>340</fpage>
          -
          <lpage>343</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>R.</given-names>
            <surname>Alkadhi</surname>
          </string-name>
          , T. La¸ta, E. Guzman, and
          <string-name>
            <given-names>B.</given-names>
            <surname>Bruegge</surname>
          </string-name>
          , “
          <article-title>Rationale in development chat messages: An exploratory study</article-title>
          ,
          <source>” in 14th Int. Conference on Mining Software Repositories. IEEE</source>
          ,
          <year>2017</year>
          , pp.
          <fpage>436</fpage>
          -
          <lpage>446</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>L. F.</given-names>
            <surname>Cortés-Coy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Linares-Vásquez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Aponte</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Poshyvanyk</surname>
          </string-name>
          , “
          <article-title>On automatically generating commit messages via summarization of source code changes</article-title>
          ,
          <source>” in 14th Int. Working Conference on Source Code Analysis and Manipulation. IEEE</source>
          ,
          <year>2014</year>
          , pp.
          <fpage>275</fpage>
          -
          <lpage>284</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>A. K. Thurimella</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Schubanz</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Pleuss</surname>
          </string-name>
          , and G. Botterweck, “Guidelines for Managing Requirements Rationales,” IEEE Software, vol.
          <volume>34</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>82</fpage>
          -
          <lpage>90</lpage>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>T.-M. Hesse</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Kuehlwein</surname>
          </string-name>
          , and T. Roehm, “
          <article-title>DecDoc: A tool for documenting design decisions collaboratively and incrementally</article-title>
          ,
          <source>” in 1st Int. Workshop on Dec. Making in Softw. ARCHitecture</source>
          ,
          <year>2016</year>
          , pp.
          <fpage>30</fpage>
          -
          <lpage>37</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>R.</given-names>
            <surname>Capilla</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Jansen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Tang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Avgeriou</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M. A.</given-names>
            <surname>Babar</surname>
          </string-name>
          , “
          <article-title>10 years of software architecture knowledge management: Practice and future</article-title>
          ,
          <source>” Journal of Systems and Software</source>
          , vol.
          <volume>116</volume>
          , pp.
          <fpage>191</fpage>
          -
          <lpage>205</lpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>J.</given-names>
            <surname>Cleland-Huang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mirakhorli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Czauderna</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Wieloch</surname>
          </string-name>
          , “
          <article-title>Decision-centric traceability of architectural concerns</article-title>
          ,
          <source>” in 7th Int. Workshop on Traceability in Emerging Forms of Software Engineering. IEEE</source>
          ,
          <year>2013</year>
          , pp.
          <fpage>5</fpage>
          -
          <lpage>11</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>Z.</given-names>
            <surname>Alexeeva</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Perez-Palacin</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>R.</given-names>
            <surname>Mirandola</surname>
          </string-name>
          , “
          <article-title>Design decision documentation: A literature overview,” in Software Architecture, ser</article-title>
          .
          <source>LNCS</source>
          . Springer Berlin Heidelberg,
          <year>2016</year>
          , vol.
          <volume>5292</volume>
          , pp.
          <fpage>84</fpage>
          -
          <lpage>101</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>E.</given-names>
            <surname>Guzman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Bhuvanagiri</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Bruegge</surname>
          </string-name>
          , “
          <article-title>FAVe: Visualizing user feedback for software evolution</article-title>
          ,
          <source>” in 2nd Working Conference on Software Visualization. IEEE</source>
          ,
          <year>2014</year>
          , pp.
          <fpage>167</fpage>
          -
          <lpage>171</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>W.</given-names>
            <surname>Maalej</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.</given-names>
            <surname>Nabil</surname>
          </string-name>
          , “
          <article-title>Bug report, feature request, or simply praise? On automatically classifying app reviews,” in 23rd International Requirements Engineering Conference</article-title>
          . IEEE,
          <year>2015</year>
          , pp.
          <fpage>116</fpage>
          -
          <lpage>125</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>