EVALUATION OF THE VISITOR PATTERN TO PROMOTE SOFTWARE DESIGN SIMPLICITY

Authors

  • Aziz Nanthaamornphong Department of Information and Communication Technology, Prince of Songkla University, Phuket campus, Thailand
  • Rattana Wetprasit Department of Information and Communication Technology, Prince of Songkla University, Phuket campus, Thailand

DOI:

https://doi.org/10.11113/jt.v77.6186

Keywords:

Design patterns, empirical study, software quality

Abstract

Design patterns, which have been widely used by software engineering communities, have been claimed to improve software design in previous studies. However, there is little empirical evidence to support such a claim. Additionally, the benefits of design patterns in software design have not been studied in sufficient detail to date. As a result, in this study, we used empirical methods to evaluate whether design patterns help developers improve the simplicity of software design. In particular, we analyzed how easily a given software design was understood. We chose the well-known Visitor pattern as the design pattern for this study. The results suggest that the Visitor pattern could help developers improve software design simplicity. Specifically, a class diagram with the Visitor pattern was found to be easier to understand than a class diagram without the design pattern. 

References

Venners, B. 2005. How to Use Design Patterns A Conversation with Erich Gamma, Part I. [Online]. From: http://www.artima.com/lejava/articles/gammadp.html. [Accessed on 7 September 2015].

Beck, K., R. Crocker, G. Meszaros, J. Vlissides, J. O. Coplien, L. Dominick, and F. Paulisch. 1996. Industrial Experience with Design Patterns. The 18th International Conference on Software Engineering. Berlin, Germany. 25-30 March. 103-114.

Prechelt, L., B. Unger-Lamprecht, M. Philippsen, and W. F. Tichy. 2002. Two Controlled Experiments Assessing the Usefulness of Design Pattern Documentation in Program Maintenance. IEEE Transactions on Software Engineering. 28(6): 595-606.

Aversano, L., G. Canfora, L. Cerulo, C. Del Grosso, and M. D. Penta. 2007. An Empirical Study on the Evolution of Design Patterns. The 6th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering. Cavat near Dubrovnik, Croatia. 3-7 September 2013. 385-394.

Mak, J. K. H., C. S. T. Choy, and D. P. K. Lun. 2004. Precise Modeling of Design Patterns in UML. The 26th International Conference on Software Engineering. Scotland, UK. 23-28 May 2004. 252-261.

Ng, T. H., S. C. Cheung, W. K. Chan, and Y. T. Yu. 2006. Work Experience versus Refactoring to Design Patterns: A Controlled Experiment. The 14th ACM SIGSOFT International Symposium on Foundations of Software Engineering. Oregon, USA. 5-11 November 2006. 12-22.

Prechelt, L., B. Unger, W. F. Tichy, P. Bro ̈ssler, and L. G. Votta. 2001. A Controlled Experiment in Maintenance Comparing Design Patterns to Simpler solutions. IEEE Transactions on Software Engineering. 27(12): 1134-114.

McNatt, W. and J. Bieman. 2001. Coupling of Design Patterns: Common Practices and Their Benefit. The 25th Annual International Conference on Computer Software and Application. Illinois, USA. 8-12 October 2001. 574-579.

Wendorff, P. 2001. Assessment of Design Patterns During Software Reengineering: Lessons Learned from a Large Commercial Project. The 5th European Conference on Software Maintenance and Reengineering. Libson, Portugal. 14-16 March 2001. 77-84.

Zhang C. and D. Budgen. 2012. What Do We Know about the Effectiveness of Software Design Patterns? IEEE Transactions on Software Engineering. 38(5): 1213-1231.

Garza Ìs, J., F. Garćıa, and M. Piattini. 2009. Do Rules and Patterns Affect Design Maintainability? Journal of Computer Science and Technology. 24(2): 262-272.

Gamma, E., R. Helm, R. Johnson, and J. Vlissides. 1995. Design Patterns: Elements of Reusable Object-Oriented Software. Boston, Massachusetts, USA. Addison-Wesley Longman Publishing Co., Inc.

Palsberg, J. and C. B. Jay. 1998. The Essence of the Visitor Pattern. The 22nd International Conference on Computer Software and Applications. Vienna, Austria. 19-21 August 1998. 9-15.

Wohlin, C., P. Runeson, M. Höst, M. C. Ohlsson, B. Regnell, and A. Wesslén. 2000. Experimentation in Software Engineering: An Introduction. MA, USA. Kluwer Academic Publishers.

Elish, M. and M. Mohammed. 2015. Quantitative Analysis of Fault Density in Design Patterns: An Empirical Study. Information and Software Technology. 66(2015): 58-72.

Sfetsos, P., A. Ampatzoglou, A. Chatzigeorgiou, I. Deligiannis, and I. Stamelos. 2014. A Comparative Study on the Effectiveness of Patterns in Software Libraries and Standalone Applications. The 9th International Conference on Quality of Information and Communications Technology. Guimaraes, Portugal. 23-26 September 2014. 145-150.

Jeanmart, S., Y. G. Gueheneuc, H. Sahraoui, and N. Habra. 2009. Impact of the Visitor Pattern on Program Comprehension and Maintenance. The 3rd International Symposium on Empirical Software Engineering and Measurement. Florida, USA. 15-16 October 2009. 69-78.

Khomh, F. and Y. G. Gueheneuce. 2008. Do Design Patterns Impact Software Quality Positively? The 12th European Conference on Software Maintenance and Reengineering. Athens, Greece. 1-4 April 2008. 274-278.

Razali, R., C. F. Snook, and M. R. Poppleton. 2007. Comprehensibility of UML-Based Formal Model: A Series of Controlled Experiments. The 1st ACM International Workshop on Empirical Assessment of Software Engineering Languages and Technologies. Atlanta, USA. 5-9 November 2007. 25-30.

Dunlop, W. P., J. M. Cortina, J. B. Vaslow, M. J. Burke. 1996. Meta-Analysis of Experiments with Matched Groups or Meta-analysis. Psychological Method. 1(2): 170-177.

Downloads

Published

2015-11-09

Issue

Section

Science and Engineering

How to Cite

EVALUATION OF THE VISITOR PATTERN TO PROMOTE SOFTWARE DESIGN SIMPLICITY. (2015). Jurnal Teknologi (Sciences & Engineering), 77(9). https://doi.org/10.11113/jt.v77.6186