Evaluation of Global Hierarchical Object Graphs for Coding Activities: a Controlled Experiment 1

A diagram of the runtime structure shows objects and their relations and complements diagrams of the code structure. One such diagram, the Ownership Object Graph (OOG), is a global object graph that conveys architectural hierarchy based on annotations in the code. In this work, we ask the research question: do developers benefit from using OOGs, in addition to class diagrams, during their coding activities? We conducted the first controlled experiment evaluating global object graphs in relation to class diagrams. We observed 10 developers, for 3 hours each, perform coding activities on a framework application. Developers struggled with many questions about the object structure. Two developers who used OOGs completed the three tasks compared to only one developer who used only class diagrams. Developers who used OOGs performed their activities in less time by 22–60%, and browsed less irrelevant code by 10–60%, compared to those who used only class diagrams.

[1]  Jaiprakash T. Lallchandani,et al.  Integrated state-based dynamic slicing technique for UML models , 2010, IET Softw..

[2]  Paolo Tonella,et al.  Reverse Engineering of Object Oriented Code (Monographs in Computer Science) , 2004 .

[3]  Dirk Riehle JUnit 3.8 documented using collaborations , 2008, SOEN.

[4]  Marco Torchiano,et al.  Modeling Complex Systems: Class models and instance models , 1999 .

[5]  Marwan Abi-Antoun,et al.  A case study in evaluating the usefulness of the run-time structure during coding tasks , 2010, HAoSE '10.

[6]  Daniel Jackson,et al.  Lightweight extraction of object models from bytecode , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[7]  Silvia Mara Abrahão,et al.  On the effectiveness of dynamic modeling in UML: Results from an external replication , 2009, 2009 3rd International Symposium on Empirical Software Engineering and Measurement.

[8]  Qing Li,et al.  Unified Modeling Language , 2009 .

[9]  Ralph L. Rosnow,et al.  Essentials of Behavioral Research: Methods and Data Analysis , 1984 .

[10]  Robert O'Callahan,et al.  Generalized aliasing as a basis for program analysis tools , 2001 .

[11]  Margaret-Anne Storey,et al.  Manipulating And Documenting Software Structures , 1995 .

[12]  Martin C. Rinard,et al.  Role-based exploration of object-oriented programs , 2002, ICSE '02.

[13]  Craig Chambers,et al.  Ownership Domains: Separating Aliasing Policy from Mechanism , 2004, ECOOP.

[14]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[15]  Genny Tortora,et al.  Data Model Comprehension: An Empirical Comparison of ER and UML Class Diagrams , 2008, 2008 16th IEEE International Conference on Program Comprehension.

[16]  André Spiegel,et al.  Automatic distribution of object oriented programs , 2002 .

[17]  Marwan Abi-Antoun Static extraction and conformance analysis of hierarchical runtime architectural structure , 2009, OOPSLA 2009.

[18]  Patrick Lam,et al.  A Type System and Analysis for the Automatic Extraction and Enforcement of Design Information , 2003, ECOOP.

[19]  J. Favre,et al.  On Squeezing M 0 , M 1 , M 2 , and M 3 into a Single Object Diagram , 2005 .

[20]  Thomas D. LaToza,et al.  Questions about object structure during coding activities , 2010, CHASE '10.

[21]  Paolo Tonella,et al.  Static and dynamic C++ code analysis for the recovery of the object diagram , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[22]  Marco Torchiano,et al.  How Developers' Experience and Ability Influence Web Application Comprehension Tasks Supported by UML Stereotypes: A Series of Four Experiments , 2010, IEEE Transactions on Software Engineering.

[23]  M. Schreckenberg Modeling Complex Systems , 2004 .

[24]  Jochen Quante,et al.  Do Dynamic Object Process Graphs Support Program Understanding? - A Controlled Experiment. , 2008, 2008 16th IEEE International Conference on Program Comprehension.

[25]  Irit Hadar,et al.  On the Contribution of UML Diagrams to Software System Comprehension , 2004, J. Object Technol..

[26]  Henrik Bærbak Christensen Flexible, Reliable Software - Using Patterns and Agile Development , 2010, Chapman and Hall / CRC textbooks in computing.

[27]  Nariman Ammar,et al.  Evaluation of the usefulness of diagrams of the run-time structure for coding activities , 2011 .

[28]  Danilo Caivano,et al.  Assessing the Influence of Stereotypes on the Comprehension of UML Sequence Diagrams: A Controlled Experiment , 2008, MoDELS.

[29]  Marco Torchiano,et al.  On the effectiveness of the UML object diagrams: A replicated experiment , 2011 .

[30]  Marwan Abi-Antoun,et al.  Static extraction and conformance analysis of hierarchical runtime architectural structure using annotations , 2009, OOPSLA '09.

[31]  Keith H. Bennett,et al.  Software Evolution and the Staged Model of the Software Lifecycle , 2002, Adv. Comput..