EVALUATION OF THE VISITOR PATTERN TO PROMOTE SOFTWARE DESIGN SIMPLICITY
DOI:
https://doi.org/10.11113/jt.v77.6186Keywords:
Design patterns, empirical study, software qualityAbstract
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
Issue
Section
License
Copyright of articles that appear in Jurnal Teknologi belongs exclusively to Penerbit Universiti Teknologi Malaysia (Penerbit UTM Press). This copyright covers the rights to reproduce the article, including reprints, electronic reproductions, or any other reproductions of similar nature.