- Bug compatibility
-
Unter Kompatibilität wird in der Technik entweder die Austauschbarkeit von Baugruppen, die Vereinbarkeit oder die Gleichwertigkeit von Eigenschaften verstanden. Erfüllt ein (oft neueres) System die Anforderungen eines anderen, geht jedoch darüber hinaus, spricht man von Abwärtskompatibilität (oder Rückwärtskompatibilität). Kann ein altes System die Anforderungen eines neuen erfüllen, nennt man dies Aufwärtskompatibilität (oder Vorwärtskompatibilität).
Ein elektronisches Bauteil kann zu einem anderen mit unterschiedlicher Bezeichnung kompatibel sein. Die Bauteile können dann ausgetauscht werden, da sie die gleiche oder einen ähnliche Bauform und dieselben Eigenschaften haben.
Inhaltsverzeichnis
Abwärtskompatibilität
Als Abwärtskompatibilität wird die Verwendbarkeit bzw. Kompatibilität neuerer oder erweiterter Versionen eines technischen Objekts oder Standards zu den Anwendungsbedingungen einer früheren Version bezeichnet.
So sollte eine neuere Version einer Software die mit der älteren Version erstellten Dokumente wieder öffnen und weiterverarbeiten können. Während dies häufig gut gelingt, sind Dateien einer neueren Software-Version meistens durch die ältere Version nicht mehr lesbar, was viele Anwender zu Aktualisierungen zwingt.
Ein weiteres Beispiel für Abwärtskompatibilität ist UTF-8, das nach wie vor auf den ersten 128 Stellen die Zeichen des 7-Bit-ASCII-Zeichensatzes darstellt, so dass die darauf basierenden Rechensysteme nach wie vor ASCII-Dokumente korrekt verarbeiten und anzeigen können.
Im Hardware-Bereich wird heute ebenso erwartet, dass Programme für ein altes Computermodell auf einem neuen Modell (zumindest auf einem vom gleichen Hersteller) weiterhin zu verwenden sind, auch wenn umgekehrt viele Programme für das neue Modell auf dem alten nicht oder nur mit Einschränkungen nutzbar sind. Bei Großrechnern herrscht dieses Prinzip bereits seit den 1960er-Jahren vor, bei Microcomputern hat es sich erst Mitte der 1980er weitgehend durchgesetzt.
Abwärtskompatibilität in der IT-Branche geht jedoch oft mit Nachteilen einher; der seit Jahrzehnten mitgeschleppte Real Mode moderner x86-Prozessoren ist ein gutes Beispiel, ebenso wie die MS-DOS-basierten Windows-Versionen 95, 98 und ME, welche unter Problemen litten, weil sie aus Kompatibilitätsgründen weite Teile von MS-DOS und Windows 3.x weiterverwenden mussten.
Siehe auch: Produktpolitik (Marketing)
Aufwärtskompatibilität
Als Aufwärtskompatibilität wird die Verwendbarkeit oder Kompatibilität älterer oder veralteter Versionen eines technischen Objekts oder Standards zu den Anwendungsbedingungen einer neueren Version bezeichnet.
Im Fall einer Textverarbeitungsanwendung kann das beispielsweise beinhalten, dass eine alte Version der Anwendung Dokumente anzeigen und bearbeiten kann, die von einer neueren Version erstellt wurden. Teile des Dokumentes, für die in der alten Version noch keine Funktion besteht, können zwingendermaßen nicht verarbeitet werden. Aufwärtskompatibilität bedeutet aber, dass diese Teile das einwandfreie Funktionieren der alten Version nicht beeinflussen.
In der Programmierung ist die Gewährleistung von Aufwärtskompatibilität schwieriger als die von Abwärtskompatibilität, weil beim Erstellen einer Version der Anwendung noch nicht alle Formate und Strukturen späterer Versionen bekannt sind. Trotzdem muss die aktuelle Version mit diesen Formaten und Strukturen arbeiten können. Bei der Abwärtskompatibilität entsteht dieses Problem nicht, da man beim Erstellen der neuen Version die Formate und Strukturen alter Versionen bereits kennt.
Eine alte Programmversion, die Daten einer neuen Version als Eingabe erhält, kann also nur die Daten verarbeiten, für die es auch Anweisungen hat. Der Rest muss ignoriert werden und das Programm muss versuchen, nicht abzustürzen. Webbrowser ignorieren beispielsweise neue HTML-Tags, die sie nicht kennen.
Viele Programme sind heute aufwärtskompatibel und können auch noch große Unterschiede zwischen Versionen kompensieren.
Computer-Hard- und Software
Neuere Versionen eines Programms sind in der Regel abwärtskompatibel zu älteren Versionen. Diese älteren Versionen sind jedoch nicht aufwärtskompatibel, da ihnen einige Funktionen fehlen. Werden Funktionen nicht nur erweitert, sondern geändert, so kann eine neue Version in Teilbereichen inkompatibel zur alten Version werden. Geschieht dies bei dynamischen Bibliotheken, so tritt leicht der Zustand ein, den Programmierer scherzhaft als „DLL Hell“ bezeichnen: Da verschiedene Programme versuchen, für sie jeweils leicht unpassende Komponenten zu verwenden, funktioniert gar nichts mehr richtig.
Ein konkretes Beispiel: Der Athlon-64-Prozessor der Firma AMD ist abwärtskompatibel zum 8086-Prozessor der Firma Intel, der im Jahre 1978 erschien. Der Athlon 64 kann also Programme des alten 8086 ausführen. Umgekehrt gilt dies jedoch nicht. Die Kompatibilität beschränkt sich hier auf den Befehlssatz, wobei die Ausführungsgeschwindigkeit drastisch zugenommen hat. Der neue Prozessor selbst kann wegen unterschiedlicher Gehäusebauformen, Signale, Versorgungsspannungen usw. nicht mit dem alten ausgetauscht werden. Die beiden Prozessoren sind also hinsichtlich dieser Eigenschaften inkompatibel.
Fehlerkompatibilität
Fehlerkompatibilität (englisch: bug compatibility) ist ein Fachbegriff aus der Informationstechnologie, der bedeutet, dass eine neue und verbesserte Software oder Hardware beziehungsweise ein alternatives Produkt von einem Mitbewerber, die gleichen Fehler besitzt.[1]
Der Grund für die Fehlerkompatibilität ist in der Regel nicht, dass es schwierig wäre, die Fehler zu beheben. Grund ist, dass andere Programme sich auf die Fehler verlassen und eventuell nicht mehr funktionierten, wenn man sie behöbe. Ein bekannter Fehler wird schnell zu einem Teil des Interface und wird von Benutzern berücksichtigt. Eine Änderung des Interface, auch wenn es inhaltlich eine Fehlerkorrektur ist, kann zu fehlerhaftem Verhalten bei abhängigen Systemen führen.
Eine gängige Strategie ist deshalb, die Fehler im neuen Produkt zu korrigieren, aber das vorherige Verhalten zumindest über eine Option zu simulieren. So kann das System auch mit der neuen Version weiter betrieben werden, bis es selbst an die Änderungen angepasst wurde. Man spricht dann auch von einem Fehlerkompatibilitätsmodus.
Werbung
Ein neuer Trend in der Werbung sowie im technischen Sprachgebrauch geht dahin, Produkte von Fremdherstellern als „kompatibel“ zu bezeichnen, um den Unterschied zum Original deutlich zu machen und gleichzeitig die Verwendbarkeit der Produkte der Fremd-Hersteller im Zusammenspiel mit den Produkten des Original-Herstellers zu beschreiben.
Ein konkretes Beispiel: Die Firma A stellt einen Drucker her und die Firma B stellt dazu passende Tintenpatronen her. Diese werden nun auch, analog zu Portabler Software, als „kompatible Tintenpatronen“ bezeichnet.
Siehe auch
Literatur
- Markus Bechter: Kompatibilitätsabsicherung verteilter eingebetteter Systeme in der Mechatronik, Sierke-Verlag, 2008, ISBN 978-3-86844-091-1
Einzelnachweise
- ↑ Dieter Kranzlmüller: Spezielles Kapitel 5: „Transmeta’s Crusoe“, Vorlesungsfolien über Transmetas Crusoe-Prozessor und dessen Fehlerkompatibilität zum Intel x86
Wikimedia Foundation.