NO.207 Anti-patterns and Defects: Synergies, Challenges, and Opportunities

Shonan Village Center

December 2 - 5, 2024 (Check-in: December 1, 2024 )


  • Fabio Palomba
    • University of Salerno, Italy
  • Raula Gaikovina Kula
    • Nara Institute of Science and Technology, Japan
  • Shane McIntosh
    • University of Waterloo, Canada
  • Takashi Kobayashi
    • Tokyo Institute of Technology, Japan


Source code anti-patterns, also known as bad code smells, are poor design or implementation choices applied by programmers when evolving a software system that can eventually lead to the introduction of defects, i.e., incorrect software system behavior [1]. For decades, the software engineering research community has been actively investigating anti-patterns and defects in isolation. While the advances that the research community has made with respect to anti-patterns and defects are numerous (e.g., [2,3]), there is room for each community to benefit from the other. Furthermore, in light of trending topics like generative Artificial Intelligence (AI) for Software Engineering, there is a growing need for these two sub-communities, which are naturally related to each other; however, few studies have investigated this intersecting boundary. Early results have investigated specific aspects, such as the defect-proneness of anti-patterns [1,4], yet there is much more to be explored. As a consequence, several relevant key aspects are still unknown:

  1. Are we able to characterize the boundary between anti-patterns and defects?
  2. Can complex anti-pattern removal activities be prioritized based on the likelihood of cross-cutting from anti-pattern to concrete defects?
  3. How can anti-pattern detection inform defect identification and vice-versa? For instance, how advances in the use of machine learning approaches for defect prediction can be exploited to improve the prompt identification of anti-patterns?
  4. How do these challenges translate to the current trending topics in Software Engineering, such as generative AI?

The purpose of this Shonan meeting is to bring together leading researchers and practitioners from the anti-patterns and defect analysis fields. The aim is not only to foster an exchange of ideas, but also to outline a clear set of concrete grand challenges and propose a roadmap for how those challenges can be met by future work.


[1] Khomh, F., Di Penta, M., Guéhéneuc, Y. G., & Antoniol, G. (2012). An exploratory study  of the impact of antipatterns on class change-and fault-proneness. Empirical Software Engineering, 17(3), 243-275.

[2]Tufano, M., Palomba, F., Bavota, G., Oliveto, R., Di Penta, M., De Lucia, A., & Poshyvanyk, D. (2017). When and why your code starts to smell bad (and whether the smells go away). IEEE Transactions on Software Engineering, 43(11), 1063-1088.

[3]Hangal, S., & Lam, M. S. (2002, May). Tracking down software bugs using automatic anomaly detection. In Proceedings of the 24th International Conference on Software Engineering. ICSE 2002 (pp. 291-301). IEEE.

[4]Palomba, F., Bavota, G., Di Penta, M., Fasano, F., Oliveto, R., & De Lucia, A. (2018). On the diffuseness and the impact on maintainability of code smells: a large scale empirical investigation. Empirical Software Engineering, 23(3), 1188-1221.