Def-Use-Kette

Def-Use-Kette

Eine Def-Use-Kette ist eine Datenstruktur, die aufeinanderfolgende Paare von Schreib- und Lesezugriffen einer Variable 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.[1]

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.

 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; 
 }

Um alle Def-Use-Ketten für die Variable "d" zu erzeugen, ist folgendermaßen vorzugehen:

1.Ermitteln des ersten Schreibzugriffes (Definition der Variable)

In diesem Fall entspricht dies der Zuordnung "d=b" (Zeile 3)

2.Ermitteln des ersten Lesezugriffes

In diesem Fall entspricht dies der Anweisung "return d"

3.Aufschreiben dieser Information im folgenden Stil:

[Name der untersuchten Variable, 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 Variable verbunden wird.

Das Ergebnis ist dann:

  1. [d, d=b, return d]
  2. [d, d=b, while(d!=0)]
  3. [d, d=b, if(c>d)]
  4. [d, d=b, c=c-d]
  5. [d, d=b, d=d-c]
  6. [d, d=d-c, while(d!=0)]
  7. [d, d=d-c, if(c>d)]
  8. [d, d=d-c, c=c-d]
  9. [d, d=d-c, d=d-c][2]

Einzelnachweise

  1. Prof. Dr. Herbert Kuchen (WWU Münster): Software Engineering Skript WS09/10 Seite 403, 407 und folgende
  2. Prof. Dr. Herbert Kuchen (WWU Münster): Software Engineering Lösung Übungsblatt 6 WS09/10 Seite 25

Literatur


Wikimedia Foundation.

Игры ⚽ Нужно решить контрольную?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Datenflussanalyse — Eine Datenflussanalyse ist eine statische Code Analyse eines Computerprogramms, die untersucht, zwischen welchen Teilen eines Programms Daten weitergegeben werden und welche Abhängigkeiten daraus resultieren. Ziele solcher Analysen sind… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”