The goal of this project is to detect bad smells in the software development process by looking at the commits, issues, pull requests, labels and milestones in GitHub repositories. I worked with my classmates to analyze three projects and extracted 14 features to describe the software development process. We built six bad smell detectors to automatically analyze GitHub repositories. We also designed two metrics to provide warnings to teams in the early stage of the software development process.
gitable.pyto collect information from a specific Github Repo and store in the format of JSON.
- Wrote 14
feature extractorsto further process the raw JSON data.
- Implemented six
bad smell detectorsto detect whether this repo exists some bad smells during development process, such as “Issue Time Duration Detector”.
- Implemented two
early warning detectors(“Issue Duration Early Warning” and “Issue Interval Early Warning”) to give early warnings of bad smell patterns.