- Die komponentenbasierte Architektur ist ein Zweig des Software-Engineerings, der eine höhere Abstraktionsebene als objektorientierte Entwurfsprinzipien bietet.
- Die komponentenbasierte Architektur konzentriert sich nicht auf Themen wie Kommunikationsprotokoll und gemeinsam genutzter Zustand.
- Diese Architektur konzentriert sich auf die Zerlegung des Entwurfs in logische Komponenten, die Ereignisse, Methoden und Eigenschaften enthalten.
- Die komponentenbasierte Architektur unterteilt das Problem in Teilprobleme und jedes Problem ist mit Komponentenpartitionen verbunden.
- Sie bietet eine höhere Abstraktionsebene als objektorientierte Entwurfsprinzipien.
- Sie konzentriert sich nicht auf Themen wie Kommunikationsprotokolle und gemeinsam genutzte Zustände.
Grundsätze der komponentenbasierten Architektur
1. Erweiterbar
Eine Komponente kann aus bestehenden Komponenten erweitert werden, um neues Verhalten zu bieten.
2. Ersetzbar
Komponenten können leicht durch andere ähnliche Komponenten ersetzt werden.
3. Gekapselt
Komponenten stellen Schnittstellen zur Verfügung, die es dem Aufrufer erlauben, ihre Funktionalität zu nutzen, und verbergen die Details der internen Prozesse oder alle internen Variablen oder Zustände.
4. Unabhängig
Komponenten sind unabhängig. Sie können so entworfen werden, dass sie nur minimale Abhängigkeiten von anderen Komponenten haben.
5. Wiederverwendbar
Komponenten sind so konzipiert, dass sie in verschiedenen Szenarien in verschiedenen Anwendungen wiederverwendet werden können.
6. Nicht kontextspezifisch
Komponenten sind so konzipiert, dass sie in verschiedenen Umgebungen und Kontexten funktionieren. Spezifische Informationen, wie z.B. Zustandsdaten, sollten an die Komponente weitergegeben werden, anstatt in der Komponente enthalten zu sein oder auf sie zuzugreifen.
Vorteile der komponentenbasierten Architektur
- Die komponentenbasierte Architektur reduziert die Kosten für Entwicklung und Wartung.
- Sie ist wiederverwendbar, d.h. es können wiederverwendbare Komponenten verwendet werden, um die Entwicklungs- und Wartungskosten auf mehrere Anwendungen zu verteilen.
- Sie erhöht die Zuverlässigkeit des gesamten Systems durch Wiederverwendung.
- Sie ist einfach zu warten und die Implementierung zu aktualisieren, ohne den Rest des Systems zu beeinträchtigen.
- Es verändert die Komplexität durch die Verwendung eines Komponentencontainers und seiner Dienste.
- Wenn neue kompatible Versionen verfügbar sind, ist es einfach, die bestehenden Versionen zu ersetzen, ohne dass dies Auswirkungen auf die anderen Komponenten hat.