From d20d54c4171aa573c83b722620a7d2afd526c117 Mon Sep 17 00:00:00 2001
From: maysam zoor <maysam_zoor@hotmail.com>
Date: Wed, 13 Jan 2021 10:38:08 +0100
Subject: [PATCH] update

---
 .../DirectedGraphTranslator.java              | 404 +++++++++---------
 .../JFrameCompareLatencyDetail.java           |  26 +-
 .../JFrameLatencyComparedDetailedPopup.java   |  39 +-
 .../JFrameLatencyDetailedAnalysis.java        |  53 +--
 .../JFrameLatencyDetailedPopup.java           |  46 +-
 .../{considerrule.html => considerRule.html}  |   0
 .../help/{considerrule.md => considerRule.md} |   0
 src/main/resources/help/helpTable.txt         |   2 +-
 8 files changed, 308 insertions(+), 262 deletions(-)
 rename src/main/resources/help/{considerrule.html => considerRule.html} (100%)
 rename src/main/resources/help/{considerrule.md => considerRule.md} (100%)

diff --git a/src/main/java/ui/simulationtraceanalysis/DirectedGraphTranslator.java b/src/main/java/ui/simulationtraceanalysis/DirectedGraphTranslator.java
index ecee6adeec..e38ff30231 100644
--- a/src/main/java/ui/simulationtraceanalysis/DirectedGraphTranslator.java
+++ b/src/main/java/ui/simulationtraceanalysis/DirectedGraphTranslator.java
@@ -167,7 +167,7 @@ public class DirectedGraphTranslator extends JApplet {
 
     private HashMap<Integer, List<String>> detailsOfMinMaxRow = new HashMap<Integer, List<String>>();
     private HashMap<Integer, List<SimulationTransaction>> dataBydelayedTasksOfMinMAx = new HashMap<Integer, List<SimulationTransaction>>();
-    private final JFrame frame = new JFrame("The Sys-ML Model As Directed Graph");
+    private final JFrame frame = new JFrame("The SysML Model As Directed Graph");
 
     private List<Integer> times1 = new ArrayList<Integer>();
     private List<Integer> times2 = new ArrayList<Integer>();
@@ -234,6 +234,31 @@ public class DirectedGraphTranslator extends JApplet {
     private List<SimulationTransaction> offPath = new ArrayList<SimulationTransaction>();
     private List<SimulationTransaction> offPathDelay = new ArrayList<SimulationTransaction>();
 
+    private static final String selectEventparam = "SelectEvent params:";
+    private static final String selectEvent = "SelectEvent";
+    private static final String transactions = "Transactions";
+    private static final String mandatory = "Mandatory";
+    private static final String operatorLabel = "operator";
+    private static final String startTimeLabel = "starttime";
+    private static final String endTimeLabel = "endtime";
+    private static final String lengthLabel = "length";
+    private static final String noContentionLabel = "NoContention";
+    private static final String contentionLabel = "Contention";
+    private static final String idLabel = "id";
+    private static final String latencyTableLabel = "LatencyTable";
+    private static final String latencyLabel = "Latency";
+    private static final String rowLabel = "Row";
+    private static final String minLabel = "Min";
+    private static final String maxLabel = "Max";
+    private static final String op1 = "op1";
+    private static final String op2 = "op2";
+    private static final String stLAbel = "st";
+    private static final String waitLabel = "Wait";
+    private static final String waitReqLabel = "Wait reqChannel_";
+    private static final String getReqArgLabel = "getReqArg";
+    private static final String waitSt = "Wait: ";
+    private static final String waitEvent = "wait event: ";
+
     @SuppressWarnings("deprecation")
     public DirectedGraphTranslator(JFrameLatencyDetailedAnalysis jFrameLatencyDetailedAnalysis, JFrameCompareLatencyDetail jframeCompareLatencyDetail,
             TMLMapping<TGComponent> tmap1, List<TMLComponentDesignPanel> cpanels1, int i) {
@@ -335,11 +360,11 @@ public class DirectedGraphTranslator extends JApplet {
             if (!g.vertexSet().contains(getvertex(ch.getName()))) {
                 vertex v2 = vertex(ch.getName(), ch.getID());
                 g.addVertex(v2);
-                updatemainBar("v");
+                updateMainBar();
                 // gVertecies.add(vertex(ch.getName()));
                 getvertex(ch.getName()).setType(vertex.TYPE_CHANNEL);
                 getvertex(ch.getName()).setTaintFixedNumber(0);
-                updatemainBar(ch.getName());
+                updateMainBar();
 
             }
 
@@ -406,11 +431,11 @@ public class DirectedGraphTranslator extends JApplet {
 
                 if (!g.containsVertex(getvertex(ChannelName))) {
                     g.addVertex(v);
-                    updatemainBar("v");
+                    updateMainBar();
                     getvertex(ChannelName).setType(vertex.TYPE_CHANNEL);
                     // gVertecies.add(vertex(ChannelName));
                     getvertex(ChannelName).setTaintFixedNumber(0);
-                    updatemainBar("ChannelName");
+                    updateMainBar();
 
                 }
 
@@ -435,13 +460,13 @@ public class DirectedGraphTranslator extends JApplet {
 
                 if (!g.containsVertex(getvertex(ChannelName))) {
                     g.addVertex(v);
-                    updatemainBar("v");
+                    updateMainBar();
                     getvertex(ChannelName).setType(vertex.TYPE_CHANNEL);
                     // gVertecies.add(vertex(ChannelName));
 
                     getvertex(ChannelName).setTaintFixedNumber(0);
 
-                    updatemainBar("ChannelName");
+                    updateMainBar();
 
                 }
 
@@ -466,11 +491,11 @@ public class DirectedGraphTranslator extends JApplet {
 
                 if (!g.containsVertex(v)) {
                     g.addVertex(v);
-                    updatemainBar("v");
+                    updateMainBar();
                     getvertex(ChannelName).setType(vertex.TYPE_CHANNEL);
                     // gVertecies.add(vertex(ChannelName));
                     getvertex(ChannelName).setTaintFixedNumber(0);
-                    updatemainBar("ChannelName");
+                    updateMainBar();
 
                 }
 
@@ -497,7 +522,7 @@ public class DirectedGraphTranslator extends JApplet {
 
             if (!g.containsVertex(v)) {
                 g.addVertex(v);
-                updatemainBar("getMemories");
+                updateMainBar();
 
             }
 
@@ -545,7 +570,7 @@ public class DirectedGraphTranslator extends JApplet {
             if (!g.containsVertex(v)) {
                 g.addVertex(v);
 
-                updatemainBar("getHwBridge");
+                updateMainBar();
 
             }
 
@@ -569,7 +594,7 @@ public class DirectedGraphTranslator extends JApplet {
             if (!g.containsVertex(v)) {
                 g.addVertex(v);
 
-                updatemainBar("getBUSs");
+                updateMainBar();
 
             }
 
@@ -858,7 +883,7 @@ public class DirectedGraphTranslator extends JApplet {
 
     }
 
-    private void updatemainBar(String string) {
+    private void updateMainBar() {
 
         nbOfNodes++;
 
@@ -928,11 +953,11 @@ public class DirectedGraphTranslator extends JApplet {
 
                 if (!g.vertexSet().contains(getvertex(key))) {
                     g.addVertex(vertex(key, keyID));
-                    updatemainBar(key);
+                    updateMainBar();
                 }
                 if (!g.vertexSet().contains(getvertex(taskName))) {
                     g.addVertex(vertex(taskName, taskID));
-                    updatemainBar(taskName);
+                    updateMainBar();
                 }
 
                 g.addEdge(getvertex(key), getvertex(taskName));
@@ -954,7 +979,7 @@ public class DirectedGraphTranslator extends JApplet {
 
                     if (currentElement.getName().equals("Stop after infinite loop")) {
                         opCount++;
-                        updatemainBar("v");
+                        updateMainBar();
                         if (opCount <= activity.nElements()) {
                             if (currentElement.getNexts().size() == 1) {
 
@@ -974,7 +999,7 @@ public class DirectedGraphTranslator extends JApplet {
                     } else if (currentElement.getName().equals("startOfFork") || currentElement.getName().equals("junctionOfFork")
                             || currentElement.getName().equals("startOfJoin") || currentElement.getName().equals("junctionOfJoin")) {
                         opCount++;
-                        updatemainBar("v");
+                        updateMainBar();
                         currentElement = currentElement.getNexts().firstElement();
 
                         continue;
@@ -984,7 +1009,7 @@ public class DirectedGraphTranslator extends JApplet {
                         int id = ((TMLReadChannel) (currentElement)).getChannel(0).getID();
                         if (!g.containsVertex(getvertex(name))) {
                             g.addVertex(vertex(name, id));
-                            updatemainBar("v");
+                            updateMainBar();
 
                         }
 
@@ -1006,7 +1031,7 @@ public class DirectedGraphTranslator extends JApplet {
                         }
 
                         opCount++;
-                        updatemainBar("v");
+                        updateMainBar();
                         currentElement = currentElement.getNexts().firstElement();
 
                         continue;
@@ -1019,7 +1044,7 @@ public class DirectedGraphTranslator extends JApplet {
                         vertex v = getvertex(vName);
                         if (!g.containsVertex(v)) {
                             g.addVertex(vertex(vName, vid));
-                            updatemainBar("v");
+                            updateMainBar();
 
                         }
 
@@ -1041,7 +1066,7 @@ public class DirectedGraphTranslator extends JApplet {
                         // g.addEdge(getvertex(taskName),getvertex(((TMLWriteChannel)(currentElement)).getChannel(0).getName()));
 
                         opCount++;
-                        updatemainBar("v");
+                        updateMainBar();
                         currentElement = currentElement.getNexts().firstElement();
 
                         continue;
@@ -1049,7 +1074,7 @@ public class DirectedGraphTranslator extends JApplet {
                     } else if (currentElement.getName().equals("stopOfFork") || currentElement.getName().equals("stop2OfFork")
                             || currentElement.getName().equals("stopOfJoin")) {
                         opCount++;
-                        updatemainBar("v");
+                        updateMainBar();
                         // currentElement = currentElement.getNexts().firstElement();
                         continue;
                     } else if (taskName.startsWith("JOINTASK_S_") && currentElement.getName().startsWith("ReadOfJoin")) {
@@ -1059,7 +1084,7 @@ public class DirectedGraphTranslator extends JApplet {
 
                         if (!g.containsVertex(getvertex(vName))) {
                             g.addVertex(vertex(vName, vid));
-                            updatemainBar("v");
+                            updateMainBar();
 
                         }
 
@@ -1081,7 +1106,7 @@ public class DirectedGraphTranslator extends JApplet {
                         // g.addEdge(getvertex(task.getName()),getvertex(((TMLWriteChannel)(currentElement)).getChannel(0).getName()));
 
                         opCount++;
-                        updatemainBar("v");
+                        updateMainBar();
 
                         currentElement = currentElement.getNexts().firstElement();
 
@@ -1093,7 +1118,7 @@ public class DirectedGraphTranslator extends JApplet {
 
                         if (!g.containsVertex(getvertex(vName))) {
                             g.addVertex(vertex(vName, vid));
-                            updatemainBar("v");
+                            updateMainBar();
 
                         }
 
@@ -1115,7 +1140,7 @@ public class DirectedGraphTranslator extends JApplet {
                         }
 
                         opCount++;
-                        updatemainBar("v");
+                        updateMainBar();
                         currentElement = currentElement.getNexts().firstElement();
 
                         continue;
@@ -1128,7 +1153,7 @@ public class DirectedGraphTranslator extends JApplet {
                         vertex v = getvertex(vName);
                         if (!g.containsVertex(v)) {
                             g.addVertex(vertex(vName, vid));
-                            updatemainBar("v");
+                            updateMainBar();
 
                         }
 
@@ -1150,7 +1175,7 @@ public class DirectedGraphTranslator extends JApplet {
                         // g.addEdge(getvertex(taskName),getvertex(((TMLWriteChannel)(currentElement)).getChannel(0).getName()));
 
                         opCount++;
-                        updatemainBar("v");
+                        updateMainBar();
                         currentElement = currentElement.getNexts().firstElement();
 
                         continue;
@@ -1161,7 +1186,7 @@ public class DirectedGraphTranslator extends JApplet {
                         int id = ((TMLWaitEvent) (currentElement)).getEvent().getID();
                         if (!g.containsVertex(getvertex(name))) {
                             g.addVertex(vertex(name, id));
-                            updatemainBar("v");
+                            updateMainBar();
 
                         }
 
@@ -1183,7 +1208,7 @@ public class DirectedGraphTranslator extends JApplet {
                         }
 
                         opCount++;
-                        updatemainBar("v");
+                        updateMainBar();
                         currentElement = currentElement.getNexts().firstElement();
 
                         continue;
@@ -1306,10 +1331,12 @@ public class DirectedGraphTranslator extends JApplet {
                         String[] val = cond.split("<=");
 
                         String loopValue = val[2].toString();
+
+                        int loopVal = Integer.valueOf(loopValue);
                         if ((loopValue != null) && (loopValue.length() > 0)) {
 
                             if ((loopValue.matches("\\d*"))) {
-                                getvertex(eventName).setTaintFixedNumber(Integer.valueOf(loopValue));
+                                getvertex(eventName).setTaintFixedNumber(loopVal);
                             } else {
                                 for (TMLAttribute att : taskAc.getAttributes()) {
 
@@ -1319,7 +1346,7 @@ public class DirectedGraphTranslator extends JApplet {
 
                                 }
 
-                                getvertex(eventName).setTaintFixedNumber(Integer.valueOf(loopValue));
+                                getvertex(eventName).setTaintFixedNumber(loopVal);
 
                             }
                         }
@@ -1329,10 +1356,12 @@ public class DirectedGraphTranslator extends JApplet {
                         String[] val = cond.split("<");
 
                         String loopValue = val[1].toString();
+                        int loopVal = Integer.valueOf(loopValue);
+
                         if ((loopValue != null) && (loopValue.length() > 0)) {
 
                             if ((loopValue.matches("\\d*"))) {
-                                getvertex(eventName).setTaintFixedNumber(Integer.valueOf(loopValue));
+                                getvertex(eventName).setTaintFixedNumber(loopVal);
                             } else {
                                 for (TMLAttribute att : taskAc.getAttributes()) {
 
@@ -1342,7 +1371,7 @@ public class DirectedGraphTranslator extends JApplet {
 
                                 }
                                 if ((loopValue.matches("\\d*"))) {
-                                    getvertex(eventName).setTaintFixedNumber(Integer.valueOf(loopValue));
+                                    getvertex(eventName).setTaintFixedNumber(loopVal);
                                 }
                                 {
                                     frameLatencyDetailedAnalysis.error(loopValue + " Expression in For Loop is not supported by Tainting");
@@ -1497,7 +1526,7 @@ public class DirectedGraphTranslator extends JApplet {
         vertex startv = vertex(taskStartName, currentElement.getID());
 
         g.addVertex(startv);
-        updatemainBar("v");
+        updateMainBar();
         // gVertecies.add(vertex(taskStartName));
         getvertex(taskStartName).setType(vertex.TYPE_START);
         getvertex(taskStartName).setTaintFixedNumber(1);
@@ -1520,10 +1549,10 @@ public class DirectedGraphTranslator extends JApplet {
 
             if (sendingPortdetails != null && !sendingPortdetails.isBlocking()) {
                 warnings.add(
-                        "send event port:" + sendingPortdetails.getPortName() + " is non-blocking. Use tainting for an accurate latency analysis");
+                        "Send event port:" + sendingPortdetails.getPortName() + " is non-blocking. Use tainting for an accurate latency analysis");
             }
             if (sendingPortdetails != null && sendingPortdetails.isFinite()) {
-                warnings.add("send event port:" + sendingPortdetails.getPortName() + " is Finite. Event lost is not supported in latency analysis ");
+                warnings.add("Send event port:" + sendingPortdetails.getPortName() + " is Finite. Event lost is not supported in latency analysis ");
             }
             String receivePortparams = waitEvent.getAllParams();
 
@@ -1847,7 +1876,7 @@ public class DirectedGraphTranslator extends JApplet {
                 if (sp != null && rp != null) {
 
                     if (!sp.isBlocking() && !rp.isBlocking()) {
-                        warnings.add("send data port:" + sp.getPortName() + " and read data port:" + rp.getPortName()
+                        warnings.add("Send data port:" + sp.getPortName() + " and read data port:" + rp.getPortName()
                                 + " are non-blocking. Use tainting for an accurate latency analysis.");
 
                     }
@@ -2052,9 +2081,7 @@ public class DirectedGraphTranslator extends JApplet {
             vertex preV = vertex(preEventName, preEventid);
 
             g.addVertex(v);
-            updatemainBar("v");
-            // gVertecies.add(vertex(eventName));
-
+            updateMainBar();
             g.addEdge(preV, v);
             opCount++;
 
@@ -2062,7 +2089,7 @@ public class DirectedGraphTranslator extends JApplet {
             vertex v = vertex(eventName, eventid);
 
             g.addVertex(v);
-            updatemainBar("v");
+            updateMainBar();
             // gVertecies.add(vertex(eventName));
             g.addEdge(getvertex(taskStartName), getvertex(eventName));
             opCount++;
@@ -2425,7 +2452,7 @@ public class DirectedGraphTranslator extends JApplet {
         vertex taskEndVertex = vertex(taskEndName, taskEndid);
 
         g.addVertex(taskEndVertex);
-        updatemainBar("v");
+        updateMainBar();
         // gVertecies.add(vertex(taskEndName));
         getvertex(eventName).setType(vertex.TYPE_END);
         getvertex(eventName).setTaintFixedNumber(1);
@@ -3277,6 +3304,9 @@ public class DirectedGraphTranslator extends JApplet {
             int j = 0;
             for (SimulationTransaction st : transFile1) {
 
+                int startTime = Integer.valueOf(st.startTime);
+                int endTime = Integer.valueOf(st.endTime);
+                int id = Integer.valueOf(st.id);
                 if (st.coreNumber == null) {
                     st.coreNumber = "0";
 
@@ -3311,20 +3341,20 @@ public class DirectedGraphTranslator extends JApplet {
 
                 String tasknameCheckID = "";
 
-                if (st.command.contains("SelectEvent params:")) {
-                    st.command = st.command.replace("SelectEvent", "Wait: " + st.channelName);
+                if (st.command.contains(selectEventparam)) {
+                    st.command = st.command.replace(selectEvent, waitSt + st.channelName);
 
                     String[] chN = st.channelName.split("__");
 
                     String eventN = chN[chN.length - 1];
 
-                    vertex v = getvertexFromID(Integer.valueOf(st.id));
+                    vertex v = getvertexFromID(id);
                     String vName = v.getName();
 
                     if (Graphs.vertexHasSuccessors(g, v)) {
                         for (vertex vsec : Graphs.successorListOf(g, v)) {
 
-                            if (vsec.getName().contains("wait event: " + eventN + "(")) {
+                            if (vsec.getName().contains(waitEvent + eventN + "(")) {
                                 st.id = String.valueOf(vsec.getId());
                             }
 
@@ -3332,14 +3362,14 @@ public class DirectedGraphTranslator extends JApplet {
 
                     }
 
-                } else if (st.command.contains("Wait reqChannel_")) {
-                    vertex v = getvertexFromID(Integer.valueOf(st.id));
+                } else if (st.command.contains(waitReqLabel)) {
+                    vertex v = getvertexFromID(id);
                     if (v.getType() == vertex.TYPE_START) {
                         if (Graphs.vertexHasSuccessors(g, v)) {
 
                             for (vertex vbefore : Graphs.successorListOf(g, v)) {
 
-                                if (vbefore.getName().startsWith("getReqArg")) {
+                                if (vbefore.getName().startsWith(getReqArgLabel)) {
                                     st.id = String.valueOf(vbefore.getId());
                                 }
 
@@ -3391,7 +3421,7 @@ public class DirectedGraphTranslator extends JApplet {
 
                         if (isNumeric(taskToAddid)) {
 
-                            if (Integer.valueOf(taskToAddid).equals(Integer.valueOf(st.id))) {
+                            if (Integer.valueOf(taskToAddid).equals(id)) {
 
                                 taskname = tasknameCheck.toString();
 
@@ -3412,7 +3442,7 @@ public class DirectedGraphTranslator extends JApplet {
 
                                     }
 
-                                    times1.add(Integer.valueOf(st.startTime));
+                                    times1.add(startTime);
                                     Collections.sort(times1);
 
                                 }
@@ -3657,7 +3687,7 @@ public class DirectedGraphTranslator extends JApplet {
                             task2DeviceName = st.deviceName;
 
                             task2CoreNbr = st.coreNumber;
-                            times2.add(Integer.valueOf(st.endTime));
+                            times2.add(endTime);
                             Collections.sort(times2);
 
                         }
@@ -3675,7 +3705,7 @@ public class DirectedGraphTranslator extends JApplet {
 
                         ArrayList<Integer> timeValues = new ArrayList<Integer>();
                         timeValues.add(0, Integer.valueOf(st.runnableTime));
-                        timeValues.add(1, Integer.valueOf(st.startTime));
+                        timeValues.add(1, startTime);
 
                         if (!(st.runnableTime).equals(st.startTime)) {
 
@@ -3734,7 +3764,7 @@ public class DirectedGraphTranslator extends JApplet {
                                 task2DeviceName = st.deviceName;
 
                                 task2CoreNbr = st.coreNumber;
-                                times2.add(Integer.valueOf(st.endTime));
+                                times2.add(endTime);
                                 Collections.sort(times2);
 
                             }
@@ -3752,7 +3782,7 @@ public class DirectedGraphTranslator extends JApplet {
 
                             ArrayList<Integer> timeValues = new ArrayList<Integer>();
                             timeValues.add(0, Integer.valueOf(st.runnableTime));
-                            timeValues.add(1, Integer.valueOf(st.startTime));
+                            timeValues.add(1, startTime);
 
                             if (!(st.runnableTime).equals(st.startTime)) {
 
@@ -3841,26 +3871,28 @@ public class DirectedGraphTranslator extends JApplet {
 
                     for (SimulationTransaction st : relatedsimTraceswithTaint.get(labeli)) {
 
-                        if (!(Integer.valueOf(st.startTime) < s1 && Integer.valueOf(st.endTime) <= s1)
-                                && !(Integer.valueOf(st.startTime) >= s2 && Integer.valueOf(st.endTime) > s2)) {
+                        int startTime = Integer.valueOf(st.startTime);
+                        int endTime = Integer.valueOf(st.endTime);
+
+                        if (!(startTime < s1 && endTime <= s1) && !(startTime >= s2 && endTime > s2)) {
 
                             // if (Integer.valueOf(st.startTime) >= minTime && Integer.valueOf(st.startTime)
                             // < maxTime) {
 
-                            if (Integer.valueOf(st.endTime) > s2) {
-                                st.endTime = Integer.valueOf(s2).toString();
-                                st.length = Integer.valueOf(Integer.valueOf(s2) - Integer.valueOf(st.startTime)).toString();
+                            if (endTime > s2) {
+                                st.endTime = String.valueOf(s2);
+                                st.length = String.valueOf(s2 - startTime);
                             }
 
-                            if (Integer.valueOf(st.startTime) < s1 && Integer.valueOf(st.endTime) != s1) {
-                                st.startTime = Integer.valueOf(s1).toString();
-                                st.length = Integer.valueOf(Integer.valueOf(st.endTime) - Integer.valueOf(s1)).toString();
+                            if (startTime < s1 && endTime != s1) {
+                                st.startTime = String.valueOf(s1);
+                                st.length = String.valueOf(endTime - s1);
                             }
 
-                            if (Integer.valueOf(st.startTime) < s1 && Integer.valueOf(st.endTime) > s2) {
-                                st.startTime = Integer.valueOf(s1).toString();
-                                st.endTime = Integer.valueOf(s2).toString();
-                                st.length = Integer.valueOf(Integer.valueOf(s2) - Integer.valueOf(s1)).toString();
+                            if (startTime < s1 && endTime > s2) {
+                                st.startTime = String.valueOf(s1);
+                                st.endTime = String.valueOf(s2);
+                                st.length = String.valueOf(s2 - s1);
                             }
                             relatedSTTaint.add(st);
 
@@ -3882,26 +3914,26 @@ public class DirectedGraphTranslator extends JApplet {
 
                 for (SimulationTransaction st : delayDueTosimTraces) {
 
-                    if (!(Integer.valueOf(st.startTime) < times1.get(row) && Integer.valueOf(st.endTime) <= times1.get(row))
-                            && !(Integer.valueOf(st.startTime) >= times2.get(row) && Integer.valueOf(st.endTime) > times2.get(row))) {
+                    int startTime = Integer.valueOf(st.startTime);
+                    int endTime = Integer.valueOf(st.endTime);
 
-                        // if (Integer.valueOf(st.startTime) >= minTime && Integer.valueOf(st.startTime)
-                        // < maxTime) {
+                    if (!(startTime < times1.get(row) && endTime <= times1.get(row))
+                            && !(startTime >= times2.get(row) && endTime > times2.get(row))) {
 
-                        if (Integer.valueOf(st.endTime) > times2.get(row)) {
+                        if (endTime > times2.get(row)) {
                             st.endTime = times2.get(row).toString();
-                            st.length = Integer.valueOf(Integer.valueOf(times2.get(row)) - Integer.valueOf(st.startTime)).toString();
+                            st.length = String.valueOf(times2.get(row) - startTime);
                         }
 
-                        if (Integer.valueOf(st.startTime) < times1.get(row)) {
-                            st.startTime = Integer.valueOf(times1.get(row)).toString();
-                            st.length = Integer.valueOf(Integer.valueOf(st.endTime) - Integer.valueOf(times1.get(row))).toString();
+                        if (startTime < times1.get(row)) {
+                            st.startTime = times1.get(row).toString();
+                            st.length = String.valueOf(endTime - times1.get(row));
                         }
 
-                        if (Integer.valueOf(st.startTime) < times1.get(row) && Integer.valueOf(st.endTime) > times2.get(row)) {
-                            st.startTime = Integer.valueOf(times1.get(row)).toString();
+                        if (startTime < times1.get(row) && endTime > times2.get(row)) {
+                            st.startTime = times1.get(row).toString();
                             st.endTime = times2.get(row).toString();
-                            st.length = Integer.valueOf(Integer.valueOf(times2.get(row)) - Integer.valueOf(times1.get(row))).toString();
+                            st.length = String.valueOf(times2.get(row) - times1.get(row));
                         }
                         delayDueTosimTracesTaint.add(st);
 
@@ -3918,17 +3950,19 @@ public class DirectedGraphTranslator extends JApplet {
 
             for (SimulationTransaction st : transFile1) {
 
+                int startTime = Integer.valueOf(st.startTime);
+                int endTime = Integer.valueOf(st.endTime);
+                int selectID = Integer.valueOf(st.id);
+
                 if (st.coreNumber == null) {
                     st.coreNumber = "0";
 
                 }
 
-                if (st.command.contains("SelectEvent params:") && getvertexFromID(Integer.valueOf(st.id)).getType() == 11) {
-                    st.command = st.command.replace("SelectEvent params:", "Wait" + st.channelName);
-
-                    int selectID = Integer.valueOf(st.id);
+                if (st.command.contains(selectEventparam) && getvertexFromID(selectID).getType() == 11) {
+                    st.command = st.command.replace(selectEventparam, waitLabel + st.channelName);
 
-                    vertex selectV = getvertexFromID(Integer.valueOf(selectID));
+                    vertex selectV = getvertexFromID(selectID);
 
                     String[] chName = st.channelName.toString().split("__");
 
@@ -3943,13 +3977,13 @@ public class DirectedGraphTranslator extends JApplet {
                         }
                     }
 
-                } else if (st.command.contains("Wait reqChannel_")) {
-                    vertex v = getvertexFromID(Integer.valueOf(st.id));
+                } else if (st.command.contains(waitReqLabel)) {
+                    vertex v = getvertexFromID(selectID);
                     if (v.getType() == vertex.TYPE_START) {
                         if (Graphs.vertexHasSuccessors(g, v)) {
 
                             for (vertex vbefore : Graphs.successorListOf(g, v)) {
-                                if (vbefore.getName().startsWith("getReqArg")) {
+                                if (vbefore.getName().startsWith(getReqArgLabel)) {
                                     st.id = String.valueOf(vbefore.getId());
                                 }
 
@@ -3959,20 +3993,20 @@ public class DirectedGraphTranslator extends JApplet {
                     }
                 }
 
-                if (st.id.equals(idTask1) && !times1.contains(Integer.valueOf(st.startTime))) {
+                if (st.id.equals(idTask1) && !times1.contains(startTime)) {
                     Task1Traces.add(st);
                     task1DeviceName = st.deviceName;
                     task1CoreNbr = st.coreNumber;
-                    times1.add(Integer.valueOf(st.startTime));
+                    times1.add(startTime);
                     Collections.sort(times1);
 
                 }
 
-                if (st.id.equals(idTask2) && !times2.contains(Integer.valueOf(st.endTime))) {
+                if (st.id.equals(idTask2) && !times2.contains(endTime)) {
                     Task2Traces.add(st);
                     task2DeviceName = st.deviceName;
                     task2CoreNbr = st.coreNumber;
-                    times2.add(Integer.valueOf(st.endTime));
+                    times2.add(endTime);
                     Collections.sort(times1);
                 }
 
@@ -3999,23 +4033,18 @@ public class DirectedGraphTranslator extends JApplet {
                 runnableTimePerDevice = new HashMap<String, ArrayList<ArrayList<Integer>>>();
 
                 for (SimulationTransaction st : transFile1) {
-                    Boolean onPath = false;
-
-                    // if (Integer.valueOf(st.startTime) >= times1.get(i) &&
-                    // Integer.valueOf(st.startTime) < times2.get(i)) {
-
-                    if (!(Integer.valueOf(st.startTime) < times1.get(i) && Integer.valueOf(st.endTime) <= times1.get(i))
-                            && !(Integer.valueOf(st.startTime) >= times2.get(i) && Integer.valueOf(st.endTime) > times2.get(i))) {
 
-                        // if (Integer.valueOf(st.startTime) >= minTime && Integer.valueOf(st.startTime)
-                        // < maxTime) {
+                    int startTime = Integer.valueOf(st.startTime);
+                    int endTime = Integer.valueOf(st.endTime);
+                    int selectID = Integer.valueOf(st.id);
+                    Boolean onPath = false;
 
-                        if (st.command.contains("SelectEvent params:") && getvertexFromID(Integer.valueOf(st.id)).getType() == 11) {
-                            st.command = st.command.replace("SelectEvent params:", "Wait" + st.channelName);
+                    if (!(startTime < times1.get(i) && endTime <= times1.get(i)) && !(startTime >= times2.get(i) && endTime > times2.get(i))) {
 
-                            int selectID = Integer.valueOf(st.id);
+                        if (st.command.contains(selectEventparam) && getvertexFromID(selectID).getType() == 11) {
+                            st.command = st.command.replace(selectEventparam, waitLabel + st.channelName);
 
-                            vertex selectV = getvertexFromID(Integer.valueOf(selectID));
+                            vertex selectV = getvertexFromID(selectID);
 
                             String[] chName = st.channelName.toString().split("__");
 
@@ -4029,13 +4058,13 @@ public class DirectedGraphTranslator extends JApplet {
                                     st.id = String.valueOf(nextV.getId());
                                 }
                             }
-                        } else if (st.command.contains("Wait reqChannel_")) {
-                            vertex v = getvertexFromID(Integer.valueOf(st.id));
+                        } else if (st.command.contains(waitReqLabel)) {
+                            vertex v = getvertexFromID(selectID);
                             if (v.getType() == vertex.TYPE_START) {
                                 if (Graphs.vertexHasSuccessors(g, v)) {
 
                                     for (vertex vbefore : Graphs.successorListOf(g, v)) {
-                                        if (vbefore.getName().startsWith("getReqArg")) {
+                                        if (vbefore.getName().startsWith(getReqArgLabel)) {
                                             st.id = String.valueOf(vbefore.getId());
                                         }
 
@@ -4045,20 +4074,20 @@ public class DirectedGraphTranslator extends JApplet {
                             }
                         }
 
-                        if (Integer.valueOf(st.endTime) > times2.get(i)) {
+                        if (endTime > times2.get(i)) {
                             st.endTime = times2.get(i).toString();
-                            st.length = Integer.valueOf(Integer.valueOf(times2.get(i)) - Integer.valueOf(st.startTime)).toString();
+                            st.length = String.valueOf(times2.get(i) - startTime);
                         }
 
-                        if (Integer.valueOf(st.startTime) < times1.get(i) && Integer.valueOf(st.endTime) != times1.get(i)) {
-                            st.startTime = Integer.valueOf(times1.get(i)).toString();
-                            st.length = Integer.valueOf(Integer.valueOf(st.endTime) - Integer.valueOf(times1.get(i))).toString();
+                        if (startTime < times1.get(i) && endTime != times1.get(i)) {
+                            st.startTime = String.valueOf(times1.get(i));
+                            st.length = String.valueOf(endTime - times1.get(i));
                         }
 
-                        if (Integer.valueOf(st.startTime) < times1.get(i) && Integer.valueOf(st.endTime) > times2.get(i)) {
-                            st.startTime = Integer.valueOf(times1.get(i)).toString();
+                        if (startTime < times1.get(i) && endTime > times2.get(i)) {
+                            st.startTime = String.valueOf(times1.get(i));
                             st.endTime = times2.get(i).toString();
-                            st.length = Integer.valueOf(Integer.valueOf(times2.get(i)) - Integer.valueOf(times1.get(i))).toString();
+                            st.length = String.valueOf(times2.get(i) - times1.get(i));
                         }
 
                         String taskname = "";
@@ -4072,7 +4101,7 @@ public class DirectedGraphTranslator extends JApplet {
                             String taskToAddid = taskToAdd[taskToAddindex - 1];
                             if (isNumeric(taskToAddid)) {
 
-                                if (Integer.valueOf(taskToAddid).equals(Integer.valueOf(st.id))) {
+                                if (Integer.valueOf(taskToAddid).equals(selectID)) {
 
                                     taskname = tasknameCheck.toString();
                                     break;
@@ -4100,7 +4129,7 @@ public class DirectedGraphTranslator extends JApplet {
                                     relatedsimTraces.add(st);
                                     ArrayList<Integer> timeValues = new ArrayList<Integer>();
                                     timeValues.add(0, Integer.valueOf(st.runnableTime));
-                                    timeValues.add(1, Integer.valueOf(st.startTime));
+                                    timeValues.add(1, startTime);
 
                                     String dName = st.deviceName + "_" + st.coreNumber;
 
@@ -4194,10 +4223,10 @@ public class DirectedGraphTranslator extends JApplet {
 
             Document dom = builder.newDocument();
 
-            Element root2 = dom.createElement("Transactions");
+            Element root2 = dom.createElement(transactions);
             dom.appendChild(root2); // write DOM to XML file
 
-            Element root1 = dom.createElement("Mandatory");
+            Element root1 = dom.createElement(mandatory);
             root2.appendChild(root1); // write DOM to XML file
 
             for (int i = 0; i < onPath.size(); i++) {
@@ -4205,22 +4234,22 @@ public class DirectedGraphTranslator extends JApplet {
                 SimulationTransaction st = onPath.get(i);
 
                 // first create root element
-                Element root = dom.createElement("st");
+                Element root = dom.createElement(stLAbel);
                 root1.appendChild(root);
 
                 // set `id` attribute to root element
-                Attr attr = dom.createAttribute("id");
+                Attr attr = dom.createAttribute(idLabel);
                 attr.setValue(st.id);
                 root.setAttributeNode(attr);
 
-                // now create child elements (name, email, phone)
-                Element operator = dom.createElement("operator");
+                // now create child elements
+                Element operator = dom.createElement(operatorLabel);
                 operator.setTextContent(st.command);
-                Element start = dom.createElement("starttime");
+                Element start = dom.createElement(startTimeLabel);
                 start.setTextContent(st.startTime);
-                Element et = dom.createElement("endtime");
+                Element et = dom.createElement(endTimeLabel);
                 et.setTextContent(st.endTime);
-                Element l = dom.createElement("length");
+                Element l = dom.createElement(lengthLabel);
                 l.setTextContent(st.length);
 
                 // add child nodes to root node
@@ -4231,7 +4260,7 @@ public class DirectedGraphTranslator extends JApplet {
 
             }
 
-            Element root3 = dom.createElement("NoContention");
+            Element root3 = dom.createElement(noContentionLabel);
             root2.appendChild(root3); // write DOM to XML file
 
             for (int i = 0; i < offPath.size(); i++) {
@@ -4239,22 +4268,22 @@ public class DirectedGraphTranslator extends JApplet {
                 SimulationTransaction st = offPath.get(i);
 
                 // first create root element
-                Element root5 = dom.createElement("st");
+                Element root5 = dom.createElement(stLAbel);
                 root3.appendChild(root5);
 
                 // set `id` attribute to root element
-                Attr attr = dom.createAttribute("id");
+                Attr attr = dom.createAttribute(idLabel);
                 attr.setValue(st.id);
                 root5.setAttributeNode(attr);
 
-                // now create child elements (name, email, phone)
-                Element operator = dom.createElement("operator");
+                // now create child elements
+                Element operator = dom.createElement(operatorLabel);
                 operator.setTextContent(st.command);
-                Element start = dom.createElement("starttime");
+                Element start = dom.createElement(startTimeLabel);
                 start.setTextContent(st.startTime);
-                Element et = dom.createElement("endtime");
+                Element et = dom.createElement(endTimeLabel);
                 et.setTextContent(st.endTime);
-                Element l = dom.createElement("length");
+                Element l = dom.createElement(lengthLabel);
                 l.setTextContent(st.length);
 
                 // add child nodes to root node
@@ -4265,7 +4294,7 @@ public class DirectedGraphTranslator extends JApplet {
 
             }
 
-            Element root4 = dom.createElement("Contention");
+            Element root4 = dom.createElement(contentionLabel);
             root2.appendChild(root4); // write DOM to XML file
 
             for (int i = 0; i < offPathDelay.size(); i++) {
@@ -4273,22 +4302,22 @@ public class DirectedGraphTranslator extends JApplet {
                 SimulationTransaction st = offPathDelay.get(i);
 
                 // first create root element
-                Element root6 = dom.createElement("st");
+                Element root6 = dom.createElement(stLAbel);
                 root4.appendChild(root6);
 
                 // set `id` attribute to root element
-                Attr attr = dom.createAttribute("id");
+                Attr attr = dom.createAttribute(idLabel);
                 attr.setValue(st.id);
                 root6.setAttributeNode(attr);
 
-                // now create child elements (name, email, phone)
-                Element operator = dom.createElement("operator");
+                // now create child elements
+                Element operator = dom.createElement(operatorLabel);
                 operator.setTextContent(st.command);
-                Element start = dom.createElement("starttime");
+                Element start = dom.createElement(startTimeLabel);
                 start.setTextContent(st.startTime);
-                Element et = dom.createElement("endtime");
+                Element et = dom.createElement(endTimeLabel);
                 et.setTextContent(st.endTime);
-                Element l = dom.createElement("length");
+                Element l = dom.createElement(lengthLabel);
                 l.setTextContent(st.length);
 
                 // add child nodes to root node
@@ -4329,7 +4358,7 @@ public class DirectedGraphTranslator extends JApplet {
 
             Document dom = builder.newDocument();
 
-            Element root1 = dom.createElement("LatencyTable");
+            Element root1 = dom.createElement(latencyTableLabel);
             dom.appendChild(root1);
 
             for (int id = 0; id < dataByTask.length; id++) {
@@ -4342,24 +4371,24 @@ public class DirectedGraphTranslator extends JApplet {
                 String op2 = String.valueOf(dataByTask[id][2]);
 
                 // first create root element
-                Element root = dom.createElement("Row");
+                Element root = dom.createElement(rowLabel);
                 root1.appendChild(root);
 
                 // set `id` attribute to root element
-                Attr attr = dom.createAttribute("id");
+                Attr attr = dom.createAttribute(idLabel);
                 attr.setValue(String.valueOf(id));
                 root.setAttributeNode(attr);
 
-                // now create child elements (name, email, phone)
-                Element operator1 = dom.createElement("op1");
+                // now create child elements
+                Element operator1 = dom.createElement(op1);
                 operator1.setTextContent(op1);
-                Element operator2 = dom.createElement("op2");
+                Element operator2 = dom.createElement(op2);
                 operator2.setTextContent(op2);
-                Element st = dom.createElement("starttime");
+                Element st = dom.createElement(startTimeLabel);
                 st.setTextContent(starttime);
-                Element et = dom.createElement("endtime");
+                Element et = dom.createElement(endTimeLabel);
                 et.setTextContent(endtime);
-                Element lat = dom.createElement("latency");
+                Element lat = dom.createElement(latencyLabel);
                 lat.setTextContent(latency);
 
                 // add child nodes to root node
@@ -4381,24 +4410,19 @@ public class DirectedGraphTranslator extends JApplet {
             String op2 = String.valueOf(dataByTaskMinMax[0][2]);
 
             // first create root element
-            Element root = dom.createElement("Min");
+            Element root = dom.createElement(minLabel);
             root1.appendChild(root);
 
-            // set `id` attribute to root element
-            // Attr attr = dom.createAttribute("id");
-            // attr.setValue(String.valueOf(0));
-            // root.setAttributeNode(attr);
-
-            // now create child elements (name, email, phone)
-            Element operator1 = dom.createElement("op1");
+            // now create child elements
+            Element operator1 = dom.createElement(op1);
             operator1.setTextContent(op1);
-            Element operator2 = dom.createElement("op2");
+            Element operator2 = dom.createElement(op2);
             operator2.setTextContent(op2);
-            Element st = dom.createElement("starttime");
+            Element st = dom.createElement(startTimeLabel);
             st.setTextContent(starttime);
-            Element et = dom.createElement("endtime");
+            Element et = dom.createElement(endTimeLabel);
             et.setTextContent(endtime);
-            Element lat = dom.createElement("latency");
+            Element lat = dom.createElement(latencyLabel);
             lat.setTextContent(latency);
 
             // add child nodes to root node
@@ -4416,24 +4440,19 @@ public class DirectedGraphTranslator extends JApplet {
             String op2Max = String.valueOf(dataByTaskMinMax[1][2]);
 
             // first create root element
-            Element rootMax = dom.createElement("Max");
+            Element rootMax = dom.createElement(maxLabel);
             root1.appendChild(rootMax);
 
-            // set `id` attribute to root element
-            // Attr attrMax = dom.createAttribute("id");
-            // attrMax.setValue(String.valueOf(1));
-            // root1.setAttributeNode(attrMax);
-
             // now create child elements
-            Element operator1Max = dom.createElement("op1");
+            Element operator1Max = dom.createElement(op1);
             operator1Max.setTextContent(op1Max);
-            Element operator2Max = dom.createElement("op2");
+            Element operator2Max = dom.createElement(op2);
             operator2Max.setTextContent(op2Max);
-            Element stMax = dom.createElement("starttime");
+            Element stMax = dom.createElement(startTimeLabel);
             stMax.setTextContent(starttimeMax);
-            Element etMax = dom.createElement("endtime");
+            Element etMax = dom.createElement(endTimeLabel);
             etMax.setTextContent(endtimeMax);
-            Element latMax = dom.createElement("latency");
+            Element latMax = dom.createElement(latencyLabel);
             latMax.setTextContent(latencyMax);
 
             // add child nodes to root node
@@ -5758,26 +5777,25 @@ public class DirectedGraphTranslator extends JApplet {
         for (SimulationTransaction st : transFile) {
             Boolean onPath = false;
 
-            if (!(Integer.valueOf(st.startTime) < minTime && Integer.valueOf(st.endTime) < minTime)
-                    && !(Integer.valueOf(st.startTime) > maxTime && Integer.valueOf(st.endTime) > maxTime)) {
-
-                // if (Integer.valueOf(st.startTime) >= minTime && Integer.valueOf(st.startTime)
-                // < maxTime) {
+            int startTime = Integer.valueOf(st.startTime);
+            int endTime = Integer.valueOf(st.endTime);
+            int id = Integer.valueOf(st.id);
+            if (!(startTime < minTime && endTime < minTime) && !(startTime > maxTime && endTime > maxTime)) {
 
-                if (Integer.valueOf(st.endTime) > maxTime) {
-                    st.endTime = Integer.valueOf(maxTime).toString();
-                    st.length = Integer.valueOf(Integer.valueOf(maxTime) - Integer.valueOf(st.startTime)).toString();
+                if (endTime > maxTime) {
+                    st.endTime = String.valueOf(maxTime);
+                    st.length = String.valueOf(maxTime - startTime);
                 }
 
-                if (Integer.valueOf(st.startTime) < minTime) {
-                    st.startTime = Integer.valueOf(minTime).toString();
-                    st.length = Integer.valueOf(Integer.valueOf(st.endTime) - Integer.valueOf(minTime)).toString();
+                if (startTime < minTime) {
+                    st.startTime = String.valueOf(minTime);
+                    st.length = String.valueOf(endTime - minTime);
                 }
 
-                if (Integer.valueOf(st.startTime) < minTime && Integer.valueOf(st.endTime) > maxTime) {
-                    st.startTime = Integer.valueOf(minTime).toString();
-                    st.endTime = Integer.valueOf(maxTime).toString();
-                    st.length = Integer.valueOf(Integer.valueOf(maxTime) - Integer.valueOf(minTime)).toString();
+                if (startTime < minTime && endTime > maxTime) {
+                    st.startTime = String.valueOf(minTime);
+                    st.endTime = String.valueOf(maxTime);
+                    st.length = String.valueOf(maxTime - minTime);
                 }
 
                 String taskname = "";
@@ -5789,7 +5807,7 @@ public class DirectedGraphTranslator extends JApplet {
 
                     String taskToAddid = taskToAdd[taskToAddindex - 1];
                     if (isNumeric(taskToAddid)) {
-                        if (Integer.valueOf(taskToAddid).equals(Integer.valueOf(st.id))) {
+                        if (Integer.valueOf(taskToAddid).equals(id)) {
 
                             taskname = tasknameCheck.toString();
 
@@ -5819,7 +5837,7 @@ public class DirectedGraphTranslator extends JApplet {
 
                             ArrayList<Integer> timeValues = new ArrayList<Integer>();
                             timeValues.add(0, Integer.valueOf(st.runnableTime));
-                            timeValues.add(1, Integer.valueOf(st.startTime));
+                            timeValues.add(1, startTime);
 
                             if (!(st.runnableTime).equals(st.startTime)) {
 
@@ -5974,7 +5992,7 @@ public class DirectedGraphTranslator extends JApplet {
             }
             try {
                 if (times2MinMAx.contains(match)) {
-                    times2MinMAx.remove(Integer.valueOf(match));
+                    times2MinMAx.remove(match);
                 }
             } catch (Exception e) {
             }
diff --git a/src/main/java/ui/simulationtraceanalysis/JFrameCompareLatencyDetail.java b/src/main/java/ui/simulationtraceanalysis/JFrameCompareLatencyDetail.java
index 805bab4bd8..ffa019edd6 100644
--- a/src/main/java/ui/simulationtraceanalysis/JFrameCompareLatencyDetail.java
+++ b/src/main/java/ui/simulationtraceanalysis/JFrameCompareLatencyDetail.java
@@ -106,6 +106,12 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener
 
     private LatencyAnalysisParallelAlgorithms tc;
     private JCheckBox taintFirstOp, considerRules;
+    
+    private static final String startTimeColName = "Start Time ";
+    private static final String endTimeColName = "End Time ";
+    private static final String latencyColName = "Latency ";
+    private static final String opAColName = "OPERATOR A";
+    private static final String opBColName = "OPERATOR B ";
 
     // private DirectedGraphTranslator dgraph;
     public JFrameCompareLatencyDetail(latencyDetailedAnalysisMain latencyDetailedAnaly, MainGUI mgui, final Vector<String> checkedTransactionsFile1,
@@ -334,11 +340,11 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener
 
         framePanel.add(graphAnalysisResult, mainConstraint);
 
-        columnNames[0] = "OPERATOR A";
-        columnNames[1] = "Start Time ";
-        columnNames[2] = "OPERATOR B";
-        columnNames[3] = "End Time ";
-        columnNames[4] = "Delay ";
+        columnNames[0] = opAColName;
+        columnNames[1] = startTimeColName;
+        columnNames[2] = opBColName;
+        columnNames[3] = endTimeColName;
+        columnNames[4] = latencyColName;
 
         // columnNames[5] = "Related Tasks Details ";
         // columnNames[6] = "Total time- Related Tasks ";
@@ -400,11 +406,11 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener
 
         jp04.setLayout(gridbag01);
 
-        columnMinMaxNames[0] = "OPERATOR A";
-        columnMinMaxNames[1] = "Start Time ";
-        columnMinMaxNames[2] = "OPERATOR B";
-        columnMinMaxNames[3] = "End Time ";
-        columnMinMaxNames[4] = "Delay ";
+        columnMinMaxNames[0] = opAColName;
+        columnMinMaxNames[1] = startTimeColName;
+        columnMinMaxNames[2] = opBColName;
+        columnMinMaxNames[3] = endTimeColName;
+        columnMinMaxNames[4] = latencyColName;
 
         dataDetailedMinMax = new Object[0][0];
 
diff --git a/src/main/java/ui/simulationtraceanalysis/JFrameLatencyComparedDetailedPopup.java b/src/main/java/ui/simulationtraceanalysis/JFrameLatencyComparedDetailedPopup.java
index e03b936b4b..ea1cd82bf1 100644
--- a/src/main/java/ui/simulationtraceanalysis/JFrameLatencyComparedDetailedPopup.java
+++ b/src/main/java/ui/simulationtraceanalysis/JFrameLatencyComparedDetailedPopup.java
@@ -85,6 +85,12 @@ public class JFrameLatencyComparedDetailedPopup extends JFrame implements TableM
 
     private Object[][] dataHWDelayByTask, dataHWDelayByTask2;
 
+    private static final String transactionList = "Transaction List ";
+    private static final String transactionDiagramName = "Transaction Diagram Name ";
+    private static final String hardware = "Hardware ";
+    private static final String startTime = "Start Time ";
+    private static final String endTime = "End Time ";
+
     public JFrameLatencyComparedDetailedPopup(DirectedGraphTranslator dgraph1, DirectedGraphTranslator dgraph2, int row, int row2, boolean firstTable,
             LatencyAnalysisParallelAlgorithms tc2) throws InterruptedException {
 
@@ -108,11 +114,11 @@ public class JFrameLatencyComparedDetailedPopup extends JFrame implements TableM
         // framePanel.setBackground(Color.red);
         framePanel.add(jp02, mainConstraint);
 
-        columnByTaskNames[0] = "Transaction List";
-        columnByTaskNames[1] = "Transaction Diagram Name ";
-        columnByTaskNames[2] = "Hardware ";
-        columnByTaskNames[3] = "Start Time";
-        columnByTaskNames[4] = "End Time ";
+        columnByTaskNames[0] = transactionList;
+        columnByTaskNames[1] = transactionDiagramName;
+        columnByTaskNames[2] = hardware;
+        columnByTaskNames[3] = startTime;
+        columnByTaskNames[4] = endTime;
 
         JPanel jp04 = new JPanel(new BorderLayout());
 
@@ -158,7 +164,7 @@ public class JFrameLatencyComparedDetailedPopup extends JFrame implements TableM
                     return Integer.class;
                 }
             }
-            
+
             @Override
             public boolean isCellEditable(int row, int column) {
                 return false;
@@ -186,11 +192,12 @@ public class JFrameLatencyComparedDetailedPopup extends JFrame implements TableM
         framePanel.add(scrollPane11, c02);
 
         DefaultTableModel model12 = new DefaultTableModel(dataDetailedByTask2, columnByTaskNames) {
-            
+
             @Override
             public boolean isCellEditable(int row, int column) {
                 return false;
             }
+
             @Override
             public Class getColumnClass(int column) {
                 switch (column) {
@@ -227,10 +234,10 @@ public class JFrameLatencyComparedDetailedPopup extends JFrame implements TableM
         framePanel.add(scrollPane12, c02);
 
         columnByHWNames[0] = "Task on Same device";
-        columnByHWNames[1] = "Transaction Diagram Name ";
-        columnByHWNames[2] = "Hardware ";
-        columnByHWNames[3] = "Start Time";
-        columnByHWNames[4] = "End Time ";
+        columnByHWNames[1] = transactionDiagramName;
+        columnByHWNames[2] = hardware;
+        columnByHWNames[3] = startTime;
+        columnByHWNames[4] = endTime;
 
         if (firstTable) {
 
@@ -252,12 +259,12 @@ public class JFrameLatencyComparedDetailedPopup extends JFrame implements TableM
         }
 
         DefaultTableModel model2 = new DefaultTableModel(dataHWDelayByTask, columnByHWNames) {
-            
+
             @Override
             public boolean isCellEditable(int row, int column) {
                 return false;
             }
-            
+
             @Override
             public Class getColumnClass(int column) {
                 switch (column) {
@@ -295,12 +302,12 @@ public class JFrameLatencyComparedDetailedPopup extends JFrame implements TableM
         framePanel.add(scrollPane13, c02);
 
         DefaultTableModel model3 = new DefaultTableModel(dataHWDelayByTask2, columnByHWNames) {
-            
+
             @Override
             public boolean isCellEditable(int row, int column) {
                 return false;
             }
-            
+
             @Override
             public Class getColumnClass(int column) {
                 switch (column) {
@@ -658,8 +665,6 @@ public class JFrameLatencyComparedDetailedPopup extends JFrame implements TableM
             }
         };
 
-       
-        
         JTable table = new JTable(tableModel);
         table.setFillsViewportHeight(true);
 
diff --git a/src/main/java/ui/simulationtraceanalysis/JFrameLatencyDetailedAnalysis.java b/src/main/java/ui/simulationtraceanalysis/JFrameLatencyDetailedAnalysis.java
index 758a1458ca..46c594a5b8 100644
--- a/src/main/java/ui/simulationtraceanalysis/JFrameLatencyDetailedAnalysis.java
+++ b/src/main/java/ui/simulationtraceanalysis/JFrameLatencyDetailedAnalysis.java
@@ -187,7 +187,13 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe
     private Boolean allop = false;
     private TMLMapping<TGComponent> tmap1;
 
-    public static final String[] helpStrings = { "considerrule.html", "taint.html", "addRule.html" };
+    public static final String[] helpStrings = { "considerRule.html", "taint.html", "addRule.html" };
+    private static final String startTimeColName = "Start Time ";
+    private static final String endTimeColName = "End Time ";
+    private static final String latencyColName = "Latency ";
+    private static final String opAColName = "OPERATOR A";
+    private static final String opBColName = "OPERATOR B ";
+    private static final String progressBar = "Progress of Graph Generation";
 
     // @SuppressWarnings("deprecation")
 
@@ -258,7 +264,7 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe
         c01.gridy = 0;
         // c01.fill = GridBagConstraints.BOTH;
 
-        JLabel pBarLabel = new JLabel("Progress of Graph Generation", JLabel.LEFT);
+        JLabel pBarLabel = new JLabel(progressBar, JLabel.LEFT);
         progressBarpanel.add(pBarLabel, c01);
 
         c01.gridheight = 1;
@@ -651,11 +657,11 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe
 
         commands.add(commandTab, BorderLayout.NORTH);
 
-        columnNames[0] = "OPERATOR A";
-        columnNames[1] = "Start Time ";
-        columnNames[2] = "OPERATOR B";
-        columnNames[3] = "End Time ";
-        columnNames[4] = "Latency ";
+        columnNames[0] = opAColName;
+        columnNames[1] = startTimeColName;
+        columnNames[2] = opBColName;
+        columnNames[3] = endTimeColName;
+        columnNames[4] = latencyColName;
 
         // columnNames[5] = "Related Tasks Details ";
         // columnNames[6] = "Total time- Related Tasks ";
@@ -677,11 +683,11 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe
         scrollPane11.setVisible(true);
         jp03.add(scrollPane11, BorderLayout.CENTER);
 
-        columnMinMaxNames[0] = "OPERATOR A";
-        columnMinMaxNames[1] = "Start Time ";
-        columnMinMaxNames[2] = "OPERATOR B";
-        columnMinMaxNames[3] = "End Time ";
-        columnMinMaxNames[4] = "Latency ";
+        columnMinMaxNames[0] = opAColName;
+        columnMinMaxNames[1] = startTimeColName;
+        columnMinMaxNames[2] = opBColName;
+        columnMinMaxNames[3] = endTimeColName;
+        columnMinMaxNames[4] = latencyColName;
 
         dataDetailedMinMax = new Object[0][0];
 
@@ -880,7 +886,7 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe
             dispose();
             setVisible(false);
         } else if (command.equals(actions[LatencyDetailedAnalysisActions.ACT_LATENCY].getActionCommand())) {
-            jta.append("the Latency Between: \n " + tasksDropDownCombo1.getSelectedItem() + " and \n" + tasksDropDownCombo2.getSelectedItem()
+            jta.append("The Latency Between: \n " + tasksDropDownCombo1.getSelectedItem() + " and \n" + tasksDropDownCombo2.getSelectedItem()
                     + " is studied \n");
             latencybutton.setEnabled(false);
 
@@ -889,7 +895,7 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe
             this.repaint();
 
             if (taintFirstOp.isSelected()) {
-                jta.append("operator 1 is tainted \n ");
+                jta.append("Operator 1 is tainted \n ");
             }
 
             if (considerRules.isSelected()) {
@@ -1043,7 +1049,7 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe
 
                 allop = true;
                 showAllOp.setLabel("Show checkpoints operators");
-                jta.append("show latency checkpoints operators" + " \n");
+                jta.append("Show latency checkpoints operators" + " \n");
 
                 task2.setVisible(true);
                 taskL.setVisible(true);
@@ -1074,7 +1080,7 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe
 
                 allop = false;
                 showAllOp.setLabel("Show all operators");
-                jta.append("show latency all operators" + " \n");
+                jta.append("Show latency all operators" + " \n");
 
             }
 
@@ -1106,13 +1112,12 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe
                 activity = tmltask.getActivityDiagram();
                 TMLActivityDiagramPanel tadp = (TMLActivityDiagramPanel) (activity.getReferenceObject());
                 List<TGComponent> list = tadp.getComponentList();
-                Iterator<TGComponent> iterator = list.listIterator();
-                TGComponent tgc;
+                // Iterator<TGComponent> iterator = list.listIterator();
+                // TGComponent tgc;
                 opCount = 0;
 
-                iterator = list.listIterator();
-                while (iterator.hasNext()) {
-                    tgc = iterator.next();
+                for (TGComponent tgc : list) {
+
                     String compName = "";
                     if (tgc.isEnabled()) {
                         if (tgc instanceof CheckableLatency) {
@@ -1188,7 +1193,7 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe
             if (row >= 0) {
 
                 try {
-                    new JFrameLatencyDetailedPopup(dgraph, row, true, taint, tc,true);
+                    new JFrameLatencyDetailedPopup(dgraph, row, true, taint, tc, true);
                 } catch (Exception e) {
                     jta.append("An error has occurred \n");
                     jta.append(e.getMessage() + "\n");
@@ -1201,7 +1206,7 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe
             row = table12.getSelectedRow();
             if (row >= 0) {
                 try {
-                    new JFrameLatencyDetailedPopup(dgraph, row, false, taint, tc,true);
+                    new JFrameLatencyDetailedPopup(dgraph, row, false, taint, tc, true);
                 } catch (Exception e) {
                     jta.append("An error has occurred \n");
                     jta.append(e.getMessage() + "\n");
@@ -1350,7 +1355,7 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe
     }
 
     public void error(String error) {
-        jta.append("error: " + error + "\n");
+        jta.append("Error: " + error + "\n");
     }
 
     protected void showgraphFrame() {
diff --git a/src/main/java/ui/simulationtraceanalysis/JFrameLatencyDetailedPopup.java b/src/main/java/ui/simulationtraceanalysis/JFrameLatencyDetailedPopup.java
index 5413597b7b..69bbee14c5 100644
--- a/src/main/java/ui/simulationtraceanalysis/JFrameLatencyDetailedPopup.java
+++ b/src/main/java/ui/simulationtraceanalysis/JFrameLatencyDetailedPopup.java
@@ -88,6 +88,16 @@ public class JFrameLatencyDetailedPopup extends JFrame implements TableModelList
 
     private Object[][] dataHWDelayByTask;
 
+    private static final String transactionList = "Transaction List ";
+    private static final String transactionDiagramName = "Transaction Diagram Name ";
+    private static final String hardware = "Hardware ";
+    private static final String startTime = "Start Time ";
+    private static final String endTime = "End Time ";
+    private static final String mandatoryTransactions = "Mandatory Transactions ";
+    private static final String tasksonSameDevice = "Tasks on the Same Device ";
+    private static final String nonMandatoryTransactions = "Non-Mandatory Transactions";
+    private static final String nonMandNoContTran = "Non-Mandatory Transactions No-Contention";
+
     public JFrameLatencyDetailedPopup(DirectedGraphTranslator dgraph, int row, boolean firstTable, Boolean taint,
             LatencyAnalysisParallelAlgorithms th, boolean visible) throws InterruptedException {
 
@@ -97,15 +107,15 @@ public class JFrameLatencyDetailedPopup extends JFrame implements TableModelList
 
         this.setLayout(myLayout);
 
-        columnByTaskNames[0] = "Transaction List";
-        columnByTaskNames[1] = "Transaction Diagram Name ";
-        columnByTaskNames[2] = "Hardware ";
-        columnByTaskNames[3] = "Start Time";
-        columnByTaskNames[4] = "End Time ";
+        columnByTaskNames[0] = transactionList;
+        columnByTaskNames[1] = transactionDiagramName;
+        columnByTaskNames[2] = hardware;
+        columnByTaskNames[3] = startTime;
+        columnByTaskNames[4] = endTime;
 
         JPanel jp04 = new JPanel(new BorderLayout());
 
-        jp04.setBorder(new javax.swing.border.TitledBorder("Mandatory Transactions"));
+        jp04.setBorder(new javax.swing.border.TitledBorder(mandatoryTransactions));
 
         if (firstTable) {
 
@@ -178,11 +188,11 @@ public class JFrameLatencyDetailedPopup extends JFrame implements TableModelList
 
         this.add(jp04);
 
-        columnByHWNames[0] = "Task on Same device";
-        columnByHWNames[1] = "Transaction Diagram Name ";
-        columnByHWNames[2] = "Hardware ";
-        columnByHWNames[3] = "Start Time";
-        columnByHWNames[4] = "End Time ";
+        columnByHWNames[0] = tasksonSameDevice;
+        columnByHWNames[1] = transactionDiagramName;
+        columnByHWNames[2] = hardware;
+        columnByHWNames[3] = startTime;
+        columnByHWNames[4] = endTime;
 
         if (firstTable) {
 
@@ -247,7 +257,7 @@ public class JFrameLatencyDetailedPopup extends JFrame implements TableModelList
         };
         JPanel jp05 = new JPanel(new BorderLayout());
 
-        jp05.setBorder(new javax.swing.border.TitledBorder("Non-Mandatory Transactions"));
+        jp05.setBorder(new javax.swing.border.TitledBorder(nonMandatoryTransactions));
         JTable hardwareNames = new JTable(model2);
         hardwareNames.setAutoCreateRowSorter(true);
 
@@ -371,6 +381,8 @@ public class JFrameLatencyDetailedPopup extends JFrame implements TableModelList
 
             for (SimulationTransaction st : dgraph.getRowDetailsByHW(row)) {
 
+                int startTime = Integer.valueOf(st.startTime);
+
                 if (st.coreNumber == null) {
                     st.coreNumber = "0";
 
@@ -400,8 +412,7 @@ public class JFrameLatencyDetailedPopup extends JFrame implements TableModelList
 
                                         for (int j = 0; j < timeList.size(); j++) {
 
-                                            if (Integer.valueOf(st.startTime) >= timeList.get(j).get(0)
-                                                    && Integer.valueOf(st.startTime) <= timeList.get(j).get(1)) {
+                                            if (startTime >= timeList.get(j).get(0) && startTime <= timeList.get(j).get(1)) {
 
                                                 causeDelay = true;
 
@@ -612,6 +623,8 @@ public class JFrameLatencyDetailedPopup extends JFrame implements TableModelList
 
             for (SimulationTransaction st : minMaxHWByRowDetails) {
 
+                int startTime = Integer.valueOf(st.startTime);
+
                 if (st.coreNumber == null) {
                     st.coreNumber = "0";
 
@@ -640,8 +653,7 @@ public class JFrameLatencyDetailedPopup extends JFrame implements TableModelList
 
                                         for (int j = 0; j < timeList.size(); j++) {
 
-                                            if (Integer.valueOf(st.startTime) >= timeList.get(j).get(0)
-                                                    && Integer.valueOf(st.startTime) <= timeList.get(j).get(1)) {
+                                            if (startTime >= timeList.get(j).get(0) && startTime <= timeList.get(j).get(1)) {
 
                                                 causeDelay = true;
 
@@ -811,7 +823,7 @@ public class JFrameLatencyDetailedPopup extends JFrame implements TableModelList
         c01.gridx = 6;
         c01.gridy = 0;
 
-        JLabel pBarLabel5 = new JLabel("Non-Mandatory Transactions No-Contention", JLabel.RIGHT);
+        JLabel pBarLabel5 = new JLabel(nonMandNoContTran, JLabel.RIGHT);
 
         lengedpanel.add(pBarLabel5, c01);
 
diff --git a/src/main/resources/help/considerrule.html b/src/main/resources/help/considerRule.html
similarity index 100%
rename from src/main/resources/help/considerrule.html
rename to src/main/resources/help/considerRule.html
diff --git a/src/main/resources/help/considerrule.md b/src/main/resources/help/considerRule.md
similarity index 100%
rename from src/main/resources/help/considerrule.md
rename to src/main/resources/help/considerRule.md
diff --git a/src/main/resources/help/helpTable.txt b/src/main/resources/help/helpTable.txt
index d89351ad0a..f5e6867d53 100644
--- a/src/main/resources/help/helpTable.txt
+++ b/src/main/resources/help/helpTable.txt
@@ -41,4 +41,4 @@
 
 - addRule add-rule rule
 - taint taint Taint
-- considerrule consider-rule consider rules
\ No newline at end of file
+- considerRule consider-rule consider rules
\ No newline at end of file
-- 
GitLab