Def-Use-Kette
# 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.

## 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.

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]
