Empirical Software Engineering

, Volume 15, Issue 5, pp 493–522 | Cite as

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

  • Gerardo Cepeda Porras
  • Yann-Gaël GuéhéneucEmail author


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).


Eye-tracking Design patterns Visualization Empirical study UML class diagrams 



The authors thank Rocco Olivieto for the fruitful discussions and suggestions.


  1. Ambler SW (2005) The elements of UML 2.0 style. Cambridge University Press, CambridgeGoogle Scholar
  2. Aversano L, Canfora G, Cerulo L, Del Grosso C, Di Penta M (2007) An empirical study on the evolution of design patterns. In: Proceedings of the the 6th European software engineering conference and symposium on the foundations of software engineering. ACM, New York, pp 385–394Google Scholar
  3. Bednarik R, Tukiainen M (2006) An eye-tracking methodology for characterizing program comprehension processes. In: Proceedings of 5th symposium on eye tracking research & applications. ACM, New York, pp 125–132CrossRefGoogle Scholar
  4. Bojko A (2005) Eye tracking in user experience testing: how to make the most of it. In: Proceedings of the 14th annual conference of the usability professionals association. Usability Professionals’ Association, BloomingdaleGoogle Scholar
  5. Briand LC, Labiche Y, Di Penta M, Yan-Bondoc H (2005) An experimental investigation of formality in UML-based development. Trans Soft Eng 31(10):833–849CrossRefGoogle Scholar
  6. Chabris CF, Kosslyn SM (2005) Representational correspondence as a basic principle of diagram design. In: Knowledge and information visualization. Springer, New York, pp 36–57Google Scholar
  7. Dong J, Yang S, Zhang K (2005) Visdp: a web service for visualizing design patterns on demand. In: Proceedings of the 6th international conference on information technology: coding and computing.Google Scholar
  8. Dong J, Yang S, Zhang K (2007) Visualizing design patterns in their applications and compositions. Trans Soft Eng 33(7):433–453CrossRefGoogle Scholar
  9. Duchowski AT (2003) Eye tracking methodology: theory and practice. Springer, New YorkzbMATHGoogle Scholar
  10. Eden AH, Yehudai A, Gil J (1997) Precise specification and automatic application of design patterns. IEEE Computer Society, Piscataway, pp 143–152Google Scholar
  11. Eichelberger H (2003) Nice class diagrams admit good design? In: Proceedings of the 1st symposium on software visualization. ACM, New York, pp 159–ffCrossRefGoogle Scholar
  12. Eichelberger H, von Gudenberg JW (2003) Uml class diagrams—state of the art in layout techniques. In: Proceedings of the 1st SOFTVIS workshop on visualizing software for understanding and analysis. ACM, New York, pp 30–34Google Scholar
  13. France RB, Kim D-K, Ghosh S, Song E (2004) A uml-based pattern specification technique. Trans Soft Eng 30(3):193–206CrossRefGoogle Scholar
  14. Gamma E (1996) Applying design patterns in Java. Java Rep 1(6):47–53Google Scholar
  15. Gamma E, Helm R, Johnson R, Vlissides J (1998) Design patterns—elements of reusable object-oriented software. Addison-Wesley, ReadingGoogle Scholar
  16. Goldberg JH, Kotval XP (1999) Computer interface evaluation using eye movements: methods and constructs. Int J Ind Ergon 24(6):631–645CrossRefGoogle Scholar
  17. Goldberg JH, Stimson MJ, Lewenstein M, Scott N, Wichansky AM (2002) Eye tracking in web search tasks: design implications. In: Proceedings of the 1st symposium on eye tracking research & applications. ACM, New York, pp 51–58CrossRefGoogle Scholar
  18. Guan Z, Lee S, Cuddihy E, Ramey J (2006) The validity of the stimulated retrospective think-aloud method as measured by eye tracking. In: Proceedings of the 12th conference on human factors in computing systems, pp 1253–1262Google Scholar
  19. Guhneuc Y-G (2006) Taupe: towards understanding program comprehension. In: Proceedings of 16th IBM center for advanced studies conference. ACM, New York, pp 1–13Google Scholar
  20. Hutchins E (1995) Distributed cognition. MIT, CambridgeGoogle Scholar
  21. JHotdraw (2007) JHotdraw: a java GUI framework for technical and structured graphics.
  22. Kazman R, Klein M, Barbacci M, Longstaff T, Lispon H, Carriere J (1998) The architecture tradeoff analysis method. In: Proceedings of the 4th international conference on engineering of complex computer systems. IEEE Computer Society, Piscataway, pp 68–78Google Scholar
  23. Khomh F, Guéhéneuc Y-G (2008) Do design patterns impact software quality positively? In: Proceedings of the 12th conference on software maintenance and reengineering. IEEE Computer Society Press, PiscatawayGoogle Scholar
  24. Lauder A, Kent S (1998) Precise visual specification of design patterns. In: Proceedings of the 12th European conference on object-oriented programming. Springer, New York, pp 114–134Google Scholar
  25. Mapelsden D, Hosking J, Grundy J (2002) Design pattern modelling and instantiation using dpml. In: Proceedings of the 14th international conference on tools. Australian Computer Society, Canberra, pp 3–11Google Scholar
  26. Moore P, Flitz C (1993) Gestalt theory and instructional design. J Tech Writ Commun 23(2):137–157Google Scholar
  27. Object Management Group (1997) Unified modeling language specification, version 1.1.
  28. Purchase HC, Carrington DA, Allder J-A (2002) Empirical evaluation of aesthetics-based graph layout. Empir Soft Eng 7(3):233–255zbMATHCrossRefMathSciNetGoogle Scholar
  29. Rayner K (1998) Eye movements in reading and information processing: 20 years of research. Psychol Bull 124(3):372–422CrossRefGoogle Scholar
  30. Rich C, Waters RC (1988) The programmer’s apprentice. Computer 21(11):10–25CrossRefGoogle Scholar
  31. Schauer R, Keller R (1998) Pattern visualization for software comprehension. In: Proceedings of the 6th international workshop on program comprehension. IEEE Computer Society, Piscataway, pp 4–12Google Scholar
  32. Shalloway A, Trott JR (2002) Design patterns explained: a new perspective on object-oriented design. Addison-Wesley, ReadingGoogle Scholar
  33. Soloway E, Pinto J, Letovsky S, Littman D, Lampert R (1988) Designing documentation to compensate for delocalized plans. Commununications 31(11):1259–1267Google Scholar
  34. Sun D, Wong K (2005) On evaluating the layout of uml class diagrams for program comprehension. In: Proceedings of the 13th international workshop on program comprehension. IEEE Computer Society, Piscataway, pp 317–326Google Scholar
  35. Trese T, Tilley S (2007) Documenting software systems with views V: towards visual documentation of design patterns as an aid to program understanding. In: Proceedings of the 25th international conference on design of communication. ACM, New York, pp 103–112Google Scholar
  36. Vlissides J (1998) Notation, notation, notation. C+ + ReportGoogle Scholar
  37. von Mayrhauser A, Vans AM (1995) Program comprehension during software maintenance and evolution. IEEE Comput 28(8):44–55Google Scholar
  38. Ware C (2005) Visual queries: the foundation of visual thinking. Springer, New YorkGoogle Scholar
  39. Wohlin C, Runeson P, Höst M, Ohlsson MC, Regnell B, Wesslén A (2000) Experimentation in software engineering: an introduction. Kluwer Academic, DordrechtzbMATHGoogle Scholar
  40. Yusuf S, Kagdi H, Maletic JI (2007) Assessing the comprehension of uml class diagrams via eye tracking. In: Proceedings of the 15th international conference on program comprehension. IEEE Computer Society, Piscataway, pp 113–122CrossRefGoogle Scholar

Copyright information

© Springer Science+Business Media, LLC 2010

Authors and Affiliations

  1. 1.Ptidej Team, Département d’informatique et de recherche opérationnelleUniversité de MontréalMontréalCanada
  2. 2.Ptidej Team, Département de génie informatique et génie logicielÉcole Polytechnique de MontréalMontréalCanada

Personalised recommendations