QScored大型代码异味和质量度量-数据集
1. 数据集介绍
原论文QScored: A Large Dataset of Code Smells and Quality Metrics
获取地址https://ieeexplore.ieee.org/document/9463095
数据集下载https://doi.org/10.5281/zenodo.4468361
数据集介绍:该数据集包含超过86000个GitHub存储库的代码质量信息,其中包含超过11亿行主要用C#和Java编写的代码。代码质量信息包含检测到的7种架构气味、19种设计气味和11种实现气味,以及在项目、包、类和方法级别计算的27种常用代码质量度量。
文件格式如下
下载完成后,进入cmd,使用如下指令,将aa-ah这8个文件合并为qscored_dump_25Jan2021.tar
copy /b qscored_dump_25Jan2021* qscored_dump_25Jan2021.tar
2. 导入数据库
安装PostgreSQL
Download PostgreSQL (enterprisedb.com)
下载v9.5.25
进入SQL shell,输入四个回车,如需密码就输入安装postgresql时设置的密码
待到postgres=#出现后,依次输入如下三条指令
CREATE DATABASE qscoreddb WITH TEMPLATE=template0 ENCODING='UTF-8' LC_COLLATE='american_usa' LC_CTYPE='american_usa';
CREATE USER dbwala WITH PASSWORD 'password';
GRANT ALL PRIVILEGES ON DATABASE qscoreddb TO dbwala;
打开pgAdmin III,选中qscoreddb,右键,选中恢复,选择qscored_dump_25Jan2021.tar
选择之前合并得到的qscored_dump_25Jan2021.tar,点击恢复,持续半小时左右,期间整个程序会陷入假死状态,即无响应,不要人为干预。
导入成功后在qscoreddb->架构->public->数据表中,可以查阅相关数据
3. 相关sql语句介绍
获取maven项目的designite_project.id:"4642f052-38b0-46e1-a6c5-be08a6e33f43"
select * from designite_project where name like 'maven';
通过designite_project.id来获取maven项目中所有的Broken Hierarchy(一种设计味道,破碎的层次结构)
select design_smell.description, design_smell.component, design_smell._class
from solution, design_smell, project
where solution.designite_project_id = '4642f052-38b0-46e1-a6c5-be08a6e33f43' and
design_smell.project_id = project.id and
solution.id = project.solution_id and
design_smell.name = 'Broken Hierarchy';