Producing Just Enough Documentation: The Next SAD Version Problem

Software architecture knowledge is an important asset in today’s projects, as it serves to share the main design decisions among the project stakeholders. Architectural knowledge is commonly captured by the Software Architecture Document (SAD), an artifact that is useful but can also be costly to produce and maintain. In practice, the SAD often fails to fulfill its mission of addressing the stakeholders’ information needs, due to factors such as: detailed or high-level contents that do not consider all stakeholders, outdated documentation, or documentation generated late in the lifecycle, among others. To alleviate this problem, we propose a documentation strategy that seeks to balance the stakeholders’ interests in the SAD against the efforts of producing it. Our strategy is cast as an optimization problem called ”the next SAD version problem” (NSVP) and several search-based techniques for it are discussed. A preliminary evaluation of our approach has shown its potential for exploring cost-benefit tradeoffs in documentation production.

[1]  Kalyanmoy Deb,et al.  A fast and elitist multiobjective genetic algorithm: NSGA-II , 2002, IEEE Trans. Evol. Comput..

[2]  Jorge Andrés Díaz Pace,et al.  A Stakeholder-Centric Optimization Strategy for Architectural Documentation , 2013, MEDI.

[3]  Philippe Kruchten,et al.  The value of design rationale information , 2013, TSEM.

[4]  Rozanki Software Systems Architecture , 2015 .

[5]  Urmila M. Diwekar,et al.  Introduction to Applied Optimization , 2020, Springer Optimization and Its Applications.

[6]  David Lorge Parnas,et al.  Precise Documentation: The Key to Better Software , 2010, The Future of Software Engineering.

[7]  Andreas Rüping,et al.  Agile Documentation: A Pattern Guide to Producing Lightweight Documents for Software Projects , 2003 .

[8]  Enrique Alba,et al.  A study of the bi-objective next release problem , 2010, Empirical Software Engineering.

[9]  Dong Zhou,et al.  Translation techniques in cross-language information retrieval , 2012, CSUR.

[10]  Yuanyuan Zhang,et al.  The multi-objective next release problem , 2007, GECCO '07.

[11]  Ronald K. Mitchell,et al.  Toward a Theory of Stakeholder Identification and Salience: Defining the Principle of who and What Really Counts , 1997 .

[12]  Daniel Le Berre,et al.  The Sat4j library, release 2.2 , 2010, J. Satisf. Boolean Model. Comput..

[13]  Hans van Vliet,et al.  Real-life IT architecture design reports and their relation to IEEE Std 1471 stakeholders and concerns , 2006, Automated Software Engineering.

[14]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[15]  Victor J. Rayward-Smith,et al.  The next release problem , 2001, Inf. Softw. Technol..

[16]  Felix Bachmann,et al.  Experience Using the Web-Based Tool Wiki for Architecture Documentation , 2005 .

[17]  Yuanyuan Zhang,et al.  Search-based software engineering: Trends, techniques and applications , 2012, CSUR.

[18]  H. van Vliet,et al.  Experiences with a Wiki to Support Architectural Knowledge Sharing , 2008 .

[19]  Eoin Woods,et al.  Software Systems Architecture: Working with Stakeholders Using Viewpoints and Perspectives , 2005 .

[20]  Jan Bosch,et al.  Software Architecture as a Set of Architectural Design Decisions , 2005, 5th Working IEEE/IFIP Conference on Software Architecture (WICSA'05).

[21]  Paul Clements,et al.  A Practical Method for Documenting Software Architectures , 2002 .

[22]  David Garlan,et al.  Documenting software architectures: views and beyond , 2002, 25th International Conference on Software Engineering, 2003. Proceedings..

[23]  Anthony J. Lattanze Architecting Software Intensive Systems: A Practitioners Guide , 2008 .

[24]  Paul Clements,et al.  Software Architecture in Practice: Addison-Wesley , 1998 .

[25]  DebK.,et al.  A fast and elitist multiobjective genetic algorithm , 2002 .