Suchen

Definition „Abhängigkeit“ Was ist eine Dependency?

Autor / Redakteur: chrissikraus / Stephan Augsten

Eine Dependency oder Abhängigkeit beschreibt in der Softwareentwicklung, dass ein Programm ein bestimmtes Stück Code (z. B. Frameworks, Bibliotheken) benötigt, um ordnungsgemäß zu funktionieren.

Firmen zum Thema

Insbesondere bei Installationen, Deinstallationen und Software-Updates sowie OS-Upgrades unter Linux kommt man mit Abhängigkeiten in Berührung.
Insbesondere bei Installationen, Deinstallationen und Software-Updates sowie OS-Upgrades unter Linux kommt man mit Abhängigkeiten in Berührung.
(Bild: Augsten / Fedora Silverblue)

Von Dependencies oder Abhängigkeiten ist dann die Rede, wenn ein Programm externe Software oder Bibliotheken benötigt, um wie geplant zu funktionieren. Diese externen Komponenten werden auch als Pakete bezeichnet.

Alle Pakete, die eine Software benötigt, um lauffähig zu sein, müssen bei der Installation dieser Software mit installiert werden – sonst funktioniert das Programm nicht korrekt. Hier spricht man auch vom Auflösen der Abhängigkeiten. Häufig muss z. B. ein bestimmtes Framework zusätzlich zur eigentlichen Software installiert werden, damit das Programm richtig genutzt werden kann.

Verwaltung von Abhängigkeiten

Package Manager oder Paketmanager sind Tools, die unter anderem dabei helfen, die Abhängigkeiten in einer Software übersichtlich zu verwalten. Unter anderem erleichtern sie die Installation neuer Pakete und helfen dabei, Pakete aktuell zu halten oder zu entfernen. Die Alternative wäre, alle benötigten Pakete manuell zu verwalten. Bei kleineren Projekten mit wenigen Abhängigkeiten ist der Aufwand hierfür im Rahmen, doch bei größeren Projekten fehlt ohne Paketmanager schnell der Überblick.

Vorteile durch die Nutzung von Abhängigkeiten

Die Nutzung externer Pakete spart dem Entwickler Arbeit und Zeit. Denn häufig gibt es bereits ausgereifte Lösungen für alltägliche Probleme von einem Drittanbieter, welche einfach in ein beliebiges Projekt mit eingebunden werden können.

Ebenso ist es möglich, innerhalb eines Unternehmens bestimmte Funktionalitäten auszulagern und als Pakete für verschiedenste Projekte bereitzustellen. So kann z. B. eine einheitliche Vorgehensweise für bestimmte Aufgaben erwirkt werden oder ganz allgemein Entwicklungszeit für wiederkehrende und projektübergreifende Aufgaben gespart werden.

Durch die Nutzung von Abhängigkeiten wird der selbst verfasste Code schlanker und übersichtlicher. Denn statt den gesamten Funktionsumfang selbst zu programmieren, kann sich der Entwickler weitestgehend auf die projektspezifischen Funktionen konzentrieren.

Nachteile durch die Nutzung von Abhängigkeiten

Ein Nachteil ist, dass beim Fehlen eines erwarteten Pakets Fehler in der Software auftreten können. Diese Fehler reichen von unerwartetem Verhalten bis zum Verlust der Funktionsfähigkeit. Wenn z. B. eine Abhängigkeit nicht oder fehlerhaft aufgelöst wurde, funktioniert das Programm nicht und muss unter Umständen komplett neu installiert werden.

Ebenfalls kritisch können automatisch aktualisierte Pakete von Drittanbietern sein: Wenn zwischen der Version, die zur Entwicklung genutzt wurde, und der aktuelleren Version drastische Änderungen bestehen, kann es zu unerwartetem Verhalten kommen. Es kann z. B. passieren, dass eine bestimmte Funktion in der neuesten Version des Pakets nicht mehr zur Verfügung stehen oder leicht abgewandelte Ergebnisse liefern. Im Idealfall sollte so etwas vom Herausgeber des Pakets so gut wie möglich vermieden werden, aber eine Garantie gibt es hierfür nicht.

(ID:46331304)