Komponentenbasierte Entwicklung
In der angewandten Informatik ist die Komponentenbasierte Entwicklung (, "CBD" oder auch , "CBSE") ein aus früheren Ansätzen entwickeltes Paradigma. Grundlage dieses Konzeptes sind Software-Komponenten, die die Wiederverwendbarkeit von Software-Artefakten verbessern sollen. 

Über die Funktion, bzw. Prozedur in der "Prozeduralen Programmierung", das Objekt in der "Objektorientierten Programmierung" und das "CORBA Objekt" beim "Distributed Object Computing" bis hin zur Komponente in der "Komponentenbasierten Programmierung" werden die zentralen Elemente immer komplexer und mächtiger. Objektorientierte Programmierung stellt dabei die Grundlage der Komponentenbasierten Programmierung dar.

Der Grundgedanke komponentenbasierter Entwicklung ist die Unterteilung von Anwendungen in wiederverwendbare Komponenten, um möglichst wenig Code neu programmieren zu müssen. Mit der Zeit kann so ein "Komponentenmarktplatz" entstehen, aus dem heraus Anwendungen nach dem Baukastenprinzip zusammengestellt werden. Zusätzliche Komponenten müssen nur für Funktionalität entwickelt werden, für die es bisher keine Implementierung gibt.

Vorteile sind neben einer Zeitersparnis bei der Entwicklung auch eine erhöhte Qualität der Komponenten durch eine große Nutzeranzahl und verschiedene Anwendungsszenarien, die automatisch als Testszenarien dienen. In einem Softwaresystem werden in der Regel Annahmen über einen Kontext impliziert, in dem das System funktioniert. Die CBSE verlangt, dass alle diese Annahmen explizit definiert werden, damit das System in verschiedenen Kontexten (von Dritten) "wiederverwendet" werden kann.

In der Praxis verschiedener Komponentenmodelle wie zum Beispiel CORBA, DCOM, CCA, JavaBeans, wird eine Trennung von Implementierung und Schnittstelle vorausgesetzt, was allerdings nur einer syntaktischen Kontextspezifikation entspricht. Der Begriff des Kontrakts fordert dagegen eine explizite Kontextspezifikation, die über die rein syntaktische Spezifikation hinausgeht.

Die semantische Kontextbeschreibung zum Beispiel durch die Spezifikation von legalen Reihenfolgen von Methodenaufruf einer Komponente, werden von der Theorie vorausgesetzt, haben den Weg in die breite Praxis aber noch nicht gefunden. In der Praxis wird aus diesem Grund der Begriff der Softwarekomponente häufig auf zustandslose Dienste beschränkt, da für diese eine solche semantische Spezifikation technisch nicht unbedingt notwendig ist (siehe Service Oriented Architecture).
Q538722
angewandten Informatik
Concept
Q188267
Paradigma
Concept
Q17176533
Software-Komponenten
Concept
Q1369184
Wiederverwendbarkeit
UNK
None
Software-Artefakten
UNK
Q15810910
Funktion
Concept
Q15262084
Prozedur
Concept
Q1418502
Prozeduralen Programmierung
Concept
Q216601
Objekt
Concept
Q2011845
Objektorientiert
Concept
Q691593
CORBA
MEDIA
None
Distributed Object Computing
UNK
Q17176533
Komponente
Concept
Q1412670
Qualität
Concept
Q2377473
Anwendungsszenarien
UNK
Q1369184
wiederverwendet
UNK
Q1523378
Komponentenmodelle
Concept
Q691593
CORBA
MEDIA
Q906328
DCOM
MISC
Q515233
CCA
UNK
Q259322
JavaBeans
MISC
Q245962
Implementierung
Concept
Q23808
Schnittstelle
Concept
Q1200691
Kontrakts
Concept
Q39645
semantisch
Concept
None
Methodenaufruf
UNK
Q220644
Service Oriented Architecture
Concept
Q609588
Komponentenbasierte Entwicklung
Concept
instance of
used by
used by