A large-scale mining study of 90,000 Maven Central projects finds that design patterns are positively correlated with software functionality and reusability but negatively correlated with understandability โ€” consistent with smaller prior studies.

Design patterns are reusable solutions for commonly occurring problems in software design. First described in 1994 by the Gang of Four, they have gained widespread adoption in many areas of software development throughout the years. Furthermore, design patterns have also garnered an active research community around them, which investigates the effects that design patterns have on different software quality attributes. However, a common shortcoming of existing studies is that they only analyze the quality effects of design patterns on a relatively small scale, covering no more than a few hundred projects per case study. This calls into question how generalizable the results of these small-scale case studies are.

Pursuing more generalizable results, this thesis conducts a much larger-scale analysis of the quality effects of design patterns. To accomplish this, software metric and design pattern data for 90,000 projects from the Maven Central repository is collected using the metrics calculation tool CKJM extended and the design pattern detection tool SSA. Correlations between design patterns and software quality attributes are then analyzed using software metrics as proxies for software quality by following the methodology described by the QMOOD quality model. The results of the analysis suggest that design patterns are positively correlated with functionality and reusability, but negatively correlated with understandability, which is consistent with the results of existing smaller-scale case studies.

Your browser does not support inline PDF viewing. Download the PDF instead.

mining software repositoriesdesign patternssoftware quality