Background: Open Source Software (OSS) is increasingly used in product development. Besides some much-reported benefits of this approach, using OSS products also presents new challenges. One such challenge is identifying relevant, high-quality OSS products among the hundreds of thousands that are available. One approach for doing that is to identify architectural patterns, since these patterns have a direct effect on a product’s quality attributes, such as performance and reliability. However, there are no well-defined methods or tools available to identify architectural patterns. Research aim: Our goal is to identify approaches taken by novice software engineers that have no or little experience in identifying architectural patterns. We aim to get insight into how these novices tackle this problem, what challenges they encounter and what suggestions they have for improving this process. Method: We collected data from seven M.Sc. student teams that performed a pattern identification assignment. We conducted semi-structured interviews with eight students from two teams. We studied reflection reports from four teams that reported their experiences as part of their final report. Furthermore, during his M.Sc. course, one of the authors performed the assignment as a member of a team. We also included his experiences. Results and conclusions: We identified a number of approaches that students have taken in order to identify architectural patterns, as well as a number of challenges that they encountered in this task. Furthermore, based on suggestions from the students, we present a proposal to improve this process.
Author and article information
Muhammad Ali Babar
]Lero—The Irish Software Engineering Research Centre, University of Limerick, Ireland
]Department of Mathematics and Computing Science, University of Groningen, the Netherlands