Der gene­rier­te Source­code mit Trace-Statements

Der im vorigen Kapitel definierte Trace-Code wird bei der Gene­rie­rung in jeden einzelnen Zweig des IF-ELSE-Regelbaumes direkt vor den Statements der je­weils ersten Aktion eingebunden:

D:\Projekte\LF‑ET-Demo\Cs\Compare.cs (Auszug)

// Condition B01: String 1 kleiner String 2 ?
if (compareS1ToS2 == -1 {vbar}{vbar} s1 == null && s2 != null)
{
// Rule R01 ---->
lfetCompareRuleExecuted = true;
// Trace ---->
Console.WriteLine("Compare, 20130731.131833, 3, 1" +
"s1=[{0}], s2=[{1}]", s1, s2);
// Trace <----
// Action A01: Ergebnis: String 1 ist kleiner als String 2
result = S1IsLessThanS2;
// Rule R01 <----
}
else
{
// Condition B02: String 1 größer String 2 ?
if (compareS1ToS2 == 1 {vbar}{vbar} s1 != null && s2 == null)
{
// Rule R02 ---->
lfetCompareRuleExecuted = true;
// Trace ---->
Console.WriteLine("Compare, 20130731.131833, 3, 2" +
"s1=[{0}], s2=[{1}]", s1, s2);
// Trace <----
// Action A02: Ergebnis: String 1 ist größer als String 2
result = S1IsGreaterThanS2;
// Rule R02 <----
}
else
{
// Rule R03 ---->
lfetCompareRuleExecuted = true;
// Trace ---->
Console.WriteLine("Compare, 20130731.131833, 3, 3" +
"s1=[{0}], s2=[{1}]", s1, s2);
// Trace <----
// Action A03: Ergebnis: String 1 ist gleich String 2
result = S1IsEqualToS2;
// Rule R03 <----
}
}

Wichtig: Bei der Ausführung des Programmcodes befinden sich zum Zeitpunkt der Trace-Ausgabe noch alle Objekte und Variablen im Zu­stand vor der Verarbeitung durch die Ent­schei­dungs­ta­belle.

Präziser können Informationen über Details der Verarbeitung nicht gewonnen werden: Welche Zweige wurden durchlaufen und welche Zustände hatten ausgewählte Objekte und Variablen direkt vor der Verarbeitung.