About the App

Coupling between different modules and files is often interest and can help while refactoring the code base. Here is an app in Java and Candoia which provides information of co-changing files, using weka Apriory algorithm. This app can further be customized for module coupling or co-changing files with bug fixing issues.
s

Visualization

  • Results of the coupling between files using Weka Apriory Algorithm.
  • Currently this app uses all the revisions which have size smaller than 5, which can be customized as per user's requirements.
Candoia Overview

Adoptability Results

File Association Mining
# Project Setting Java Candoia Code
#VCS PLBug VCSBug ForgeMining VisualizeTotal TotalBoaJS HTMLCSSCandoia Code Java Code
1GITJavaGit-Issues 72 139 20 138 53 422 66 20 12 34 0 github github
2SVNJavaBugZilla 125(-38,+91) 60(-113,+34) 27(-15,+22) 140(-45,+47) 53(-1,+1) 405(-212,+195) 66 20 12 34 0 github github
3GITJavaJira 72(-1,+1) 146(-120,+127) 20(-1,+1) 146(-7,+15) 53(-1,+1) 437(-130,+145) 66 20 12 34 0 github github
4GITJavaSF-Tickets 72(-1,+1) 115(-106,+72) 20(-1,+1) 137(-4,+3) 53(-1,+1) 397(-113,+78) 66 20 12 34 0 github github
5SVNJavaSF-Tickets 125(-38,+91) 95(-96,+52) 27(-15,+22) 133(-30,+25) 53(-1,+1) 433(-180,+191) 66 20 12 34 0 github github
6GITJSGit-Issues 72(-1,+1) 139(-1,+1) 20(-1,+1) 138(-1,+1) 53(-1,+1) 421(-5,+5) 66 20 12 34 0 github github




Customization Results


File Association Mining
  Application Detail Java Candoia
#   VCS Bug Forge Mining Visualize Total Total Boa JS HTML CSS Candoia Code Java Code
0 Weka Apriory 141 157 20 178 23 519 83 37 12 34 0 github github
1 FP-Growth 141(-1,+1) 157(-1,+1) 20(-1,+1) 178(-3,+3) 23(-1,+1) 519(-7,+7) 83(-1,+1) 37(-1,+1) 12(-1,+1) 34(-1,+1) 0 github github
2 ECLAT 141(-1,+1) 157(-1,+1) 20(-1,+1) 183(-23,+28) 23(-1,+1) 524(-27,+32) 83(-1,+1) 37 12(-1,+1) 34(-1,+1) 0 github github
3 Changing Modules 141(-1,+1) 157(-1,+1) 20(-1,+1) 178(-3,+3) 23(-1,+1) 519(-7,+7) 83(-1,+1) 37(-1,+1) 12(-1,+1) 34(-1,+1) 0 github github
4 Changing 141(-1,+1) 0 20(-1,+1) 175(-5,+2) 23(-1,+1) 359(-165,+5) 70(-21,+8) 24(-20,+7) 12(-1,+1) 34(-0,+0) 0 github github


x(-y,+z) means there are total x number of lines of code in the module, of which y lines were removed and z lines were added to adopt the code for newer setting

Analysis

From the above table it is evident that adopting a Java app for a different underlying MSR setting (combination of VCS, Bug etc.), requires significant number of changes, while Candoia app remains unchanged. This not only decreases the efforts required to build portable MSR app but also increases sharability aspects.
Even with the cutomizations, where we either intend to change the algorithm or the entity of interest(file, modules, file without bugs etc.), LOC to be changed are smaller in Candoia verisons.