You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The project commitminer-main contains the main executables for BugAID:
LearningAnalysisMain builds a dataset of commits
LearningDataSetMain clusters the commits
LearningAnalysisMain
GitProjectAnalysis traverses the Git project history and triggers a CommitAnalysis for each commit. A CommitAnalysis performs an analysis on an entire commit by calling zero or more DomainAnalysis. For BugAID, the CommitAnalysis instance is built using LearningCommitAnalysisFactory, which includes two domains: LearningDomainAnalysis and ComplexityDomainAnalysis. The LearningDomainAnalysis is the tool analysis that builds the BugAID dataset.
LearningDomainAnalysis
The DomainAnalysis abstract class iterates through each file (analyzeFile) in the commit and diffs the old and new versions using ControlFlowDifferencing. This builds a CFDContext, which stores the ASTs and structural change annotations. analyzeFile then calls a SourceCodeFileAnalysis for each file, passing it the AST and CFG for the file, which are annotated with structural change information.
SourceCodeFileAnalysis
Calls LearningFunctionAnalysis for each function defined in the file.
LearningFunctionAnalysis
Visits a function's AST (with visitor pattern) and extracts features from the function to be included in the feature vector for the commit being analyzed.