Komponenten-Definition

return


“Das Wort "Component" (engl. Komponente, Subsystem, Modul, Baustein, Anwendungsbaustein) stellt ein physisches Stück Programmcode (z.B. Quellcode, Binärcode, DLL, ausführbares Programm) dar. Komponenten ähneln Paketen. Sie gruppieren und gliedern eine Menge einzelner Elemente, definieren Grenzen und können über Schnittstellen verfügen”.
Tuelay Mat und Nurcan Saka



“Eine Komponente ist ein Stück Software, das klein genug ist, um es in einem Stück zu erzeugen und pflegen zu können, groß genug ist, um eine sinnvoll einsetzbare Funktionalität zu bieten und eine individuelle Unterstützung zu rechtfertigen sowie mit standardisierten Schnittstellen ausgestattet ist, um mit anderen Komponenten zusammenzuarbeiten.”
Jed Harris



“Eine Softwarekomponente ist eine "statische Softwareabstraktion mit Plugs"”
Nierstarz und Lumpe



Dazu erklären die Autoren, dass unter der genannten Softwareabstraktion eine Art “Black-Box” zu verstehen ist. Deren Haupteigenschaften das Verbergen der Implementierungsspezifika vor dem Benutzer darstellt. Statisch bedeutet in diesem Zusammenhang, dass die “Black Box” in geeigneter Form instanziiert werden muss, bevor eine Nutzung erfolgen kann.
In der objektorientierten Programmiersprache Smalltalk wird zwischen “Klassen” und “Objekten” unterschieden. Dabei stellt ein Objekt eine Instanz einer Klasse dar. Bei Komponenten wird solch eine Unterscheidung nicht vorgenommen, trotzdem wird in den meisten Fällen mit Instanzen von Komponenten gearbeitet.
Weiterhin gehen die Autoren davon aus, dass die Komponenten in einem Komponentenframework zusammengefasst werden.
“Ein Komponentenframework besteht aus einer Bibliothek von Komponenten und einer zugehörigen Softwarearchitektur, welche die Basiseigenschaften der Plugs und die Art und Weise der Komposition festlegt.”
Diese Darstellung führt zu der Problematik, dass Komponenten nicht isoliert betrachtet werden können. Es ist wichtig, das gesamte Komponentenframework in die Betrachtung mit einzubeziehen.



Die Idee, die hinter der Komponententechnologie steht, ist Software zu modularisieren, dabei die Schnittstellen der Module so zu verallgemeinern, dass sie von anderen Programmen aufrufbar sind. Komponenten sind dabei abgeschlossene, wiederverwendbare Softwareeinheiten, die visuell zusammenfügbar und von “visual application builder tools” eingesetzt werden können.



Häufig ist folgende Definition zu finden:

    Komponente = Objekt + 'irgend etwas'

Komponenten können als Erweiterung von Objekten aufgefasst werden, die über eine Kommunikationsinfrastruktur miteinander in Verbindung stehen.

Daran ist erkennbar, dass nicht etwa eine Aufweichung des Begriffs der Objektorientierung zugrunde liegt, sondern, dass es bei einer komplexen Komponentenentwicklung sogar noch viel strenger zu verfolgen ist.


return