{
"id": "https://doi.org/10.5281/zenodo.3731872",
"doi": "10.5281/ZENODO.3731872",
"url": "https://zenodo.org/record/3731872",
"types": {
"ris": "DATA",
"bibtex": "misc",
"citeproc": "dataset",
"schemaOrg": "Dataset",
"resourceTypeGeneral": "Dataset"
},
"creators": [
{
"name": "Aichberger, Johann",
"givenName": "Johann",
"familyName": "Aichberger",
"affiliation": [],
"nameIdentifiers": [
{
"schemeUri": "https://orcid.org",
"nameIdentifier": "https://orcid.org/0000-0002-0152-8611",
"nameIdentifierScheme": "ORCID"
}
]
}
],
"titles": [
{
"title": "Qualisign: Software Metrics and GoF Design Patterns of the Maven Central Repository"
}
],
"publisher": {
"name": "Zenodo"
},
"container": {},
"subjects": [
{
"subject": "maven central"
},
{
"subject": "software metrics"
},
{
"subject": "design patterns"
}
],
"contributors": [],
"dates": [
{
"date": "2020-09-08",
"dateType": "Issued"
}
],
"publicationYear": 2020,
"identifiers": [],
"sizes": [],
"formats": [],
"version": "0.0.1",
"rightsList": [
{
"rights": "Creative Commons Attribution 4.0 International",
"rightsUri": "https://creativecommons.org/licenses/by/4.0/legalcode",
"schemeUri": "https://spdx.org/licenses/",
"rightsIdentifier": "cc-by-4.0",
"rightsIdentifierScheme": "SPDX"
},
{
"rights": "Open Access",
"rightsUri": "info:eu-repo/semantics/openAccess"
}
],
"descriptions": [
{
"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",
"descriptionType": "Abstract"
}
],
"geoLocations": [],
"fundingReferences": [],
"relatedIdentifiers": [
{
"relationType": "IsVersionOf",
"relatedIdentifier": "10.5281/zenodo.3731871",
"relatedIdentifierType": "DOI"
}
],
"schemaVersion": "http://datacite.org/schema/kernel-4",
"providerId": "cern",
"clientId": "cern.zenodo",
"agency": "datacite",
"state": "findable"
}