Modul Software Komponenten 01 Komponenten Martin Jud Inhalt 1. Begriff 2. Bedeutung 3. Nutzen 4. Entwurf mit Komponenten HSLU T&A, 14.09.2008 Modul SWK - 01-Komponenten - Martin Jud 2
1. Begriff Definition des Komponentenbegriffs Aus dem lateinischen componere (zusammensetzen) "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." European Conference on Object-Oriented Programming (ECOOP), 1996 "Eine Software-Komponente ist ein Software-Element, das zu einem bestimmten Komponentenmodell passt und entsprechend einem Composition Standard ohne Änderungen mit anderen Komponenten verknüpft und ausgeführt werden kann." Councill, Heineman: Component-Based Software Engineering, Addison-Wesley, 2001 HSLU T&A, 14.09.2008 Modul SWK - 01-Komponenten - Martin Jud 4
Aus Wikipedia, http://de.wikipedia.org/w/index.php?title=komponentenmodell&oldid=13781875 Komponentenmodelle Komponentenmodelle sind konkrete Ausprägungen des Paradigmas der Komponentenbasierten Entwicklung. Neben der genauen Form und den Eigenschaften einer Komponente muss es einen Interaction-Standard und einen Composition-Standard festlegen. Ein Komponentenmodell kann ausserdem Implementierungen verschiedener Hersteller besitzen. Folgende Komponentenmodelle sind weit verbreitet: MS.NET Enterprise Java Beans DCOM (Distributed Component Object Model) CORBA Component Model HSLU T&A, 14.09.2008 Modul SWK - 01-Komponenten - Martin Jud 5 Software Komponenten in UML Bestell- Material Bestellung Bestell- Eingang Alternative Darstellung: Bestell- Material «component» Bestellung Bestell- Eingang HSLU T&A, 14.09.2008 Modul SWK - 01-Komponenten Aus der - Vorlesung Martin UML Jud2.0 von Jörg Hofstetter HTA Luzern 6
Subsysteme Der Komponentenbegriff ist hierarchisch System «subsystem» A «subsystem» B «subsystem» A1 «subsystem» A2 «subsystem» B1 HSLU T&A, 14.09.2008 Modul SWK - 01-Komponenten - Martin Jud 7 Adapted from Systems Design by David L. March, DeSales University Webpage Modules Layers Components A module is an implementation unit A component is a runtime unit. In this figure modules are grouped into layers. Each layer will be developed by a different team. The bold boundary illustrates the modules that participate when the corresponding component is running. HSLU T&A, 14.09.2008 Modul SWK - 01-Komponenten - Martin Jud 8
Adapted from Systems Design by David L. March, DeSales University Webpage Wichtige Eigenschaften von Komponenten eigenständige, ausführbare SW-Einheiten (Laufzeit-Sicht), d.h. Subsysteme, Prozesse, Objekte über ihre Schnittstellen austauschbar definiert lassen sich unabhängig voneinander entwickeln kunden- / anwendungsspezifische, bzw. wiederverwendbare Software sowie COTS können installiert / deployed werden HSLU T&A, 14.09.2008 Modul SWK - 01-Komponenten - Martin Jud 9 2. Bedeutung
aus Seminar Komponenten: Christopher Oezbek, Freie Universität Berlin Komponentenbasierte Entwicklung I Die Konstruktion von Software aus vorgegebenen Komponenten und Bibliotheken spielt eine immer grössere Rolle, da die Komplexität von Systemen, Protokollen und Anwendungsszenarien anwächst und damit eine Eigenentwicklung aus Gründen der Wirtschaftlichkeit und Sicherheit nicht ratsam erscheint. Christopher Oezbek, Freie Universität Berlin HSLU T&A, 14.09.2008 Modul SWK - 01-Komponenten - Martin Jud 11 aus Seminar Komponenten: Christopher Oezbek, Freie Universität Berlin Komponentenbasierte Entwicklung II Die Schwierigkeit der Softwareentwicklung liegt heute nicht in der Beherrschung der gewählten Programmiersprache, sondern vielmehr in der der zugehörigen Bibliothek (vgl. die Komplexität der Sprache Java und die des JDK). Christopher Oezbek, Freie Universität Berlin HSLU T&A, 14.09.2008 Modul SWK - 01-Komponenten - Martin Jud 12
aus Seminar Komponenten: Christopher Oezbek, Freie Universität Berlin Komponentenbasierte Entwicklung III Komponenten zu entwickeln, stellt hierbei noch höhere Anforderungen an unsere softwaretechnischen Fertigkeiten als reguläre Software, da eine ganze Reihe neuer Einflüsse beachtet werden müssen, die bei einmaliger Anwendung nicht auftreten. Christopher Oezbek, Freie Universität Berlin HSLU T&A, 14.09.2008 Modul SWK - 01-Komponenten - Martin Jud 13 Bedeutung der Komponententechnologie HSLU T&A, 14.09.2008 Modul SWK - 01-Komponenten - Martin Jud 14
3. Nutzen from Sterling Software The Enterprise Component Architects Webpage Nutzen von Komponenten HSLU T&A, 14.09.2008 Modul SWK - 01-Komponenten - Martin Jud 16
Auswirkungen von Änderungen from Sterling Software The Enterprise Component Architects Webpage HSLU T&A, 14.09.2008 Modul SWK - 01-Komponenten - Martin Jud 17 Auswirkungen mit Komponenten from Sterling Software The Enterprise Component Architects Webpage HSLU T&A, 14.09.2008 Modul SWK - 01-Komponenten - Martin Jud 18
4. Entwurf mit Komponenten Aus der Vorlesung Architektur von Jörg Hofstetter HTA Luzern Praktische Eigenschaften von Komponenten Wer eine Komponente einsetzen will, braucht nur deren Schnittstelle zu kennen. Komponenten, die dieselbe Schnittstelle haben, sind gegenseitig austauschbar. Komponententest ist blackbox Test. Komponenten lassen sich unabhängig voneinander entwickeln. Komponenten unterstützen die Wiederverwendbarkeit. HSLU T&A, 14.09.2008 Modul SWK - 01-Komponenten - Martin Jud 20
Aus der Vorlesung Architektur von Jörg Hofstetter HTA Luzern Verhaltenssicht Components & Connector: ausführbare Einheiten und gemeinsame Daten Datenfluss: Data flow between components. Control flow: wird angestossen von Prozess: welche Komponenten laufen parallel? Verteilung: Zuordnung der Komponenten zur HW ToLower «dataflow» Split Merge ToUpper HSLU T&A, 14.09.2008 Modul SWK - 01-Komponenten - Martin Jud 21 Aus der Vorlesung Architektur von Jörg Hofstetter HTA Luzern Komponenten-Spezifikation Export: unterstützte Interfaces, die andere Komponenten nutzen können. Export C Import: benötigte / benutzte Interfaces von anderen Komponenten. A Import B Verhalten: Verhalten der Komponente. Kontext: Rahmenbedingungen im Betrieb der Komponente. HSLU T&A, 14.09.2008 Modul SWK - 01-Komponenten - Martin Jud 22
Aus dem Vortrag UML-2 von Jörg Hofstetter HTA Luzern Verdrahtung von Komponenten Fehler, kann nicht zusammengesteckt werden! HSLU T&A, 14.09.2008 Modul SWK - 01-Komponenten - Martin Jud 23 Adapted from Documenting SW Architectures by Paul Clements et. al. Addison Wesley Architektur-Muster Pipe and Filter Subscriber Client A subscribe events request service Publisher Server B services Shared Data Publish-Subscribe Client-Server Peer-to-Peer concurrency & sychronization C D HSLU T&A, 14.09.2008 Modul SWK - 01-Komponenten - Martin Jud 24
Adapted from Documenting SW Architectures by Paul Clements et. al. Addison Wesley Rollen der Komponenten in den Architekturmustern Pipe-and-Filter Component: Filter Connector: Pipe Data Transformation Client-Server Component: Client und Server Connector: request/reply Decoupling Apps. from Services Shared Data Component: Repositories Connector: Data Reader/Writer Multiple Accessors & Persistence Publish-Subscribe Component: any Connector: publish-subscribe Send events & msgs. to unknown set of recipients Peer-to-Peer Component: Peer Connector: bidirectional RPC Collaboration Communicating Processes Component: any concurrent unit Connector: data exchg., msg. passing, sync., ctrl. Concurrent Systems HSLU T&A, 14.09.2008 Modul SWK - 01-Komponenten - Martin Jud 25