Instrumentierung (Softwareentwicklung)

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Dieser Artikel behandelt die Instrumentierung in der Softwareentwicklung. Zu weiteren Bedeutungen siehe Instrumentierung (Begriffsklärung).

Mit Instrumentierung wird in der Softwareentwicklung das Anreichern des Quellcodes mit Zusatzinformationen bezeichnet, um das Verhalten eines Computerprogramms untersuchen zu können. Instrumentierung kommt bei Softwaretests zur Ermittlung der Testabdeckung und bei Profilern zum Einsatz. Die Instrumentierung kann dabei sowohl halbautomatisch (GNU C/C++ Compiler -finstrument-functions[1]) als auch durch spezielle Programme (Tru64 UNIX atom Kommando, Intel Pin für x86-64 Architekturen[2]) automatisch durchgeführt werden. Auch existieren mittlerweile API Standards wie der Application Response Measurement zur Antwortzeit Messung für Java und C.

Manuelle Instrumentierung[Bearbeiten | Quelltext bearbeiten]

Zur Veranschaulichung ein Quelltext-Ausschnitt in der Programmiersprache Java vor und nach der Instrumentierung.

public boolean istGerade(int zahl) {
  if (zahl % 2 == 0) {
     return true;
  } else {
     return false;
  }
}

Durch Instrumentierung wird Quelltext folgender Form hinzugefügt:

[...]

private void protokolliereIstGeradeBetreten() {
  // Zähler "istGeradeBetreten" in einer Log-Datei hochzählen
  [...]
}

private void protokolliereIfBetreten() {
  // Zähler "ifBetreten" in einer Log-Datei hochzählen
  [...]
}

private void protokolliereElseBetreten() {
  // Zähler "elseBetreten" in einer Log-Datei hochzählen
  [...]
}

[...]

public boolean istGerade(int zahl) {
  protokolliereIstGeradeBetreten();
  if (zahl % 2 == 0) {
     protokolliereIfBetreten();
     return true;
  } else {
     protokolliereElseBetreten();
     return false;
  }
}

Das Programm wird anschließend ausgeführt. Danach kann die Log-Datei ausgewertet und beispielsweise ermittelt werden, ob alle drei Zähler erhöht wurden.

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. gcc/g++ -finstrument-functions Compiler-Option gcc.gnu.org, abgerufen am 5. Februar 2016. (englisch)
  2. Pin - A Dynamic Binary Instrumentation Tool software.intel.com, abgerufen am 5. Februar 2016. (englisch)