An empirical study on the efficiency of different design pattern representations in UML class diagrams

Design patterns are recognized in the software engineering community as useful solutions to recurring design problems that improve the quality of programs. They are more and more used by developers in the design and implementation of their programs. Therefore, the visualization of the design patterns used in a program could be useful to efficiently understand how it works. Currently, a common representation to visualize design patterns is the UML collaboration notation. Previous work noticed some limitations in the UML representation and proposed new representations to tackle these limitations. However, none of these pieces of work conducted empirical studies to compare their new representations with the UML representation. We designed and conducted an empirical study to collect data on the performance of developers on basic tasks related to design pattern comprehension (i.e., identifying composition, role, participation) to evaluate the impact of three visual representations and to compare them with the UML one. We used eye-trackers to measure the developers’ effort during the execution of the study. Collected data and their analyses show that stereotype-enhanced UML diagrams are more efficient for identifying composition and role than the UML collaboration notation. The UML representation and the pattern-enhanced class diagrams are more efficient for locating the classes participating in a design pattern (i.e., identifying participation).

[1]  Markku Tukiainen,et al.  An eye-tracking methodology for characterizing program comprehension processes , 2006, ETRA.

[2]  Alan Shalloway,et al.  Design Patterns Explained: A New Perspective on Object-Oriented Design (2nd Edition) (Software Patterns Series) , 2004 .

[3]  Massimiliano Di Penta,et al.  An experimental investigation of formality in UML-based development , 2005, IEEE Transactions on Software Engineering.

[4]  Jonathan I. Maletic,et al.  Assessing the Comprehension of UML Class Diagrams via Eye Tracking , 2007, 15th IEEE International Conference on Program Comprehension (ICPC '07).

[5]  Yann-Gaël Guéhéneuc,et al.  TAUPE: towards understanding program comprehension , 2006, CASCON.

[6]  Rick Kazman,et al.  The architecture tradeoff analysis method , 1998, Proceedings. Fourth IEEE International Conference on Engineering of Complex Computer Systems (Cat. No.98EX193).

[7]  K. Rayner Eye movements in reading and information processing: 20 years of research. , 1998, Psychological bulletin.

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

[9]  Amnon H. Eden,et al.  Precise specification and automatic application of design patterns , 1997, Proceedings 12th IEEE International Conference Automated Software Engineering.

[10]  Anneliese Amschler Andrews,et al.  Program Comprehension During Software Maintenance and Evolution , 1995, Computer.

[11]  David A. Carrington,et al.  Empirical Evaluation of Aesthetics-based Graph Layout , 2002, Empirical Software Engineering.

[12]  Zhang Kang,et al.  Visualizing Design Patterns in Their Applications and Compositions , 2007 .

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

[14]  Kang Zhang,et al.  VisDP: a Web service for visualizing design patterns on demand , 2005, International Conference on Information Technology: Coding and Computing (ITCC'05) - Volume II.

[15]  Erich Gamma Applying design patterns in Java , 1998 .

[16]  Patrick Moore,et al.  Gestalt Theory and Instructional Design , 1993 .

[17]  Jürgen Wolff von Gudenberg,et al.  UML Class Diagrams - State of the Art in Layout Techniques , 2003, VISSOFT.

[18]  Scott R. Tilley,et al.  Documenting software systems with views V: towards visual documentation of design patterns as an aid to program understanding , 2007, SIGDOC '07.

[19]  John Grundy,et al.  Design pattern modelling and instantiation using DPML , 2002 .

[20]  Joseph H. Goldberg,et al.  Computer interface evaluation using eye movements: methods and constructs , 1999 .

[21]  Joseph H. Goldberg,et al.  Eye tracking in web search tasks: design implications , 2002, ETRA.

[22]  Foutse Khomh,et al.  Do Design Patterns Impact Software Quality Positively? , 2008, 2008 12th European Conference on Software Maintenance and Reengineering.

[23]  Ralph Johnson,et al.  Design Patterns CD: Elements of Reusable Object-Oriented Software, (CD-ROM) , 1998 .

[24]  Richard C. Waters,et al.  The Programmer's Apprentice: a research overview , 1988, Computer.

[25]  Holger Eichelberger,et al.  Nice class diagrams admit good design? , 2003, SoftVis '03.

[26]  Zhiwei Guan,et al.  The validity of the stimulated retrospective think-aloud method as measured by eye tracking , 2006, CHI.

[27]  Stephen M. Kosslyn,et al.  Representational Correspondence as a Basic Principle of Diagram Design , 2005, Knowledge and Information Visualization.

[28]  Scott W. Ambler,et al.  The Elements of UML™ 2.0 Style: The Elements of UML™ 2.0 Style , 2005 .

[29]  Lerina Aversano,et al.  An empirical study on the evolution of design patterns , 2007, ESEC-FSE '07.

[30]  Johan F. Hoorn,et al.  Distributed cognition , 2005, Cognition, Technology & Work.

[31]  Sigmar-Olaf Tergan,et al.  Knowledge and Information Visualization, Searching for Synergies [outcome of a workshop held in Tübingen, Germany, May 2004] , 2005, Knowledge and Information Visualization.

[32]  Rudolf K. Keller,et al.  Pattern visualization for software comprehension , 1998, Proceedings. 6th International Workshop on Program Comprehension. IWPC'98 (Cat. No.98TB100242).

[33]  Laura Chamberlain Eye Tracking Methodology; Theory and Practice , 2007 .

[34]  Colin Ware,et al.  Visual Queries: The Foundation of Visual Thinking , 2005, Knowledge and Information Visualization.

[35]  Elliot Soloway,et al.  Designing documentation to compensate for delocalized plans , 1988, CACM.

[36]  Stuart Kent,et al.  Precise Visual Specification of Design Patterns , 1998, ECOOP.

[37]  Scott W. Ambler,et al.  The Elements of UML(TM) 2.0 Style , 2005 .

[38]  Robert B. France,et al.  A UML-based pattern specification technique , 2004, IEEE Transactions on Software Engineering.