A Study of Documentation for Software Architecture

05/26/2023
by   Neil A. Ernst, et al.
0

Documentation is an important mechanism for disseminating software architecture knowledge. Software project teams can employ vastly different formats for documenting software architecture, from unstructured narratives to standardized documents. We explored to what extent this documentation format may matter to newcomers joining a software project and attempting to understand its architecture. We conducted a controlled questionnaire-based study wherein we asked 65 participants to answer software architecture understanding questions using one of two randomly-assigned documentation formats: narrative essays, and structured documents. We analyzed the factors associated with answer quality using a Bayesian ordered categorical regression and observed no significant association between the format of architecture documentation and performance on architecture understanding tasks. Instead, prior exposure to the source code of the system was the dominant factor associated with answer quality. We also observed that answers to questions that require applying and creating activities were statistically significantly associated with the use of the system's source code to answer the question, whereas the document format or level of familiarity with the system were not. Subjective sentiment about the documentation format was comparable: Although more participants agreed that the structured document was easier to navigate and use for writing code, this relation was not statistically significant. We conclude that, in the limited experimental context studied, our results contradict the hypothesis that the format of architectural documentation matters. We surface two more important factors related to effective use of software architecture documentation: prior familiarity with the source code, and the type of architectural information sought.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
08/30/2021

Study of the Utility of Text Classification Based Software Architecture Recovery Method RELAX for Maintenance

Background. The software architecture recovery method RELAX produces a c...
research
05/07/2018

Need for Sleep: the Impact of a Night of Sleep Deprivation on Novice Developers' Performance

We present a quasi-experiment to investigate whether, and to what extent...
research
04/23/2023

U Owns the Code That Changes and How Marginal Owners Resolve Issues Slower in Low-Quality Source Code

[Context] Accurate time estimation is a critical aspect of predictable s...
research
01/03/2023

Characterizing Architecture Related Posts and Their Usefulness in Stack Overflow

Context: Stack Overflow (SO) has won the intention from software enginee...
research
03/28/2023

Understanding the Role of Images on Stack Overflow

Images are increasingly being shared by software developers in diverse c...
research
01/23/2019

The Value of Software Architecture Recovery for Maintenance

In order to maintain a system, it is beneficial to know its software arc...

Please sign up or login with your details

Forgot password? Click here to reset