www.wikidata.de-de.nina.az
Eine Komponente ist im Kontext der Softwarearchitektur ein Teil einer Software der mit anderen Softwareteilen gemass den Regeln eines Komponentenmodells zusammenwirken kann Inhaltsverzeichnis 1 Definition 2 Komponenten Schnittstellen 3 Vorteil und Nutzen 4 Wiederverwendungsformen 5 Komponenten zur Entwicklungszeit 5 1 Beispiel einer Komponentenpalette 6 Implementierungen 6 1 Standards 6 2 Entwicklungswerkzeuge 7 Literatur 8 Weblinks 9 QuellenDefinition BearbeitenDas Wort Komponente leitet sich vom lateinischen componere zusammensetzen ab In der Softwaretechnik wird der Komponentenbegriff jedoch inhaltlich unterschiedlich verwendet Oft wird damit falschlicherweise ein Software Modul bezeichnet was die Ahnlichkeit beider Begriffe verdeutlicht siehe Kapitel Komponenten Schnittstellen 1996 wurde die Softwarekomponente bei der European Conference on Object Oriented Programming ECOOP folgendermassen definiert A software component is a unit of composition with contractually specified interfaces and explicit context dependencies only A software component can be deployed independently and is subject to composition by third parties Eine Softwarekomponente ist ein Element des Zusammenbaus mit vertraglich festgelegten Schnittstellen und ausschliesslich expliziten Kontextabhangigkeiten Eine Softwarekomponente kann unabhangig ausgeliefert werden und ist Baustein fur Dritte 1 Allgemeiner und im Zusammenhang mit dem neuen Konzept der komponentenbasierten Entwicklung wird eine Komponente beispielsweise folgendermassen definiert Eine Software Komponente ist ein Software Element das konform zu einem Komponentenmodell ist und gemass einem Composition Standard ohne Anderungen mit anderen Komponenten verknupft und ausgefuhrt werden kann 2 Eine Komponente zeichnet sich also dadurch aus dass sie ein Element einer komponentenbasierten Anwendung darstellt und definierte Schnittstellen zur Verbindung mit anderen Komponenten besitzt Die genaue Form einer Komponente ist abhangig vom jeweiligen Komponentenmodell Komponenten Schnittstellen BearbeitenDas Interface der Komponente ist eine verbindliche Schnittstelle Interface zum Rest der Software Die Schnittstelle kann daher mit einem Vertrag zwischen der Komponente und dem Rest der Software verglichen werden Durch die explizite Definition der Kontextabhangigkeiten wird deutlich wie unabhangig eine Komponente tatsachlich von ihrer Umgebung ist Die Schnittstellen und die wohldefinierten Kontextbedingungen ermoglichen die Wiederverwendung der Komponente Je geringer die Kontextabhangigkeiten einer Komponente sind desto weniger Anforderungen mussen fur den Einsatz einer Komponente erfullt werden Daraus folgt je weniger Abhangigkeiten desto einfacher ist die Wiederverwendung Zugleich ermoglichen die geringen Abhangigkeiten eine entsprechend unabhangige Pflege und Entwicklung der Komponente Andererseits fuhrt die Unabhangigkeit der Komponenten dazu dass diese Redundanzen beinhalten Der Entwickler einer Komponente muss daher einen Kompromiss finden Die Schnittstelle kann mit einem Vertrag zwischen der Komponente und dem Rest der Software verglichen werden Ein Interface definiert daher wie eine Komponente wieder verwendet werden kann Zugleich definiert sie wie andere Komponenten mit dieser Komponente interagieren konnen Komponenten die eine Software erweitern werden in manchen Fallen auch als Add on Modul oder Plug in bezeichnet Dabei ist zu beachten dass dies umgekehrt nicht notwendigerweise der Fall sein muss So ist es beispielsweise moglich eine Ansammlung von verschiedenen mathematischen Funktionen als Modul zu bezeichnen Das Modul ist moglicherweise in seinen Funktionen unabhangig Wenn es keine allgemein verbindliche Schnittstelle besitzt genugt das Modul allerdings nicht den Anforderungen einer Komponente Schnittstellen konnen in verschiedene Typen unterschieden werden Beispiele unterschiedlicher Sorten von Schnittstellen sind Grafische Benutzeroberflache GUI auch human machine interface HMI genannt Gestattet eine Interaktion der Komponente mit dem Benutzer durch eine grafische Benutzeroberflache Sie wird beispielsweise uber die Maus oder den Bildschirm bedient Kommandozeile CLI Insbesondere dann von Interesse wenn Komponenten ohne Zutun des Benutzers durch das System aufgerufen werden sollen beispielsweise um in periodischen Abstanden immer wiederkehrende Aufgaben abzuarbeiten Eine solche Schnittstelle wird durch Eingabe von Befehlen in eine Kommandozeile angesprochen Daten Schnittstellen Erlauben das Ein und Auslesen von Daten der Komponente Auf diese Schnittstelle wird programmintern zugegriffen Programmierschnittstelle API Durch diese Schnittstelle ist es dem Programmierer und anderen Komponenten moglich die von der Komponente angebotenen Funktionalitaten und Dienste durch Programmierbefehle anzusprechen Soweit nicht anders angegeben wird mit Interface im Folgenden immer eine API gemeint sein Eine Komponente kann verschiedene Schnittstellen desselben Typs besitzen Dies kann beispielsweise notig sein um ein und dieselbe Komponente in verschiedene Systeme einzubinden Dadurch werden die Moglichkeiten einer Wiederverwendung vergrossert Vorteil und Nutzen BearbeitenKomponentenentwicklung zielt auf Kostenreduktion sowie auf erhohte Flexibilitat in der Produktentwicklung 3 Die Entwicklungskosten fur Komponenten amortisieren sich durch ihre Wiederverwendung Umgekehrt wird die Software Entwicklung durch den Einsatz von Komponenten beschleunigt da sie im Idealfall nur im Zusammenfugen und Parametrieren von Komponenten besteht vergleiche auch Modularitat Komponenten konnen fehlerhaft sein Dies fuhrt zu einer weiteren Forderung Unabhangigkeit einer Komponente beinhaltet auch dass die Komponente ihre moglichen Fehler selbst behandelt Dadurch wird sie zu einer abgeschlossenen Einheit 4 Im Fehlerfall ist der Fehler so leichter zu lokalisieren Eine Ausnahme dieser Regel kann nur gemacht werden wenn dieses Verhalten Teil des Schnittstellenvertrages ist Dies fuhrt dazu dass ein Fehler in der Komponente nicht zu einem fehlerhaften Verhalten der ganzen Komponenten fuhrt da diese sich wie vertraglich festgelegt verhalt Auch hierdurch werden Entwicklungskosten reduziert Wiederverwendungsformen BearbeitenAnhand der Wiederverwendungsform der Komponente kann diese wie folgt grob aufgeteilt werden blackbox Die Komponente wird als eine abgeschlossene Einheit in das zu entwickelnde System aufgenommen Diese Komponente kann nicht verandert werden Uber ihren internen Aufbau und ihre Funktionsweise kann ebenfalls keine Aussage gemacht werden Die Verwendung der Komponente geschieht ausschliesslich auf Basis der definierten Schnittstellen und Spezifikationen der Komponente whitebox Die Komponente wird als eine offene Einheit wiederverwendet Das Wort offen beschreibt dass die Einheit veranderbar ist Sie kann an die neuen Anforderungen angepasst werden Dazu ist ihr interner Aufbau einsehbar und somit analysierbar Die Komponente wird daher als Softwarefragment betrachtet Die Verwendung der Komponenten geschieht nicht ausschliesslich auf Basis der definierten Schnittstellen sondern auch durch das Analysieren der aktuellen Umsetzung dieser Komponente greybox Die Zwischenformen von black und whitebox Komponenten zur Entwicklungszeit BearbeitenKomponenten konnen beispielsweise in die Entwicklungsumgebung integriert werden Dann zeigen sie ihre Eigenschaften und ihr Verhalten bereits zur Entwicklungszeit Fur den Programmierer ist dies ein grosser Vorteil Er sieht schon wahrend des Programmierens wie die Komponente aussehen oder arbeiten wird Beispiel einer Komponentenpalette Bearbeiten Erst durch das Verwenden von vorgefertigten Komponenten ist ein Rapid Application Development moglich Implementierungen BearbeitenStandards Bearbeiten In der Software ist die Komponenten Technologie in der Meinung Vieler ein Eckstein der Softwareentwicklung der nachsten Jahre 4 Es koexistieren verschiedene Standards Abgesehen von CORBA sind diese Standards im Allgemeinen programmiersprachen anwendungs oder plattformspezifisch Sie bilden so genannte Komponentenwelten oder markte Beispiele solcher Welten sind Microsoft Net Framework NET COM DCOM OLE ActiveX COM Object Management Group CORBA Sun Microsystems JavaBeans Servlets Applets Enterprise JavaBeans OSGi Alliance OSGi Entwicklungswerkzeuge Bearbeiten Fur komponentenbasierte Entwicklungen gibt es spezielle Entwicklungsumgebungen und Programmiersprachen wie zum Beispiel Advanced Component Framework BlackBox Component Builder Component PascalLiteratur BearbeitenOlaf Zwintzscher Software Komponenten im Uberblick W3L 2004 ISBN 3937137602 Clemens Szyperski Component Software Beyond Object Oriented Programming Second Edition 2002 ISBN 0 201 74572 0 M D McIlroy Mass produced software components In Software Engineering Report on a conference sponsored by the NATO Science Committee Garmisch Germany 7th to 11th October 1968 1969 S 138 155 txt Weblinks BearbeitenComponents Remoting Middleware and Webservices how it all fits together Memento vom 30 Oktober 2012 im Internet Archive englische Prasentation UML Components Gute Einfuhrung in Komponentendesign fur Applikationskomponenten Webservices als Komponenten Diplomarbeit zum Thema Software Komponenten bei Webanwendungen PDF Datei 2 16 MB Quellen Bearbeiten Clemens Szyperski Component Software Beyond Object Oriented Programming Second Edition 2002 ISBN 0 201 74572 0 S 41 William T Councill George T Heineman Component Based Software Engineering Addison Wesley 2001 ISBN 0 201 70485 4 Dumke Reiner Software Engineering Friedr Vieweg amp Sohn Verlagsgesellschaft GWV Fachverlage GmbH 4 Auflage Wiesbaden 2003 a b Snoopy Muller Martin Deutsche Ubersetzung Open Source kurz amp gut Memento des Originals vom 2 Februar 2020 im Internet Archive nbsp Info Der Archivlink wurde automatisch eingesetzt und noch nicht gepruft Bitte prufe Original und Archivlink gemass Anleitung und entferne dann diesen Hinweis 1 2 Vorlage Webachiv IABot www oreilly de Abgerufen von https de wikipedia org w index php title Softwarekomponente amp oldid 237602559