A cognitive perspective on developer comprehension of software design documentation

Software design documentation is an important aid for communication during software development and maintenance. Nevertheless, little empirical evidence exists regarding the use of software documentation, and effective software design representation in particular. In an experimental setting, we used documentation from industry in which aspects of a software design were modeled in both a (UML) diagram and text. We recorded and analysed how participants used these media to answer various design-related questions and collected additional information in various questionnaires. By having participants think aloud, we set out to understand the underlying cognitive processes of developer design comprehension by applying the grounded theory method. We validated the results with concepts from the cognitive theory of multimedia learning. Results show a positive correlation between developer certainty and correctness of answers, whereas the opposite was not found. Also, self-rated experience and self-rated skill coincide with higher levels of certainty. We found that participants rated information based on perceived importance and that their "common sense" plays a significant role. Surprisingly, more than 60 percent of the answers were based on the consultation of a single medium. These results clearly ask for further investigation. We propose corresponding future work.

[1]  Judith S. Olson,et al.  Distance Matters , 2000, Hum. Comput. Interact..

[2]  Hans van Vliet,et al.  Software engineering - principles and practice , 1993 .

[3]  Graham R. Gibbs,et al.  Analyzing Qualitative Data , 2014 .

[4]  D. Kuhn,et al.  Judgements under uncertainty: Heuristics and biases , 1984 .

[5]  Janet Holmes,et al.  Expressing Doubt and Certainty in English , 1982 .

[6]  A. Baddeley,et al.  The essential handbook of memory disorders for clinicians , 2004 .

[7]  Herbert A. Simon,et al.  Why a Diagram is (Sometimes) Worth Ten Thousand Words , 1987, Cogn. Sci..

[8]  Ariadi Nugroho,et al.  Level of detail in UML models and its impact on model comprehension: A controlled experiment , 2009, Inf. Softw. Technol..

[9]  Joseph S. Dumas,et al.  User-based evaluations , 2002 .

[10]  Jos van Hillegersberg,et al.  Evaluating the Visual Syntax of UML: An Analysis of the Cognitive Effectiveness of the UMLFamily of Diagrams , 2009, SLE.

[11]  T. Kuhn,et al.  The Structure of Scientific Revolutions. , 1964 .

[12]  A. Baddeley Is working memory still working? , 2001, The American psychologist.

[13]  Leslie P. Willcocks,et al.  Developing a knowledge-based perspective on coordination: The case of global software projects , 2008, Inf. Manag..

[14]  J. Alberto Espinosa,et al.  Ambidextrous coping strategies in globally distributed software development projects , 2006, CACM.

[15]  Michel R. V. Chaudron,et al.  Managing Model Quality in UML-Based Software Development , 2005, 13th IEEE International Workshop on Software Technology and Engineering Practice (STEP'05).

[16]  Thomas D. LaToza,et al.  Maintaining mental models: a study of developer work habits , 2006, ICSE.

[17]  J. Herbsleb,et al.  Global software development , 2001 .

[18]  Daniel L. Moody,et al.  The “Physics” of Notations: Toward a Scientific Basis for Constructing Visual Notations in Software Engineering , 2009, IEEE Transactions on Software Engineering.

[19]  M. D’Esposito Working memory. , 2008, Handbook of clinical neurology.

[20]  Michel R. V. Chaudron,et al.  Experimental Analysis of Textual and Graphical Representations for Software Architecture Design , 2011, 2011 International Symposium on Empirical Software Engineering and Measurement.

[21]  James D. Herbsleb,et al.  Global Software Engineering: The Future of Socio-technical Coordination , 2007, Future of Software Engineering (FOSE '07).

[22]  Jane Huffman Hayes Do You Like Piña Coladas? How Improved Communication Can Improve Software Quality , 2003, IEEE Softw..

[23]  Robert E. Kraut,et al.  Coordination in software development , 1995, CACM.

[24]  T. Kuhn The structure of scientific revolutions, 3rd ed. , 1996 .

[25]  Robert W. Proctor,et al.  Handbook of Psychology: Experimental Psychology , 2003 .

[26]  Claes Wohlin,et al.  Experimentation in software engineering: an introduction , 2000 .

[27]  Susan Weinschenk,et al.  Usability Is Good Business , 1999 .

[28]  Bill Curtis,et al.  A field study of the software design process for large systems , 1988, CACM.

[29]  A. Strauss,et al.  The discovery of grounded theory: strategies for qualitative research aldine de gruyter , 1968 .

[30]  Ritu Agarwal,et al.  Object-oriented modeling with UML: a study of developers' perceptions , 2003, CACM.

[31]  Richard E. Mayer,et al.  Multimedia Learning , 2001, Visible Learning Guide to Student Achievement.

[32]  Pär J. Ågerfalk,et al.  Session details: Flexible and distributed software processes: old petunias in new bowls? , 2006 .

[33]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[34]  K. A. Ericsson,et al.  Protocol Analysis: Verbal Reports as Data , 1984 .

[35]  A. Tversky,et al.  Judgment under Uncertainty: Heuristics and Biases , 1974, Science.

[36]  Walter F. Tichy,et al.  Case study: extreme programming in a university environment , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[37]  Slava Kalyuga,et al.  Knowledge Elaboration: A Cognitive Load Perspective , 2009 .