Continuous Management of Requirement Decisions Using the ConDec Tools

[Context and motivation] While eliciting, prioritizing, and implementing requirements, requirements engineers and developers continuously make decisions. They establish important decision knowledge that needs to be documented and exploited, i. e., thoroughly managed, so that it contributes to the evolution and future changes of a software system. [Question/problem] The management of decision knowledge is difficult for various reasons: 1) The documentation process is an additional effort, 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 difficult to access and use. [Principal ideas/results] Continuous software engineering (CSE) emerged as a development process that involves frequent, incremental decision making, implementation, and validation of requirements. During CSE, requirements engineers and developers implicitly document decision knowledge during established practices, such as committing code, working with issues in an issue tracking system, or conducting meetings. That means that CSE offers opportunities for the non-intrusive capturing of decision knowledge in various documentation locations. [Contribution] We develop the ConDec tools (https://se.ifi.uni-heidelberg.de/condec.html) that support requirements engineers and developers in documenting and exploiting decision knowledge directly within the tools they use, such as issue tracking and wiki systems, related to various software artifacts, such as requirements and code, and during change impact analysis.

[1]  Raymond McCall,et al.  Rationale Management in Software Engineering: Concepts and Techniques , 2006 .

[2]  Jan Ole Johanssen,et al.  Tool Support for Decision and Usage Knowledge in Continuous Software Engineering , 2018, Software Engineering.

[3]  Jan Ole Johanssen,et al.  How do Practitioners Manage Decision Knowledge during Continuous Software Engineering? (S) , 2019, SEKE.

[4]  Patricia Lago,et al.  Recovering architectural assumptions , 2006, J. Syst. Softw..

[5]  Jane Cleland-Huang,et al.  Decision-Centric Traceability of architectural concerns , 2013, 2013 7th International Workshop on Traceability in Emerging Forms of Software Engineering (TEFSE).

[6]  Gabriele Bavota,et al.  On-demand Developer Documentation , 2017, 2017 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[7]  Klaas-Jan Stol,et al.  Continuous software engineering: A roadmap and agenda , 2017, J. Syst. Softw..

[8]  Barbara Paech,et al.  Continuous Design Decision Support , 2019, Managed Software Evolution.

[9]  Fred D. Davis,et al.  User Acceptance of Computer Technology: A Comparison of Two Theoretical Models , 1989 .

[10]  Philippe Kruchten Documentation of Software Architecture from a Knowledge Management Perspective - Design Representation , 2009, Software Architecture Knowledge Management.

[11]  Heiko Koziolek,et al.  Decision architect - A decision documentation tool for industry , 2016, J. Syst. Softw..

[12]  Jan Ole Johanssen,et al.  Teaching Rationale Management in Agile Project Courses , 2019, SEUH.

[13]  David C. Brown,et al.  Software Engineering Using RATionale , 2008, J. Syst. Softw..

[14]  Rafael Capilla,et al.  Ripple effect to evaluate the impact of changes in architectural design decisions , 2018, ECSA.

[15]  Tom-Michael Hesse,et al.  DecDoc: A Tool for Documenting Design Decisions Collaboratively and Incrementally , 2016, 2016 1st International Workshop on Decision Making in Software ARCHitecture (MARCH).

[16]  Philippe Kruchten,et al.  A Tool to Visualize Architectural Design Decisions , 2008, QoSA.

[17]  Muhammad Ali Babar,et al.  10 years of software architecture knowledge management: Practice and future , 2016, J. Syst. Softw..

[18]  Alexandru Telea,et al.  Ontology-driven visualization of architectural design decisions , 2009, 2009 Joint Working IEEE/IFIP Conference on Software Architecture & European Conference on Software Architecture.