Skip to main content
zenodoopen

Qualisign: Software Metrics and GoF Design Patterns of the Maven Central Repository

<p>This dataset contains software metric and design pattern data for around 100,000 projects from the Maven Central repository. The data was collected and analyzed as part of my master&#39;s thesis &quot;Mining Software Repositories for the Effects of Design Patterns on Software Quality&quot; (https://www.overleaf.com/read/vnfhydqxmpvx, https://zenodo.org/record/4048275).</p> <p>The included qualisign.* files all contain the same data in different formats:<br> - qualisign.sql: standard SQL format (exported using &quot;pg_dump --inserts ...&quot;),<br> - qualisign.psql: PostgreSQL plain format (exported using &quot;pg_dump -Fp ...&quot;),<br> - qualisign.csql: PostgreSQL custom format (exported using &quot;pg_dump -Fc ...&quot;).</p> <p>create-tables.sql has to be executed before importing one of the qualisign.* files. Once qualisign.*sql has been imported, create-views.sql can be executed to preprocess the data, thereby creating materialized views that are more appropriate for data analysis purposes.</p> <p>---</p> <p>Software metrics were calculated using CKJM extended:<br> http://gromit.iiar.pwr.wroc.pl/p_inf/ckjm/</p> <p>Included software metrics are (21 total):<br> - AMC: Average Method Complexity<br> - CA: Afferent Coupling<br> - CAM: Cohesion Among Methods<br> - CBM: Coupling Between Methods<br> - CBO: Coupling Between Objects<br> - CC: Cyclomatic Complexity<br> - CE: Efferent Coupling<br> - DAM: Data Access Metric<br> - DIT: Depth of Inheritance Tree<br> - IC: Inheritance Coupling<br> - LCOM: Lack of Cohesion of Methods (Chidamber and Kemerer)<br> - LCOM3: Lack of Cohesion of Methods (Constantine and Graham)<br> - LOC: Lines of Code<br> - MFA: Measure of Functional Abstraction<br> - MOA: Measure of Aggregation<br> - NOC: Number of Children<br> - NOM: Number of Methods<br> - NOP: Number of Polymorphic Methods<br> - NPM: Number of Public Methods<br> - RFC: Response for Class<br> - WMC: Weighted Methods per Class</p> <p>In the qualisign.* data, these metrics are only available on the class level. create-views.sql additionally provides averages of these metrics on the package and project levels.</p> <p>---</p> <p>Design patterns were detected using SSA:<br> https://users.encs.concordia.ca/~nikolaos/pattern_detection.html</p> <p>Included design patterns are (15 total):<br> - Adapter<br> - Bridge<br> - Chain of Responsibility<br> - Command<br> - Composite<br> - Decorator<br> - Factory Method<br> - Observer<br> - Prototype<br> - Proxy<br> - Singleton<br> - State<br> - Strategy<br> - Template Method<br> - Visitor</p> <p>---</p> <p>The code to generate the dataset is available at:<br> https://github.com/jaichberg/qualisign</p> <p>The code to perform quality analysis on the dataset is available at:<br> https://github.com/jaichberg/qualisign-analysis</p>

ShareScore

32/100

Overall dataset sharing score

Score breakdown

These five areas show where the dataset supports — or may limit — practical reuse.

Stewardship
8
Harmonization
4
Access
16
Reuse readiness
0
Engagement
4

Topics