An optimization‐based tool to support the cost‐effective production of software architecture documentation

Some of the challenges faced by most software projects are tight budget constraints and schedules, which often make managers and developers prioritize the delivery of a functional product over other engineering activities, such as software documentation. In particular, having little or low‐quality documentation of the software architecture of a system can have negative consequences for the project, as the architecture is the main container of the key design decisions to fulfill the stakeholders' goals. To further complicate this situation, generating and maintaining architectural documentation is a non‐trivial and time‐consuming activity. In this context, we present a tool approach that aims at (i) assisting the documentation writer in their tasks and (ii) ensuring a cost‐effective documentation process by means of optimization techniques. Our tool, called SADHelper, follows the principle of producing reader‐oriented documentation, in order to focus the available, and often limited, resources on generating just enough documentation that satisfies the stakeholders' concerns. The approach was evaluated in two experiments with users of software architecture documents, with encouraging results. These results show evidence that our tool can be useful to reduce the documentation costs and even improve the documentation quality, as perceived by their stakeholders. Copyright © 2015 John Wiley & Sons, Ltd.

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

[2]  Yvonne Dittrich,et al.  Software architecture awareness in long-term software product evolution , 2010, J. Syst. Softw..

[3]  Jeffrey C. Carver,et al.  A checklist for integrating student empirical studies with research and teaching goals , 2010, Empirical Software Engineering.

[4]  Lars Grunske,et al.  Software Architecture Optimization Methods: A Systematic Literature Review , 2013, IEEE Transactions on Software Engineering.

[5]  Daphne Koller,et al.  Making Rational Decisions Using Adaptive Utility Elicitation , 2000, AAAI/IAAI.

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

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

[8]  Jens Knodel,et al.  Architecture Engagement Purposes: Towards a Framework for Planning "Just Enough"-Architecting in Software Engineering , 2012, 2012 Joint Working IEEE/IFIP Conference on Software Architecture and European Conference on Software Architecture.

[9]  Matthias Naab,et al.  Software Architecture Documentation for Developers: A Survey , 2013, Software Engineering.

[10]  Peng Liang,et al.  Ontology-based Software Architecture Documentation , 2012, 2012 Joint Working IEEE/IFIP Conference on Software Architecture and European Conference on Software Architecture.

[11]  Paris Avgeriou,et al.  Enriching software architecture documentation , 2009, J. Syst. Softw..

[12]  D J Mersy,et al.  Rubella immunity in chemically dependent adolescent females. , 1990, Journal of substance abuse treatment.

[13]  Patricia Lago,et al.  Using wikis to support architectural knowledge management in global software development , 2010, SHARK '10.

[14]  Yuanyuan Zhang,et al.  Search based software engineering for software product line engineering: a survey and directions for future work , 2014, SPLC.

[15]  Kenneth Steiglitz,et al.  Combinatorial Optimization: Algorithms and Complexity , 1981 .

[16]  Paolo Toth,et al.  Knapsack Problems: Algorithms and Computer Implementations , 1990 .

[17]  Lionel C. Briand,et al.  A practical guide for using statistical tests to assess randomized algorithms in software engineering , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

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

[19]  Mel Ó Cinnéide,et al.  Journal of Software Maintenance and Evolution: Research and Practice Search-based Refactoring: an Empirical Study , 2022 .

[20]  Mel Ó Cinnéide,et al.  Search-based refactoring: an empirical study , 2008 .

[21]  David Pisinger A minimal algorithm for the Multiple-choice Knapsack Problem , 1995 .

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

[23]  Elena Navarro,et al.  Evolution styles: using architectural knowledge as an evolution driver , 2013, J. Softw. Evol. Process..

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

[25]  Jorge Andrés Díaz Pace,et al.  Producing Just Enough Documentation: The Next SAD Version Problem , 2014, SSBSE.

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

[27]  Daniela Godoy,et al.  Personalized architectural documentation based on stakeholders’ information needs , 2014, Journal of Software Engineering Research and Development.

[28]  Ken Power,et al.  Stakeholder theory and agile software development , 2010, PROFES '10.

[29]  Marianne Huchard,et al.  Journal of Software Maintenance and Evolution: Research and Practice Search-based Many-to-one Component Substitution , 2022 .

[30]  János D. Pintér,et al.  Introduction to Applied Optimization , 2007, Eur. J. Oper. Res..

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

[32]  Kalyanmoy Deb,et al.  Multiobjective optimization , 1997 .

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

[34]  Mark Harman,et al.  Search Based Approaches to Component Selection and Prioritization for the Next Release Problem , 2006, 2006 22nd IEEE International Conference on Software Maintenance.

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

[36]  Maria Letizia Jaccheri,et al.  Educational Approach to an Experiment in a Software Architecture Course , 2007, 20th Conference on Software Engineering Education & Training (CSEET'07).

[37]  Enrique Alba,et al.  A Study of the Multi-objective Next Release Problem , 2009, 2009 1st International Symposium on Search Based Software Engineering.

[38]  Marco Tulio Valente,et al.  BugMaps-Granger: a tool for visualizing and predicting bugs using Granger causality tests , 2013, Journal of Software Engineering Research and Development.

[39]  Pattie Maes,et al.  Agents that reduce work and information overload , 1994, CACM.

[40]  Irit Hadar,et al.  Less is more: Architecture documentation for agile development , 2013, 2013 6th International Workshop on Cooperative and Human Aspects of Software Engineering (CHASE).

[41]  J. Schiff Wiley‐Interscience Series in Discrete Mathematics and Optimization , 2011 .

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

[43]  Patricia Lago,et al.  A Just-In-Time Architectural Knowledge Sharing Portal , 2008, Seventh Working IEEE/IFIP Conference on Software Architecture (WICSA 2008).

[44]  Paolo Toth,et al.  New trends in exact algorithms for the 0-1 knapsack problem , 2000, Eur. J. Oper. Res..

[45]  Paris Avgeriou,et al.  Guest Editors' Introduction: Software Architecture: Framing Stakeholders' Concerns , 2010, IEEE Softw..

[46]  Carlos A. Coello Coello,et al.  Recent Trends in Evolutionary Multiobjective Optimization , 2005, Evolutionary Multiobjective Optimization.

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

[48]  Thelma Elita Colanzi,et al.  A search-based approach for software product line design , 2014, SPLC.

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

[50]  Miroslaw Staron Using Experiments in Software Engineering as an Auxiliary Tool for Teaching--A Qualitative Evaluation from the Perspective of Students' Learning Process , 2007, 29th International Conference on Software Engineering (ICSE'07).

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

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

[53]  José Javier Martínez-Herráiz,et al.  Assessing the Documentation Development Effort in Software Projects , 2009, IWSM/Mensura.

[54]  Philippe Kruchten,et al.  The 4+1 View Model of Architecture , 1995, IEEE Softw..

[55]  Robert L. Nord,et al.  Reviewing architecture documents using question sets , 2009, 2009 Joint Working IEEE/IFIP Conference on Software Architecture & European Conference on Software Architecture.