EVALUATION OF THE VISITOR PATTERN TO PROMOTE SOFTWARE DESIGN SIMPLICITY

Aziz Nanthaamornphong, Rattana Wetprasit

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. 


Keywords


Design patterns, empirical study, software quality

Full Text:

Untitled PDF

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.




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

Refbacks

  • There are currently no refbacks.


  

Copyright © 2012 Penerbit UTM Press, Universiti Teknologi Malaysia.
Disclaimer : This website has been updated to the best of our knowledge to be accurate. However, Universiti Teknologi Malaysia shall not be liable for any loss or damage caused by the usage of any information obtained from this web site.
Best viewed: Mozilla Firefox 4.0 & Google Chrome at 1024 × 768 resolution.