Abstract
This thesis investigates common misconceptions that software developers encounter during the selection and implementation of design patterns, with a specific focus on the Visitor and Abstract Factory patterns. These patterns are known for their complexity and the frequent misunderstandings they provoke, making them ideal for analyzing the challenges developers face in software design.Research Objectives The primary objective is to identify and analyze misconceptions that arise during the selection and implementation phases of design patterns. By examining these phases separately, the research seeks to determine whether different misconceptions occur when selecting an appropriate pattern versus effectively implementing it.
Methodology The study employs a two-phase experimental approach. In the first phase, participants are presented with software design problems without explicit instructions to use design patterns, evaluating their ability to independently identify and select the appropriate pattern. In the second phase, participants are directed to implement the chosen pattern, allowing for an examination of the challenges in practical application. The experiments
included both novice and experienced developers for a comprehensive analysis.
Key Findings Significant challengeswere identified in both phases. In the selection phase, participants did not identify the Visitor pattern as the appropriate solution, highlighting difficulties in recognizing its suitability. However,when directed to implement it, some participants
managed to do so, though misconceptions about the pattern’s intent and structure persisted. For the Abstract Factory pattern, the participants were generally successful in its implementation. However, probably due to poor problem identification, not all participants were able to select this pattern correctly, even though they could implement it once selected.
Conclusions andRecommendations The study concludes that amore structured, intentfocused approach to teaching design patterns is necessary. This approach should ensure that developers first accurately identify which pattern best fits a problembefore moving on to implementation. By guiding developers through this process, educational strategies can more effectively address misconceptions and improve the overall effectiveness of the use of design patterns.
Educational programs should include hands-on experience, real-world examples, and a clear focus on pattern selection and intent. Future research should expand to include a broader range of design patterns and a more diverse participant pool to validate and extend these findings. Further exploration of the cognitive processes behind pattern selection and implementation could provide deeper insights into how developers approach design problems and make decisions about pattern use.
By addressing the dual challenges of selecting and implementing design patterns, this research contributes to advancing software development education and practice, offering strategies to enhance the practical application of these essential design principles.
Date of Award | 10 Sept 2024 |
---|---|
Original language | English |
Supervisor | Harrie Passier (Examiner), Lex Bijlsma (Co-assessor) & Ebrahim Rahimi (Co-assessor) |
Master's Degree
- Master Software Engineering