Softwarekomponente
Eine Softwarekomponente ist eine modulare Einheit eines Softwareprogramms mit klar definierten Schnittstellen und Abhängigkeiten, die es ermöglichen, eine Reihe von Diensten oder Funktionalitäten anzubieten oder anzufordern. Die komponentenorientierte Programmierung (die auch als komponentenbasiert bezeichnet wird) ist ein Zweig der Softwaretechnik , bei dem der Schwerpunkt auf der Zerlegung vorgefertigter Systeme in funktionale oder logische Komponenten mit wohldefinierten Schnittstellen liegt , die für die Kommunikation zwischen Komponenten verwendet werden.
Die Abstraktionsebene von Komponenten wird als höher angesehen als die von Objekten , und daher teilen sie keinen Zustand und kommunizieren durch den Austausch von Nachrichten, die Daten enthalten.
Definitionen
Eine Softwarekomponente ist ein Element eines Systems , das einen vordefinierten Dienst anbietet und in der Lage ist, mit anderen Komponenten zu kommunizieren, ein nach Spezifikationen geschriebenes Objekt. Es spielt keine Rolle, um welche Spezifikation es sich handelt, solange das Objekt der Spezifikation entspricht. [ Zitat erforderlich ] Erst durch die korrekte Einhaltung dieser Spezifikation wird das Objekt zu einem Bauteil und erhält Eigenschaften wie Wiederverwendbarkeit.
Laut OMG
{{ }} In der Spezifikation [ ]] handelt es sich um eine modulare Einheit mit wohldefinierten Schnittstellen, die innerhalb von cont(2011) ersetzbar ist. [ http://www.omg.org/spec/UML/2.4/Superstructure/Beta2/PDF/ OM Superstructure, V. 147.</ref> Somit definiert eine Komponente ihr Verhalten in Bezug auf bereitgestellte und erforderliche Schnittstellen; und die Komponente vollständig durch eine andere ersetzbar ist, die den deklarierten Schnittstellen entspricht.
UML schränkt die Granularität der Komponenten nicht ein, sodass eine Komponente so einfach wie ein Währungsumrechner oder so komplex wie ein semantisches Hilfesystem sein kann.
Laut WCOP
Als Ergebnis des ersten Workshops Component Oriented Programming (WCOP) oder „Workshop on Component Oriented Programming“ im Jahr 1996 wurde die Definition geprägt: Kompositionseinheit mit vertraglich spezifizierten Schnittstellen, mit expliziten Abhängigkeiten gemäß dem oben genannten Kontext. Eine Softwarekomponente kann unabhängig bereitgestellt werden und kann an Kompositionen Dritter teilnehmen.
Funktionen
Wenn Zugriff auf eine Komponente erforderlich ist oder diese von verschiedenen Netzwerken gemeinsam genutzt werden muss, werden Prozesse wie Serialisierung verwendet , um die Komponente an ihren Bestimmungsort zu liefern.
Wiederverwendbarkeit ist ein wichtiges Merkmal hochwertiger Softwarekomponenten. Eine Komponente muss so entworfen und implementiert werden, dass sie in vielen verschiedenen Programmen wiederverwendet werden kann.
Es erfordert viel Mühe und Aufmerksamkeit, eine Komponente zu schreiben, die wirklich wiederverwendbar ist. Dazu muss die Komponente sein:
- Vollständig dokumentiert.
- Intensiv getestet:
- Es sollte robust sein und die Gültigkeit der Eingaben überprüfen.
- Es muss in der Lage sein, entsprechende Fehlermeldungen weiterzugeben.
- Entwickelt mit dem Hintergedanken, dass es auf unerwartete Weise verwendet wird.
Weitere Merkmale sind:
- austauschbar sein.
- Schnittstellen definiert haben.
- zusammenhängend sein.
Implementierungen
Softwarekomponenten sind die Eckpfeiler verschiedener Programmierparadigmen . Dies hat dazu geführt, dass verschiedene Spezifikationen auf dem Markt erschienen sind, die die Art und Weise des Aufbaus, der Verwendung und des Vertriebs von Komponenten vorschlagen. Zu den am weitesten verbreiteten gehören:
Standards
- CORBA ( Common Object Request Broker Architecture ) von der Object Management Group (OMG).
- JavaBean , Servlets und Enterprise JavaBeans von Oracle .
- OSGi ( Open Services Gateway Initiative ) von der OSGi Alliance .
- Component Object Model (COM), COM+ und Distributed Component Object Model (DCOM) von Microsoft .
Paradigmen
Softwarekomponenten sind nützlich in:
- Komponentenorientierte Programmierung (POC)
- Objektorientierte Programmierung (OOP)
- Serviceorientierte Architektur (SOA) [ 1 ]
Einige Spezifikationen für Komponenten
Siehe auch
- Komponentenbasiertes Software-Engineering
- Objektverwaltungsgruppe
- Komponentenorientierte Programmierung
Referenzen
Externe Links
- Dieses Werk enthält eine abgeleitete Übersetzung von „ Komponentenbasierte Programmierung “ aus der englischen Wikipedia, veröffentlicht von seinen Herausgebern unter der GNU Free Documentation License und der Creative Commons Attribution-ShareAlike 3.0 Unported License .
- Komponentenorientierte Programmierung
- Komponentenorientierte Programmierung - Technische Universität Federico de Santa María
- Komponente in UML 2
- Erinnerungen an die WCOP'98