diff --git a/src/main/java/ui/simulationtraceanalysis/DirectedGraphTranslator.java b/src/main/java/ui/simulationtraceanalysis/DirectedGraphTranslator.java
index ecee6adeec7dca2f00a04d431ac34bf2de1ef978..d3a410a872e61cc06896288cb9e865a50b0fb689 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,36 +3341,38 @@ 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());
+                                id = vsec.getId();
                             }
 
                         }
 
                     }
 
-                } 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().contains(getReqArgLabel)) {
                                     st.id = String.valueOf(vbefore.getId());
+                                    id = vbefore.getId();
                                 }
 
                             }
@@ -3391,7 +3423,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 +3444,7 @@ public class DirectedGraphTranslator extends JApplet {
 
                                     }
 
-                                    times1.add(Integer.valueOf(st.startTime));
+                                    times1.add(startTime);
                                     Collections.sort(times1);
 
                                 }
@@ -3657,7 +3689,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 +3707,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 +3766,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 +3784,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 +3873,33 @@ 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) {
+
+                                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) {
+                                startTime = 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) {
+                                endTime = s2;
+                                startTime = s1;
+                                st.startTime = String.valueOf(s1);
+                                st.endTime = String.valueOf(s2);
+                                st.length = String.valueOf(s2 - s1);
                             }
                             relatedSTTaint.add(st);
 
@@ -3882,26 +3921,30 @@ 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)) {
+                            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)) {
+                            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)) {
+                            endTime = times2.get(row);
+                            startTime = times1.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 +3961,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("__");
 
@@ -3940,17 +3985,19 @@ public class DirectedGraphTranslator extends JApplet {
 
                         if (nextV.getName().contains(waitEvnt)) {
                             st.id = String.valueOf(nextV.getId());
+                            selectID = 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().contains(getReqArgLabel)) {
                                     st.id = String.valueOf(vbefore.getId());
+                                    selectID = vbefore.getId();
                                 }
 
                             }
@@ -3959,20 +4006,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 +4046,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("__");
 
@@ -4027,16 +4069,18 @@ public class DirectedGraphTranslator extends JApplet {
 
                                 if (nextV.getName().contains(waitEvnt)) {
                                     st.id = String.valueOf(nextV.getId());
+                                    selectID = 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());
+                                            selectID = vbefore.getId();
                                         }
 
                                     }
@@ -4045,20 +4089,24 @@ public class DirectedGraphTranslator extends JApplet {
                             }
                         }
 
-                        if (Integer.valueOf(st.endTime) > times2.get(i)) {
+                        if (endTime > times2.get(i)) {
+                            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)) {
+                            startTime = 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));
+                            startTime = times1.get(i);
+                            endTime = times2.get(i);
                         }
 
                         String taskname = "";
@@ -4072,7 +4120,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 +4148,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 +4242,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 +4253,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 +4279,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 +4287,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 +4313,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 +4321,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 +4377,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 +4390,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 +4429,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 +4459,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 +5796,29 @@ 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) {
+                    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) {
+                    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) {
+                    endTime = maxTime;
+                    startTime = minTime;
+                    st.startTime = String.valueOf(minTime);
+                    st.endTime = String.valueOf(maxTime);
+                    st.length = String.valueOf(maxTime - minTime);
                 }
 
                 String taskname = "";
@@ -5789,7 +5830,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 +5860,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)) {