![Page 1: Mathematik Seminar WS 2003.Version1 · Simulation und Bildanalyse mit Java Software-Architektur ... zDie GeoStoch-GUI als Beispiel ... Mathematik Seminar WS 2003.Version1.ppt](https://reader034.vdokument.com/reader034/viewer/2022051406/5ac819977f8b9a51678bee41/html5/thumbnails/1.jpg)
Mathematik Seminar WS 2003: Simulation und Bildanalyse mit Java
Software-Architektur basierend auf dem Plug-in-Konzept
![Page 2: Mathematik Seminar WS 2003.Version1 · Simulation und Bildanalyse mit Java Software-Architektur ... zDie GeoStoch-GUI als Beispiel ... Mathematik Seminar WS 2003.Version1.ppt](https://reader034.vdokument.com/reader034/viewer/2022051406/5ac819977f8b9a51678bee41/html5/thumbnails/2.jpg)
Aufteilung:
Probleme mit „normaler/alter“ SoftwareZiele des Software EngineeringsDie Plug-in-Architektur als eine LösungPlug-in-basierte AnwendungenPlug-in-basierte GUIsDie GeoStoch-GUI als BeispielFazit: Vor/Nachteile der Plug-in-Architektur
![Page 3: Mathematik Seminar WS 2003.Version1 · Simulation und Bildanalyse mit Java Software-Architektur ... zDie GeoStoch-GUI als Beispiel ... Mathematik Seminar WS 2003.Version1.ppt](https://reader034.vdokument.com/reader034/viewer/2022051406/5ac819977f8b9a51678bee41/html5/thumbnails/3.jpg)
Probleme „normale/alte“ Software
Software wird immer komplexerErweiterung durch Dritte nur selten möglichDritte müssen sich mit dem ganzen Programm auskennenEs reicht nicht das Wissen über die einzelnen Schnittstellen und Bibliotheken
![Page 4: Mathematik Seminar WS 2003.Version1 · Simulation und Bildanalyse mit Java Software-Architektur ... zDie GeoStoch-GUI als Beispiel ... Mathematik Seminar WS 2003.Version1.ppt](https://reader034.vdokument.com/reader034/viewer/2022051406/5ac819977f8b9a51678bee41/html5/thumbnails/4.jpg)
Ziele des Software Engineerings
Simples und flexibles Software-Design (KISS)Systemerweiterungen benötigen das Spezial-know-how von Dritten deshalb müssen Erweiterungen von Dritten leicht implementierbar seinSpezielle Unterstützung für parallele Software-Entwicklung
![Page 5: Mathematik Seminar WS 2003.Version1 · Simulation und Bildanalyse mit Java Software-Architektur ... zDie GeoStoch-GUI als Beispiel ... Mathematik Seminar WS 2003.Version1.ppt](https://reader034.vdokument.com/reader034/viewer/2022051406/5ac819977f8b9a51678bee41/html5/thumbnails/5.jpg)
Mögliche Lösung durch Plug-ins
Was ist ein Plug-in?Software KomponenteNicht alleine lauffähigZur Laufzeit nachgeladen (falls gebraucht)Implementiert zusätzliche oder sogar wesentliche FunktionalitätKommunikation via Schnittstelle und Protokolle (Plug-in-Typ)
![Page 6: Mathematik Seminar WS 2003.Version1 · Simulation und Bildanalyse mit Java Software-Architektur ... zDie GeoStoch-GUI als Beispiel ... Mathematik Seminar WS 2003.Version1.ppt](https://reader034.vdokument.com/reader034/viewer/2022051406/5ac819977f8b9a51678bee41/html5/thumbnails/6.jpg)
Plug-in-Architektur von einem Browser
Die populärsten Anwendungen, die sich Plug-ins zunutze machen, sind Internet-Browser wie Netscape und Internet Explorer.Webbrowser erkennen während des Laden einer Webseite, dass ein Plug-in benötigt wird. Das Plug-in wird dann gegebenenfalls installiert, und der Browser übergibt die weitere Verarbeitung und Kontrolle an das Plug-in. Das geschieht für den Benutzer oft unsichtbar und ohne dass die Applikation dafür verlassen werden müsste.
![Page 7: Mathematik Seminar WS 2003.Version1 · Simulation und Bildanalyse mit Java Software-Architektur ... zDie GeoStoch-GUI als Beispiel ... Mathematik Seminar WS 2003.Version1.ppt](https://reader034.vdokument.com/reader034/viewer/2022051406/5ac819977f8b9a51678bee41/html5/thumbnails/7.jpg)
Plug-in-Architektur von einem Browser
Library Doc.- TypePlug-ins
ProtocolPlug-ins
HTML TagPlug-ins
PreferencePlug-ins
Browser Core
![Page 8: Mathematik Seminar WS 2003.Version1 · Simulation und Bildanalyse mit Java Software-Architektur ... zDie GeoStoch-GUI als Beispiel ... Mathematik Seminar WS 2003.Version1.ppt](https://reader034.vdokument.com/reader034/viewer/2022051406/5ac819977f8b9a51678bee41/html5/thumbnails/8.jpg)
Basic-Plug-in-Architektur
Library Plug-inComponent
Plug-inComponent
Plug-inComponent
MainApplication
Interface Interface Interface1 2 N...
![Page 9: Mathematik Seminar WS 2003.Version1 · Simulation und Bildanalyse mit Java Software-Architektur ... zDie GeoStoch-GUI als Beispiel ... Mathematik Seminar WS 2003.Version1.ppt](https://reader034.vdokument.com/reader034/viewer/2022051406/5ac819977f8b9a51678bee41/html5/thumbnails/9.jpg)
Beteiligte der Plug-in-Architektur (1)
Haupt-Anwendung (Browser Core):führt die Basis Funktionalitäten der Anwendung aus, die nicht durch Plug-ins realisierbar sindIst mit der Bibliothek ganz oben verbunden und hat Zugriff zu allen Plug-ins durch den Plug-in-loader und kommuniziert mit den Plug-ins über die Plug-in-interfaces
![Page 10: Mathematik Seminar WS 2003.Version1 · Simulation und Bildanalyse mit Java Software-Architektur ... zDie GeoStoch-GUI als Beispiel ... Mathematik Seminar WS 2003.Version1.ppt](https://reader034.vdokument.com/reader034/viewer/2022051406/5ac819977f8b9a51678bee41/html5/thumbnails/10.jpg)
Beteiligte der Plug-in-Architektur (2)
Bibliothek (Library): beinhaltet generelle Routinen, die sonst bei mehreren Teilen seperat implementiert werden müssten (Plug-in Komponenten oder der Hauptanwendung)Bietet weitere Schnittstellen an, um den Zugang zu allen möglichen Funktionalitäten zu garantieren
![Page 11: Mathematik Seminar WS 2003.Version1 · Simulation und Bildanalyse mit Java Software-Architektur ... zDie GeoStoch-GUI als Beispiel ... Mathematik Seminar WS 2003.Version1.ppt](https://reader034.vdokument.com/reader034/viewer/2022051406/5ac819977f8b9a51678bee41/html5/thumbnails/11.jpg)
Beteiligte der Plug-in-Architektur (3a)
Plug-in Komponenten: bestehen aus Plug-in-interface, Plug-in-loaderund den konkreten Plug-ins wie sie Michael eben beschrieben hatsind unabhängig von einander (benutzen nur das Plug-in-interface und den Plug-in-loader von anderen plug-in Komponenten, aber rufen nie selber ihre konkreten Plug-ins auf)Erlauben das Erweitern des Systems um einen Aspekt
![Page 12: Mathematik Seminar WS 2003.Version1 · Simulation und Bildanalyse mit Java Software-Architektur ... zDie GeoStoch-GUI als Beispiel ... Mathematik Seminar WS 2003.Version1.ppt](https://reader034.vdokument.com/reader034/viewer/2022051406/5ac819977f8b9a51678bee41/html5/thumbnails/12.jpg)
Beiteiligte der Plug-in-Architektur (3b)
Stellen die wichtigsten Schnittstellen, die Plug-in-interfaces, bereit (neben den Schnittstellen der Biblothek) Kein Teil des Systems ist also von einem konkreten Plug-in abhängig, sondern nur von dessen InterfaceNeue konkrete Plug-ins benötigen also keine Veränderungen in anderen Teilen des Systems (machen also auch vorherige Tests nicht ungültig)Weil somit alle konkreten Plug-ins einer Plug-in Komponente alle die gleiche Schnittstellebenutzen, muss nur einmal ein Dummy-Klassen-oder Mock-Klassen Test durchgeführt werden
![Page 13: Mathematik Seminar WS 2003.Version1 · Simulation und Bildanalyse mit Java Software-Architektur ... zDie GeoStoch-GUI als Beispiel ... Mathematik Seminar WS 2003.Version1.ppt](https://reader034.vdokument.com/reader034/viewer/2022051406/5ac819977f8b9a51678bee41/html5/thumbnails/13.jpg)
Wie entwickle ich eine Plug-in-basierte Anwendung?
1. Identifikation der Teile des Systems die als Plug-in Komponenten in Frage kommen Aufteilung in zwei verschiedene Arten von Plug-ins: jedes Plug-in hat eine andere Funktionalität (image filters) oder die Funktionalität ist dieselbe, aber das Eingabe- oder Ausgabeformat ist anders (import, export files)
![Page 14: Mathematik Seminar WS 2003.Version1 · Simulation und Bildanalyse mit Java Software-Architektur ... zDie GeoStoch-GUI als Beispiel ... Mathematik Seminar WS 2003.Version1.ppt](https://reader034.vdokument.com/reader034/viewer/2022051406/5ac819977f8b9a51678bee41/html5/thumbnails/14.jpg)
Wie entwickle ich eine Plug-in-basierte Anwendung?
2. Spezifikation der Plug-in-interfaces der identifizierten Plug-in Komponenten: So simpel wie möglich
3. Identifikation der Elemente die von mehr als einer Plug-in Komponente oder der Hauptanwendung verwendet werden
4. Spezifikation der Bibliotheks-Schnittstellen
![Page 15: Mathematik Seminar WS 2003.Version1 · Simulation und Bildanalyse mit Java Software-Architektur ... zDie GeoStoch-GUI als Beispiel ... Mathematik Seminar WS 2003.Version1.ppt](https://reader034.vdokument.com/reader034/viewer/2022051406/5ac819977f8b9a51678bee41/html5/thumbnails/15.jpg)
Wie entwickle ich eine Plug-in-basierte Anwendung?
5. Design der Hauptanwendung mit den Basis-Funktionalitäten
6. Design der ganzen Bibliothek7. Design der konkreten Plug-ins8. Implementation der Hauptanwendung9. Implementation der Bibliothek10. Implementation der Plug-in Komponenten8,9 und 10 kann parallel gemacht werden
![Page 16: Mathematik Seminar WS 2003.Version1 · Simulation und Bildanalyse mit Java Software-Architektur ... zDie GeoStoch-GUI als Beispiel ... Mathematik Seminar WS 2003.Version1.ppt](https://reader034.vdokument.com/reader034/viewer/2022051406/5ac819977f8b9a51678bee41/html5/thumbnails/16.jpg)
1. zur Eingabe bereites Portlet
3. Zur Eingabebereites Portlet
2. aktives Portlet
Die Portlets werden von der Hauptanwendung geladenDie Hauptanwendung dirigiert den Datenfluss zu den einzelnen Portlets
Beispiel SLC
Die Portlets sind Plug-ins, die während der Laufzeit geladen werden
![Page 17: Mathematik Seminar WS 2003.Version1 · Simulation und Bildanalyse mit Java Software-Architektur ... zDie GeoStoch-GUI als Beispiel ... Mathematik Seminar WS 2003.Version1.ppt](https://reader034.vdokument.com/reader034/viewer/2022051406/5ac819977f8b9a51678bee41/html5/thumbnails/17.jpg)
Plug-in-basierte GUIs
Spezielle Form der Plug-in-basierten AnwendungenAnwendung der Plug-in-basierten Anwendungsentwicklung auf GUIsHier ist die Haupwendungen eine GUI, die aus Plug-ins bestehtSie implementiert nur den statischen Part der GUIund bindet die GUI Plug-ins ein
![Page 18: Mathematik Seminar WS 2003.Version1 · Simulation und Bildanalyse mit Java Software-Architektur ... zDie GeoStoch-GUI als Beispiel ... Mathematik Seminar WS 2003.Version1.ppt](https://reader034.vdokument.com/reader034/viewer/2022051406/5ac819977f8b9a51678bee41/html5/thumbnails/18.jpg)
Mögliche GUI Plug-in Typen
View plug-ins (display panels)Preference plug-ins (preference panels)Command plug-ins (menu, icon buttons)Adjustment plug-ins (adjustment panels)Import/Export plug-ins (import/export dialogs)Info plug-ins (info dialogs)Help plug-ins (help dialogs)
![Page 19: Mathematik Seminar WS 2003.Version1 · Simulation und Bildanalyse mit Java Software-Architektur ... zDie GeoStoch-GUI als Beispiel ... Mathematik Seminar WS 2003.Version1.ppt](https://reader034.vdokument.com/reader034/viewer/2022051406/5ac819977f8b9a51678bee41/html5/thumbnails/19.jpg)
Beispiel View plug-ins (display panels)
Motivation: Anwendungen sollten jede Art von Dokument Typen anzeigen könnenViewPlugIn: bietet die „voting method“ canDisplay() an. Gibt ein Feld (Panel) zurück, in dem dann über ein TRUE-plug-in, das Objekt angezeigt wirdViewPlugInPanel: lädt mögliche View plug-ins mit PlugInLoader. Stellt Objekt über getModel() bereit. setModel() sucht ein Plug-in, welches das Objekt anzeigen kannConcreteViewPlugIn: beliefert das ViewPlugIn interface, und kann einen ObjektTyp anzeigen
![Page 20: Mathematik Seminar WS 2003.Version1 · Simulation und Bildanalyse mit Java Software-Architektur ... zDie GeoStoch-GUI als Beispiel ... Mathematik Seminar WS 2003.Version1.ppt](https://reader034.vdokument.com/reader034/viewer/2022051406/5ac819977f8b9a51678bee41/html5/thumbnails/20.jpg)
Beispiel View plug-ins
getPanel(Obj)
CanDisplay(Obj)
Anzeigen
TRUE FALSE
Darzustellendes Objekt
![Page 21: Mathematik Seminar WS 2003.Version1 · Simulation und Bildanalyse mit Java Software-Architektur ... zDie GeoStoch-GUI als Beispiel ... Mathematik Seminar WS 2003.Version1.ppt](https://reader034.vdokument.com/reader034/viewer/2022051406/5ac819977f8b9a51678bee41/html5/thumbnails/21.jpg)
Die GeoStoch GUI
Die GeoStoch GUI hat die gleiche Architekturwie eben beschriebenSelbst kleinste Teile sind Plug-insAuf Basis des Frameworks entwickeltHauptanwendung hat nur etwa 240 Code-ZeilenDie GUI kann durch Hinzunahme oder Entfernen von Plug-ins konfiguriert werden
![Page 22: Mathematik Seminar WS 2003.Version1 · Simulation und Bildanalyse mit Java Software-Architektur ... zDie GeoStoch-GUI als Beispiel ... Mathematik Seminar WS 2003.Version1.ppt](https://reader034.vdokument.com/reader034/viewer/2022051406/5ac819977f8b9a51678bee41/html5/thumbnails/22.jpg)
GeoStoch-Plug-in-Architektur:
![Page 23: Mathematik Seminar WS 2003.Version1 · Simulation und Bildanalyse mit Java Software-Architektur ... zDie GeoStoch-GUI als Beispiel ... Mathematik Seminar WS 2003.Version1.ppt](https://reader034.vdokument.com/reader034/viewer/2022051406/5ac819977f8b9a51678bee41/html5/thumbnails/23.jpg)
Die Plug-in Package Struktur der GeoStoch GUI
![Page 24: Mathematik Seminar WS 2003.Version1 · Simulation und Bildanalyse mit Java Software-Architektur ... zDie GeoStoch-GUI als Beispiel ... Mathematik Seminar WS 2003.Version1.ppt](https://reader034.vdokument.com/reader034/viewer/2022051406/5ac819977f8b9a51678bee41/html5/thumbnails/24.jpg)
Displaying an imported Image
View plug-in (Binäres Bild)
Command plug-inView plug-in (random-set Bild)
![Page 25: Mathematik Seminar WS 2003.Version1 · Simulation und Bildanalyse mit Java Software-Architektur ... zDie GeoStoch-GUI als Beispiel ... Mathematik Seminar WS 2003.Version1.ppt](https://reader034.vdokument.com/reader034/viewer/2022051406/5ac819977f8b9a51678bee41/html5/thumbnails/25.jpg)
Validity Check of the Input:
Adjustment plug-in
menu- und toolbar plug in (Zwitter)
![Page 26: Mathematik Seminar WS 2003.Version1 · Simulation und Bildanalyse mit Java Software-Architektur ... zDie GeoStoch-GUI als Beispiel ... Mathematik Seminar WS 2003.Version1.ppt](https://reader034.vdokument.com/reader034/viewer/2022051406/5ac819977f8b9a51678bee41/html5/thumbnails/26.jpg)
Zusammenfassung:
+ weniger Komplex (wenig Abhängigkeiten)+ unterstützt parallele Enwicklung und Entwicklung durch Dritte+ keine Änderungen in externen Modulen nötig+ Enwickler werden durch frameworks unterstützt- Plug-ins müssen gegenseitig unabhängig sein+ aber dadurch klare Grenzen- Viele kleine Moduleo auch notwendig für ein gut strukturiertes Design bei Anwendungen ohne Plug-ins+ Gut-organisiert durch Pakete
![Page 27: Mathematik Seminar WS 2003.Version1 · Simulation und Bildanalyse mit Java Software-Architektur ... zDie GeoStoch-GUI als Beispiel ... Mathematik Seminar WS 2003.Version1.ppt](https://reader034.vdokument.com/reader034/viewer/2022051406/5ac819977f8b9a51678bee41/html5/thumbnails/27.jpg)
Danke für die Aufmerksamkeit
Fragen???