Def-Use-Kette
Eine Def-Use-Kette ist eine Datenstruktur, die aufeinanderfolgende Paare von Schreib- und Lesezugriffen einer Variablen beschreibt.
Im Rahmen des Software Engineerings werden beim White-Box-Testing mittels Def-Use-Ketten Datenflusstests durchgeführt, welche das Durchlaufen von Code mittels Testwerten für Variablen ermöglichen.<ref name="SEKuchenSkript">Prof. Herbert Kuchen: <templatestyles src="Webarchiv/styles.css" />Software Engineering, Skript WS09/10. ( des Vorlage:IconExternal vom 23. Januar 2017 im Internet Archive) Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis. (PDF; 234 kB) Westfälische Wilhelms-Universität Münster. S. 403, 407ff. Abgerufen am 23. Januar 2017.</ref>
Anwendungsbeispiel
Im Folgenden soll eine Def-Use-Kette für die Variable "d" erzeugt werden. Der nachfolgende Code findet den größten gemeinsamen Teiler (GGT) zweier Zahlen "a" und "b" und ist in Java implementiert.
<syntaxhighlight lang="Java" line>
public int ggt(int a, int b){
int c = a;
int d = b;
if(c == 0)
return d;
while(d != 0){
if(c > d)
c = c - d;
else
d = d - c;
}
return c;
}
</syntaxhighlight>
Um alle Def-Use-Ketten für die Variable "d" zu erzeugen, ist folgendermaßen vorzugehen:
- Ermitteln des ersten Schreibzugriffes (Definition der Variablen)
- In diesem Fall entspricht dies der Zuordnung "d=b" (Zeile 3)
- Ermitteln des ersten Lesezugriffes
- In diesem Fall entspricht dies der Anweisung "return d"
- Aufschreiben dieser Information im folgenden Stil:
- [Name der untersuchten Variablen, konkreter Schreibzugriff, konkreter Lesezugriff]
- In diesem Fall entspricht dies [d, d=b, return d]
Nun werden diese Schritte wiederholt, wobei jeder Schreibzugriff mit jedem Lesezugriff der untersuchten Variablen verbunden wird.
Das Ergebnis ist dann:
- [d, d=b, return d]
- [d, d=b, while(d!=0)]
- [d, d=b, if(c>d)]
- [d, d=b, c=c-d]
- [d, d=b, d=d-c]
- [d, d=d-c, while(d!=0)]
- [d, d=d-c, if(c>d)]
- [d, d=d-c, c=c-d]
- [d, d=d-c, d=d-c]<ref name="SEKuchenUebung">Henning Heitkötter: <templatestyles src="Webarchiv/styles.css" />Software Engineering WS09/10, Lösung Übungsblatt 6. ( des Vorlage:IconExternal vom 23. Januar 2017 im Internet Archive) Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis. (PDF; 554 kB) Westfälische Wilhelms-Universität Münster. S. 25. Abgerufen am 23. Januar 2017.</ref>
Literatur
Einzelnachweise
<references />