Skip to content

Commit

Permalink
liu experiments + change name to SMAD
Browse files Browse the repository at this point in the history
  • Loading branch information
antoineBarbez committed Oct 23, 2018
1 parent 218be1b commit a2f24ba
Show file tree
Hide file tree
Showing 114 changed files with 46,987 additions and 2,732 deletions.
Binary file modified .DS_Store
Binary file not shown.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Binary file modified data/metric_files/.DS_Store
Binary file not shown.
File renamed without changes.
File renamed without changes.
2,545 changes: 0 additions & 2,545 deletions data/metric_files/incode/apache-log4j1.csv

This file was deleted.

16,183 changes: 16,183 additions & 0 deletions data/metric_files/jdeodorant/feature_envy_metrics/apache-derby.csv

Large diffs are not rendered by default.

4,383 changes: 4,383 additions & 0 deletions data/metric_files/jdeodorant/feature_envy_metrics/apache-jena.csv

Large diffs are not rendered by default.

1,732 changes: 1,732 additions & 0 deletions data/metric_files/jdeodorant/feature_envy_metrics/apache-log4j2.csv

Large diffs are not rendered by default.

582 changes: 582 additions & 0 deletions data/metric_files/jdeodorant/feature_envy_metrics/apache-velocity.csv

Large diffs are not rendered by default.

1,202 changes: 1,202 additions & 0 deletions data/metric_files/jdeodorant/feature_envy_metrics/javacc.csv

Large diffs are not rendered by default.

2,939 changes: 2,939 additions & 0 deletions data/metric_files/jdeodorant/feature_envy_metrics/jgraphx.csv

Large diffs are not rendered by default.

4,222 changes: 4,222 additions & 0 deletions data/metric_files/jdeodorant/feature_envy_metrics/jgroups.csv

Large diffs are not rendered by default.

4,369 changes: 4,369 additions & 0 deletions data/metric_files/jdeodorant/feature_envy_metrics/jhotdraw.csv

Large diffs are not rendered by default.

2,622 changes: 2,622 additions & 0 deletions data/metric_files/jdeodorant/feature_envy_metrics/jspwiki.csv

Large diffs are not rendered by default.

464 changes: 464 additions & 0 deletions data/metric_files/jdeodorant/feature_envy_metrics/junit.csv

Large diffs are not rendered by default.

775 changes: 775 additions & 0 deletions data/metric_files/jdeodorant/feature_envy_metrics/mongodb.csv

Large diffs are not rendered by default.

3,473 changes: 3,473 additions & 0 deletions data/metric_files/jdeodorant/feature_envy_metrics/pmd.csv

Large diffs are not rendered by default.

115 changes: 66 additions & 49 deletions data_construction/repository_miner/repository_miner.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ def mine(self, system):

#self.__createMetricsFile("DECOR")
#self.__createMetricsFile("INCODE")
self.__createMetricsFile("JDEODORANT")
#self.__createMetricsFile("JDEODORANT")


self.close()
Expand Down Expand Up @@ -158,76 +158,93 @@ def __createMetricsFile(self, tool):

systms = [
{
"name" :'android-frameworks-opt-telephony',
"url" :'https://android.googlesource.com/platform/frameworks/opt/telephony',
"snapshot" :'c241cad754ecf27c96b09f1e585b8be341dfcb71',
"name" :'apache-derby',
"url" :'https://github.com/apache/derby.git',
"snapshot" :'c30c7da',
"directory":['java/engine/'],
"sources" :['java/engine/']
},
{
"name" :'apache-jena',
"url" :'https://github.com/apache/jena.git',
"snapshot" :'dc0bfe6f0d32de82f711bc241e8f96e2be0a539d',
"directory":['jena-core/src/main/java/'],
"sources" :['jena-core/src/main/java/']
},
{
"name" :'apache-log4j2',
"url" :'https://github.com/apache/log4j.git',
"snapshot" :'0663eb2a1301f7622f017496c5983789b1cbae38',
"directory":['src/java/'],
"sources" :['src/java/']
},
{
"name" :'android-platform-support',
"url" :'https://android.googlesource.com/platform/frameworks/support',
"snapshot" :'38fc0cf9d7e38258009f1a053d35827e24563de6',
"directory":['v4'],
"sources" :[
'v4/eclair/',
'v4/froyo/',
'v4/gingerbread/',
'v4/honeycomb/',
'v4/honeycomb_mr2/',
'v4/ics/',
'v4/ics-mr1/',
'v4/java/',
'v4/jellybean/'
]
"name" :'apache-velocity',
"url" :'https://github.com/apache/velocity-engine.git',
"snapshot" :'23c979d3b185ace79c06fc7bedfcc1b9c232eb06',
"directory":['src/java/'],
"sources" :['src/java/']
},
{
"name" :'apache-ant',
"url" :'https://git-wip-us.apache.org/repos/asf/ant.git',
"snapshot" :'e7734def8b0961af37c37eb1964a7e9ffdd052ca',
"directory":['src/main/'],
"sources" :['src/main/']
"name" :'javacc',
"url" :'https://github.com/javacc/javacc.git',
"snapshot" :'1b23b61777df9ccfe627682c848a07b3bf73387b',
"directory":['src/main/java/'],
"sources" :['src/main/java/']
},
{
"name" :'apache-tomcat',
"url" :'https://github.com/apache/tomcat.git',
"snapshot" :'398ca7ee',
"directory":['java/org/'],
"sources" :['java/']
"name" :'jgraphx',
"url" :'https://github.com/jgraph/jgraphx.git',
"snapshot" :'25c9cfc539564de53d71a022815f3033630ba7c2',
"directory":['src/'],
"sources" :['src/']

},
{
"name" :'lucene',
"url" :'https://github.com/apache/lucene-solr.git',
"snapshot" :'39f6dc1',
"directory":['src/java/'],
"sources" :['src/java/']
"name" :'jgroups',
"url" :'https://github.com/belaban/JGroups.git',
"snapshot" :'2d2ee7db9763c527a0228ba95dba433a2ea11972',
"directory":['src/'],
"sources" :['src/']
},
{
"name" :'xerces-2_7_0',
"url" :'https://github.com/apache/xerces2-j.git',
"snapshot" :'c986230',
"name" :'jhotdraw',
"url" :'https://svn.code.sf.net/p/jhotdraw/svn/trunk',
"snapshot" :'58d8df336c3c48a1943427754f6bbb6e991c2e41',
"directory":['jhotdraw7/src/main/java/'],
"sources" :['jhotdraw7/src/main/java/']
},
{
"name" :'jspwiki',
"url" :'https://github.com/apache/jspwiki.git',
"snapshot" :'a3b1041393db03d72d32e4d51554941be55e07e3',
"directory":['src/'],
"sources" :['src/']
},
{
"name" :'jedit',
"url" :'https://svn.code.sf.net/p/jedit/svn/jEdit/trunk/',
"snapshot" :'e343491b611efdd7a5313e7ba87d6a2d1d6f8804',
"directory":[''],
"sources" :['']
"name" :'junit',
"url" :'https://github.com/junit-team/junit4.git',
"snapshot" :'751f75986b11336ac8310d73c89003b0b09ecb92',
"directory":['src/main/java/'],
"sources" :['src/main/java/']
},
{
"name" :'argouml',
"url" :'http://argouml.stage.tigris.org/svn/argouml/trunk',
"snapshot" :'6edc166ff845cf9926bc7dbb70d93181471552c1',
"directory":['src_new/org/'],
"sources" :['src_new/']
}
"name" :'mongodb',
"url" :'https://github.com/mongodb/mongo-java-driver.git',
"snapshot" :'b67c0c43',
"directory":['src/main/'],
"sources" :['src/main/']
},
{
"name" :'pmd',
"url" :'https://github.com/pmd/pmd.git',
"snapshot" :'6063aaf',
"directory":['pmd/src/main/java/'],
"sources" :['pmd/src/main/java/']
},
]



rm = RepositoryMiner()

for system in systms:
Expand Down
2 changes: 1 addition & 1 deletion data_construction/repository_miner/systems.py
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@
"sources" :['src/main/java/']
},
{
"name" :'jena',
"name" :'apache-jena',
"url" :'https://github.com/apache/jena.git',
"snapshot" :'dc0bfe6f0d32de82f711bc241e8f96e2be0a539d',
"directory":['jena-core/src/main/java/'],
Expand Down
Empty file added experiments/__init__.py
Empty file.
File renamed without changes.
Empty file.
43 changes: 21 additions & 22 deletions experiments/feature_envy/compare_approaches.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,15 @@

import numpy as np

import mergedDetection
import smad

# This script is used to compare the performances of various feature envy detection approaches
# on the systems considered in this study.
# This script is used to compare the performances of:
# - The detection tools aggregated through SMAD
# - The voting technique with k in {1, 2, 3}
# - SMAD
# for Feature Envy detection on the three subject systems.

systems = [
'android-platform-support',
'apache-tomcat',
'jedit'
]
systems = ['android-platform-support', 'apache-tomcat', 'jedit']

p_hist = []
r_hist = []
Expand All @@ -37,9 +36,9 @@
r_v3 = []
f_v3 = []

p_model = []
r_model = []
f_model = []
p_smad = []
r_smad = []
f_smad = []


for system in systems:
Expand Down Expand Up @@ -120,17 +119,17 @@
f_v3.append(f_measure_vote_3)

# Our model
detected_model = mergedDetection.getSmells(system)
detected_smad = smad.getSmells(system)

precision_model = experimentUtils.precision(detected_model, true)
recall_model = experimentUtils.recall(detected_model, true)
f_measure_model = experimentUtils.f_measure(detected_model, true)
precision_smad = experimentUtils.precision(detected_smad, true)
recall_smad = experimentUtils.recall(detected_smad, true)
f_measure_smad = experimentUtils.f_measure(detected_smad, true)

p_model.append(precision_model)
r_model.append(recall_model)
f_model.append(f_measure_model)
p_smad.append(precision_smad)
r_smad.append(recall_smad)
f_smad.append(f_measure_smad)

# Output results
# Print performances for the considered system
print(' |precision |recall |f_measure')
print('-------------------------------------------------')
print('HIST |' + "{0:.3f}".format(precision_hist) + ' |' + "{0:.3f}".format(recall_hist) + ' |' + "{0:.3f}".format(f_measure_hist))
Expand All @@ -146,12 +145,12 @@
print('-------------------------------------------------')
print('Vote 3 |' + "{0:.3f}".format(precision_vote_3) + ' |' + "{0:.3f}".format(recall_vote_3) + ' |' + "{0:.3f}".format(f_measure_vote_3))
print('-------------------------------------------------')
print('Our model |' + "{0:.3f}".format(precision_model) + ' |' + "{0:.3f}".format(recall_model) + ' |' + "{0:.3f}".format(f_measure_model))
print('SMAD |' + "{0:.3f}".format(precision_smad) + ' |' + "{0:.3f}".format(recall_smad) + ' |' + "{0:.3f}".format(f_measure_smad))
print('-------------------------------------------------')
print('\n\n')


# Output mean results
# Print average performances over the three systems
print('MEAN')
print(' |precision |recall |f_measure')
print('-------------------------------------------------')
Expand All @@ -168,6 +167,6 @@
print('-------------------------------------------------')
print('Vote 3 |' + "{0:.3f}".format(np.mean(p_v3)) + ' |' + "{0:.3f}".format(np.mean(r_v3)) + ' |' + "{0:.3f}".format(np.mean(f_v3)))
print('-------------------------------------------------')
print('Our model |' + "{0:.3f}".format(np.mean(p_model)) + ' |' + "{0:.3f}".format(np.mean(r_model)) + ' |' + "{0:.3f}".format(np.mean(f_model)))
print('SMAD |' + "{0:.3f}".format(np.mean(p_smad)) + ' |' + "{0:.3f}".format(np.mean(r_smad)) + ' |' + "{0:.3f}".format(np.mean(f_smad)))
print('-------------------------------------------------')
print('\n\n')
Loading

0 comments on commit a2f24ba

Please sign in to comment.