Investigating Design Anti-pattern and Design Pattern Mutations and Their Change- and Fault-proneness
Zeinab (Azadeh) Kermansaravi, Md Saidur Rahman, Foutse Khomh, Fehmi, Jaafar, Yann-Gael Gueheneuc

TL;DR
This study investigates how design patterns and anti-patterns mutate during software evolution and how these mutations affect software change- and fault-proneness, providing insights into software quality impacts.
Contribution
It analyzes bidirectional mutations between design patterns and anti-patterns and their impact on software quality, using Markov models on diverse Java systems.
Findings
Design patterns and anti-patterns mutate into each other.
Certain change types trigger specific mutations.
Some mutations are more fault-prone in specific contexts.
Abstract
During software evolution, inexperienced developers may introduce design anti-patterns when they modify their software systems to fix bugs or to add new functionalities based on changes in requirements. Developers may also use design patterns to promote software quality or as a possible cure for some design anti-patterns. Thus, design patterns and design anti-patterns are introduced, removed, and mutated from one another by developers. Many studies investigated the evolution of design patterns and design anti-patterns and their impact on software development. However, they investigated design patterns or design anti-patterns in isolation and did not consider their mutations and the impact of these mutations on software quality. Therefore, we report our study of bidirectional mutations between design patterns and design anti-patterns and the impacts of these mutations on software…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Advanced Software Engineering Methodologies · Software Reliability and Analysis Research
