Published September 8, 2020 | Version 0.0.1

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

Authors/Creators

Description

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's thesis "Mining Software Repositories for the Effects of Design Patterns on Software Quality" (https://www.overleaf.com/read/vnfhydqxmpvx, https://zenodo.org/record/4048275).

The included qualisign.* files all contain the same data in different formats:
- qualisign.sql: standard SQL format (exported using "pg_dump --inserts ..."),
- qualisign.psql: PostgreSQL plain format (exported using "pg_dump -Fp ..."),
- qualisign.csql: PostgreSQL custom format (exported using "pg_dump -Fc ...").

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.

---

Software metrics were calculated using CKJM extended:
http://gromit.iiar.pwr.wroc.pl/p_inf/ckjm/

Included software metrics are (21 total):
- AMC: Average Method Complexity
- CA: Afferent Coupling
- CAM: Cohesion Among Methods
- CBM: Coupling Between Methods
- CBO: Coupling Between Objects
- CC: Cyclomatic Complexity
- CE: Efferent Coupling
- DAM: Data Access Metric
- DIT: Depth of Inheritance Tree
- IC: Inheritance Coupling
- LCOM: Lack of Cohesion of Methods (Chidamber and Kemerer)
- LCOM3: Lack of Cohesion of Methods (Constantine and Graham)
- LOC: Lines of Code
- MFA: Measure of Functional Abstraction
- MOA: Measure of Aggregation
- NOC: Number of Children
- NOM: Number of Methods
- NOP: Number of Polymorphic Methods
- NPM: Number of Public Methods
- RFC: Response for Class
- WMC: Weighted Methods per Class

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.

---

Design patterns were detected using SSA:
https://users.encs.concordia.ca/~nikolaos/pattern_detection.html

Included design patterns are (15 total):
- Adapter
- Bridge
- Chain of Responsibility
- Command
- Composite
- Decorator
- Factory Method
- Observer
- Prototype
- Proxy
- Singleton
- State
- Strategy
- Template Method
- Visitor

---

The code to generate the dataset is available at:
https://github.com/jaichberg/qualisign

The code to perform quality analysis on the dataset is available at:
https://github.com/jaichberg/qualisign-analysis

Files

Files (5.9 GB)

Name Size
md5:beeab22d7e41ab5b4788bea85e119e81
6.2 kB Download
md5:7ac2aaad46634a9a7e48815d886ae1e0
46.5 kB Download
md5:40c0feaa7c434cd3e039eab6a47d9993
371.0 MB Download
md5:2b21b87706cb55dd7be9b8e299565e8b
2.4 GB Download
md5:d75b409f8621d14722d3aab099932cb3
3.2 GB Download