Stub (Programmierung)
Ein Stub (von englisch stub‚ Stubben, Stummel, Stumpf) oder Stutzen bezeichnet in der Softwareentwicklung einen – üblicherweise relativ einfachen und kurzen – Programmcode, der anstelle eines anderen, meist komplexeren, Programmcodes steht. Dabei ist der eigentliche Programmcode, der durch den Stub ersetzt wird, noch nicht entwickelt (Top-Down-Ansatz) oder auf einem anderen Rechner oder in einem anderen Speicherbereich. Liegt der Code an einem anderen Ort, so ist der Stub der lokale Anknüpfungspunkt, um Softwarekomponenten einfach anzusprechen, die ansonsten nur über komplexe Protokolle erreichbar wären bzw. sind und um diese Komplexität zu verbergen. Ein Stub entspricht dann dem Entwurfsmuster eines Stellvertreters.
Insbesondere kommen Stubs bei der Entwicklung verteilter Systeme zur Anwendung: Die Funktionalität eines entfernten, nur über ein Netzwerk erreichbaren Softwaresystems wird auf dem lokalen System in Form einer „Stubkomponente“ zur Verfügung gestellt. Diese Stubkomponente kann von der Software des lokalen Systems so angesprochen werden, als wäre die Funktionalität des entfernten Systems lokal vorhanden (Zugriffstransparenz). Statt aber diese gewünschte Funktion tatsächlich zu implementieren, übersetzt die Stubkomponente die Anfragen in Netzwerkaufrufe (Marshalling), kommuniziert mit dem fernen System und delegiert die Aktion an dieses. Für das nutzende System bleibt dieser Kommunikationsvorgang verborgen.
Bei einer Kommunikation nach dem Client-Server-Modell (RPC, RMI) heißt der lokale Vertreterstub auf dem Client auch proxy. Bei verschiedenen Techniken kann aus einer abstrakten Beschreibung ein Grundgerüst (Skeleton) für das Gegenstück auf dem Server erstellt werden.