<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Instrumentierung_%28Softwareentwicklung%29</id>
	<title>Instrumentierung (Softwareentwicklung) - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Instrumentierung_%28Softwareentwicklung%29"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Instrumentierung_(Softwareentwicklung)&amp;action=history"/>
	<updated>2026-06-09T16:45:29Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Instrumentierung_(Softwareentwicklung)&amp;diff=1968181&amp;oldid=prev</id>
		<title>imported&gt;Zero Thrust: /* Einleitung */</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Instrumentierung_(Softwareentwicklung)&amp;diff=1968181&amp;oldid=prev"/>
		<updated>2020-05-09T04:48:01Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Einleitung&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Mit &amp;#039;&amp;#039;&amp;#039;Instrumentierung&amp;#039;&amp;#039;&amp;#039; wird in der [[Softwaretechnik]] das Ergänzen von [[Computerprogramm]]en mit speziellem Code bezeichnet, um ihr Verhalten untersuchen zu können. Dieser kann in den [[Quellcode]], den [[Binärcode]] oder einen [[Zwischencode]] eingefügt und mit Hilfe von Werkzeugen ausgewertet werden. Instrumentierung kommt bei [[Softwaretest]]s zur Ermittlung der [[Testabdeckung]] und bei [[Profiler (Programmierung)|Profilern]] zum Einsatz. Die Instrumentierung kann dabei sowohl halbautomatisch (GNU C/C++ Compiler &amp;lt;code&amp;gt;-finstrument-functions&amp;lt;/code&amp;gt;&amp;lt;ref&amp;gt;[https://gcc.gnu.org/onlinedocs/gcc-5.3.0/gcc/Code-Gen-Options.html#index-finstrument-functions-2819 gcc/g++ -finstrument-functions Compiler-Option] gcc.gnu.org, abgerufen am 5. Februar 2016. (englisch)&amp;lt;/ref&amp;gt;) als auch durch spezielle Programme ([[Tru64 UNIX]] atom, [[Pin (Computerprogramm)|Pin]] für [[x64]]-Architekturen&amp;lt;ref&amp;gt;[https://software.intel.com/en-us/articles/pintool/ Pin - A Dynamic Binary Instrumentation Tool] software.intel.com, abgerufen am 5. Februar 2016. (englisch)&amp;lt;/ref&amp;gt;) automatisch durchgeführt werden. Es gibt dabei statische, dynamische und hybride Ansätze mit je unterschiedlichen Vor- und Nachteilen. Auch existieren [[Programmierschnittstelle]]n-Standards wie das [[Application Response Measurement]] zur [[Antwortzeit]]-Messung für [[Java (Programmiersprache)|Java]] und [[C (Programmiersprache)|C]].&lt;br /&gt;
&lt;br /&gt;
== Manuelle Instrumentierung == &lt;br /&gt;
Zur Veranschaulichung ein Quelltext-Ausschnitt in der Programmiersprache [[Java (Programmiersprache)|Java]] vor und nach der Instrumentierung.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public boolean istGerade(int zahl) {&lt;br /&gt;
  if (zahl % 2 == 0) {&lt;br /&gt;
     return true;&lt;br /&gt;
  } else {&lt;br /&gt;
     return false;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Durch Instrumentierung wird Quelltext folgender Form hinzugefügt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&lt;br /&gt;
private void protokolliereIstGeradeBetreten() {&lt;br /&gt;
  // Zähler &amp;quot;istGeradeBetreten&amp;quot; in einer Log-Datei hochzählen&lt;br /&gt;
  [...]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
private void protokolliereIfBetreten() {&lt;br /&gt;
  // Zähler &amp;quot;ifBetreten&amp;quot; in einer Log-Datei hochzählen&lt;br /&gt;
  [...]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
private void protokolliereElseBetreten() {&lt;br /&gt;
  // Zähler &amp;quot;elseBetreten&amp;quot; in einer Log-Datei hochzählen&lt;br /&gt;
  [...]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
[...]&lt;br /&gt;
&lt;br /&gt;
public boolean istGerade(int zahl) {&lt;br /&gt;
  protokolliereIstGeradeBetreten();&lt;br /&gt;
  if (zahl % 2 == 0) {&lt;br /&gt;
     protokolliereIfBetreten();&lt;br /&gt;
     return true;&lt;br /&gt;
  } else {&lt;br /&gt;
     protokolliereElseBetreten();&lt;br /&gt;
     return false;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Softwaretechnik]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Zero Thrust</name></author>
	</entry>
</feed>