From f3feb2f29d2c6e619881ae7d87bedaab564d04c6 Mon Sep 17 00:00:00 2001 From: Alireza Ardalani Date: Tue, 31 May 2022 17:00:41 +0430 Subject: [PATCH] RQ2 --- dataSet/MultipleOutput/RQ2.md | 60 +++++++++++++++ dataSet/MultipleOutput/RQ2.xlsx | Bin 0 -> 16535 bytes .../uom/java/ast/decomposition/cfg/PDG.java | 69 +++++++++++++++++- 3 files changed, 127 insertions(+), 2 deletions(-) create mode 100644 dataSet/MultipleOutput/RQ2.md create mode 100644 dataSet/MultipleOutput/RQ2.xlsx diff --git a/dataSet/MultipleOutput/RQ2.md b/dataSet/MultipleOutput/RQ2.md new file mode 100644 index 0000000..592a588 --- /dev/null +++ b/dataSet/MultipleOutput/RQ2.md @@ -0,0 +1,60 @@ +| ID | Project | Package | Class | Method | TO | +| --- | ---------- | ---------------------------------------- | -------------------------------- | ------------------------------------------------------------------------------------- | -- | +| M1 | JFreeChart | org.jfree.chart | ChartPanel.java | mouseReleased(MouseEvent) | 1 | +| M2 | JFreeChart | org.jfree.chart | ChartPanel.java | generateSVG(int, int) | 1 | +| M3 | JFreeChart | org.jfree.chart | JFreeChart.java | createAlignedRectangle2D(Size2D, Rectangle2D, HorizontalAlignment, VerticalAlignment) | 2 | +| M4 | JFreeChart | org.jfree.chart.annotations | XYBoxAnnotation.java | draw(Graphics2D, XYPlot, Rectangle2D, ValueAxis, ValueAxis, int, PlotRenderingInfo) | 2 | +| M5 | JFreeChart | org.jfree.chart.annotations | XYDrawableAnnotation.java | draw(Graphics2D, XYPlot, Rectangle2D, ValueAxis, ValueAxis, int, PlotRenderingInfo) | 2 | +| M6 | JFreeChart | org.jfree.chart.axis | Axis.java | drawAxisLine(Graphics2D, double, Rectangle2D, RectangleEdge) | 2 | +| M7 | JFreeChart | org.jfree.chart.axis | CategoryAxis.java | draw(Graphics2D, double, Rectangle2D, Rectangle2D, RectangleEdge, PlotRenderingInfo) | 1 | +| M8 | JFreeChart | org.jfree.chart.encoders | SunJPEGEncoderAdapter.java | encode(BufferedImage, OutputStream) | 2 | +| M9 | JFreeChart | org.jfree.chart.panel | CrosshairOverlay.java | calculateLabelPoint(Line2D, RectangleAnchor, double, double) | 2 | +| M10 | Weka | weka.associations | Apriori.java | getTechnicalInformation() | 2 | +| M11 | Weka | weka.associations | FPGrowth.java | parseTransactionsMustContain(Instances) | 1 | +| M12 | Weka | weka.associations | FPGrowth.java | getPremise(FrequentBinaryItemSet, boolean\[\]) | 2 | +| M13 | Weka | weka.associations | FPGrowth.java | buildFPTree(ArrayList, Object, int) | 1 | +| M14 | Weka | weka.attributeSelection | CfsSubsetEval.java | postProcess(int\[\]) | 1 | +| M15 | Weka | weka.attributeSelection | Ranker.java | search(ASEvaluation, Instances) | 1 | +| M16 | Weka | weka.classifiers | BVDecomposeSegCVSub.java | getTechnicalInformation() | 2 | +| M17 | Weka | weka.classifiers.bayes.net | ParentSet.java | deleteParent(int, Instances) | 1 | +| M18 | Weka | weka.classifiers.bayes.net | ParentSet.java | addParent(int, int, Instances) | 1 | +| M19 | Weka | weka.classifiers.evaluation | Evaluation.java | evaluationForSingleInstance(double\[\], Instance, boolean) | 1 | +| M20 | Weka | weka.classifiers.evaluation | Evaluation.java | evaluationForSingleInstance(Classifier, Instance, boolean) | 1 | +| M21 | Weka | weka.classifiers.functions | SGD.java | distributionForInstance(Instance) | 1 | +| M22 | Weka | weka.classifiers.functions | SGDText.java | distributionForInstance(Instance) | 2 | +| M23 | Weka | weka.classifiers.functions | SMO.java | checkClassifier() | 4 | +| M24 | Weka | weka.classifiers.functions.neural | NeuralConnection.java | connect(NeuralConnection, NeuralConnection) | 1 | +| M25 | Weka | weka.classifiers.functions.supportVector | StringKernel.java | kernelHelperLP(int, char\[\], int, char\[\], int, int) | 1 | +| M26 | Weka | weka.classifiers.lazy.kstar | KStarNominalAttribute.java | transProb() | 1 | +| M27 | Weka | weka.classifiers.lazy.kstar | KStarNumericAttribute.java | transProb() | 1 | +| M28 | Weka | weka.classifiers.meta | AdaBoostM1.java | toString() | 2 | +| M29 | Weka | weka.classifiers.meta | ClassificationViaRegression.java | buildClassifier(Instances) | 1 | +| M30 | Weka | weka.classifiers.meta | CVParameterSelection.java | findParamsByCrossValidation(int, Instances, Random) | 2 | +| M31 | Weka | weka.classifiers.meta | FilteredClassifier.java | distributionForInstance(Instance) | 2 | +| M32 | Weka | weka.classifiers.meta | FilteredClassifier.java | resampleAttributes(Instances, boolean, Random) | 3 | +| M33 | Weka | weka.classifiers.pmml.consumer | NeuralNetwork.java | distributionForInstance(Instance) | 3 | +| M34 | Weka | weka.classifiers.trees | RandomTree.java | distributionForInstance(Instance) | 3 | +| M35 | Weka | weka.classifiers.trees | REPTree.java | leafString(Tree) | 2 | +| M36 | Weka | weka.classifiers.trees.ht | InfoGainSplitMetric.java | evaluateSplit(Map, List>) | 2 | +| M37 | Weka | weka.clusterers | Cobweb.java | getTechnicalInformation() | 2 | +| M38 | Weka | weka.clusterers | FarthestFirst.java | difference(int, double, double) | 1 | +| M39 | Weka | weka.core | Capabilities.java | main(String\[\]) | 3 | +| M40 | Weka | weka.core | Statistics.java | incompleteGammaComplement(double, double) | 1 | +| M41 | Weka | weka.core | Statistics.java | normalInverse(double) | 2 | +| M42 | Weka | weka.core | TestInstances.java | main(String\[\]) | 2 | +| M43 | Weka | weka.core.converters | DatabaseLoader.java | newDatabaseConnection() | 1 | +| M44 | Weka | weka.core.xml | XMLInstances.java | headerFromXML() | 2 | +| M45 | Xerces | org.apache.html.dom | NameNodeListImpl.java | nextMatchingElementAfter(Node) | 1 | +| M46 | Xerces | org.apache.xerces.dom | DeepNodeListImpl.java | nextMatchingElementAfter(Node) | 1 | +| M47 | Xerces | org.apache.xerces.dom | DeepNodeListImpl.java | item(int) | 1 | +| M48 | Xerces | org.apache.xerces.dom | DeferredDocumentImpl.java | lookupElementDefinition(String) | 2 | +| M49 | Xerces | org.apache.xerces.dom | DOMImplementationSourceImpl.java | testImpl(DOMImplementation, String) | 1 | +| M50 | Xerces | org.apache.xerces.dom | ObjectFactory.java | findProviderClass(String, ClassLoader, boolean) | 2 | +| M51 | Xerces | org.apache.xerces.dom | TreeWalkerImpl.java | previousNode() | 2 | +| M52 | Xerces | org.apache.xerces.impl | XML11EntityScanner.java | skipSpaces() | 2 | +| M53 | Xerces | org.apache.xerces.impl.dtd | XMLDTDDescription.java | equals(Object) | 1 | +| M54 | Xerces | org.apache.xerces.impl.dtd | DTDGrammar.java | getElementContentModelValidator(int) | 1 | +| M55 | Xerces | org.apache.xerces.impl.dv.util | Base64.java | decode(String) | 3 | +| M56 | Xerces | org.apache.xerces.impl.dv.xs | XSSimpleTypeDecl.java | normalize(Object, short) | 1 | +| M57 | Xerces | org.apache.xerces.impl.dv.xs | AbstractDateTimeDV.java | compareDates(DateTimeData, DateTimeData, boolean) | 4 | +| M58 | Xerces | org.apache.xerces.impl.xs | XSModelImpl.java | getComponentsByNamespace(short, String) | 2 | \ No newline at end of file diff --git a/dataSet/MultipleOutput/RQ2.xlsx b/dataSet/MultipleOutput/RQ2.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..702b781c63da7750c59b59c0bc62b9401efe9cbf GIT binary patch literal 16535 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 QKoEdmlt3D5@qd5!KVpPoPyhe` literal 0 HcmV?d00001 diff --git a/src/gr/uom/java/ast/decomposition/cfg/PDG.java b/src/gr/uom/java/ast/decomposition/cfg/PDG.java index 8329e2b..db1e52e 100644 --- a/src/gr/uom/java/ast/decomposition/cfg/PDG.java +++ b/src/gr/uom/java/ast/decomposition/cfg/PDG.java @@ -453,11 +453,76 @@ public Set getAssignmentNodesOfVariableCriterionOutput(AbstractVariable } else if (pdgNode.getId()==Last && pdgNode.usesLocalVariable(localVariableCriterion)){ if(!(pdgNode instanceof PDGExitNode)){ - nodeCriteria.add(pdgNode); + String MethodInvocer = ""; + int Counter = 0; + System.out.println("??????"); + int I = pdgNode.getCFGNode().getStatement().getMethodInvocations().size()-1; + MethodInvocationObject M = pdgNode.getCFGNode().getStatement().getMethodInvocations().get(I); + if(M.getMethodInvocation().getExpression() != null){ + MethodInvocer = M.getMethodInvocation().getExpression().toString(); + } + for(VariableDeclaration declaration : getVariableDeclarationsInMethod()){ + PlainVariable localVariable = new PlainVariable(declaration); + if(pdgNode.usesLocalVariable(localVariable)){ + if( !(localVariable.toString().equals(MethodInvocer)) && !(localVariable.toString().equals(localVariableCriterion.toString()))){ + Counter++; + } + + } + } + System.out.println(Counter); + System.out.println("??///////???"); + + if(Counter == 0 ){ + nodeCriteria.add(pdgNode); + } + + + + + + + + + /* + for(VariableDeclaration declaration : getVariableDeclarationsInMethod()){ + PlainVariable localVariable = new PlainVariable(declaration); + int I = pdgNode.getCFGNode().getStatement().getMethodInvocations().size()-1; + MethodInvocationObject M = pdgNode.getCFGNode().getStatement().getMethodInvocations().get(I); + if(!pdgNode.getStatement().getUsedLocalVariables().isEmpty()){ + for (PlainVariable P : pdgNode.getStatement().getUsedLocalVariables()){ + if(M.getMethodInvocation().getExpression() != null){ + if(P.toString().equals(M.getMethodInvocation().getExpression().toString())){ + + } + else{ + if(pdgNode.usesLocalVariable(localVariable)){ + System.out.println("KHOOO "+localVariable.toString()); + Counter++; + } + } + } + else{ + if(pdgNode.usesLocalVariable(localVariable)){ + System.out.println("KHOOO "+localVariable.toString()); + Counter++; + } + } + } + + } + + } + + if(Counter <= 1){ + nodeCriteria.add(pdgNode); + } + */ + + } } - } return nodeCriteria; }