skip to main content
10.1145/3167132.3167295acmconferencesArticle/Chapter ViewAbstractPublication PagessacConference Proceedingsconference-collections
research-article

A systematic literature mapping on the relationship between design patterns and bad smells

Published:09 April 2018Publication History

ABSTRACT

Bad Smells are symptoms that appear in the source code of a software system and may indicate a structural problem that requires code refactoring. Design patterns are solutions known as good practices that help building software systems with high quality and flexibility. Intuitively, it is possible to assume that the use of design patterns might avoid bad smells. Intriguingly, some recent studies have pointed out that this assumption is not true. This paper presents a systematic literature mapping of studies that investigate the relationship between design patterns and bad smells. We identified 16 papers which were categorized into three different approaches: impact on software quality, refactoring and co-occurrence. Amongst these three approaches, the co-occurrence relationship is the less explored in the literature. In addition, we identified that studies focusing on co-occurrence between design patterns and bad smells have generally analyzed the relationship between the GOF design patterns and bad smells described by Fowler and Beck. In this context, the Command design pattern was identified as the one with greater relationship with bad smells.

References

  1. Rakesh Agrawal, Tomasz Imieliński, and Arun Swami. 1993. Mining Association Rules Between Sets of Items in Large Databases. SIGMOD Rec. 22 (1993), 207--216. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Giuliano Antoniol and Yann-Gaël Guéhéneuc. 2008. DeMIMA: A Multilayered Approach for Design Pattern Identification. IEEE Transactions on Software Engineering 34 (2008), 667--684. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Sergey Brin, Rajeev Motwani, Jeffrey D. Ullman, and Shalom Tsur. 1997. Dynamic Itemset Counting and Implication Rules for Market Basket Data. SIGMOD Rec. 26 (1997), 255--264. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. William H. Brown, Raphael C. Malveau, Hays W. "Skip" McCormick, and Thomas J. Mowbray. 1998. AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis (1st ed.). John Wiley & Sons, Inc., New York, USA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Bruno Cardoso and Eduardo Figueiredo. 2014. Co-Occurrence of Design Patterns and Bad Smells in Software Systems: A Systematic Literature Review. In Proceedings of the 11th Workshop on Software Modularity. 82--93. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Bruno Cardoso and Eduardo Figueiredo. 2015. Co-Occurrence of Design Patterns and Bad Smells in Software Systems: An Exploratory Study. In 11st SBSI. 347--354. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Aikaterini Christopoulou, E. A. Giakoumakis, Vassilis E. Zafeiris, and Vasiliki Soukara. 2012. Automated refactoring to the Strategy design pattern. Information and Software Technology 54, 11 (2012), 1202--1214. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. F. A. Fontana, M. Zanoni, A. Marino, and M. V. Mäntylä. 2013. Code Smell Detection: Towards a Machine Learning-Based Approach. In 2013 IEEE International Conference on Software Maintenance. 396--399. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Martin Fowler. 2015. CallSuper. https://martinfowler.com/bliki/CallSuper.html. (2015). Accessed March 2017.Google ScholarGoogle Scholar
  10. M. Fowler and K. Beck. 1999. Refactoring: Improving the Design of Existing Code. Addison-Wesley. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. 1994. Design Patterns: Elements of Reusable Object-oriented Software. Addison-Wesley Longman Publishing. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Clemente Izurieta and James M. Bieman. 2013. A multiple case study of design pattern decay, grime, and rot in evolving software systems. Software Quality Journal 21, 2 (2013), 289--323. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Fehmi Jaafar, Yann-Gaël Guéhéneuc, Sylvie Hamel, and Foutse Khomh. 2013. Analysing Anti-patterns Static Relationships with Design Patterns. Electronic Communications of the EASST 59 (2013).Google ScholarGoogle Scholar
  14. Fehmi Jaafar, Yann Gueheneuc, Sylvie Hamel, Foutse Khomh, and Mohammad Zulkernine. 2016. Evaluating the impact of design pattern and anti-pattern dependencies on changes and faults. Empirical Software Engineering (2016), 896--931. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Foutse Khomh and Yann-Gael Gueheneuce. 2008. Do Design Patterns Impact Software Quality Positively?. In Proceedings of the 2008 12th European Conference on Software Maintenance and Reengineering. 274--278. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Barbara Kitchenham and Stuart Charters. 2007. Guidelines for performing Systematic Literature Reviews in Software Engineering. Technical Report EBSE 2007--001. Keele University and Durham University Joint Report. http://www.dur.ac.uk/ebse/resources/Systematic-reviews-5-8.pdfGoogle ScholarGoogle Scholar
  17. Michele Lanza and Radu Marinescu. 2006. Object-Oriented Metrics in Practice. Springer-Verlag N. Y. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. W.a Liu, Z.-G.a b Hu, H.-T.b Liu, and L.b Yang. 2014. Automated pattern-directed refactoring for complex conditional statements. Journal of Central South University 21, 5 (2014), 1935--1945.Google ScholarGoogle ScholarCross RefCross Ref
  19. William B. McNatt and James M. Bieman. 2001. Coupling of Design Patterns: Common Practices and Their Benefits. In Proceedings of the 25th International Computer Software and Applications Conference on Invigorating Software Development. 574--579. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Naouel Moha, Yann-Gael Gueheneuc, Laurence Duchien, and Anne-Francoise Le Meur. 2010. DECOR: A Method for the Specification and Detection of Code and Design Smells. IEEE Trans. Softw. Eng. 36, 1 (Jan. 2010), 20--36. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Nadia Nahar and Kazi Sakib. 2015. Automatic recommendation of software design patterns using anti-patterns in the design phase: A case study on abstract factory. In CEUR Workshop Proc. 9--16.Google ScholarGoogle Scholar
  22. Nadia Nahar and Kazi Sakib. 2016. ACDPR: A Recommendation System for the Creational Design Patterns Using Anti-patterns. In IEEE 23rd SANER. 4--7.Google ScholarGoogle Scholar
  23. David J. Sheskin. 2007. Handbook of Parametric and Nonparametric Statistical Procedures (4 ed.). Chapman & Hall/CRC. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. D. Speicher. 2013. Code Quality Cultivation. Communications in Computer and Information Science 348 (2013), 334--349.Google ScholarGoogle ScholarCross RefCross Ref
  25. Nikolaos Tsantalis, Theodoros Chaikalis, and Alexander Chatzigeorgiou. 2008. JDeodorant: Identification and Removal of Type-Checking Bad Smells. In Proc. of the 12th CSMR. 329--331. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Nikolaos Tsantalis, Alexander Chatzigeorgiou, George Stephanides, and Spyros T Halkidis. 2006. Design pattern detection using similarity scoring. Software Engineering, IEEE Transactions on 32, 11 (2006), 896--909. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Marek Vokac. 2004. Defect frequency and design patterns: An empirical study of industrial code. IEEE Transactions on Software Engineering 30, 12 (2004), 904--917. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. B. C. Wagey, B. Hendradjaya, and M. S. Mardiyanto. 2015. A proposal of software maintainability model using co- de smell measurement. In ICoDSE. 25--30.Google ScholarGoogle Scholar
  29. Bartosz Walter and Tarek Alkhaeir. 2016. The relationship between design patterns and code smells: An exploratory study. Information and Software Technology (2016), 127--142. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Peter Wendorff. 2001. Assessment of Design Patterns During Software Reengineering: Lessons Learned from a Large Commercial Project. In 5th CSMR. 77--84. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Claes Wohlin. 2014. Guidelines for Snowballing in Systematic Literature Studies and a Replication in Software Engineering. In 18th EASE. 1--10. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Aiko Yamashita and Leon Moonen. 2013. To What Extent Can Maintenance Problems Be Predicted by Code Smell Detection? - An Empirical Study. Inf. Softw. Technol. 55, 12 (Dec. 2013), 2223--2242. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Vassilis E. Zafeiris, Sotiris H. Poulias, N.A. Diamantidis, and E.A. Giakoumakis. 2017. Automated refactoring of super-class method invocations to the Template Method design pattern. Information and Software Technology (2017), 19--35.Google ScholarGoogle Scholar

Index Terms

  1. A systematic literature mapping on the relationship between design patterns and bad smells

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in
        • Published in

          cover image ACM Conferences
          SAC '18: Proceedings of the 33rd Annual ACM Symposium on Applied Computing
          April 2018
          2327 pages
          ISBN:9781450351911
          DOI:10.1145/3167132

          Copyright © 2018 ACM

          © 2018 Association for Computing Machinery. ACM acknowledges that this contribution was authored or co-authored by an employee, contractor or affiliate of a national government. As such, the Government retains a nonexclusive, royalty-free right to publish or reproduce this article, or to allow others to do so, for Government purposes only.

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 9 April 2018

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article

          Acceptance Rates

          Overall Acceptance Rate1,650of6,669submissions,25%

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader