<!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>Gesellschaft für Informatik, Bonn</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Continuous Rationale Management Using the ConDec Tools</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 Johanssen</string-name>
          <email>jan.johanssen@tum.de</email>
          <xref ref-type="aff" rid="aff1">1</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 Bruegge</string-name>
          <email>bruegge@in.tum.de</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Heidelberg University</institution>
          ,
          <addr-line>Heidelberg</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Technical University of Munich</institution>
          ,
          <addr-line>Munich</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2021</year>
      </pub-date>
      <volume>1</volume>
      <abstract>
        <p>We summarize the paper Continuous Management of Requirement Decisions Using the ConDec Tools, which we presented at the 26 ℎ International Working Conference on Requirements Engineering (REFSQ2020). We summarize ConDec's features and a usage scenario. In addition, the REFSQ paper provides an overview of the views, the architecture, and it sketches evaluation eforts.</p>
      </abstract>
      <kwd-group>
        <kwd>Rationale Management</kwd>
        <kwd>Decision Knowledge</kwd>
        <kwd>Knowledge Graph</kwd>
        <kwd>Requirements</kwd>
        <kwd>Code</kwd>
        <kwd>Design Decisions</kwd>
        <kwd>Change Impact Analysis</kwd>
        <kwd>Agile Software Development</kwd>
        <kwd>ConDec</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Summary
While developing a software system, developers – as well as stakeholders of other roles, such
as requirements engineers, architects, or testers – continuously make decisions and have to
reflect on previous decisions. For example, they decide on how to implement functional
requirements, how to fulfill quality requirements, and how to solve trade-ofs between
them. They build up important decision knowledge, which is also referred to as rationale.
It is important to manage and share decision knowledge in the context of requirements
and code for the success of a software development project. However, decision knowledge
management is challenging: 1) The documentation of decision knowledge is an additional
efort, i.e., it is intrusive in the development process. 2) The documented knowledge can be
of low quality in terms of completeness and consistency. 3) It might be distributed across
many documentation locations, such as issue comments and commit messages, and thus
dificult to access, share, and use. 4) The documented knowledge can become very large
with a lot of knowledge elements and links in between them.</p>
      <p>The ConDec tools for the continuous management of decision knowledge aim to overcome
these challenges. ConDec provides features and views for documenting and exploiting
decision knowledge in the context of software artifacts, in particular requirements and
code. ConDec integrates into the workflows of agile software development. The developers
document decision knowledge, e.g., decision problems, solution options, and arguments,
within the issue tracking system, commit messages, and code comments. ConDec builds up
a knowledge graph of requirements, decision knowledge, code, and other artifacts (Figure 1).</p>
      <p>Copyright © 2021 for this paper by its authors.</p>
      <p>Use permitted under Creative Commons License Attribution 4.0 International (CC BY 4.0).
Requirement
Development task</p>
      <p>Decision problem
Code class</p>
      <p>Decision captured in the
commit message
Con-argument against the alternative
of another decision problem</p>
      <p>Imagine the following scenario about the development of a user log-in system: An important
decision problem is to select an algorithm to encrypt passwords to ensure their confidentiality.
Imagine that a developer captures the question How to encrypt the password? in the
comment of a Jira issue. The icon indicates that the developer uses a markup language-like
syntax to highlight the question as a decision problem. Subsequently, the developer captures
the solution for the decision problem together with a Jira issue identifier (key) in a commit
message. Now, ConDec performs three actions automatically: 1) It transcribes the commit
message into a new comment of this Jira issue. 2) It highlights the solution decision using a
supervised text classifier, which can be trained and evaluated on the underlying software
development project. 3) It automatically links the solution decision to the respective decision
problem within the knowledge graph. In addition to the automatic linking, developers can
manually create and maintain links between knowledge elements in the knowledge graph.
ConDec supports decision knowledge sharing and collaborative decision making using
a rationale backlog and in meeting agendas. ConDec introduces a definition of done for
high-quality rationale documentation. It supports the fulfillment of the definition of done
with the help of dashboards and automated quality checks integrated into the development
workflow, e.g., when finishing a requirement. For example, the developer can only finish
the log-in requirement if all the decision problems that are documented in a certain link
distance in the knowledge graph are solved. The dashboard shows metrics regarding the
intrarationale completeness (e.g., are there arguments for the decisions?), the rationale coverage
of requirements and code (e.g., how many decisions are documented for a requirement?), the
rationale-to-artifact traceability (e.g., is it possible to navigate to the requirements afected
by a decision?), and the feature branch quality regarding the rationale documentation.
[Kl20]</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <string-name>
            <surname>Kleebaum</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Johanssen</surname>
            ,
            <given-names>J. O.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Paech</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Bruegge</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Continuous Management of Requirement Decisions Using the ConDec Tools</article-title>
          . In: 26th International Conference on Requirements Engineering Workshops, Doctoral Symposium,
          <article-title>Live Studies Track, and Poster Track (REFSQ20). CEUR-WS</article-title>
          .org, Pisa, Italy,
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>