Home

Konzeptionelle und technische Weiterentwicklung eines

image

Contents

1. Connector c Bereich Punkt Punkt amp amp gt amp feste Verbindung a Punkt a b Linie Punkt Linie 4 gt amp FB ar Linie Linie gt Ta I Punkt Bereich a gt gt amp ale LIZ Abbildung 4 10 Connectoren beschr nken die relative Beweglichkeit zweier Grafikelemente Kapitel 4 Frameworks f r WAM C Bibliotheken BibV30 Seite 93 4 4 3 Konzepte von Unidraw f r WAM Leitbilder und vorgesehene Anwendungsbereiche der BibV30 und des Dom nen Frameworks Unidraw unterscheiden sich deutlich erkl rtes Ziel ist jedoch die bernahme und Integration bew hrter Konzepte in das WAM Framework um graphische Komponenten in den mit der BibV30 entwickelten Anwendungen zu vereinfachen Klassen im Unidraw Framework 4 4 2 lassen sich Metaphern nach WAM gegen berstellen bzw auf die vorhandenen Grafikkomponenten 4 4 1 abbilden teils sind Anpassungen n tig Einige Konzepte finden in der BibV30 keine Ber cksichtigung da sie prinzipiell nicht in den Rahmen passen oder die angestrebten Ziele bereits durch andere Ma nahmen erreicht sind Abbildung 4 8 zeigt mit Editor Viewer und Selection Subject und View sowie Manipulator Tool und Command die wesentlichen Klassen in Unidraw bzw deren Beteiligung an direkter Manipulation als zentrale Aufgabe des
2. Aufgeschobene Methode MEigene Methoden konkrete Methode Impl tati EE im Framework ET Abbildung 2 2 Anpassung von Frameworks a Ableitung von Framework Klasse Methoden berschreiben b Konkrete Framework Klasse und eigene Parameterklassen c Framework mit konkreten Parameterklassen Wiederverwendung durch Vererbung f hrt nicht zwingend zu White Box Frameworks Vielmehr sollen Frameworks unabh ngig von der zur Spezialisierung verwendeten Technik grunds tzlich die internen Zusammenh nge vor dem Benutzer verbergen Der Benutzer kann zwar weitergehende nderungen vornehmen wenn er direkt von einer Framework Klasse erbt die zur Implementation oder Redefinition vorgesehenen Methoden sind aber gekennzeichnet und setzen kein weitergehendes Verst ndnis interner Zusammenh nge voraus Parameterklassen sind ein wirksames Mittel die Black Box Technik zu f rdern Zwar mu auch von diesen Klassen im allgemeinen abgeleitet werden die m gliche Trennung verschiedener Aspekte der erforderlichen Anpassung erleichtert jedoch das Verst ndnis Parameterobjekte werden vom Benutzer erzeugt und konkreten Frameworkklassen bergeben Der Benutzer wird Methoden dieser Klassen nicht direkt aufrufen dies geschieht nur innerhalb des Frameworks Weitere Vorteile der Objektivierung sind konkrete Parameterklassen aus denen der Benutzer eine passende ausw hlen kann Einerseits erm glicht dies flexible Defaultimplementationen
3. Kern der Unidraw Architektur sind Grafikobjekte bezeichnet als Component und siehe Abbildung 4 5 entsprechend MVC aufgeteilt in Subject und View Der Component View repr sentiert das Component Subject als Model im Sinne von MVC Angenommen das Dom nen Framework Unidraw wird zur Konstruktion eines graphischen Editors f r Partituren eingesetzt so sind die einzelnen Noten die Components W hrend das Component Subject der fachlichen Bedeutung einer Note entspricht z B Tonh he Tonl nge sorgt der Component View f r deren graphische Pr sentation 15 Anmerkung Implementiert wurde ausschlie lich Schwarz Wei Grafik Seite 88 Kapitel 4 Frameworks f r WAM Auszug aus den Schnittstellen Beobachtungsmechanismus Methode Notify des Subject ruft f r alle Views Update zwecks Synchronisation des Zustandes Subject Notify Attach View Detach View Abbildung 4 5 a Struktur der Components Subject und View b mehrere Views Gem MVC Vorbild gibt es mehrere Views zu einem Subject beispielsweise stellt eine Sicht die komplette Partitur dar eine andere nur wenige Takte eines einzelnen Instrumentes Ver ndert nun der Benutzer Noten in einer der Sichten so erfolgt diese nderung im Subject und wird mittels eines Benachrichtigungsmechanismus allen Views bekanntgegeben Alle Sichten zeigen somit immer ein konsistentes Bild Neben graphischen Views f r die Bild schirmanzeige gibt es
4. WG94 Double buffering gew hrleistet eine flimmerfreie Anzeige Zum ET Application Framework geh ren auch verschiedene Mikro Frameworks z B f r Textformatierung RichText und Formatkonvertierungen z B Umwandlung zwischen TIFF PICT und anderen Die mit und f r ET erstellte Entwicklungsumgebung umfa t neben Klassen Browsern und Editoren auch Werkzeuge um zur Laufzeit Objektstrukturen und die Objekte selbst zu inspizieren Zu den bekanntesten mit ET entwickelten Anwendungen d rfte die Entwicklungsumgebung Sniff geh ren Als Problem der umfangreichen Funktionalit t eines Frameworks wie ET nennen Weinand und Gamma WG95 dessen Komplexit t Es wurde daher versucht m glichst gleichf rmige Mechanismen zu verwenden wo immer dies m glich war vgl dazu Abschnitt 4 3 Ein Nebenprodukt ist die Entwicklung von Design Pattern Our focus on unifying mechanism enabled us to discover some recurring object oriented design structures This was a starting point for working on design patterns Die Anwendungsumgebung ET kann zu gro en Teilen im Sinne des Black Box Ansatzes verwendet werden Abstrakte Parameterklassen erleichtern dies an verschiedenen Stellen und realisieren gleichzeitig Flexibilit t zur Laufzeit Der starke Bezug zu Design Pattern erleich tert die Identifikation der Hot Spots im Framework und erm glicht ein Verst ndnis der internen Strukturen Damit ist auch die Grundlage gegeben f r White Box
5. Anwendungsumgebungen f r Werkzeugkonstruktion BaseFIAK IAK und FK Kontext Sub FK speziellere Application Frameworks f r bestimmte Anwendungstypen MainFIAK ToolCoordinator evtl Application Frameworks f r die Konstruktion konkreter Subwerkzeuge WAM Konzepte optional abstrakte fachliche Werte Konfiguration Benutzerprofile Interaktionsformen Kapselung um technische GUI Kooperation Koordination Postkorb Umgebung Material Magazin und Archiv Versandautomat Proze muster Raum Objektorientierte Techniken f r flexible Kopplung Pattern Implementation Technische Basis Kombination von OO Konzepten zwecks System Schnittstelle Entkopplung von Framework Komponenten vgl Hot Spots und Meta Pattern Design Pattern GUI Betriebsystem und n 4 Datenbank Anbindung Interproze kommunikation Spracherweiterung vielfach Klassen oder auch Funktionsbibliotheken von Fremdherstellern Datentypen Bool String OO Grundlagen MOP GC technische Beh lterklassen vgl C Arrays semantische Erweiterung Vertragsmodell Abbildung 5 1 Strukturschema f r die BibV30 Kapitel 5 Strukturierung von Framework Bibliotheken Seite 119 Abbildung 5 1 zeigt die Struktur der BibV30 In der Grobstruktur handelt es sich um drei gro Be Schichten die aufeinander aufbauen Unter Verwendung der Technischen Basis stellen die WAM Framew
6. Reenskaug95 T Reenskaug Working with Objects Manning Greenwich 1996 Riehle93 Riehle93a Riehle95 Riehle96 Riehle96a Riehle96b Ritz94 Dirk Riehle Objektorientierte Architektur nach der Werkzeug Material Metapher am Beispiel eines grafischen Aufgabennetzeditors Studienarbeit am Arbeitsbereich Softwaretechnik Fachbereich Informatik Universit t Hamburg 1993 http swt www informatik uni hamburg de riehle Dirk Riehle Dokumentation zur FIAK v1 0 Bibliothek 27 3 93 und Interaktionstypen Dokumentation zur ITATMotif v1 0 Bibliothek 14 3 93 http swt www informatik uni hamburg de Dirk Riehle Patterns for Encapsulating Class Trees in PLoP95 Dirk Riehle The Event Notification Pattern Integrating Implicit Invocation with Object Orientation Theory and Practice of Object Systems 2 1 1996 http swt www informatik uni hamburg de riehle Dirk Riehle Bureaucracy A Composite Pattern in PLoP96 Dirk Riehle Describing and Composing Patterns Using Role Diagrams Proceedings of WOON 96 the 1st International Conference on Object Orientation in Russia Edited by A Smolyani and A Shestialtynov St Petersburg Electrotechnical University reprinted in Proceedings of the Ubilab Conference 96 Z rich Edited by Kai Uwe M tzel and Hans Peter Frei Universit tsverlag Konstanz 1996 Michael Ritz Eine grafische Benutzeroberfl che zur Versionsverwal
7. 12 05 97 Termin HZ 26 05 97 IAF Workshop 27 05 97 Diplomarbeit 28 05 97 Stockelsdorf 02 06 97 Ob i Subwerkzeug 1 Subwerkzeug 2 a ndern Neu Lister Editor Meldung von Anderungen Benutzung Abbildung 2 4 Kontext Werkzeug mit Subwerkzeugen Seite 42 Kapitel 2 Begriffe und Literatur MVC schl gt eine Trennung zwischen Funktionalit t Model Darstellung View und Hand habung Controller vor die in hnlicher Form in viele Frameworks bernommen wurde In den meisten F llen wird die Trennung zwischen View und Controller aufgrund zu enger Kopplung dieser Komponenten aufgegeben Auch WAM fa t beide Teile zu der Interaktions komponente IAK zusammen und trennt diese von der Funktionskomponente FK Ziel ist sowohl die unabh ngige Entwicklung beider Bereiche als auch die M glichkeit verschiedene Interaktionskomponenten f r dieselbe FK zu entwickeln und ggf gleichzeitig zu verwenden Die Funktionskomponente verf gt ber keinerlei Kenntnis der jeweiligen IAK meldet aber nderungen ihres abstrakten an der Schnittstelle sichtbaren Zustandes als Signale mittels eines Benachrichtigungsmechanismus Erl uterungen zu diesem Design Pattern z B in RW96 und Riehle96 Demgegen ber werden IAK s jeweils f r eine spezielle FK entwickelt und verwenden deren Methoden direkt Objekt Beziehungen Materialklassen erben IAF Activator x 1 zur Laufzeit benutzen von Aspektklassen
8. Aufgaben der Umgebung sind verf gbare Werkzeuge bekannt Aspekte spezifizieren den Zusammen hang zwischen Materialklasse und Werkzeugklasse Die Umgebung ffnet Werkzeuge passend zum Material erzeugt die Werkzeug Objekte sp t Technisch basiert die sp te Erzeugung im WAM Framework auf dem haupts chlich hierf r eingef hrten Meta Objekt Protokoll Zum Zeitpunkt der Entwicklung enthielt C noch keine Typinformationen zur Laufzeit auch heute ist das RTTI gem Standard weitgehend in den Compilern nicht realisiert Das MOP in der BibV30 entspricht den L sungen in MFC und ET hinsichtlich der Implementation mittels C Makros Der Leistungsumfang des MOP geht ber das zuk nftige C RTTI nicht hinaus damit ist sp ter ein Verzicht auf das eigene Meta Objekt Protokoll denkbar Dies ist auch bez glich der MFC hnlich zu bewerten nur ET nimmt gro e Erweiterungen vor die der C Standard nicht ber cksichtigt F r den Benutzer ergibt sich die Notwendigkeit zus tzlich eine Makro Zeile in seine Klasse aufzunehmen und die Klasse von tUsesMOP abzuleiten Dies entspricht der ET Oberklasse Object und f hrt f r Teile der BibV30 zu ann hernd baumf rmigen Klassenhierarchien Die Verwendung des C RTTI vermeidet dieses Problem vgl 2 1 4 Derzeit sind MOP und sp te Erzeugung eng gekoppelt Ziel ist ein optionaler Mechanismus f r sp te Erzeugung Zur Laufzeit abrufbare dynamische Typen z hlen zur allgemein notwen
9. Konzepte Technische Basis Abbildung 5 2 Schema f r BibV30 mit Erweiterung f r Komponenten aus Anwendungsdom nen Mit Dom nen Konzepten ist der fachliche Kern eines Anwendungsbereiches gemeint Hier finden sich einzelne Klassen z B Materialtypen und Aspekte und auch Mikro Frameworks Dom nen Frameworks leiten sich von WAM Application Frameworks ab erweitern deren Infrastruktur um neue Konzepte der Dom ne und standardisieren Bereiche der Anwendungen vgl Abschnitt 2 1 F r die Infrastruktur stehen alle WAM Konzepte zur Verf gung jede Dom ne trifft hieraus eine eigene Auswahl Kapitel 5 Strukturierung von Framework Bibliotheken Seite 123 Zentrales Anliegen dieser Struktur ist die Einf hrung neuer Sichten auf die Bibliothek F r die einzelnen Dom nen ergibt sich jeweils einen Satz an relevanten Komponenten in der WAM Schicht befinden sich die Komponenten aller Dom nen Im folgenden Abschnitt diskutiere ich als Alternative zur Integration mehrerer fachlicher Bereiche in die BibV30 die Verwendung dieser Bibliothek zur Konstruktion getrennter Bibliotheken f r je eine Dom ne 5 3 Eine Verbindung zwischen der BibV30 und GEBOS Nachfolgend beschreibe ich die Beziehung zwischen einer Dom nen Bibliothek und der BibV30 an einem Beispiel Und zwar vergleiche ich die Struktur des GEBOS Systems mit dem Vorschlag f r die BibV30 im letzten Abschnitt GEBOS wurde von der RWG f r eine Anwend
10. Max Jacobson A Pattern Language Towns Buildings Construction Oxford University Press New York 1977 Robert Allan David Garlan John Ockerbloom Architectural Mismatch Why Reuse Is So Hard IEEE Software 12 6 November 1995 Christopher Alexander The Timeless Way of Building Oxford University Press New York 1979 Glenn Andert Frameworks in Taligent s CommonPoint in Lewis95 Ulrich Brammer Markus G hmann Objektorientierung und Persistenz Ein Anforderungskatalog an die Verwaltung von Materialien in Einzelplatz Arbeitsumgebungen aus fachlicher und technischer Sicht Studienarbeit am Arbeitsbereich Softwaretechnik Fachbereich Informatik Universit t Hamburg Juli 1996 http swt www informatik uni hamburg de 1brammer Andy Birrer Walter R Bischofberger Thomas Eggenschwiler Wiederverwendung durch Frameworktechnik vom Mythos zur Realit t OBJECTspektrum September Oktober 1995 Dirk B umer Walter R Bischofberger Horst Lichter Matthias Schneider Hufschmidt Veronica Sedlmeier Scholz Heinz Z llighoven Prototyping von Benutzungsoberfl chen Mitteilung FBI HH M 242 94 Fachbereich Informatik Universt t Hamburg 1994 Dirk B umer Guido Gryczan Rolf Knoll Carola Lilienthal Dirk Riehle Heinz Z llighoven Framework Development for Large Systems angenommen f r OOPSLA 97 Dirk B umer Guido Gryczan Rolf Knoll Heinz Z llighoven Large Scale Object Oriente
11. die eigenen Klassen k nnen auch von einer konkreten Parameterklasse abgeleitet werden Andererseits k nnen bereits Parameterklassen f r alle wesentlichen Anwendungsf lle vorliegen Dann wird die Benutzung des Frameworks zur einer Konfiguration statt Implementation und kann durch Werkzeuge teilweise automatisiert werden 7 Gamma92 Unter Objektivierung verstehen wir die Modellierung von Abstraktionen mit Objekten die nicht unbedingt realen Objekten des Problembereichs entsprechen Kapitel 2 Begriffe und Literatur Seite 25 Hot Spot und Frozen Spot Objektorientierte Technik zur Framework Konstruktion untersucht Pree im Zusammenhang mit Design Pattern siehe Abschnitt 2 2 Seine Definition von Frameworks stellt heraus da jeweils einige Komponenten fertig implementiert vorliegen w hrend andere noch vom Benutzer angepa t werden m ssen Pree94a Application frameworks consist of ready to use and semi finished building blocks The overall architecture the composition and interaction of building blocks is predefined as well Konkrete Klassen stellen die Teile der zu entwickelnden Anwendungen bereit die durch das Framework bereits implementiert und damit standardisiert sind Diese Klassen verwenden in ihrer Implementation Methoden anderer Klassen Soweit es sich um abstrakte Klassen han delt m ssen diese Komponenten vom Entwickler der Anwendung erg nzt werden indem er spezialisierte Klassen von den abstra
12. Aus den Darlegungen zu Frameworks Design Pattern und Metaphern sowie deren Beziehun gen untereinander l t sich eine Einordnung bestehender Application Frameworks ableiten Entwicklungen an Frameworks k nnen bez glich deren Hintergr nde bzw der mit diesen Ma nahmen erreichten qualitativen nderungen untersucht werden Ich werde die relevanten Begriffe kurz zusammenfassen um dann in den n chsten beiden Kapiteln diesen Katalog erst auf verschiedene popul re Application Frameworks und schlie lich auf die Entwicklung der am Arbeitsbereich Softwaretechnik erstellten WAM Bibliotheken anzuwenden Frameworks sind gegen ber Bausteinbibliotheken abzugrenzen wesentliches Unterschei dungsmerkmal ist die Umkehrung des Kontrollflusses 2 1 1 und 2 1 2 Der Vorteil liegt f r den Benutzer in einer vorgegebenen Struktur in die er seine eigenen Komponenten einfach einpa t F r die Betrachtung einer Klasse als Bausteinklasse ist deren Schnittstelle also die Verwendung von au en entscheidend nicht die innere Konstruktion Kleine Mikro Frameworks f r einzelne Aspekte einer Anwendung werden oft mit der Zeit ausgebaut zu kompletten Application Frameworks die dann als generische Anwendungen bezeichnet werden 2 1 3 Voraussetzung f r die Zuordnung zu dieser Gruppe ist die Vorgabe einer kompletten Infrastruktur f r die Anwendung w hrend Mikro Frameworks nur einzelne Aspekte unterst tzen und ggf Bestandteile gr erer Frameworks sind Eine s
13. GoF95 mehr deskriptiv und damit geeignet nicht nur L sungen zu entwickeln sondern diese beschriebenen Pattern auch in bestehenden Systemen zu identifizieren Riehle95 verwendete eine sehr allgemeine Form die besonders Struktur und Dynamik beschreibt und damit die Diskussion und den Vergleich RZ96 von Mustern erm glicht AIS77 A Pattern Language und Alexander79 The Timeless Way of Building sind als Ursprung der Pattern Diskus sion anerkannt Gamma Johnson et al haben dieses Konzeptes aus der Architektur in die Softwaretechnik bertragen Seite 30 Kapitel 2 Begriffe und Literatur 2 2 2 Aktuelle Entwicklungen Identifikation oder Entwicklung neuer Design Pattern und vor allem deren Beschreibung ist ein wesentlicher Teil aktueller Ver ffentlichungen Riehle96a BR96 PLoP96 Einige vorgestellte Pattern betreffen konkrete Programmiersprachen z B C Coplien92 andere sollen hiervon unabh ngig bleiben im Sinne von GoF95 Weniger erfa t wird bisher das Feld anwendungsspezifischer Muster Eine besondere Form neuer Pattern bringt Riehle96b auf indem er durch Komposition bekannter Design Pattern neue gr ere Pattern beschreibt Diskussionsgegenstand ist auch die geeignete Beschreibung von Design Pattern Neben der Differenzierung betreff Absichten der Autoren generativ deskriptiv werden einzelne Ab schnitte der Darstellung z B in GoF95 n her untersucht Einen wichtigen Teil bildet hier
14. Proze muster zur Koordination kooperativer T tigkeiten ausf hrlich diskutiert Gem den Zielen der Strukturierung mu das Schema vorgeben an welche Position neue Komponenten geh ren Die Beispiele in Abbildung 5 1 helfen bei der Orientierung welche Mikro Framework absehbar tats chlich entstehen ist damit nicht gesagt ber den WAM Konzepten stehen Application Frameworks in der BibV30 eine allgemeine Anwendungsumgebung und zwei spezieller Versionen f r unterschiedliche Anwendungstypen vgl 4 3 1 BaseFIAK MainFIAK ToolCoordinator Letztere sind durch Ableitung von den Klassen der allgemeinen Version implementiert innerhalb der Schicht gibt es also nicht nur Benutzt Beziehungen zwischen Frameworks sondern auch Vererbung An dieser Stelle greife ich kurz meinen Vorschlag aus 2 3 3 wieder auf Frameworks f r die Konstruktion angepa ter Subwerkzeuge in die Bibliothek aufzunehmen Diese verstehe ich als Application Frameworks f r Teil Werkzeugen als Alternative zu generischen Subwerkzeugen Oberhalb der Frameworks stehen als letzte Ebene die Anwendungen Werkzeuge nach WAM bestehen aus Kontext und Subwerkzeugen diese Konstruktion unterst tzten die Application Frameworks Neben den konkreten Anwendungen mit jeweiligen Werkzeugkomponenten sind Automaten und Subwerkzeuge als direkte Bestandteile der Bibliothek vorhanden zur Zeit z B ein in die Anwendung integrierbarer GUI Builder f r Layout Anpassungen zur Laufzeit Als Beisp
15. Windows System Schwerpunkte wurden auf die Entwicklung von Mechanismen zur Komposition einzelner Oberfl chenelemente gelegt Calder95 sieht bereits sehr fr hzeitig im Projekt einen signifi cant effort to extend the support for interface objects to a finer grain than the widget level Im Ergebnis sind die Objekte von InterViews so lightweight da auch eine sehr gro e Zahl dieser Objekte innerhalb einer Applikation m glich ist Zudem k nnen die graphischen Ob jekte genannt Glyph mehrfach benutzt werden so da z B ein Textsystem jeden einzelnen Buchstaben durch ein eigenes Grafikelement darstellen kann Gleiche Buchstaben in gleicher Schriftart werden dabei durch ein einziges Objekt repr sentiert Application programmers use InterViews objects in two ways composition and extension Calder95 Einerseits k nnen vordefinierte Klassen entsprechend zusam mengesetzt werden andererseits werden neue entwickelt Zum Zeichnen wird ein Canvas verwendet dessen Protokoll Post a script hnelt Konkrete Canvas Klassen setzen dieses Protokoll auf X11 Display bzw auch echte Postscript Dateien um wobei die ger teunabh ngigen Koordinaten transformiert werden Eine Besonderheit ist die Anordnung der Grafikelemente nach TEX Art zwischen zwei Glyphs wird ein Zwischenraum eingef gt und mit einigen Parametern dessen Verhalten z B bei Gr en anpassungen definiert Benutzereingaben werden von In eine ver
16. hnte Komponenten werden zum Teil in den Abschnitten 4 3 und 4 4 n her erl utert Der Leser erh lt durch diesen Abschnitt nur einen groben berblick zwecks Bewertung im Verh ltnis zu anderen Produkten Die C Bibliotheken am Arbeitsbereich Softwaretechnik unterst tzen die Konstruktion interaktiver Anwendungen nach der Werkzeug und Material Metapher Einsatzbereich sind entsprechend dem WAM Leitbild Einzelplatzsysteme f r B roanwendungen Es wurden im Kontext der Methode verschiedene Kooperationsformen analysiert und Erweiterungen der urspr nglichen Metaphern f r Einzelpl tze entwickelt z B Proze muster und Postk rbe gem Wulf95 und Gryczan95 aktuelle Arbeiten vgl KRW96 Teil der C Bibliotheken ist die hiervon unabh ngig implementierte und auch mit anderen Frameworks vertr gliche Beh lterklassen Bibliothek ConLib Traub95 Basierend auf dem Template Mechanismus lassen sich in diese Beh lter Objekte beliebigen Typs einf gen Von besonderem Wert ist neben der Klassifikation von Beh lterkonzepten und deren effizienten Implementation vor allem das hochentwickelte Konzept stabiler Cursor Die Interaktionstypen Bibliotheken IATMotif f r OSF Motif sowie IATTel f r Tc TK bilden die Verbindung zur graphischen Benutzungsoberfl che ein in das Framework inte grierter Interface Builder erleichtert deren Gestaltung derzeit nur f r Motif Durch die Interaktionstypen wird Plattformunabh ngigkeit erreicht nicht
17. siehe 4 3 2 Objektorientierte Techniken verwenden in der BibV30 die Spracherweiterungen seien es die Beh lter oder auch das Vertragsmodell In diesen Bereich eingeordnet sind Implementationen von Design Pattern in der BibV30 also vgl Abschnitte 4 3 2 und 4 3 3 Command Observer Chain Of Responsibility Late Creation Singleton und zuk nftig vielleicht ein Atomizer System Schnittstellen z hlen zur technischen Basis jedoch ohne direkte Beziehung zu den Schichten der Spracherweiterungen und objektorientierten Mechanismen Es handelt sich um GUI Bibliotheken von Fremdanbietern derzeit OSF Motif Tc TK und wxWindows Der Anschlu an eine Datenbank wird an dieser Stelle erg nzt werden ebenso evtl die techni schen Grundlagen f r verteilte Systeme Sollten zuk nftig eigene System Schnittstellen f r die BibV30 entwickelt werden profitieren diese selbstverst ndlich von Spracherweiterungen und objektorientierten Techniken Die fehlende Verbindung beschreibt nur den jetzigen Zustand da Systemschnittstellen unabh ngig von der BibV30 erstellt sind Die Integration dieser fremden eigentlich nicht zur Bibliothek selbst geh renden Komponen ten in das Strukturschema halte ich f r angemessen da diese Struktur vor allem eine Orientierung auch f r neue Benutzer gibt Auch wenn es sich um extern entwickelte Klassen handelt ist die BibV30 ohne diese unvollst ndig 8 Leider ist sp te Erzeugung wegen starker Verkn pfung mit dem
18. und zwar gezielt dann wenn dies notwendig erscheint Dazu ist anzumerken da die Oberklasse tCanvas von diesem Modus freigehalten wird ohnehin GUI spezifische IAT s benutzen direkt die Schnittstelle der konkreten Klasse in diesem Fall tXCanvas Direkte Manipulation Anwender erwarten von Grafikeditoren eine intuitive Bedienung Zwar handelt es sich meist um einfache Aktionen die auch als Kommando ber die Tastatur aktiviert werden k nnten z B verschiebe das Dreieck um 2 cm nach links anschaulicher ist aber die Bedienung des Systems mit der Maus Der Anwender zeigt mit der Maus auf das Element und ver ndert es w hrend dieser Aktion zeigt ihm das System jeweils die Wirkung seines soweit eingegebenen Befehls an im Beispiel mu die Strecke von 2 cm nicht vorher ermittelt werden vielmehr wird das Dreieck solange immer weiter nach links verschoben bis es sich an der richtigen Position befindet Dieses Konzept der direkten Manipulation verwirklicht die BibV30 in Anlehnung an Unidraw unter Verwendung des Interaktionstypen tIATManipulator Kapitel 4 Frameworks f r WAM C Bibliotheken BibV30 Seite 101 An dieser Stelle sei darauf hingewiesen da die vorhergehenden Ausf hrungen betreff der Darstellung graphischen Materials von dessen Manipulation unabh ngig sind Die nachfol gend genannten Klassen und Erweiterungen bereits genannter Klassen m ssen dazu nicht benutzt werden Auch ein Grafikeditor der tats chlich nur eine
19. z B f r dreidimensionale Figuren so bedarf es nicht der nderung s mtlicher Methoden in tCanvas und den abgeleiteten Klassen es werden einfach Attribute und einstellende sowie abfragende Methoden erg nzt Bieten abgeleitete konkrete Klassen die erweiterte Funktionalit t nicht an so ignorieren sie diese Parameter class fCanvas public IIGrafik Parameter f r Linien virtual void SetLineThickness int _iThickness 1 virtual int GetLineThickness 0 0 virtual void SetLinePattern int _iPattern 100 0 virtual int GetLinePattern 0 virtual void SetLineColor tString _sColor tString black 0 virtual tString GetLineColor 0 Ivereinfachtes Setzen mehrerer Parameter virtual void SetLineAttributes int _iThickness int _iGraytone eArrow _eArrow NO_ARROW 0 virtual void SetLineAttributes int _iThickness char _cDash tString _sColor eArrow _eArrow 0 Grafik Parameter f r Fl chen virtual void SefInteriorPattern int _iPattern 0 0 IZeichnen X Y linke obere Ecke virtual void ClearWindow 0 virtual void DrawRectangle long _X long _Y long _Width long _Height 0 virtual void FillRectangle long _X long _Y long _Width long _Height 0 virtual void DrawEllipse long _X long _Y long _Width long _Height 0 virtual void F llEllipse long _X long _Y long _Width long _Height 0 virtual void DrawSector long _X long _Y long _Width long _Height int _Alpha int _Beta 0 virtual void Fi
20. 20 Kapitel 2 Begriffe und Literatur Bischofberger et al BBE95 sehen als wesentlichen Vorteil der White Box Wiederverwen dung die hohe Flexibilit t mit dem Problem des dazu erforderlichen Verst ndnisses der Zusammenh nge White Box Wiederverwendung ist die m chtigste Art der Wiederver wendung da man in Unterklassen sehr flexibel Anpassungen und Erweiterungen vornehmen kann White Box Wiederverwendung hei t aber programmieren was relativ aufwendig ist und ein gutes Verst ndnis f r die im Framework implementierten Mechanismen erfordert Black Box Wiederverwendung kann nur eingesetzt werden wenn entsprechende Anpassungen vom Entwickler des Frameworks bereits vorgesehen wurden Die Black Box Wiederverwendung erlaubt nur beschr nkte Anpas sungen daf r kann man sie mit geringem Aufwand durchf hren hnlich stellt auch JF88 dem geringen Lernaufwand einen Mangel an Flexibilit t auf Seiten des Black Box Frameworks gegen ber Black Box frameworks are easier to learn to use than white box frameworks but are less flexible Da jedoch Black Box Frameworks oft auf Grundlage von White Box Frameworks imple mentiert werden kann der Benutzer in vielen F llen immer noch auf diese Basis zur ckgreifen Soweit die gew nschte Spezialisierung mit Hilfe des Black Box Frameworks m glich ist also von dessen Entwicklern vorbereitet wurde sind Kenntnisse des verwendeten White Box Frameworks nicht erf
21. Anwendungen verwenden jeweils die Application Frameworks des entsprechenden Gesch ftsbereiches Die Schichtenbildung macht deutlich welche Komponenten des GEBOS Systems von allen Anwendungen verwendet werden Abh ngigkeiten sind geregelt Frameworks einer explizit eingef hrten Schicht werden wahlweise verwendet je nach Gesch ftsfeld der Anwendung 5 2 Strukturkonzept f r die BibV30 Benutzern gibt die Struktur einen berblick ber das Framework erlaubt die Orientierung in einer Vielzahl kleiner Mikro Frameworks aus denen z B die BibV30 besteht Als Hilfe f r den Einstieg wird die Verbindung zwischen Komponenten gekl rt so da sich der neue Benutzer jeweils auf die kleinere Bereiche beschr nken kann Sp ter lassen sich die gerade ben tigten Mikro Frameworks f r einen bestimmten Anwendungszusammenhang in der gut strukturierten Bibliothek leicht identifizieren Entwickler die nderungen und Erweiterungen am Framework selbst vornehmen erwarten Informationen ber Verbindungen zwischen Komponenten Abh ngigkeiten zwischen Klassen und Frameworks um die Auswirkungen einer nderung auf andere Teile der Sammlung zu beurteilen Das Strukturkonzept mu als Schema nicht nur bestehende Komponenten sortie ren sondern auch eine Anleitung f r die Einordnung neuer Mikro Frameworks darstellen Schlie lich ist die BibV30 ein Konfigurierbares Framework f r die Methode WAM wird mit unterschiedlichen Zielen in diversen Kontexten verwend
22. Ber Frage das Design Pattern kann auch im Bereich von WAM angewendet werden Es ist hier nur keine Voraussetzung f r graphische Anwendungen sondern eine Option V llig neu in der BibV30 und zentrale Motivation f r die Besch ftigung mit einem graphi schen Dom nen Framework ist das Konzept der direkten Manipulation dort verwirklicht in Gestalt der Klassen Tool Manipulator und Command Genauer sind dies jeweils abstrakte Oberklassen f r ganze B ume konkreter Manipulatoren etc die anwendungsspezifisch und passend zu den Components implementiert werden Zus tzlich erweitern Connectoren das Konzept durch Beschr nkungen zul ssiger Benutzeraktivit ten Konzeptionell bedeutend ist die Trennung zwischen Manipulator und Command im Unidraw Framework Manipulatoren stellen gem ihrer Beschr nkung auf visuelles Feedback und die Erzeugung der Parameter f r ein komplexes Kommando vgl 4 4 2 eine Interaktionsform dar Commands ver ndern das Material Component Subject dies ist in einem WAM Framework Aufgabe der Funktionskomponente Problematisch ist insofern die Erzeugung des Commands durch den View der als graphische Repr sentation Teil der Interaktionskompo nente ist Der Manipulator wie auch das Command Objekt wird immer von der Klasse Tool erzeugt Nach WAM geh rt jedoch die Manipulation in die IAK das Command in die FK Infolgedessen ber cksichtigt die BibV30 das Konzept Tool nicht Vlissides90 argumentiert diesen Bestandte
23. BibV30 Seite 105 4 4 5 Anwendung der Grafik Frameworks Welche Arten von Anwendungen unterst tzt das Mikro Framework f r Grafik in der BibV30 konkret Wie l t sich der vorgesehene Einsatzkontext beschreiben f r welche Applikationen sollten die Konzepte besser nicht benutzt werden Passen die neuen Interaktionstypen in die IATMotif Bibliothek besteht ein Bezug zur Diskussion zur Trennung von Interaktionsform und Pr sentation Anhand diverser Beispiele versuche ich Antworten auf diese und weitere Fragen zu geben unklare Bereiche aufzuzeigen und die Diskussionen ber diesen Beitrag zur C Bibliothek einzuleiten Mein Anliegen ist es die Benutzung des Frameworks zu motivieren um dessen Tauglichkeit im praktischen Gebrauch und die Grenzen der zugrunde gelegten Konzepte zu testen und bewerten Vom Malprogramm bis zum CAD System Weder das Eine noch das Andere liegt im blichen Einsatzkontext des WAM Frameworks Im Prinzip sind technische Grundlagen f r CAD System zwar integriert komplexe Anwendungen dieser Art d rften aber wohl bessere Anwendungsumgebungen finden Dom nen Frameworks wie Unidraw oder noch spezieller auf den Anwendungskontext zugeschnitten Umgekehrt basieren Malprogramme nicht auf graphischen Objekten aus Linien und Fl chen sondern orientieren sich an einzelnen Bildpunkten Pixel Abgesehen von der Darstellung von Bitmaps unterst tzt tCanvas keine Pixel Grafik Damit scheidet beispielsweise Bearbeitung von
24. Command erzeugt und zwar wieder vom aktiven Tool und ggf unter Ber cksichtigung der selektierten Views Seite 90 Kapitel 4 Frameworks f r WAM Ausf hrung der Commands und somit die nderung der Component Subjects veranla t das Application Framework genauer dessen Komponente Viewer die Benachrichtigung aller Views entspricht der oben beschriebenen Synchronisation zwischen Subject und View Ein kurzes Beispiel soll die Zusammenh nge veranschaulichen Abbildung 4 8 zeigt den generellen Ablauf und wird durch das Beispiel erl utert Interaktionsdiagramm Editor aTool aSelection aView aViewer aManipulator aCommand aSubject Ekent CreateManiptlator Event pptional CreateManipul tor Event GetCurrent ool aManip1 Manipulator ist Kern aus einzelnen CreateManipul tor Event zusammengesetzi ETER aManip 1 2 aManip2 _ se aManipulator u Grasp Event optional wie CreateCommand aManipulatpr oben m glich u aCommand nee ee Do Set Q pateo o d me aValue Neuzeichnen Abbildung 4 8 Ablauf der direkten Manipulation Vlissides90 Erl uterung zum Interaktionsdiagramm e senkrechte Linien stellen Objekte zur Laufzeit dar die Zeitachse verl uft von oben nach unten e Balken kennzeichnen die Phasen in denen ein Objekt aktiv ist e Horizontale Pfeile sind Methodenaufrufe mit Name und Parametern beschriftet gestrichelte Pfeile kennzeichnen den Kontro
25. Einsatz in gr eren Projekten einzuleiten Damit stelle ich die Forderung auf zuk nftig den fachlichen Bereich der Framework Sammlung anzugehen 1 Anmerkung in der Anfangsphase der Entwicklung wurde daran gedacht am Arbeitsbereich Werkzeuge f r eine Software Entwicklungsumgebung zu erstellen Bei einer Fortsetzung dieses Projektes h tte sich eine auf diese Dom ne spezialisierte Bibliothek ergeben k nnen dies ist aber nicht geschehen Seite 122 Kapitel 5 Strukturierung von Framework Bibliotheken Im Unterschied zu Dom nen Frameworks in kommerziellen Organisationen soll die BibV 30 offen bleiben f r alle Anwendungen f r die sich die Methode WAM gem ihres Leitbildes eignet es soll nicht ein Dom nen Framework entstehen sondern die Bibliothek als eine Art Meta Framework die Basis diverser Dom nen bilden Zur Erl uterung der neuen Schicht in Abbildung 5 2 ist neben der Aufteilung in eigentlich mehrere getrennte Schichten nebeneinander deren innere Zusammensetzung aus Dom nen Frameworks und den Dom nen Konzepten zu begr nden au erdem der Bezug dieser Schicht zuden WAM Frameworks zu kl ren Anwendungen Dom ne 1 Dom ne 2 Einzel Hilfswerkzeuge gt ha Anwendung Anwendung Anwendunge und Automaten Fachliche Schicht Dom ne 1 Dom nen Frameworks Dom nen Konzepte WAM Frameworks v WAM Application Frameworks WAM
26. Foto oder Videomaterial aus f r bewegte Bilder ist zudem weder die BibV30 ausgelegt noch Unidraw Als WAM Framework wird die BibV30 benutzt um Anwendungen f r selbstbestimmte oder qualifizierte T tigkeiten meist im B robereich zu entwickeln hinsichtlich der Grafik ist nicht an eine Erweiterung des Einsatzkontextes in v llig neue Bereiche gedacht Grafik in B roanwendungen Wo gibt es aber nun im klassischen Kontext von WAM Applikationen Bedarf an graphischen Komponenten z B f r den Banksachbearbeiter B rsenkurse und Statistiken oder allgemein die graphische Darstellung numerischen Materi als ist sicher eine gute Antwort auf diese Frage Auch graphisches Material gibt es z B geh ren zu den Unterlagen f r Immobilien Kredite immer auch Fotos des betreffenden Hau ses Und am Selbstbedienungsterminal sieht der Kunde ein Bild seines Kundenberaters Besser als Bitmap Beispiele eignen sich vielleicht bersichten ber Hypertexte zwecks Ori entierung Organigramme oder technische Zeichnungen Konstruktionspl ne und Bauanleitungen in einer Datei herzustellender Produkte und lieferbarer Waren eines Versand hauses vielleicht abrufbar f r die Kundenberatung bei Verkauf oder Reklamationen Seite 106 Kapitel 4 Frameworks f r WAM Direkte Manipulation Viele dieser Beispiele stehen f r graphische Darstellungen ohne Benutzerinteraktion z B die Anzeige von Konstruktionspl nen deren Erstellung Aufgabe externer CAD
27. Frameworks Das WAM Framework ersetzt den Editor durch Werkzeuge mit der softwaretechnischen Konstruktion aus IAK und FK die Selection als Menge ausgew hlter Grafikelemente ist dem Werkzeug zugeordnet in Unidraw dem Editor Viewer sind als Teil des Editors zu betrachten stellen Sichten auf dessen Material dar Bei Einschr nkung auf die Funktionalit t Anzeige entspricht ein Viewer dem tIATCanvas also der Zeichenfl che nach 4 4 1 allerdings entsprechend dort genannter Kritik erweitert um die Verwaltung angezeigter Elemente siehe unten Component Subjects entsprechen dem fachlichen Material gem WAM Component Views sind dagegen Oberfl chenelemente F r deren Darstellung sind Interaktionstypen erforderlich Unidraw bertr gt jedoch die Aufgabe der Interaktion also direkte Manipulation an spezielle Manipulator Objekte Gem 4 4 1 lassen sich GFX Objekte und Views vergleichen beide erm glichen eine Darstellung der graphischen Elemente Problematisch sind trotz aller hnlichkeiten die berwiegend wechselseitigen Beziehungen zwischen Unidraw Klassen eine Richtung entspricht meist dem Konzept der Beobachtung WAM beschr nkt die Verwendung des Mechanismus auf spezielle Komponenten 4 3 3 das Material als passive Komponente kann keine nderungen melden Composite Subjects mel den nicht nur nach au en an ihre Views die erfolgten nderungen sondern benutzen auch intern diesen Mechanismus um das Composite mit sei
28. MOP derzeit eine Schicht tiefer zu finden 4 3 1 Seite 120 Kapitel 5 Strukturierung von Framework Bibliotheken Die zweite Ebene der BibV30 sind die WAM Frameworks Im Gegensatz zu fr heren Kapi teln wird der Begriff in engerem Sinne gebraucht nicht f r die komplette Framework Sammlung sondern nur f r deren am WAM Kontext orientierten Kern Bei bertragung des Struktur Vorschlages auf Bibliotheken unabh ngig von der WAM Metapher w re methodi sche Ebene die passende Bezeichnung dies entspricht dem Begriff in 5 2 1 Innerhalb der Ebene sind zwei Schichten zu differenzieren Die Basis bilden WAM Konzepte also z B Metaphern vgl Abschnitt 2 3 Gegenw rtig dominiert in der BibV30 die Kapselung des Fenstersystems durch Interaktionstypen diese Schicht daneben steht die Umgebung Zu den Interaktionstypen geh ren Command Klassen die als Spezialisierung auf Grundlage des Command Pattern in der technischen Basis realisiert sind Au erhalb der BibV30 wurden Postk rbe Versand und Datenbankautomaten mit Archiven und Magazinen sowie Proze muster implementiert die Integration fehlt aber noch Konzepte f r WAM sind beispielsweise fachliche Werte die genannten Proze muster und Postk rbe funktionelle Rollen Benutzerprofile rechte und Gruppenarbeitspl tze Lokalit t und verteilte Umgebungen Bleek97 RW97 KRW96 F r die Ausf hrungen im folgenden Abschnitt sind optionalen Konzepte wichtig in Kapitel 4 wurden z B
29. Mechanismen neben den eigentlichen Spracheigenschaften Das Vertragsmodell z hlt dagegen zu elementaren Grundlagen die andere Programmiersprachen namentlich Eiffel bereits beinhalten Auch die Implementation der Klassen String und Bool mu genannt werden da diese zwar zwischenzeitlich zum C Sprachstandard geh ren aber noch nicht zum verwendeten Compiler Als heterogene Sprache stellt C ein Array Konzept bereit zusammen mit der Zeiger Arith metik als Relikt aus der Welt der C Programmierung anzusehen Der folgende Unterpunkt zeigt auf da objektorientierte Sprachen h here Beh lterkonzepte erm glichen und fordern In Verbindung mit Unzul nglichkeiten einer heterogenen Sprache stehen auch Richtlinien Beh lterklassen die ConLib Praktisch jedes Projekt ben tigt Beh lter in irgendeiner Form z B Liste Array Stack oder auch Dictionary Die Sprache C tr gt dieser Notwendigkeit erst jetzt im Zuge des neuen Standards durch die STL Standard Template Library Rechnung C Arrays bilden h chstens eine technische Grundlage Beh lter zeichnen sich durch ihre Generizit t bez glich enthaltener Elemente aus der Typ enthaltener Elemente hat keine Auswirkung auf die Implementation In einem Beh lter befin den sich jedoch nicht beliebige Elemente sondern jeweils Objekte einer Klasse oder deren Unterklassen Leider kannte die Sprache C vor der Einf hrung von Templates keine Gene rizit t ersatzweise wurde Polymorphi
30. Oberklasse implementiert bzw berschrieben w hrend im zweiten Fall die Spezialisierung der Framework Klasse durch Parametrisierung mit entsprechenden Objekten erfolgt Hier wird die Polymorphie objektorientierter Programmiersprachen genutzt indem eine abstrakte Oberklasse das Protokoll aller zul ssigen Parameterklassen definiert und konkrete Klassen hiervon abgeleitet werden Konkrete Parameterklassen k nnen bereits im Framework vorhanden sein so da nur noch die geeignete Kombination verschiedener Framework Komponenten von Benutzer konfiguriert werden mu vgl Taligent Andert95 In vielen F llen ist es jedoch erforderlich selbst die geeignete Parameterklasse zu schreiben Diese eigene Klasse wird dann von der abstrakten Oberklasse abgeleitet oder spezialisiert eine im Framework vorhandene konkrete Parameter klasse White Box Frameworks bieten grunds tzlich den Vorteil flexibler anpa bar zu sein da jede virtuelle Methode der Frameworkklassen berschrieben werden kann Demgegen ber wer den Parameterklassen f r genau bestimmte Formen der Anpassung entworfen und k nnen weitgehend auch nur hierf r eingesetzt werden Da der Benutzer eines Black Box Frameworks weniger ber dessen Implementation wissen mu f llt der erforderliche Lernaufwand geringer aus Soweit bereits fertige Parameterklassen vorliegen k nnen diese ohne Kenntnis der Implementation kombiniert werden Im folgenden werde ich die hier genannten Begriffe ko
31. Objekte auch verwaltet und mit einem Fenstersystem spezifischen Canvas verbindet z B tXCanvas Beginnen werde ich die Vorstellung neuer Klassen mit dem abstrakten Protokoll tCanvas und dessen Implementation tXCanvas Die GFX Klassen beschreibe ich zuerst hinsichtlich ihrer Bedeutung zur Darstellung graphischer Figuren ohne Aspekte der Manipulation Auf dieser Grundlage erl utere ich die Interaktionstypen tIATGraphic und tIATCanvas und diskutiere deren Abgrenzung gegen ber GFX Klassen und tXCanvas Ausgangspunkt der neuen Klassen sind deren Vorg nger im WAM Framework die ich in 4 4 1 vorgestellt habe die erzielten Fortschritte hinsichtlich vorgebrachter Kritik hebe ich hervor Direkte Manipulation betrachte ich als zus tzlichen Mechanismus in der BibV30 dem ich mich nach den Konzepten zur Pr sentation von Grafiken zuwende F r die Integration der Neuerung erfolgen Anpassungen an den GFX Klassen und am Interaktionstyp tIATCanvas Die abstrakte Oberklasse tIATManipulator stellt das abstraktes Konzept der Manipulatoren dar konkrete Manipulatoren m ssen abgeleitet werden wie konkrete GFX Klassen auch Abschlie end untersuche ich die Eignung der vorliegenden Implementation f r verschiedene Anwendungsf lle und den Bezug zu der in 4 3 3 genannten Trennung von Pr sentation und Interaktion Ich m chte damit weitere Diskussionen zu diesem Thema anregen sicher aber nicht die L sungen vorgeben 6 Implementiert sind Interaktionsty
32. b Vergr ern mit Handle Manipulator zu a der Move Manipulator zeigt keine Handle an die Handle im linken Teil verschwinden beim Dr cken der Maus Taste Kapitel 4 Frameworks f r WAM C Bibliotheken BibV30 Seite 103 An feste Positionen gebundenen Manipulatoren haben Vorrang vor anderen im Beispiel von Abbildung 4 15 l t sich eine selektierte Figur mittels des Handle vergr ern die im diesem Bereich von einem anderen Objekt berdeckt wird Um dies zu erreichen ist der beschriebe Ablauf der Aktivierung eines Manipulators zu erweitern Dazu gibt es zwei Methoden namens PrepareEvent in der Schnittstelle von tIATManipulator Abbildung 4 14 eine gilt f r Handle und bermittelt dem Manipulator die Position des Mauszeigers der Manipulator zeichnet die selbst die Punkte und kennt folglich deren Lage tIATCanvas durchl uft erst eine Schleife um diese Methode f r alle Manipulatoren aufzuru fen und dann eine zweite zur Aktivierung normaler Manipulatoren Wie oben beschrieben bricht die Schleife bzw eine von beiden ab sobald sich ein tIATManipulator Object zu st ndig f hlt und aktiviert Der weitere Ablauf also die Weiterleitung aller folgenden Ereignisse bis zur Deaktivierung ist unabh ngig vom Typ des Manipulators Zusammengefa t haben Manipulatoren folgende Aufgaben e ggf Darstellung von Punkten oder Symbolen f r die Aktivierung nur Handle e Entscheidung ob sie f r ein Ereignis zust ndig si
33. beinhalten meist nur sehr begrenzte Hilfsmittel Die Programmiersprache C stellt als Sprachkonzepte einerseits den privaten Teil der Schnitt stelle und andererseits die Mechanismen aufgeschobener pure virtual sowie nicht virtueller Methoden zur Verf gung F r Frameworkklassen gilt wie f r jede Klasse da die protec ted Schnittstelle f r erbende Klassen ebenso sorgf ltig zu entwerfen ist wie das public Protokoll f r Benutzung Abbildung 2 2 stellt diese Techniken einander gegen ber Erl uterung weiter unten in diesem Abschnitt Kapitel 2 Begriffe und Literatur Seite 23 Methoden die der Benutzer grunds tzlich berschreiben mu k nnen in den abstrakten Klassen des Frameworks pure virtual deklariert werden In diesem Fall pr ft bereits der Linker ob abgeleitete Klassen diese Bedingung erf llen Andererseits k nnen nicht virtuell deklarierte Operationen der Framework Klasse nur dann berladen werden wenn die Klasse nicht polymorph verwendet wird Das ist innerhalb von Frameworks selten der Fall derartig deklarierte Methoden d rfen also bei Ableitung eigener Klassen nicht ver ndert werden Die allgemeine Gleichstellung zwischen White Box Wiederverwendung und beerben von Frameworkklassen kann nicht aufrecht erhalten werden Ohne n heres Wissen ber die Im plementation eines White Box Frameworks kann eine der Framework Klassen durch berschreiben lediglich der daf r vorgesehenen Methode
34. benutzt zwischen IAT und IAK zwischen IAK und FK sowie zwischen Kontext und Subwerkzeugen 3 Der Klassenname tNotifier bringt eine begriffliche Verwirrung mit sich da von der Oberklasse sowohl der Beobachter als auch der Beobachtete abgeleitet wird Dieser Entwurf hatte technische Gr nde und soll hier nicht ausgef hrt werden es wurden beide Konzepte in einer Klasse vereint Seite 82 Kapitel 4 Frameworks f r WAM und die neuen Design Pattern Heute ersetzen verschiedene Design Pattern je nach Verwendungszusammenhang den eher technisch orientierten Universalmechanismus Command Observer und Chain of Responsibi lity sind als eigenst ndige Mikro Frameworks implementiert Kommandos betreffen IAT und IAK die Kette und auch das Observer Pattern verbinden Werkzeug Komponenten Benutzeraktionen l sen bestimmte Methodenaufrufe in der IAK aus dazu bergibt diese dem IAT nach der Erzeugung spezielle Command Objekte Statt in einer Methode Notify ber alle m glichen Ereignisse informiert zu werden und den Zustand des IAT zu sondieren er zeugt die IAK nur f r relevante Ereignisse Kommandos Der Aufruf der zugeordneten Methode enth lt alle notwendigen Parameter sondieren entf llt und erfolgt direkt durch den IAT nicht mehr in einem switch Konstrukt der IAK Abbildung 4 3 skizziert die Struktur des Musters und den Ablauf vgl Darstellung des Design Pattern in GoF95 IAK IATList alAK aCommand alAT C
35. besteht der Bezug da optionale Komponenten gerade nicht f r jede Dom ne geeignet sind sondern aus konkreten Anforderungen heraus entwickelt wurden Beispielsweise kommt aus dem Bereich der Krankenhaussoftware der Bedarf an Gruppenarbeit w hrend in Banken die Kooperationsform ber Vorgangsmappen mit Proze mustern entworfen wurde Weitere Entwicklungen im Rahmen der BibV30 sollen sich auf die Integration eben solcher Komponenten mit unterschiedlichen Anwendungsbereichen konzentrieren Diese Konzepte sind Erweiterungen der WAM Metaphern und keine Ad Hoc L sungen f r eine Anwendung Der Entwurf strebt Mechanismen f r den Einsatz in verschiedenen Dom nen mit hnlichen Anwendungssituationen an Die Mikro Frameworks sind nicht auf eine fachliche Dom ne zugeschnitten aber auch nicht f r beliebige Anwendungsbereiche einsetzbar Verbunden mit der Konstruktion derartiger Mechanismen ist der Wunsch diese in Projekten geeigneter Do m nen zu testen eine Weiterentwicklung der BibV 30 in fachlicher Richtung w re die Folge Abbildung 5 1 beschreibt einerseits den heutigen Zustand andererseits sieht die Struktur die Erweiterung vor soweit diese im technischen oder methodischen Bereich liegen Hier besteht noch einiger Bedarf Komponenten sind softwaretechnisch zu verbessern au erhalb der BibV30 entwickelte Konzepte zu integrieren und neue zu entwerfen Insgesamt kann das die Bibliothek jedoch als hinreichend ausgereift betrachtet werden um deren
36. black IX spezielle Schnittstelle fuer Entwicklungszwecke virtual int GetDrawingMode virtual bool sDrawingMode int _iMode GXcopy virtual void SetDrawingMode int _iDrawingMode X Funktion z B GXcopy zeichnet GXxor fuer Move virtual const char GetColorStrings virtual bool ZsColorString _ tString _sColor virtual bool ZsColorInMap tString _sColor virtual tCollection lt tString gt GetColorsInMap Die Farboption setzt freie Colormap Entries voraus An Rechnern des Arbeitsbereichs bewirkt die Reservierung solcher Eintr ge oft die Meldung Cannot allocate Colormap z B bei Nutzung vieler Netscape Fenster GetColorStrings liefert eine Liste bekannter Farben IsColorString prueft ob eine Farbe bekannt ist Dagegen versucht IsColorInMap diese Farbe zu reservieren soweit Eintrag in Colormap noch fehlt Achtung durch diesen Seiteneffekt wird ein Eintrag belegt der auch nicht wieder freigegeben werden kann GetColorsIinMap versucht alle Farben gem GefColorStrings zu belegen und gibt die effektiv benutzbaren zurueck Achtung danach sind alle Farben belegt auch f r andere Programme Implementation der abstrakten Oberklasse virtual void SetLineThickness int _iThickness 1 virtual void ClearWindow virtual void FillRectangle long _IX long _1Y long _Width long _Height k Abbildung 4 12 Schnittstelle tXCanvas Ausschnitt bernommen aus der Vorversion findet
37. building blocks RZ95 Ausgangspunkt ist das bereits genannte Leitbild die Design Metaphern bilden die erste Ebene der Sprache vgl 2 2 3 RZ96 motivieren den Begriff Handbuch statt pattern language und w hlen f r Design Metaphern die Bezeichnung conceptual patterns Diese Metaphern er m glichen eine Beschreibung der Anwendungswelt mit Begriffen die sich an dieser orientieren Design Pattern erlauben die Umsetzung dieses Entwurfes in softwaretechnische Konstrukte Objekte Klassen und deren Beziehungen Die dritte Ebene programmiersprachli cher Muster wird hier nicht weiter betrachtet 2 3 1 Entwurfsmetaphern WAM basiert auf den Metaphern Werkzeug Aspekt und Material sowie Umgebung und Au tomat Materialien sind passive Elemente ber die der Benutzer Informationen erhalten m chte oder die er ver ndert Die m glichen Umgangsformen sind spezifisch f r ein be stimmtes Material Das Material ist der Arbeitsgegenstand des Benutzers Dagegen sind Werkzeuge nur Hilfsmittel diese Arbeit an dem Material zu erledigen Material kann nur durch ein Werkzeug dargestellt und mit diesem ver ndert werden Zwischen Werkzeug und Material besteht somit ein Zusammenhang Nicht jedes Werkzeug kann jedes Material bearbeiten andererseits kann ein Material je nach Verwendungszusam menhang mit verschiedenen Werkzeugen bearbeitet werden Dieses Problem wird durch die Metapher des Aspektes gel st Problem We never work with a tool on a
38. der Frame work Komponenten statt nicht aber bzgl des Benutzers vgl Abbildung 3 4 Disk on SCSI Framework Application Environment i n ar m Generic SCSI Disk Benutzung SCSI Service Framework N 77 Foundation Classes e SCSI Kernel Engine FW SCSI Server Framework Objekt Kernel Fa Ra g Interface K Ensemble Quantum P80S System Environment I O Expansion Bus Object Support Input Directory Service Abbildung 3 4 a Kooperation von Taligent Frameworks b aus Frameworks konstruiertes Betriebssystem Seite 58 Kapitel 3 Einsatz der Frameworktechnik Andererseits sind Frameworks keine kompletten L sungen sondern m ssen durch spezifische Komponenten erg nzt werden Dies bedeutet die Ableitung eigener konkreter Klassen von meist abstrakten Frameworkklassen Hier wird das in der Oberklasse spezifizierte Protokoll implementiert damit das Framework die Dienste seiner ffentlichen Schnittstelle erf llen kann Andert95 bezeichnet die Menge dieser Klassen die konkrete Funktionalit t f r ein Framework zur Verf gung stellen als ensemble und setzt dabei implizit die Verwendung von Parameterklassen voraus An ensemble is a set of one or more classes that are derived from the framework and provide concrete implementations for pure virtual methods declared by the framework Together with the framework ensemble is a complete concrete implementation of the service offered by the frame
39. des verantwortlichen Manipulators in zwei Durchl ufen f r Handle und andere e Abarbeiten einer Kette von Events durch Weitergabe an den aktiven Manipulator e ggf Abbruch der Interaktion oder vorzeitige Best tigung gem Strategieobjekt Seite 104 Kapitel 4 Frameworks f r WAM class HATCanvas public tIATBase public virtual void InitMouse tCanvasMousePolicy _pMouse I Strategieklasse f r Mouse Belegung virtual void InitKeyboard tCanvasKeyboardPolicy _pKey Strategieklasse f r Tastatur Funktionen Graphics amp Manipulator virtual void InsertGraphic tIATGraphic _pIAT virtual void RemoveGraphic tIATGraphic _pIAT virtual void InsertGraphies tOrdCol lt tIATGraphic gt _pGraphics virtual void InsertManipulator tIATManipulator _pIAT virtual bool sManipulator tLATManipulator _pIAT virtual void RemoveManipulator tIATManipulator _pIAT virtual void ShowSelection virtual void HideSelection Fabrikmethoden Reihenfolge der tIATGraphics virtual tIATGraphic NewIATGraphics tGFXDrawable _pGFX virtual void MoveTop tIATGraphic _pIAT Darstellung in oberster Ebene ber allen anderen b Abbildung 4 16 Schnittstelle tIATCanvas Ausschnitt Grafik IAT s verf gen ber eine minimale Schnittstelle Abbildung 4 17 Selektion und de ren Aufhebung sind mit Commands verbunden f r die sich die IAK registrieren Kann Direkt im Konstruktor wird die Verbindung mit einem GFX Obje
40. die exemplarische Codierung ein Beispiel zum besseren Verst ndnis und Ansatzpunkt f r weitere Diskussion der Vor und Nachteile Trotz der Behauptung in Gamma92 die Muster w ren weitgehend sprachunabh ngig zeigt gerade dieser Bereich h ufig das Gegenteil Auch die Darstellung der Struktur durch Klassen und Objekte wird kritisiert Hier schl gt Rieh le96c getrennte Beschreibung verschiedener Rollen vor die in einer Implementation dann m glicherweise innerhalb einer Klasse zusammengefa t werden Pree94 entwickelt Meta pattern als h here Abstraktion gegen ber Design Pattern Pattern beschreiben L sungen auf sehr unterschiedlichem Abstraktionsniveau angefangen bei einzelnen Methoden in einer bestimmten Programmiersprache bis hin zur Konstruktion kom pletter portabler Anwendungen GoF95 stellt einen Katalog dar der zwar nach Art und Verwendung der vorgestellten Design Pattern gegliedert ist aber auf gleichartige Pattern beschr nkt wurde patterns at a certain level of abstraction Demgegen ber unterscheiden Buschmann et al zwischen Architectural Pattern Design Pattern und Idioms BMRSS96 hnliche Klassifikationen finden sich bei anderen Autoren z B verwenden Riehle und Z llighoven Design Metaphern Design Pattern und Programming Pattern RZ95 In einem sp teren Artikel RZ96 stellen die Autoren einen Bezug zwischen den Pattern Arten und den wichtigsten Modellen der Softwaretechnik her Interpretations
41. digen Infrastruktur sp te Erzeugung ist auf besondere F lle zu beschr nken Einsteigern bereiten derart komplexe Mechanismen vermeidbare Schwierigkeiten da sie diese vorl ufig selbst nicht einsetzen oder ben tigen Technische Probleme ergeben sich zudem aus der vorliegenden Implementation Einerseits sind zwar abstrakte Klassen nicht aber aufgeschobene Methoden zul ssig Andererseits wei sen heutige Debugger erhebliche M ngel bez glich Umgang mit C Makros auf der Benutzer kann diese nur sehr schwer nachvollziehen Das Design Pattern Late Creation sollte daher zuk nftig als unabh ngiges Mikro Framework reimplementiert werden Seite 68 Kapitel 4 Frameworks f r WAM Persistenz Filesystem und Datenbanken in der BibV30 In der ersten Version der Bibliothek fehlten Konzepte zur Persistenz von Materialien Diese Frage wurde fr hzeitig in einer Studienarbeit behandelt WW94 deren Ergebnisse jedoch nicht in die BibV30 integriert Derzeit enth lt die Anwendungsumgebung einen einfachen Mechanismus zur Speicherung im Unix Filesystem die Speicherung in objektorientierten Datenbanken ist aktuell wieder ein Thema der Bibliothekserweiterung BG96 Ziel der kommenden Monate ist die Implementation eines Persistenz Konzeptes mit Bezug auf die bereits geleisteten Arbeiten in diesem Bereich Gedacht ist an das Atomizer Design Pattern oder auch Serializer vgl BMRSZ96 Der Mechanismus k nnte hnlich dem Change Propagation
42. entscheidendes Sprachmittel Die geeignete Kombination dieser Mittel erm glicht die Framework Konstruktion Seite 10 Kapitel 2 Begriffe und Literatur Eine besondere Form objektorientierter Frameworks sind sogenannte Application Frameworks Anwendungs Rahmenwerke Diese gro en Rahmenwerke stellen die komplette Infra struktur f r eine Gruppe hnlicher Anwendungen zur Verf gung und erm glichen damit die einfache Erstellung ganzer Produktfamilien mit einheitlichem Grundverhalten Durch ein Application Framework wird eine lauff hige generische Anwendung implementiert die jedoch noch keine anwendungsspezifische Funktionalit t enth lt Der Benutzer eines solchen Frameworks kann sich auf eine erprobte softwaretechnische Konstruktion verlassen und daher auf die Implementation der spezifischen Aspekte der Applikation konzentrieren Dar ber hinaus erlauben Application Frameworks durch die weitgehende Implementation allgemeiner Anwendungskomponenten auch die Sicherstellung von Richtlinien sei es f r ein bestimmtes Fenstersystem oder innerhalb einer Organisation JF88 unterscheidet Frameworks nach der zur Wiederverwendung eingesetzten Technik in White Box und Black Box Frameworks Diese Bezeichnungen finden sich entsprechend auch in Gamma92 sowie BBE95 Im wesentlichen basiert die Unterscheidung darauf ob eine Klasse des Framework vom Be nutzer beerbt oder mit Parameterobjekten kombiniert wird Im ersten Fall werden Methoden der
43. in ET funktionieren als Unterschied ist wieder zu nennen da dies nicht in eine allgemeine Oberklasse Object integriert sondern optional verf gbar wird Kooperation Proze muster Gruppen und R ume Verschiedene Projekte am Arbeitsbereich Softwaretechnik besch ftigen sich mit kooperativer Arbeit WAM begann mit starkem Bezug auf Einzelarbeitspl tze neue Metaphern erweitern das Konzept hinsichtlich Koordination von B roarbeiten mit mehreren Beteiligten Gry czan95 stellt eine m gliche Kooperationsform vor die durch Proze muster beschrieben wird Postk rbe Wulf95 realisieren den Informationsaustausch ber die weiterhin erhaltene Gren ze des einzelnen Arbeitsplatzes entsprechend der WAM Metapher Umgebung Die Bedeutung eines privaten f r Au enstehende nicht direkt zug nglichen Bereiches also die Arbeitsumgebung sehen auch RW97 in ihren berlegungen f r die Koordination ein Bild von R umen einzuf hren W hrend der Ursprung f r Proze muster und Postk rbe im Bereich von B roarbeitspl tzen liegt Bankenbereich vgl GWZ96 ist ein Projekt f r Krankenhaus Software Ausl ser f r neue Kooperationsformen KRW96 Offen ist noch die Ber cksichtigung von Gruppenarbeitspl tzen innerhalb des WAM Umfeldes zu erwarten sind in jedem Fall neue Impulse f r die Methode sowie die BibV30 Frameworks f r WAM folgen dem Leitbild selbstbestimmter Arbeit urspr nglich beschr nkt auf Einzelarbeitspl tze Eine Erweite
44. sein Auf der anderen Seite konnten die Entwickler des WAM Frameworks ihre neuen Konzepte testen und mu ten nicht voreilige Implementationen als praktikable L sungen erstellen Das wohlstrukturierte Konzept hatte immer Vorrang vor Kompromissen zugunsten schnell einsatzf higer Produkte Am Arbeitsbereich Softwaretechnik ergeben sich im Zusammenhang mit der vertretenen Methode WAM weitere Argumente f r eine eigene Entwicklung Studenten h ren nicht nur in Vorlesungen was die Werkzeug Material Metapher ist sondern erleben deren praktische Anwendung Dies w re mit Fremdprodukten kaum zu leisten die anderen Leitbildern folgen und nur schwer adaptierbar sind Eben dieses Problem h tte sich auch f r Studenten ergeben die konzeptionelle Weiterentwicklung der Methode anstreben dies aber innerhalb eines nicht hierf r geeigneten Umfeldes eines anderen Frameworks h tten demonstrieren m ssen ber die Grenze des Arbeitsbereiches und der Universit t hinaus bieten die WAM Frameworks eine ausgezeichnete M glichkeit einen Eindruck in die Methode zu geben die sonst nur in Artikeln und B chern GKZ93 beschrieben ist Bestes Mittel hierzu ist eine gute Dokumentation und Ver ffentlichung des Frameworks im World Wide Web Seite 64 Kapitel 4 Frameworks f r WAM 4 2 Einordnung in die Framework Landschaft Vergleichend mit Kapitel 3 vermittelt dieser Abschnitt einen Eindruck der Leistungen des WAM Frameworks Hier jeweils nur kurz erw
45. tIATCanvas ver ndern die Aktion ist f r IAK und FK ohne Bedeutung Kapitel 4 Frameworks f r WAM C Bibliotheken BibV30 Seite 107 Konkrete Beispiele f r Grafiken und Manipulatoren in der BibV30 Mit dem Grafik Framework entstand ein allgemeiner grafischer Editor als Beispielanwen dung f r die Dokumentation sowie als Testrahmen w hrend der Entwicklungsphase Enthalten ist ein kleines Sortiment geometrischer Figuren und diverse verschiedenartige Manipulatoren In der WWW Dokumentation Wei 97 sind die Klassen und Implementationsdetails be schrieben dieser kurze berblick vermittelt einen Eindruck betreff der praktischen Verwendung des Mikro Frameworks und veranschaulicht vorangehende Ausf hrungen F r jede zu unterscheidende geometrische Form wird eine eigene GFX Klasse implementiert im Beispiel tGFXCircle tGFXEllipse tGFXRectangle tGFXSector und andere Objekte die ser Klassen erzeugt die Interaktionskomponente zur Darstellung parametrisiert sie Grafik IAT s mit diesen Objekten und f gt die IAT s in einen tIATCanvas ein Es m ssen keine spe ziellen Klassen von tIATGraphic abgeleitet werden dieser Interaktionstyp kann beliebige Grafiken anzeigen Dazu dient die Parametrierung mit einem GFX Objekt s o Abb 4 17 In der Darstellung unterscheiden sich z B Kreise und Ellipsen nicht vielmehr sind Kreise nur eine Spezialform von Ellipsen Objekte vom Typ tGFXEllipse k nnten auch f r die Anzeige von Kreisen benutzt w
46. um z B Attribute wie Strichst rke oder Farbe einzustellen Darstellung der Objekte ist Aufgabe der Zeichenfl che solange kein Manipulator aktiv ist In dieser Zeit sorgt das Manipulator Objekt f r eine der Benutzeraktion entsprechende Anzeige dazu erh lt es vollen Zugriff auf die tIATGraphics im Canvas Im Konzept ist vorgesehen da Manipulatoren keine nderungen am graphischen Material vornehmen technisch greifen sie jedoch auf die GFX Objekte zu Vorgesehen ist eine Kopie der Objekte und die Manipulation dieser Kopie statt der Originale innerhalb des Frameworks wird dies aber nicht sichergestellt Seite 108 Kapitel 4 Frameworks f r WAM Auch im Beispiel arbeiten die Manipulator Klassen direkt mit den Original Objekten Dies ist solange unproblematisch wie vorgenommene nderungen nach Abschlu bzw bei Abbruch der Benutzeraktion vom Manipulator automatisch zur ckgenommen werden Als letzte Anmerkung soll noch erw hnt werden da im Gegensatz zur Klasse tIATGraphic der Interaktionstyp tIATManipulator durch spezialisierte Unterklassen implementiert wird Je nach Anwendungsfall gibt es sehr unterschiedliche Formen der direkten Manipulation und so auch jeweils eigene Manipulatoren Diese m ssen wie auch die GFX Klassen implementiert werden Vorteile f r die Anwendungsentwicklung ergeben sich aus der klaren Trennung der Verantwortlichkeiten von Interaktionskomponente Zeichenfl che tIATCanvas GFX Klassen und den Manip
47. zu zeichnen Dies schlie t die Bildschirmanzeige mittels tXCanvas oder t0S2Canvas tMacCanvas etc ein aber auch den Ausdruck ber z B tPSCanvas f r Postscript Durch die Beschr nkung auf Methoden der abstrakten Oberklasse tCanvas bleiben die in der IAK benutzten GFX Klassen und damit die Interaktionskomponente vom Fenstersystem unabh ngig F r den Anwender erscheint die Grafik am Bildschirm als Interaktionstyp meist kann er mit der Maus durch anklicken eine Selektion vornehmen evtl auch ein objektbezogenes Men aufklappen Objekte vom Typ tIATGraphic stellen die Verbindung zwischen einem tCanvas und dem GFX Objekt her mit dem sie parametrisiert sind Als Interaktionstyp sind sie ber das Command Design Pattern mit der IAK verbunden vgl 4 3 3 bzgl LATMotif Bibliothek Schlie lich repr sentiert tIATCanvas die Zeichenfl che also einen Bereich auf dem Bildschirm innerhalb dessen tIATGraphic Objekte angezeigt werden Aufgabe des Interaktionstyp ist die Verwaltung der in ihn eingef gten Objekte Beh lterfunktionalit t die Schnittstelle bietet Methoden zum Einf gen und Entfernen Grafiken liegen logisch bereinander auf einzelnen Ebenen sp ter eingef gte berdecken fr her vorhandene Diese Reihenfolge l t sich durch die IAK beeinflussen in den meisten Grafikeditoren ist es blich diese Funktionalit t dem Anwender z B durch spezielle Schaltfl chen oder Men optionen anzubieten Gegen ber der fr heren Vers
48. 1 Kapitel 4 Frameworks f r WAM C Bibliotheken BibV30 Seite 71 Werkzeug 1 Werkzeug 2 a Erzeugung Werkzeug 1 Werkzeug 2 Abbildung 4 1 Erzeugung von 2 Werkzeugen mit und ohne Werkzeug Framework Application Frameworks BaseFIAK MainFIAK und ToolCoordinator Application Frameworks in der BibV30 sind nicht dom nenbezogen Die vorhandenen drei Anwendungsumgebungen realisieren Varianten der allgemeinen Infrastruktur ToolCoordinator und MainFIAK basieren beide auf BaseFIAK Dessen Aufgabe liegt in der Konstruktion von Werkzeugen gem WAM da hei t die Verbindung zwischen Kontext Werkzeug und den Subwerkzeugen BaseFIAK macht dem Anwendungsentwickler keine Vorgaben bez glich der Pr sentation oder Handhabung seines Werkzeuges Erste Spezialisierung dieser Anwendungsumgebung war MainFIAK f r typische MS Windows Applikationen mit Men zeilen und jeweils einem dargestellten Dokument Lilient hal97 die WWW Dokumentation zur BibV30 beschreibt dies so Dieser Layer kann verwendet werden wenn Werkzeuge gebaut werden sollen die sich wie ein Single Document Werkzeug aus der MFC verhalten Es gibt ein Men f r das ffnen Schlie en und Speichern der Materialien und es wird sichergestellt da das Werkzeug ohne eine R ckfrage beim Benutzer nicht geschlossen werden kann wenn das Material ver ndert wurde Vornehmlich der Entwicklung eines Hilfesystems Lilienthal95 verdankt
49. 2 Kapitel 5 Strukturierung von Framework Bibliotheken Schwierigkeiten ergeben sich bei dem Einstieg in ein neues Framework aus der F lle verwen deter Mechanismen Verschiedene Mittel implementieren einen festgelegten Kontrollflu und erlauben dennoch eine flexible Anpassung der variablen Anteile also der Hot Spots Auch wenn der Einstieg h ufig ber ein mitgeliefertes Beispiel erfolgt oder auch durch Werkzeuge erleichtert wird vgl MFC sind auf dem Weg zu einer eigenen Applikation verschiedene Komponenten kennenzulernen Es stellen sich f r den Benutzer dabei die Fragen E welche Komponenten beinhaltet das Framework welche Funktionalit t ist implementiert E wo befinden sich die anzupassenden Klassen welche Methoden sind zu berschreiben In diesem Zusammenhang stellt sich die Frage nach Kenntnissen ber interne Strukturen f r die Benutzung des Frameworks Soweit die Dokumentation keine ausreichenden Informationen ber die Dynamik gibt also die Einbindung eigener Klassen in das Frameworks bleibt h ufig nur die M glichkeit diese Dynamik mit einem Debugger nachzuvollziehen Konventionelle Debugger entsprechen weitgehend dem Verst ndnis prozeduraler Sprachen objektorientierte Konzepte finden wenig Beachtung vgl FH96 Betrachtet man welche Debugger und Profiler angeboten und eingesetzt werden so f llt auf da sich objektorien tierte Technologien nur in einem geringen Ma durchgesetzt haben beim Debugging i
50. A lt J Kontext IAK Kontext FK Verbindungen optional IAF Value Changer j IAF Activator 7 IAFM from N Select g Anbindung Werkzeug Material Fenstersystem Konstruktion benachrichtigeft Objekte Abbildung 2 5 FK IAK IAF Kontext Werkzeug mit einem Subwerkzeug Bez glich der Werkzeug Material Kopplung ber Aspektklassen sei hier erg nzt da nur die Funktionskomponente das Material bzw den Aspekt direkt benutzt siehe Abbildung 2 5 Komplexe Werkzeuge m ssen so zusammengesetzt werden da jeweils die Kontext FK ihre untergeordneten Sub FK s benutzen kann und ggf eine Verbindung zwischen Kontext IAK und Sub IAK hergestellt wird Hierzu siehe das IP FP Plug In Design Pattern in RZ95 Weitere Design Pattern erm glichen die Unabh ngigkeit der Interaktionskomponente vom verwendeten Fenstersystem Interaktionstypen IAT die Ber cksichtigung persistenter Daten Materialversorger und auch Unterst tzung kooperativer Arbeitsprozesse z B Postk rbe Einzelheiten werden soweit erforderlich in Kapitel 4 n her erl utert An dieser Stelle soll keine tiefere Diskussion der WAM Metaphern erfolgen sondern diese in Bezug zur Framework und Design Pattern Diskussion gesetzt werden Letzteres wurde be reits in RZ95 und RZ96 geleistet indem eine komplette Beschreibung von WAM in Form von Design Pattern erstellt wurde Metaphern werden dabei selbst als Pattern verstanden Kapitel 2 Begriffe und
51. Anpassungen falls die gegebene Funktionalit t und Flexibilit t im Konkreten Fall nicht ausreichen sollte Innerhalb des komplexen Application Frameworks lassen sich verschiedenartige Einzelkom ponenten identifizieren Teilweise handelt es sich um Mikro Frameworks z B Commands die Grundlage der Infrastruktur sind teils sind es Bausteinbibliotheken z B Beh lterklassen Au erdem gibt es optional einsetzbare Mikro Frameworks mit engerem Bezug zu konkreten Anwendungsgebieten Das Framework f r Textformatierung l t sich insofern als Dom nen Framework als Erweiterung der allgemeineren Anwendungsumgebung ET verstehen Zu bemerken ist das Angebot an konkreten Parameterklassen die f r bestimmte Anwendungen Implementationsarbeit durch Konfiguration vorhandener Klassen ersetzen hnliches gilt f r die o g Formatkonvertierung verschiedene Parameterklassen f r verbreitete Formate k nnen direkt bernommen werden speziellere sind noch zu implementieren Seite 56 Kapitel 3 Einsatz der Frameworktechnik 3 3 2 Werkzeuge zur einfacheren Verwendung von Frameworks Auch MFC Microsoft Foundation Classes ist ein Application Framework f r Dokumenten basierte Anwendungen Als Vorbilder dienten MacApp und ET Pree95 Zu jedem Dokument k nnen mehrere gleichartige Fenster ge ffnet werden bewegen und vergr ern von Fenstern bernimmt das Framework Wie auch in ET wird nicht direkt neu gezeichnet sondern eine Region f r ung l
52. Anwendung konkreter Metaphern und deren Dokumentation hilft bei der Zuordnung eines Application Frameworks zu einer bestimmten Problemstellung bzw kann den Kontext der vorgesehenen Verwendung beschreiben Eine Besonderheit ergibt die Kombination einer Methode zur Software Entwicklung z B in dieser Arbeit WAM mit einem Framework da deren Umsetzung unterst tzt Orientiert sich der Anwendungsentwickler an der Methode so kann er davon ausgehen da das spezifisch hierf r entwickelte Application Framework zu seinem Entwurf pa t Bei Verwendung anderer Frameworks stellt sich dagegen die Frage ob dort implizit verwendete Leitbilder und Metaphern berhaupt f r die Implementation geeignet sind Umgekehrt legt sich das WAM Framework mit der Methode explizit auf einen bestimmten Anwendungstyp fest bzw einer Sichtweise auf die Software und beugt einer ungeeigneten Verwendung in falschem Kontext vor Kapitel 3 Einsatz der Frameworktechnik Seite 47 Kapitel 3 Einsatz der Frameworktechnik Zur Einordnung des WAM Frameworks im n chsten Kapitel stelle ich hier einige bekannte Frameworks aus kommerziellem und universit ren Umfeld vor beschreibe deren Leistungs umfang und ausgew hlte Elemente Diese Beispiele erfolgreicher Frameworks geben einen berblick hinsichtlich Entwicklung und Erfolg der Framework Technik der Vergleich der Komponenten soll erreichte Fortschritte dokumentieren Somit beginne ich dieses Kapitel mit einer kurz
53. Bausteinbibliotheken bestehen Beziehungen zwischen einigen wenigen Klassen die der Benutzer kennen und beachten mu Diese Abh ngigkeiten sind aber als Ausnahmen ein zustufen w hrend berwiegend unabh ngige Bausteinklassen in der Bibliothek enthalten sind Demgegen ber sind Frameworks durch blicherweise gr ere Klassenteams gepr gt die Klassen sind nicht einzeln wiederverwendbar siehe 2 1 2 Wichtigstes Unterscheidungsmerkmal zwischen Bausteinbibliotheken und Frameworks ist die direkte Benutzung der Bausteinklassen ohne weitere Spezialisierung Johnson betont die Unabh ngigkeit von Bausteinbibliotheken bzgl konkreter Anwendungen Bausteinklassen bieten L sungen f r sehr allgemeine Problemstellungen und k nnen daher vielfach unver ndert wiederverwendet werden w hrend Frameworks besonders White Box Framework die Ableitung eigener Klassen unbedingt erfordern Es ist im allgemeinen m glich Bausteinbibliotheken durch eigene Klassen zu erweitern bzw von den vorhandenen Bausteinklassen speziellere f r ein konkretes Projekt abzuleiten Gr nde k nnen fehlende Funktionalit t oder auch ineffiziente Implementation im Zusammenhang mit besonderen Anforderungen sein Ausgereiften Bibliotheken erfordern selten derartige im Gegensatz zur reinen Benutzung aufwendigen Erweiterungen Bei der Implementation von Bausteinklassen k nnen andere Klassen verwendet werden ohne da dies dem Benutzer dieser Klasse bewu t sein mu Die
54. C Bibliothek l sen dieses durch Bezug auf abstrakte Zeichenpri mitiven graphische Figuren sind Exemplare jeweils spezifischer auf die einzelnen Formen bezogener GFX Klassen z B tGFXRectangle tGFXCircle und zeichnen sich selbst auf dem Canvas Die Objekte kennen ihre Position Gr e und Form an der Schnittstelle gibt es Methoden zum Verschieben der Objekte und f r Gr en nderung Der Anwendungsentwickler implementiert f r verschiedene Materialtypen jeweils eine eigene GFX Klasse abgeleitet von der abstrakten Oberklasse tGFXDrawable Das Werkzeug ben tigt einen tIATCanvas jedes Materialobjekt wird durch ein Exemplar der passenden Objektdiagramm Interaktionsdiagramm Ovale sind Objekte zur Laufzeit alAK alATCanvas aCanvas Benutzung Benachrichtigung tempor re Benutzung Show aGFX siehe Interaktionsdiagramm DrawOn aCanvas Viele Ken dieser Bibli GFX Objekte N ber Abbildung 4 4 a Objekt Beziehungen zwischen IAK GFX Objekt tIATCanvas und tXCanvas b Interaktionsdiagramm vgl Abb 4 8 Darstellung eines GFX Objekt im tIATCanvas Seite 86 Kapitel 4 Frameworks f r WAM GFX Klasse repr sentiert Zur Darstellung wird die Methode Show des tIATCanvas aufgerufen und dabei das GFX Objekt als Parameter bergeben tIATCanvas verf gt ber den tXCanvas auf dem sich double dispatch das GFX Objekt selbst zeichnet Abbildung 4 4 M ngel der Grafik Komponenten liegen im Entwurf der abs
55. C Somit ist im Falle eines Wechsels des Fenstersystems ausschlie lich die Interaktionskomponente zu ndern wesentliche Teile der Applikation bleiben unber hrt Funktionskomponente Aspekte und Material Verwendet nun die Interaktionskomponente zur Pr sentation und Interaktion nur elementare Interaktionsformen z B 1 from N Select Activator ValueChanger ohne Annahmen ber deren Darstellung durch Listen ComboBoxen Kn pfe oder beliebige zuk nftig entwickelte Widgets zu machen so kann auch diese Interaktionskomponente unver ndert bernommen werden N heres zu diesen Ideen folgt in Abschnitt 4 2 vgl G rtz97 Kapitel 3 Einsatz der Frameworktechnik Seite 53 3 3 Dokumentenbasierte Editoren Mit Unidraw wurde in 3 2 2 ein Dom nen Framework f r grafische Editoren vorgestellt Nachfolgend gehe ich kurz auf die Gruppe von Application Frameworks ein die zur Erstel lung dokumentenbasierter Editoren eingesetzt werden k nnen Da eine sehr gro e Anzahl Anwendungen grunds tzlich dieser Gruppe zuzuordnen ist wurden sehr fr h Abstraktionen und Konzepte in Frameworks realisiert Erste Ans tze sind bereits bei MacApp zu finden ET stellt eine wesentliche Weiterentwicklung dar Relativ neu ist demgegen ber MFC wobei Lewis95 allerdings MFC noch weitgehend als eine Klassenbibliothek mit einigen wenigen Framework F higkeiten sieht Aber dies k nnte sich mit der weiteren Entwicklung ndern and over time MFC will evolv
56. ConLib macht intern massiv von derartigen Konstruktionen Gebrauch Traub95 weist in der Dokumentation darauf hin da nur drei tats chliche Datenstrukturen implementiert und alle Beh lter auf diese abgebildet wurden Dem Benutzer der Bibliothek ist dies nicht bewu t eine Erweiterung erfordert dage gen Kenntnisse der internen Struktur Relevant f r die Klassifizierung der ConLib als Bausteinbibliothek ist die Verwendung der Klassen nicht deren Implementation Kennzeichnend f r Bausteinklassen ist deren direkte Benutzung Eigene Klassen werden in der Regel nicht abgeleitet Die Bausteinklasse erbringt ihre Leistung dadurch da der Benutzer die Funktionen an ihrer Schnittstelle aufruft Sie wird nicht selbst aktiv und verwendet ihrerseits keine Methoden die der Benutzer implementiert Zusammenh nge mit anderen Klassen der Bibliothek k nnen in Einzelf llen bestehen in der Regel werden in einer Bausteinbibliothek jedoch unabh ngig voneinander benutzbare Klassen zusammengefa t Kapitel 2 Begriffe und Literatur Seite 13 2 1 2 Definition Framework What exactly is an object oriented framework It is an object oriented class hierarchy plus a built in model of interaction which defines how the objects derived from the class hierarchy interact with one another Lewis95 betont bei seiner Framework Definition die Beziehungen zwischen Framework klassen hnlich auch Bischofberger et al in BBE95 Ein Framework besteht
57. Design Entscheidungen in gr erem Rahmen fand kaum statt Richtung und Ziel fehlten Frameworks f r Lehre und Forschung Framework Entwicklung reduziert durch Wiederverwendung und standardisierte robuste Komponenten die Kosten der Software Produktion Das hier betrachtete WAM Framework entstand an der Universit t und wird bisher nicht au erhalb des Lehrbetriebes eingesetzt Offensichtlich kann dieses Framework nicht mit blichen Ma st ben kommerzieller Produkte gemessen werden Der Nutzen dieser aufwendigen Entwicklung eines eigenen Frameworks besteht aus zwei Bereichen in der Lehre sammeln Studenten praktische Erfahrungen mit der Framework Technik und der Methode WAM innerhalb des bestehenden Frameworks k nnen neue Konzepte ausprobiert werden Anderen Studenten dient das Framework einfach als Entwicklungsplattform das Framework wird also im blichen Sinne benutzt als Infrastruktur f r die Anwendungsentwicklung Kapitel 4 Frameworks f r WAM C Bibliotheken BibV30 Seite 63 Gegen ber Produkten fremder Anbieter besteht der Vorteil da Sourcecode des Frameworks zug nglich ist und direkter Kontakt zu den Entwicklern besteht Nachteilig f r die Benutzung im eigentlichen Sinne ist teilweise nicht professionelle Dokumentation vor allem aber die mangelnde Konzentration auf das Framework als Produkt Hauptargument f r die Entwicklung des Frameworks ist sicher der Entwicklungsproze selbst direkt gefolgt von dem Wunsc
58. Die Definition dieses Leitmotivs legt eine Sichtweise auf die zu entwickelnde Software und deren Benutzer fest und dient als Anleitung f r die Gestaltung der Benutzungsschnittstelle Au erdem wird ein Rahmen der mit WAM zu entwickelnden Anwendungen gesteckt So wie Frameworks jeweils f r spezifische Problemstellungen entwickelt werden und Design Pattern L sungen in genau beschriebenem Kontext anbieten wird WAM in dem durch das Leitbild definierten Umfeld eingesetzt Der Ansatz bezieht sich auf die Entwicklung interaktiver Anwendungssysteme auf graphischen Arbeitsplatzrechnern GKZ93 eignet sich in der hier betrachteten Form aber z B nicht f r technische Real Time Applikationen WAM beinhaltet sowohl ein methodisches Vorgehen f r die Softwareentwicklung als auch eine Anleitung zur technischen Umsetzung Das evolution re Modell mit starker Integration der sp teren Anwender in den Entwicklungsproze ist nicht Gegenstand dieser Arbeit siehe z B GKZ93 Nachfolgend wird der fachliche Entwurf sowie dessen softwaretechnische Umsetzung in Klassen betrachtet Laut GKZ93 l t sich der WAM Ansatz durch eine m glichst bruchlose Verbindung der Analyse des Anwendungsbereich und der Entwicklung der DV Technik charakterisieren Dazu werden die Leitmetaphern Werkzeug und Material verwendet From the long tradition of craftsmanship we have learned that human work has often found a physical embodiment through tools that crafts
59. Ein Mittel sind Parameterklassen die gut nachvollziehbare Abstraktionen objektifizieren konkrete Parameterklassen f r bliche Anwendungsf lle sind ein weiterer Fortschritt Beispiele gibt es in ET z B bei der Formatkonvertierung fertige Klassen f r GIF u a Soll die Flexibilit t zur Laufzeit bestehen so sind Parameterklassen zwingend erforderlich Baumstrukturen mit einer gemeinsamen Oberklasse sollten hinsichtlich m glicher Kombina tion mit anderen Frameworks oder Bibliotheken vermieden werden Objektorientierte Mechanismen lassen sich als kleine Mikro Frameworks bereitstellen Implementation von Design Pattern und machen dann die erreichte Flexibilit t nach au en deutlich Polymorphe Beh lter k nnen durch generische ersetzt werden in C sind dies Templates Inwieweit die BibV30 diesen Anspr chen gen gt ist Thema des folgenden Kapitels Kapitel 4 Frameworks f r WAM C Bibliotheken BibV30 Seite 61 Kapitel 4 Frameworks f r WAM C Bibliotheken am Arbeitsbereich Softwaretechnik Am Arbeitsbereich Softwaretechnik werden Frameworks entwickelt und verwendet um die Anwendungsentwicklung nach WAM zu unterst tzen Motivation dieser Arbeit sind hieraus gewonnene praktische Erfahrungen mit objektorientierten Klassenbibliotheken hinsichtlich deren Probleme und Nutzen Vor diesem Hintergrund beschreiben die folgenden Abschnitte Rahmenbedingungen und Entstehungsproze des heutigen WAM Frameworks BibV30 4 1 stellen e
60. Elementen st ndig neu gezeichnet wird Mit der gegebenen Hardware kam es zu Situationen da die Ereignisse der Maus Bewegung nicht mehr zeitgerecht verarbeitet wurden Eine Kombination aus beiden Mechanismen Zeichenmodus XOR und gleichzeitig Double Buffering erwies sich als optimale L sung f r die Anzeige bewegter Objekte Im Framework gab es keinen Begriff der direkten Manipulation und somit auch keine explizite Unterst tzung hierf r Infolgedessen bernahm die IAK diese Aufgabe und benutzte f r das visuelle Feedback w hrend der Benutzerinteraktion dieselben Methoden zur Darstellung der graphischen Elemente wie f r die statische Anzeige des Ergebnisses nach der Ausf hrung Somit konnte grunds tzlich nur im Modus XOR gezeichnet werden um direkte Manipulation nicht v llig auszuschlie en Die BibV30 f hrt Manipulatoren als eigene Interaktionstypen ein siehe unten und trennt so die Darstellung graphischer Elemente von deren Manipulation Nur f r letzteres bestehen die genannten Probleme nur w hrend der Bewegung von Elementen trifft die Argumentation f r den Zeichenmodus XOR zu Interaktionstypen f r die Darstellung der Grafikobjekte also tIATGraphic k nnen dem in Editoren verbreiteten Prinzip bereinander liegender Elemente folgen diese k nnen sich ganz oder teilweise berdecken aber nicht gegenseitig ausl schen F r den Interaktionstyp tIATManipulator besteht die Alternative den Modus XOR weiterhin zu benutzen
61. Handle bestimmt wer den Fast nur in dieser speziellen Form lassen sich frei gezeichneter Linienketten verformen hier erh lt jeder Ber hrungspunkt zweier Linien einen solchen Punkt zum Anfassen Unterschiede dieser dritten Art von Manipulatoren gegen ber den anderen beiden betreffen sowohl Darstellung als auch Handhabung Die genannten Punkte oder Handle geh ren nicht zu den Grafikobjekte sondern zum Manipulator W hrend ein Lasso als Interaktionstyp solange nicht sichtbar in Erscheinung tritt bis der Benutzer diesen Manipulator aktiviert ist der Handle immer anzuzeigen Aus diesem Grund verf gt die Klasse tIATManipulator ber eine Methode Show die per Default leer implementiert ist Nach dem Zeichnen aller tIATGraphics ruft tIATCanvas f r alle eingef gten tIATManipulator Objekte die Methode Show auf Somit liegen die Handle in einer zus tzlichen Ebene oberhalb alle Grafiken Abbildung 4 15 a zeigt sichtbare Punkte f r die Verformung eines teilweise berdeckten Objektes Eben diese Eigenart wirkt sich auf die Handhabung aus obwohl das Grafikelement an seiner unteren rechten Ecke nicht sichtbar ist kann es mittels des Handle doch vergr ert werden Abbildung 4 15 b Das nicht verdeckte Objekt in oberster Mit dem Handle wird ein verdecktes Ebene wird selektiert und verschoben Objekt in unterer Ebene manipuliert Abbildung 4 15 a Objekt mit normalem Manipulator bewegen
62. IVorbereitung der direkten Manipulation falls zustaendig setze IsActivated virtual void PrepareEvent int _iKey int _iState IKeyboard Event virtual void PrepareEvent int _iButton int _iState long _IX long _IY IHandle virtual void PrepareEvent int _iButton int _iState bool _bHit IMouse Event virtual void SetGraphics tExtOrdCol lt tlATGraphic gt _pGraphics virtual void SetCanvas tXCanvas _pCanvas IIsolange IsActivated gueltig ist gelangen alle Events zum aktiven Manipulator virtual void AcceptEvent int _iKey int _iState IKeyboard Event virtual void AcceptEvent int _iButton int _iState long _IX long _1Y bool _bHit Mouse Button Down virtual void AcceptEvent int _iButton int _iState long _IX long _1Y IMouse ButtonUp virtual void AcceptEvent int _iState long _1X long _1Y IMouse Event Move Abbildung 4 14 Schnittstelle LATManipulator Ausschnitt Zur Aufgabe des tIATCanvas geh rt neben Verwaltung und Anzeige der Grafik IAT s die Verwaltung und Aktivierung von Manipulatoren Die IAK kann ein oder mehrere Manipula tor Objekte in den Canvas einf gen alle oder einzelne wieder entfernen Verwaltet ein Canvas mehrere Manipulatoren so entscheiden diese selbst ob sie f r jeweilige Ereignisse zust ndig sind Im wesentlichen h ngt dies von dem benutzten Maus Knopf ab evtl von gleichzeitig gedr ckten Modus Tasten Alt Shift Flexib
63. Kenntnisse im Bereich der Informatik zu entwerfen z B unter Mitwirkung von Arbeitspsychologen oder auch Grafikern Direkte Manipulation hat sich als geeignete Umgangsform erwiesen zur Zeit ist dies in der BibV30 leider noch nicht umgesetzt Der Interface Builder f r TJATMotif ist textbasiert allerdings kann die Anpassung zur Laufzeit erfolgen also mit sofortiger Kontrolle der Auswirkung Neuer Ansatz Trennung Interaktionsformen und Pr sentation WAM Frameworks mit Interaktionstypen haben mit der Entkopplung zwischen Application Framework und konkreter IAT Bibliothek sowie der Auslagerung der Oberfl chengestaltung in spezielle Werkzeuge und damit erzeugter Ressourcen das Ziel portabler Anwendungen zu einem Gro teil erreicht Verschiedene Arbeiten besch ftigen sich mit der Problematik z B Fr se96 f r StarView Der gr te Nachteil heutiger L sungen und der BibV30 liegt in der direkten Orientierung implementierter Interaktionstypen an vorhandenen Widgets eines GUI Systems statt der Beschr nkung auf Formen der Interaktion Grundlage der folgenden Darstellung sind neben eigenen berlegungen vor allem Ergebnisse einer Serie von inzwischen elf halbt gigen Workshops zum Thema Interaktionsformen in etwa monatlichem Abstand Zentrales Diskussionsthema im festen Teilnehmerkreis von ca 6 bis 9 Personen sind allgemeine Formen der Benutzerinteraktion und deren Pr sentation Seite 80 Kapitel 4 Frameworks f r WAM Wichtig is
64. Kommando Schnittstelle kennt wird die Manipulatoren nicht verwenden Entsprechend den in 4 3 aufgestellten Anfor derungen an die BibV30 handelt es sich um einen zus tzlichen optionalen Mechanismus Nach diesem kleinen Ausflug komme ich zur ck zur technischen Beschreibung Im einzelnen gibt es eine kleine Anpassung der Klasse tATGraphics wesentliche Erweiterungen betreffen tIATCanvas und die GFX Klassen Kern des Konzeptes ist die genannte abstrakte Oberklasse tIATManipulator und deren konkreten Implementationen f r spezifische Anwendungen Manipulatoren haben die Aufgabe dem Benutzer w hrend der Interaktion direktes Feedback zu geben den Abschlu der Handlung festzustellen bzw einen Abbruch zuzulassen und stellen f r die tats chliche nderung der graphischen Komponenten erforderliche Informationen ber die Interaktion bereit Die Auswertung dieser Informationen und somit die Durchf hrung der Interaktion ist Aufgabe der Interaktionskomponente eines Werkzeuges Diese IAK erzeugt auch die Manipulator Objekte gem 4 4 3 entf llt im WAM Kontext die Unidraw Klasse Tool Abbildung 4 14 zeigt die Schnittstelle der Klasse tIATManipulator in Verbindung mit den Aufgaben anderer Komponenten ergibt sich deren Bedeutung class HA TManipulator public tHATBase public virtual void Show void CancelManipulation Micht virtual in abgeleiteten Klassen NICHT berschreiben void CommitManipulation bool sActivated O
65. Konzeptionelle und technische Weiterentwicklung eines objektorientierten Frameworks nach der Werkzeug Material Metapher Diplomarbeit Universit t Hamburg Fachbereich Informatik Arbeitsbereich Softwaretechnik Ulfert Wei Betreuung Prof Dr Heinz Z llighoven Dr Ingrid Wetzel II Diese Diplomarbeit wurde am Fachbereich Informatik der Universit t Hamburg zur teilweisen Erf llung der Anforderungen zur Erlangung des Titel Diplom Informatiker eingereicht Erkl rung Ich versichere hiermit diese Arbeit selbst ndig und unter ausschlie licher Zuhilfe nahme der in der Arbeit aufgef hrten Hilfsmittel erstellt zu haben Hamburg den 10 06 1997 Ulfert Wei Hirschbergstra e 5 23617 Stockelsdorf Prof Dr Heinz Z llighoven Erstbetreuer Dr Ingrid Wetzel Zweitbetreuerin Fachbereich Informatik Arbeitsbereich Softwaretechnik Universit t Hamburg Vogt K lln Str 30 22527 Hamburg Gliederung Kapitel 1 Einleitung und Motivation uuunnnnnnnnnsennnnnnn Aufbau des Textes Textkonventionen und grafische Darstellungsmittel Kapitel 2 Begriffe und Literatur uurnnuunnnnnnsnnnnnnnnnnnnnnnnn 2 1 Framework Begriffe 8 2 1 1 Bausteinklassen und Bibliotheken 11 2 1 2 Definition Framework 13 2 1 3 Application Framework 15 2 1 4 Arten der Wiederverwendung 19 2 2 Design Pattern 28 2 2 1 Motivation f r Muster 28 2 2 2 Aktuelle Entwicklungen 30 2 2 3 Pattern Language Pattern System Hand
66. Lewis95 Konsequenz dieser Konstruktion ist die Umkehrung des Kontrollflusses bekannt als Hollywood Prinzip don t call us we call you PLoP95 Der Anwendungsentwickler entwirft die Komponenten seiner Anwendung ist aber nicht f r die richtige Aufrufreihenfolge der Anwendungs und Framework Komponenten verantwortlich Besonders Application Frameworks werden f r jeweils einen bestimmten Anwendungsbereich entwickelt und stellen eine Programmierschnittstelle auf sehr hoher Ebene zur Verf gung Diese Frameworks sind bereits vollst ndige Anwendungen Lewis95 bzw beinhalten f r eine Gruppe gleichartiger Anwendungen die komplette Infrastruktur Der Entwickler kann sich somit auf die spezifischen Teile seines Projektes konzentrieren und sich dabei auf eine erprobte Architektur des System verlassen Neben einer k rzeren Entwicklungszeit f r einzelne Komponenten erm glichen Frameworks eine hohe softwaretechnische Qualit t der Produkte Innerhalb einer Organisation stellt das verwendete Framework Gemeinsamkeiten aller auf dieser Basis entwickelten Anwendungen sicher und erleichtert somit sowohl die Wartung und Weiterentwicklung der einzelnen Anwendungen als auch deren Benutzung infolge gleichartiger Bedienung In dieser Arbeit werde ich berwiegend den gebr uchlichen englischen Begriff Framework verwenden Ein gebr uchlicher deutscher Begriff ist mir nicht bekannt Allerdings verwendet BBE95 hier Anwendungsumgebun
67. Literatur Seite 43 Auch die Bedeutung eines Leitbildes f r die Softwareentwicklung wird erl utert Dieses wird als Kontext der vorgestellten Pattern verstanden MVC basiert nach RZ95 auf dem sehr all gemeinen Leitmotiv der direkten Manipulation WAM basiert auf dem weitaus spezifischeren Leitbild des gut ausgestatteten Arbeitsplatzes f r Experten bzgl der jeweiligen T tigkeiten Dieses Leitmotiv bildet den Hintergrund f r die Software Entwickler und bestimmt die Anforderungen an die konstruierten Anwendungssysteme RZ96 A leitmotif is a broad picture which can evolve a vision of the future system It makes the underlying beliefs and values explicit that drive software design as a whole F r das Verst ndnis und die erfolgreiche Anwendung der WAM Pattern ist die Kenntnis dieses Hintergrundes entscheidend Auch andere Design Pattern setzen ein gemeinsames Grundverst ndnis von Autor und Anwender voraus Hierzu dient der Abschnitt Kontext in den meisten Beschreibungsschemata f r Pattern wobei eine vollst ndige Beschreibung jedoch grunds tzlich nicht m glich ist Patterns can only be communicated and understood sufficiently well if authors and readers share a common background in the relevant domains The background cannot be formalized or fully described but it has to be shared to some degree in order to establish a mutual understanding and a shared practice RZ96 Anwendungsentwicklung im
68. Rahmen der Werkzeug und Material Metapher wird durch die vorgestellten Metaphern und Entwurfsmuster unterst tzt Frameworks k nnen hier noch einen Schritt weiter gehen indem ein Application Framework bereits eine generische WAM Applikation zur Verf gung stellt Aufgrund der geringen Einschr nkung des Anwendungsge bietes kann dabei eher von einer Anwendungsumgebung gesprochen werden als von einem Dom nen Framework Einige Design Pattern werden hier bereits passend implementiert um so die Implementation eigener Funktions und Interaktionskomponenten vorzubereiten das Framework realisiert die bliche Infrastruktur aller auf diesem Konzept aufbauender Anwendungen Hierzu geh rt ein Benachrichtigungsmechanismus ebenso wie ggf die Implementation von Postk rben Auf Basis einer solchen Anwendungsumgebung werden innerhalb einzelner Firmen oder Branchen eigene Dom nen Frameworks entwickelt Im Zusammenhang mit der Methode WAM ergibt sich ein weiterer Aspekt der Umsetzung in konkrete Frameworks mit zugeh rigen Beispielanwendungen diese k nnen die Lehre unter st tzen An Universit ten lernen die Studenten die Konsequenzen der Methode praktisch kennen Erweiterungen der Design Pattern werden hier getestet N heres zu diesem Aspekt folgt in Abschnitt 4 5 Seite 44 Kapitel 2 Begriffe und Literatur 2 3 3 Frameworks und Subwerkzeuge Objektorientierte Programmierung im allgemeinen und Frameworks im speziellen verfolgen das Ziel der Wi
69. Systeme bleibt M glich sind vielleicht Ausschnittsvergr erungen der Anwender k nnte Details ein und ausblende nicht aber das Material selbst manipulieren F r die Darstellung statistischer Daten lie en sich z B durch das Anklicken mit der Maus n here Informationen selektieren Balken eines Diagramms per direkter Manipulation anordnen und ggf die Farben beeinflussen Besser geeignet ist die bersichtsanzeige von Hypertexten Direkte Manipulation eignet sich f r das Anlegen Korrigieren und L schen von Verbindungen oder Knoten und zum Navigie ren im Netz Knoten ffnen per Doppelklick Zus tzlich nimmt der Anwender eine topographische Anordnung vor um sich so eine eigene Sicht auf das Netz zu schaffen Echte graphische Editoren ergeben sich wenn z B Organigramme nicht nur gezeigt sondern auch ge ndert werden wenn wirklich graphisches Material vom Anwender manipuliert wird Anwendungen innerhalb des WAM Frameworks Gute Beispiele finden sich bei den WAM Konzepten f r Kooperatives Arbeiten Proze mu ster sind ein spezielles graphisches Material da der Bankmitarbeiter zwecks Koordination der T tigkeit einsieht um Erledigungsvermerke erg nzt oder ggf auch entsprechend konkreter Umst nde anpa t Ohne direkte Manipulation als einfaches Mittel der Bedienung l t sich ein akzeptables Werkzeug kaum konstruieren Der elektronische Schreibtisch als sichtbares Element der Umgebung fehlt leider noch in der BibV30 ist auc
70. W hrend der Manipulation vermittelt ein Manipulator Objekt dem Benutzer einen Eindruck direkter Beeinflussung der Grafikelemente Diese Manipulatoren werden von dem aktiven Werkzeug erzeugt ggf von gerade selektierten Component Views abh ngig Nach Abschlu der Aktion generiert das Werkzeug mithilfe des Manipulators ein Command Objekt zur effektiven Ausf hrung der Aktion Unidraw kann die Pin Connector O Beweglichkeit von Slot Objekten durch At paq tribute einschr nken ebenso wird die Minimal Gr e Verkn pfungen Normal Gr e Reaktion auf Ver Pin Pin feste Verbindung O formung spezifiziert Pin Sot DI C Connectoren legen Beziehungen zwi Slot Slot schen den einzelnen Pad Pin Grafikelementen fest vgl Abbildung 3 3 n here Erl uterungen siehe 4 4 2 Abbildung 3 3 a Connector b Stretchability stretch limits v v h h Maximal Gr e Neben der Darstellung am Bildschirm durch graphical views k nnen zu jedem component subject beliebig viele external views bestehen die z B Postscript generieren oder aber auch eine Liste der im Schaltplan verwendeten Elemente in einer f r andere Werkzeuge geeigneten nicht graphischen Form External Representation Unidraw ist im Gegensatz zu technischen Basis Interviews nicht als allgemeines Application Framework Anwendungsumgebung ausgelegt sondern spezifisch f r den Anwendungstyp grafischer Edito
71. arView Diese Frameworks bieten eine einheitliche Schnitt stelle unter diversen Betriebs und Fenstersystemen Die Anwendung wird ohne nderungen mit der entsprechenden Version bzw auf dem geplanten Zielsystem bersetzt die Umsetzung erfolgt vollst ndig innerhalb des Frameworks Voraussetzung sind hnliche Darstellungs und Interaktionsformen auf allen unterst tzten Plattformen Um bestehende Unterschiede zu berbr cken gibt es verschiedene M glichkei ten Einfach ist die Beschr nkung auf die Schnittmenge der auf allen Systemen verf gbaren Widgets jedoch kann auch die Vereinigungsmenge durch zus tzliche Implementation der bisher nicht vorhandenen Elemente erreicht werden StarView wurde ausgehend vom Fenstersystem MS Windows entwickelt und hat dort vorhan denen Widgets in andere Umgebungen bertragen ET verwendet nicht die vorhandenen Toolkits als Basis sondern implementiert eigene Widgets Damit kann auf demselben Rechner zur Laufzeit wahlweise Macintosh look amp feel oder Motif simuliert werden Dies zeigt aber zugleich auch ein wesentliches Problem plattformunabh ngiger Frameworks auf sollen die Anwendungen sich auf jeder Plattform gleich pr sentieren oder mu der jeweilige Styleguide eingehalten werden Basierend auf der WAM Methode ergibt sich ein anderer L sungsansatz dieser Problematik Nach WAM entwickelte Anwendungen machen grunds tzlich eine Trennung zwischen Funk tionalit t und Interaktion vergleichbar MV
72. as Framework Fr he Macintosh Applikationen und Gespr che mit deren Entwicklern erm glichten es den Framework Designern die Anwendungsdom ne kennenzulernen Testversionen wurden fr hzeitig ausgeliefert und mit den Anwendern diskutiert Die weitere Entwicklung entspricht laut Rosenstein95 dem blichen Framework Lifecycle Bei wachsender Anzahl an Benutzern werden verst rkt Schnittstellen konstant gehalten im Gegensatz zu relativ h ufigen Struktur nderungen in der Anfangsphase Optimales Design auf Basis jeweils aktueller Erkenntnisse wird Kompromissen zugunsten bereits bestehender Anwendungen geopfert Seite 48 Kapitel 3 Einsatz der Frameworktechnik 3 2 Fenstersysteme Ausgangspunkt vieler Framework Entwicklungen war und ist eine leichtere Programmierung graphischer Benutzungsschnittstellen Verschiedene Autoren z B Calder95 Pree94 oder WG94 nennen als Motivation den hohen Aufwand diese f r den Benutzer der Anwendungen vorteilhaften Oberfl chen zu programmieren WG94 easy to learn and fun to use Constructing such interfaces often requires considerable effort Pree94 The development of easy to use consistent direct manipulation graphic user interfaces GUIs is a difficult and tedious task 3 2 1 Interviews So war die mangelnde Unterst tzung durch GUI Tools besonders f r UNIX Workstations Anla f r das 1985 begonnene Projekt Interviews ein GUI Application Framework f r das X
73. aus einer Menge von Objekten die eine generische L sung f r eine Reihe verwandter Probleme implementieren Es legt die Rollen der einzelnen Objekte und ihr Zusammenspiel fest Damit definiert das Framework auch jene Stellen an denen die Funktionalit t erweitert und angepa t werden kann Zus tzlich stellt diese Definition klar da Frameworks jeweils f r verwandte Problemstellungen entworfen werden Gegen ber Bausteinbibliotheken z B Beh lterklassen ist dies ein cha rakteristischer Unterschied da diese berwiegend von spezifischen Anwendungen unabh ngig entworfen und wiederverwendet werden Dazu schreibt JF88 A framework on the other hand is an abstract design for a particular kind of application Pree94 sieht Bausteinklassen und Frameworks als verschiedene Ebenen der Wiederverwendung rwo principal levels of software reusability 1 reuse of single software components 2 reuse of software ar chitectures wobei Frameworks die technischen M glichkeiten objektorientierter Sprachen zur Wiederverwendung optimal ausnutzen The concepts inheritance and dynamic binding are sufficient to construct frameworks that is reusable semifinished architectures for various application domains Frameworks represent the highest level of reusability known today made possible by object oriented concepts Pree94 Frameworks dienen der Wiederverwendung im Gro en der Schwerpunkt liegt nicht auf der Wieder
74. aut Gamma92 Die Wiederverwendung von Design Strukturen und Design Erfahrungen Dem Designer werden f r diesen Zweck eine Sammlung abstrakter Design Strukturen zur Verf gung gestellt die er beim Entwurf anwenden kann Gamma et al sehen Design Pattern als Mittel die schwierige Aufgabe des objektorientierten Entwurfs hinsichtlich Wiederverwendbarkeit zu bew ltigen Ausgehend von der Erkenntnis erfahrener Entwickler flexible L sungen nicht im ersten Versuch zu finden sollen Design Pattern die gewonnenen Erfahrungen der Experten such experience is part of what makes them experts GoF95 festhalten und damit anderen Entwicklern verf gbar machen Kapitel 2 Begriffe und Literatur Seite 29 Design Patterns capture solutions that have developed and evolved over time A designer who is familiar with such pattern can apply them immediately to design problems The purpose of this book is to record experience in designing object oriented software as design patterns Our goal is to capture experience in a form that people can use effectively Booch meint im Vorwort zu GoF95 da Muster in den meisten objektorientierten System enthalten sind object oriented architectures are full of patterns und deren ausdr ckliche Beachtung zu einfacheren und besser verst ndlichen Architekturen f hren kann Buschmann et al BMRSS96 motiviert Design Pattern hnlich Patterns help to bu
75. aw defines a reusable design for graphical object editor Hence it can reduce design implementation time dramatically Seite 50 Kapitel 3 Einsatz der Frameworktechnik Nachfolgend werden wichtige Aspekte des Unidraw Frameworks n her erl utert die dessen Charakter als Dom nen Framework veranschaulichen Black Box Wiederverwendung ist nur sehr begrenzt m glich Parameterklassen sind kaum vorhanden Vlissides90 identifiziert die wesentlichen Hot Spots ausdr cklich und realisiert deren Flexibilit t durch Anwendung von Design Pattern Diese werden in seiner Dokumentation 1990 allerdings nicht ausdr ck lich erw hnt und als solche beschrieben genannt und ausgef hrt wird nur die direkte Manipulation als Leitbild und die MVC Architektur s u Grundlage des Unidraw Frameworks sind die vier Basisabstraktionen Component Tool Command und External Representation Gem Vlissides95 beschreibt Component die Darstellung und das Verhalten Tool erm glicht die direkte Manipulation Command f hrt eine Operation auf Component aus und die External Representation erm glicht eine Umsetzung zwischen der Darstellung eines Component Objektes und des zugeh rigen Dateiformates Benutzung Editoren zeigen mehrere Views auf _ ein Subject in je eigenem Viewer ani gt J Jede Applikation hat genau ein Unidraw Objekt das eine Command Liste Components bestehen aus Subject und View verwalte
76. berfl che Kapitel 1 Einleitung und Motivation Seite 7 Design Pattern als aktuelles Wiederverwendungskonzept werden ausf hrlich diskutiert neuere Auspr gungen und Schwerpunkte vorgestellt Den Bezug zur Framework Konstruktion hebe ich hervor auch die Darstellung der WAM Methode ist hierauf ausgerichtet Das Ende dieses Kapitels bildet eine Zusammenfassung der begrifflichen Unterscheidungen Aufbauend auf diesen Ergebnissen folgt in den Kapiteln 3 und 4 eine Einordnung verschiedener Application Frameworks Im berblick werde ich einige popul re Frameworks vorstellen Kapitel 3 Fortschritte der Framework Technik exemplarisch veranschaulichen und einen Vergleich zudem WAM Framework BibV30 vorbereiten Zentrales Anliegen in Kapitel 4 ist die Darstellung der Entwicklung dieses Application Frameworks Einzelne Punkte der konzeptionellen und technischen Weiterentwicklung werden erl utert und deren Bedeutung diskutiert Nach einer Kurzdarstellung diverser von verschiedenen Personen durchgef hrter nderungen werde ich die von mir aus anderem Kontext in das Framework portierte Grafik Abstraktion detailliert betrachten Vor dem Hintergrund dieser konkreten Erfahrungen setze ich mich im 5 Kapitel mit der Strukturierung von Bibliotheken auseinander Meinen Vorschlag mit Schwerpunkt auf WAM Application Frameworks und konkreter Umsetzung in der BibV30 vergleiche ich mit Ans tzen in der Literatur und kl re die Frage inwieweit ein Struktursc
77. bernahme eines f r die Bibliothek neuen Konzeptes der direkten Manipulation f r Grafikkomponenten ermutige ich zum Bau von Br cken zwischen der WAM Welt und fremden Entwicklungen die Konzepte sind vielleicht nicht direkt vertr glich aber vielfach doch anpa bar Mit der Strukturierung der BibV30 stelle ich den berblick wieder her Benutzer k nnen sich daran orientieren Entwickler ihre Ergebnisse einordnen Was noch fehlt sind eben diese Er weiterungen der Framework Sammlung ist die Fertigstellung lange geplanter sowie neuer Komponenten Erst diese k nnen meine Arbeit evaluieren die Benutzer bewerten und pr fen meine Auffassung zur Verst ndlichkeit V llig offen ist meine Hoffnung die C Bibliotheken praxisnah zu verwenden und meine theoretische und am Beispiel vollzogene Einbettung in ein Dom nen Framework umzusetzen Den Rahmen f r weitere Entwicklung der BibV30 und deren Einsatz in zusammenh ngen Arbeiten gibt derzeit eine Lehrveranstaltung am Arbeitsbereich im kommenden Jahr kann dann wohl Bilanz gezogen werden Seite 128 AIS77 AGO95 Alexander79 Andert95 BG96 BBE95 BBLSSZ94 BGKLRZ97 BGKZ96 BJ94 Bleek97 BMRSS96 BMRSZ96 BR96 Calder95 Coplien92 ECOOP93 ECOOP94 FH96 Floyd94 Fricke96 Fr se96 Literaturverzeichnis WAM Frameworks Christopher Alexander Sara Ishikawa Murray Silverstein mit Shlomo Angel Ingrid Fiksdahl King
78. buch 33 2 2 4 Frameworks und Design Pattern 34 2 3 Werkzeug und Material Metapher 38 2 3 1 Entwurfsmetaphern 39 2 3 2 Softwaretechnische Umsetzung 41 2 3 3 Frameworks und Subwerkzeuge 44 2 4 Begriffsbildung im berblick 45 Kapitel 3 Einsatz der Frameworktechnik 222 47 3 1 Historie 47 3 2 Fenstersysteme 48 3 2 1 Interviews 48 3 2 2 Unidraw Graphische Editoren 49 3 2 3 Plattformunabh ngigkeit 52 3 3 Dokumentenbasierte Editoren 53 3 3 1 ET 53 3 3 2 MFC Erg nzung der Frameworktechnik durch Tools 56 3 4 Kombination kleiner Frameworks Taligent 57 3 5 Zusammenfassung 59 Kapitel 4 Frameworks f r WAM zzuuuuuusnnnunnnnnnnnnnnnnnnnnannnn 61 4 1 Entstehung und Rahmenbedingungen 61 Frameworks f r Lehre und Forschung 62 4 2 Einordnung in die Framework Landschaft 64 4 3 Entwicklung Ma nahmen Ziele und Ergebnisse 66 4 3 1 Erweiterung der Anwendungsumgebung 66 4 3 2 Grundlagen und Struktur 73 4 3 3 Anschlu des Fenstersystems 77 4 4 Integration fremder Konzepte Graphik 84 4 4 1 Graphikkonzept der Anfangsphase 84 4 4 2 Vorstellung einiger Unidraw Konzepte 87 4 4 3 Konzepte aus Unidraw f r WAM 92 4 4 4 Technische Umsetzung innerhalb des Frameworks 95 4 4 5 Anwendung der Grafik Frameworks 104 4 5 Erzielte Fortschritte und weitere Planung 108 Kapitel 5 Strukturierung von Framework Bibliotheken 109 5 1 Ziele der Strukturierung 110 5 1 1 Lernaufwand bei der Framework Benutzung 110 5 1 2 Wartung und E
79. ch auch Produkte von Drittanbietern verwendet die z B als Schnittstellen zum Betriebssystem zu einer Datenbank und vor allem zur graphischen Benutzungsschnittstelle dienen Auf h he ren Ebenen kann eine Kapselung vorgenommen werden oder die angebotene Funktionalit t wird von der Anwendung direkt benutzt In jedem Fall lassen sich diese externen Bibliotheken nicht notwendigerweise Frameworks als Teil der technischen Infrastruktur auffassen die Grundlage h herer Schichten ist Eine Gleichsetzung mit Spracherweiterungen oder Design Pattern scheint dagegen nicht angebracht beide Kategorien bestehen nebeneinander Als zweiten Teil des Rahmens f r Anwendungen haben ich methodisch gepr gte Frameworks innerhalb einer Bibliothek identifiziert Diese Sichtweise ist sicherlich begr ndet durch den gro en Einflu der Methode WAM auf die Entwicklung des Frameworks BibV30 Allgemein betrachtet geh ren hierhin all jene Kategorien von Klassen und Frameworks die direkte Grundlage der Anwendungsentwicklung sind Vor allem also Anwendungsumgebungen pr gen diese Schicht da solche Frameworks eine komplette Infrastruktur f r konkrete Anwendungen erstellt Erg nzt wird die Kategorie Application Frameworks um Konzepte am besten in einzelnen Mikro Frameworks verpackt aus denen sich letztlich das gro e Framework zusammensetzt Zielt die Anwendungsumgebung auf Arbeitspl tze f r mit Kooperativen T tigkeiten so gibt es sicher auch Konzepte f r deren K
80. charfe Abgren zung entf llt im Falle der erw hnten Migration Es gibt allgemeine Anwendungsumgebungen und weitaus st rker spezialisierte Dom nen Frameworks 2 1 3 Dabei bezieht sich der Begriff Dom ne entweder nur auf den Typ der mit dem Framework erstellten Applikationen oder aber bereits sehr speziell auf Anwendungen innerhalb einer bestimmten Branche oder Firma Dom nen Frameworks basieren vielfach auf Anwendungsumgebungen sehr spezielle Versionen k nnen von allgemeineren abgeleitet werden Bez glich der Wiederverwendung sind zu unterscheiden 2 1 4 e Black Box versus White Box Wiederverwendung ma geblich f r die Einordnung ist die Notwendigkeit von Kenntnissen der Implementation nicht aber die in der Literatur oft zu findende Verkn pfung mit objektorientierten Techniken der Wiederverwendung e Einsatz abstrakter oder konkreter Parameterklassen abstrakte Parameterklassen sind nicht Voraussetzung f r White Box Frameworks erleichtern diese Form der Wiederverwendung aber wesentlich Konkrete Parameterklassen ersetzen Implementation durch Konfiguration e Orientierung an Hot Spots und deren Flexibilit tsgrad es wird identifiziert welche Teile der Applikationen Standardisiert sind und welche flexibel bleiben Hot Spots Besonders flexibel sind zur Laufzeit variable Komponenten erreichbar durch Parameterklassen e Verwendung einer gemeinsamen Oberklasse Klassenhierarchien in Baumform werden gegen sogenannte W lder mit me
81. che Umsetzung innerhalb des Frameworks Konzepte aus Unidraw erg nzen die Grafik Komponenten in der BibV30 Einzelheiten zu den konkreten Klassen dokumentiert das Benutzerhandbuch Wei 97 WWW Dokument im Text der Diplomarbeit drucke ich Klassenschnittstellen nur auszugsweise ab Gegenw rtig hat das Mikro Framework f r graphische Komponenten innerhalb der BibV30 noch den Charakter eines Prototyps insbesondere fehlt der Einsatz und Test im konkreten Projekt nderungen gegen ber dem hier dargestellten Stand sind somit zu erwarten die grundlegenden Konzepte sollte dies aber nicht betreffen Aus der Diskussion in 4 4 3 ergeben sich verschiedene Bereiche eines Frameworks in der BibV30 Zum einen ist dies ein Interaktionstyp zur Pr sentation graphischer Elemente tIAT Graphic zum anderen die direkte Manipulation als neue Form der Interaktion tATManipulator Die Portabilit t der Interaktionskomponenten soll erhalten bleiben ein Wechsel des Fenstersystems darf nur den Austausch der Interaktionstypen bedingen Dazu beschreiben anwendungsspezifische GFX Klassen die Grafiken tIATGraphic wird mit einem GFX Objekt parametrisiert Die abstrakte Klasse tCanvas garantiert die Unabh ngig keit vom Fenstersystem indem diese ein Protokoll f r elementare Zeichenoperationen definiert GFX Klassen zeichnen sich selbst mittels dieser Operationen Die Darstellung der tIATGraphic Objekte erfolgt innerhalb einer Zeichenfl che tIATCanvas die diese
82. chie einer echten Klassifikation nach Beh lterkonzepten siehe Abbildung 4 2 Der Benutzer entscheidet sich f r das gew nschte Konzept einzig an der Stelle der Erzeugung eines Beh lters w hlt er die Implementationsform z B ein dynami sches Array mit schnellem Zugriff aber aufwendigerem L schen und Einf gen oder eine Double Linked List mit erh htem Platzbedarf Bezeichner und Schnittstellenparameter sollten statisch vom Typ einer m glichst abstrakten Oberklasse deklariert sein tUOrdTable tOrdTable tDQueue Klassenhierachie Vererbung tDictionary von links nach rechts tIntOrdTable tSortedTable tExtOrdTable tAssocList Duplikate tUOrdCol tCollection 1 Klassifikation nach tOrdCol Zugriffsmethode 2 Ordnung tIntOrdCol tSList tExtOrdCol tList 3 Art der Ordnung Abbildung 4 2 Beh lter Klassifikation der ConLib Vergleichbar den robusten ET Iteratoren enth lt die ConLib ein Konzept stabiler Cursors zu den Begriffen vgl Traub95 die in beliebiger Anzahl auf einem Beh lter arbeiten und auch bei nderung dessen Inhaltes in einem definierten Zustand bleiben Die ET erreicht dies z B durch den Trick verz gertes L schen Elemente bleiben erhalten bis kein Iterator mehr auf sie zeigt nur scheinbar da die Semantik teilweise vorhandenen Elemente fraglich ist Statt dessen erfa t die ConLib den Sonderfall expliz
83. chied hierzu steht das Konzept der Entwickler von ET WG94 beschreiben die Konzentration der Infrastruktur in einer gemeinsamen Oberklasse Object Gewisserma en ist dies eine erhebliche Erweiterung der Sprachfunktionalit t da alle Mechanismen implizit dem Anwender verf gbar sind Daraus folgt aber auch da nur bei einer n heren Untersuchung der Implementation die verwendeten Design Pattern gefunden werden Die BibV30 strebt explizite Bez ge auf h here objektorientierte Mechanismen an sieht diese nicht als einfache Spracherweiterungen Infolge dessen gibt es eine Reihe Mikro Frameworks die jeweils ein Design Pattern zur Vorlage haben Eines dieser Design Pattern ist das in GoF95 beschriebene Singleton Pattern Willamowius97 beschreibt eine verbesserte Versi on des Musters eine abstrakte Implementation vgl Vlissides96 Im Gegensatz zum Original sind konkrete Singleton Klassen hiervon ableitbar Kapitel 4 Frameworks f r WAM C Bibliotheken BibV30 Seite 77 Einige derzeit implementierte Mikro Frameworks f r Design Pattern beschreibt 4 3 3 unter dem Stichwort Beobachtung vor Technisch lie e sich statt dessen ein einziger Mechanismus verwenden z B Change Propagation wie in ET oder der im fr heren WAM Framework vorhandene Notifier Die Vorteile der jetzt gew hlten L sung werden unten beschrieben Weitere Implementationen sind bereits geplant z B Serializer f r Persistenz ein Mangel stellt die momentan
84. chterungen bringt ClassWizard und ResourceEditor InterfaceBuilder wobei letzterer auch in anderen Systemen blich ist Diese Werkzeuge erm glichen Anf ngern schnell eine Anwendung zu erstellen ohne daf r gro e Teile der Framework Architektur verstehen zu m ssen Damit wird ein gro es Problem der Framework Technik entsch rft und die Black Box Wiederverwendung unterst tzt Allerdings beschr nken sich die Werkzeuge auf diesen schnellen Einstieg Die fehlende Dokumentation ber interne Strukturen des MFC Frameworks erschwert die Verwendung f r gr ere Applikationen Weder das Leitbild ist Konkret beschrieben noch werden Hot Spots z B durch Design Pattern dokumentiert Aufgrund des relativ geringen Leistungsumfanges des MFC Frameworks sind Anpassungen und Erweiterungen h ufig erforderlich Es handelt sich um White Box Wiederverwendung detaillierte Kenntnisse der Struktur sind notwendig Grunds tzlich kann dieses Problem nicht durch die Erweiterung des Frameworks oder dessen Werkzeuge gel st werden sondern nur durch geeignete Dokumentation Diese ist auch erforderlich um berhaupt die Eignung von MFC f r eine bestimmte Anwendung zu pr fen Kapitel 3 Einsatz der Frameworktechnik Seite 57 3 4 Kombination kleiner Frameworks Taligent Taligents Entwicklung CommonPoint bezeichnet Andert95 als eine gro e Sammlung von Frameworks auf deren Basis portable Systeme entwickelt werden k nnen CommonPoint uses framewo
85. d Software Development in a Banking Environment An Experience Report in ECOOP96 Kent Beck Ralph E Johnson Pattern generate architectures in ECOOP94 Wolf Gideon Bleek Erweiterung des Umgebungsbegriffs f r Anwendungssysteme die nach der WAM Metapher konstruiert wurden Diplomarbeit am Arbeitsbereich Softwaretechnik Fachbereich Informatik Universit t Hamburg 1997 Frank Buschmann Regine Meunier Hans Rohnert Peter Sommerlad Michael Stal Pattern Oriented Software Architecture A System of Patterns Wiley 1996 Dirk B umer Daniel Megert Dirk Riehle Wolf Siberski Heinz Z llighoven Serializer The Atomizer Efficiently Treaming Object Structures in PLoP96 Dirk B umer Dirk Riehle Late Creation A Creational Pattern in PLoP96 Paul Calder InterViews A Framework for X Windows in Lewis95 James O Coplien Advanced C Programming Styles and Idioms Addison Wesley 1992 O Nierstrasz Ed ECOOP 93 Object Oriented Programming Proceedings of 7th European Conference Kaiserslautern Germany July 1993 Lecture Notes in Computer Science 707 Springer Verlag Berlin Heidelberg New York 1993 Mario Tokoro Remo Pareschi Eds ECOOP 94 Object Oriented Programming Proceedings of 8th European Conference Bologna Italy July 1994 Lecture Notes in Computer Science 821 Springer Verlag Berlin Heidelberg New York 1994 Stephen Friedrich Keno Hame
86. d Meyer Reusable Software The Base Object Oriented Component Libraries Prentice Hall UK Hertfordshire 1994 David R Musser Atul Saini STL Tutorial and Reference Guide C programming with the Standard Template Library Addison Wesley Reading Massachusetts 1996 Object Oriented Programming Systems Languages and Applications Conference Proceedings ACM Press Vancouver British Columbia Canada 1992 Ron Perry The Displayer Data Pattern Language A Software Engineering Technique for GUJV Application Decoupling Department of Computer Science Tel Aviv University 1996 Seite 130 PLoP95 PLoP96 Pree94 Pree94a Pree95 Literaturverzeichnis WAM Frameworks John M Vlissides N Korth James O Coplien Eds Pattern Languages of Program Design Addison Wesley 1996 a book publishing the reviewed Proceedings of the Second International Conference on Pattern Languages of Programming Monticello Illinois 1995 Robert C Martin Dirk Riehle Frank Buschmann Eds Pattern Languages of Program Design 3 Addison Wesley 1997 Wolfgang Pree Design Patterns for Object Oriented Software Development ACM Press Addison Wesley 1994 Wolfgang Pree Meta Patterns A Means for Capturing the Essentials of Reusable Object Oriented Design in ECOOP94 Wolfgang Pree Reusing Microsoft s Foundation Class Library A Programmer s Perspective in Lewis95
87. d Pattern wird zwischen IAT und IAK benutzt Technisch gemeinsam ist beiden Verfahren da die Funktionalit t an der Klassenschnittstelle erkenntlich ist und direkt durch die Anmeldung f r spezielle Ereignis se bzw die bergabe konkreter Commands die Verbindung mit der zust ndigen Methode erfolgt Der Universalmechanismus f hrte zuvor oft zur Verwirrung da in der Methode Notify einer IAK gleicherma en Ereignisse von IAT s als auch der FK eintrafen Ausschlaggebend f r die jetzt unterschiedliche Anbindungen ist aber vor allem der methodische Hintergrund Seite 84 Kapitel 4 Frameworks f r WAM Funktionskomponenten haben einen Zustand den beliebig viele Interaktionskomponenten und Kontext FK s sondieren Demgegen ber sind Interaktionstypen als zustandslose Funktionen zu verstehen die irgendwann ein Ergebnis zur ck liefern Benutzerinteraktion und zwar an genau die IAK die den IAT erzeugt hat Die IAK kann vorher festlegen welche Aktion dann auszuf hren ist der IAT liefert den berechneten Wert direkt mit Parameter Demgegen ber kann die FK keine Aussage treffen welcher Teil ihres abstrakten Zustandes f r den Beobachter relevant ist diesen also nicht zusammen mit ihrem Signal bermitteln Erfolg der Diversifizierung sind bersichtliche Anwendungen die Mechanismen sind jeweils dem Verwendungszusammenhang angepa t Eigenst ndige Mikro Frameworks sind leichter nachzuvollziehen und die Verwendung wird expliz
88. den Events geh rende Event Stubs in der IAK f r welche Ereignisse sich die IAK registriert Beides lie sich fr her nur m hsam aus der Implementation der Klassen ermitteln Zusammenh nge sind jetzt direkt zu erkennen Kapitel 4 Frameworks f r WAM C Bibliotheken BibV30 Seite 83 Die Neuerung l ste am Arbeitsbereich eine ausf hrliche Diskussion ber die Verwendung von Statecharts bei der Konstruktion eines Werkzeuges aus da Ereignisse als Zustands berg nge innerhalb der FK interpretiert werden Eine Analyse bestehender Werkzeuge ergab da hier teilweise Fehler in der Konstruktion vermeidbar gewesen w ren Zudem zeigte sich eine nicht ad quate Verwendung des Beobachtungsprinzips in einigen Anwendungssituationen Riehle93 betont hinsichtlich der Beobachtung da mit dem Aussenden eines Ereignisse keine Erwartung einer Reaktion verbunden ist Eine FK wei nicht ob sie berhaupt beob achtet wird Die Annahme einer Reaktion widerspricht dem Prinzip der losen Kopplung Im neuen WAM Framework realisiert eine Chain Of Responsibility vgl GoF95 und Rieh le96a die Weiterleitung von Anforderungen an verantwortliche Komponenten wenn die jeweilige Klasse nicht zust ndig ist Bisher wurde hierzu die Beobachtung als technisches Konstrukt benutzt bzw mi braucht Zwei Beispiele f r den Einsatz der Verantwortlichkeitskette erstens im Application Framework BaseFIAK Beendigung eines Werkzeuges durch dessen Kontext zweitens in d
89. den Schritt und bereits durchgef hrte Arbeiten es sagt aber nicht aus wie die Arbeiten zu geschehen ha ben Der Benutzer selbst entscheidet ob er seinen Teil der Arbeit erledigt hat und gibt die Vorgangsmappe dann explizit weiter indem er diese in seinen Postausgangskorb legt Nur an dieser einen Stelle wird ein Automat aktiv der den Transport aus diesem bestimmten Ort der Umgebung in einen Posteingangskorb einer anderen Umgebung veranla t Grunds tzlich ist zur konzeptionellen Ber cksichtigung kooperativer Arbeit anzumerken da nicht die Kooperation sondern jeweils genau bestimmte Situationen unterst tzt werden Hier wird eine Schw che in der CCW Diskussion gesehen GWZ96 Konsequenz f r die BibV30 ist die parallele Bereitstellung mehrerer jeweils zugeschnittener Konzepte Verteilung Proze r ume und asynchrone Beobachtung Verteilte Prozesse werden bez glich WAM derzeit untersucht jedoch ohne Zusammenhang mit der BibV30 vgl Bleek97 auch Fricke96 CORBA Ein besonderes Problem ergibt sich aus asynchronen Ereignissen wenn die Funktions und Interaktionskomponente eines Werkzeuges in eigenen Prozessen laufen Die BibV30 kennt zur Zeit keine Konzepte f r die Aufteilung einer Anwendung in parallele Prozesse Ansatzpunkt w ren Asynchrone Ereignisse als Alternative zur synchronen Beobachtung die in 4 3 3 vorgestellt wird Vor der effektiven Implementation bedarf es einer prinzipiellen Kl rung weiterer Auswirkung
90. der Funktionalit t stellt sich die Frage welche bestehenden Teile als Basis zu verwenden sind und welche Konsequenzen die Erg nzung an anderer Stelle bewirkt Auswirkungen wichtiger Fehlerkorrekturen auf bestehende Applikationen sind oft nicht zu vermeiden neue Komponenten mit zus tzlicher Funktionalit t sollten aber optional verwendbar sein hierzu siehe 5 1 3 Seite 114 Kapitel 5 Strukturierung von Framework Bibliotheken Auch wenn die Arbeit an dem Application Framework weitgehende Kenntnisse der Archi tektur voraussetzt diverse Mechanismen bekannt sein und neue Komponenten in das Leitbild passen m ssen so ist doch eine Begrenzung auf m glichst enge Bereiche anzustreben Ein umfassendes Verst ndnis kompletter Frameworks sollte nicht Voraussetzung sein Taligent s Architektur vgl Abschnitt 3 4 CommonPoint verwendet Frameworks ausgehend vom Betriebssystem bis hin zur Unterst tzung des Anwendungsentwicklers Das Konzept ist dabei gerade die Kapselung technischer Details auf unterer Ebene vor den Entwicklern der anwendungsorientierten Frameworks Ein neue Komponente des Application Frameworks wird erstellt ohne die Steuerung eines SCSI Laufwerkes zu verstehen Und genauso l t sich eine Portierung auf neue Hardware vornehmen nur durch Anpassung der technischen Basis komponenten Die Konstruktion auf h herer Ebene ist nicht betroffen Die Struktur des Application Frameworks erleichtert die Identifikation jeweils bet
91. die Anwendung mu bzgl eines neuen GUI portiert werden sondern lediglich die IAT Bibliothek Interaktionstypen sind mit der Anwendung ber das Command Pattern verbunden Werkzeugkonstruktion nach WAM ist Aufgabe des FIAK Application Frameworks Die Oberklassen f r Funktionskomponenten FKBase und Interaktionskomponenten IAKBase sichern passende Komponenten die Integration von Subwerkzeugen kapselt das Framework gegen ber der Anwendung und verwendet dabei das Entwurfsmuster Late Creation BR96 Voraussetzung ist ein per Pr prozessor Makros realisiertes Meta Objekt Protokoll MOP f r das je Klasse eine einfache Zeile zu erg nzen ist Neben dieser sehr allgemeine Anwendungsumgebung bestehen zwei spezialisierte Varianten deren Klassen jeweils von FKBase und IAKBase abgeleitet wurden Einerseits helfen FKMain und IAKMain bei der Implementation von Anwendungen mit einer Standard Men zeile Datei ffnen schlie en drucken beenden cut copy paste andererseits bietet der ToolCoordinator eine Sniff artige Infrastruktur f r Applikationen die mehrere gleichartige Materialien in jeweils eigenen Fenstern anzeigen Das erste Framework FKMain IAKMain stellt z B vor dem Beenden einer so erstellten Applikation die Sicherung evtl ge nderten Materials sicher Der ToolCoordinator l t dem Benutzer der Anwendung die Entscheidung ein Fenster f r neues Material wiederzuverwenden oder immer neue Fenster zu erze
92. die BibV30 eine weitere Anwendungsumgebung Das Hilfematerial besteht aus einem Hypertext der Benutzer sieht und ndert jeweils eine beliebige Anzahl von Hilfeknoten in jeweils eigenen Fenstern ToolCoordinator hat als popul res Vorbild die popul re Programmierumgebung Sniff deren hier betrachtete Besonderheit der Schalter frozen ist Der Benutzer entscheidet f r jeden Editor ob der dort angezeigte Knoten erhalten bleibt wenn er einen neuen Knoten l dt Die Anwendungsumgebung ToolCoordinator realisiert Subwerkzeuge die diesen Schalter in der Seite 72 Kapitel 4 Frameworks f r WAM IAK anzeigen und die Funktionalit t in der FK implementieren Subwerkzeuge der Anwen dung leiten sich von diesen Frameworkklassen ab Das Kontextwerkzeug verwaltet diese Subwerkzeuge Wird z B in einem Hilfeknotenbrowser per Doppelklick auf einen Hyperlink ein weiterer Knoten ge ffnet so pr ft die Kontext FK ob dieser Knoten gerade in einem anderen Browser angezeigt wird und bringt diesen ggf in den Vordergrund Anderenfalls wird der Knoten als neues Material in einen bestehenden Browser geladen soweit dieser als wiederverwendbar bei Sniff nicht frozen gekennzeichnet ist Sonst erzeugt das Kontext Werkzeug einen neuen Hilfeknotenbrowser f r das Material Zus tzlich realisiert das Framework einen komfortablen History Mechanismus Sowohl MainFIAK als auch ToolCoordinator fallen in die Kategorie Anwendungsumgebung Es wird keine fachlic
93. e Application Frameworks sich eventuell darauf die Anwendung in einem Fenster mit erweiterbarem Standardmen anzuzeigen Implementiert sind dabei bereits Aktionen wie Datei ffnen und schlie en oder Mechanismen f r Drag amp Drop Komponenten die bereits im Framework implementiert bzw mittels abstrakter Oberklassen definiert werden sind damit f r alle Anwendungen einheitlich Wieviel ein Framework von einer Anwendung eines bestimmten Gebietes abdeckt h ngt davon ab wie weit man die ben tigte Funktionalit t standardisieren und implementieren kann BBE95 Je enger das Anwendungsgebiet abgegrenzt ist desto mehr Standardisierung ist m glich So betont z B Pree94 die Nutzung der Frameworktechnik in Bereichen die ber die Kapselung von Fenstersystemen hinausgehen Application frameworks are not limited to the construction of direct manipulation graphic user interfaces Beispiele sind Betrieb Kapitel 2 Begriffe und Literatur Seite 17 systeme VLSI Routing und anderes Der Schwerpunkt liegt allerdings heute noch berwie gend auf dem GUI Sektor da diese Frameworks weitgehend dom nenunabh ngig und damit f r fast alle Programmierer n tzlich sind Bischofberger betrachtet die hohen Anforderungen an technische und gleichzeitig fachliche Qualifikation im jeweiligen Anwendungsfeld als haupts chliche Schwierigkeit die bisher die Entstehung branchenspezifischer oder unternehmensbezogener Application Frameworks weitge
94. e BibV30 richtet sich nicht auf eine bestimmte Dom ne sondern soll gewisserma en als Meta Dom nen Framework f r beliebige Anwendungsbereiche anpa bar sein Konkret ersetzt die Bibliothek in einer Struktur nach Abbildung 5 3 sowohl die linke als auch die rechte S ule und vereinfacht die Implementation fachlicher Frameworks mittlere S ule In der technischen Basis untere Schicht meiner Struktur bietet die BibV 30 hnliches wie das GEBOS System erwartet linke S ule Als Erweiterung kommt die Kategorie der objektori entierten Mechanismen hinzu also die Implementationen von Design Pattern WAM Frameworks decken den Desktop Layer ab wobei an diesem Punkt nicht die komplette BibV30 sondern nur einige Teile zu benutzen sind Als Standardbeispiel dieser Arbeit nenne ich wieder die Kooperation ber den Austausch von Vorgangsmappen mit Proze mustern und Postk rbe in der Bank gegen ber Gruppenarbeitspl tzen im Krankenhaus Stellt sich heraus da die softwaretechnischen Metaphern und Konzepte der Methode WAM f r einige Arbeitszusammenh nge nicht gen gen so kommt eine Erweiterung des Repertoires infrage Die Implementation eines neuen Konzeptes sollte nicht nur im Dom nen Framework sondern auch direkt in der BibV30 erfolgen also die WAM Frameworks erweitern Kapitel 5 Strukturierung von Framework Bibliotheken Seite 125 Der fachliche Bereich mu in jeder Anwendungsdom ne neu realisiert werden Hierzu z hlen
95. e benutzt vgl ET oder das technische Konstrukt der void Pointer Ersteres erlaubt alle von der allgemeinen Wurzelklasse Baumstruktur 2 1 4 abgeleiteten Objekte in einem Beh lter zu speichern Spezialisierung auf eine Unterklasse ist nur durch Ableitung eines neuen Beh lters m glich Das WAM Framework w hlte daher die andere M glichkeit und stellte Typsicherheit dadurch her da der Benutzer die Listenklasse des Frameworks nicht direkt benutzen konnte sondern Diese Problematik betrifft nur statisch getypte Sprachen Typ und Klasse werden hier synonym benutzt Seite 74 Kapitel 4 Frameworks f r WAM jeweils eigene Klassen ableiten mu te Zu implementieren waren jene Methoden die Objekte in die Liste einf gten bzw wieder herausgaben beide Methoden benutzten dieselbe Klasse der wegen Implementation mit void Pointern notwendige Type Cast war also sicher Der Be nutzer dieser Listen mu te immer selbst eigene Klassen implementieren andere Beh lterkonzepte fehlten in diesem Stand des WAM Frameworks vgl Riehle93 Mit den Templates in C entstand der Wunsch nach besseren Beh ltern die nun technisch m glich wurden Traub95 stellte fest da Implementationsvererbung f r Beh lterklassen Bibliotheken dominiert da hei t z B die Ableitung einer sortierten Liste von einer Liste da bei geht die Listeneigenschaft verloren an beliebiger Position einf gen zu k nnen Die ConLib folgt mit ihrer Hierar
96. e into a powerful framework Auch f r ET und MFC gilt das allgemeine Leitbild direkter Manipulation Dar ber hinaus liegt eine dokumentzentrierte Sichtweise vor Anwendungen sind daf r gedacht jeweils ein oder mehrere Dokumente anzusehen oder zu ndern Im Gegensatz zur Werkzeug Material Metapher sieht der Anwender direkt auf das Material Dokument und kann dieses ohne ein f r ihn erkennbares Werkzeug ver ndern 3 3 1 ET ET is a portable and homogenous object oriented class library integrating user interface building blocks basic data structures and high level application framework components ET eases the building of highly interactive applications with consistent user interfaces following the direct manipulation principle WG94 Ausgangspunkt f r ET war eine Architektur hnlich MacApp entwickelt hat sich eine plattformunabh ngige 3 2 3 v llig neue Architektur WG94 Wie bereits f r MacApp und Interviews motivieren auch die Autoren von ET die Entwicklung ihres Frameworks mit dem Aufwand GUI Benutzungsschnittstellen zu entwickeln Besondere Vereinfachungs m glichkeiten ergeben sich durch Redundanz infolge gleichf rmiger Schnittstellen in verschiedenen Applikationen Der Toolbox Ansatz stellt einzelne Widgets zur Verf gung nicht aber eine komplette Struktur f r die Anwendung ET ist mehr als ein Mikro Framework f r graphische Benutzungsschnittstellen Wie bereits MacApp verf gt ET ber d
97. e und Materialien eingef hrt entsprechend einem Ort an dem diese angeordnet werden k nnen vergleichbar dem Elektronischen Schreibtisch N here Erl uterung dieser Metapher finden sich in Gryczan95 eine Motivation f r den Bedarf an einer Umgebung gibt RZ95 A tool or a material is never found in isolation We always work in well organized places equipped with the things we need In a computer system there is no natural environment of this kind Kapitel 2 Begriffe und Literatur Seite 41 2 3 2 Softwaretechnische Umsetzung Die Implementation des Entwurfes anhand o g Design Metaphern wird durch passende Design Pattern erm glicht Im wesentlichen sind dies Kopplung von Werkzeugen und Material die Konstruktion komplexer Werkzeuge sowie die unabh ngige Implementation von Werkzeugfunktionalit t und deren Darstellung gegen ber dem Benutzer Zur Entkopplung spezifischer Werkzeuge von den bearbeiteten Materialklassen wird die Aspekt Metapher als eigenst ndige meist abstrakte Klasse umgesetzt Das durch Aspekt klassen spezifizierte Protokoll wird vom Material implementiert Werkzeuge verwenden nicht direkt die Materialklassen sondern nur Aspekte Sie k nnen damit Material immer dann bear beiten wenn dieses das vom Aspekt definierte Protokoll erf llt Die Implementation mit C setzt voraus da Materialklassen jeweils von den Aspektklassen erben Mehrfachvererbung Werkzeuge nutzen dann Polymorphie zur Bearbei
98. ederverwendung von Software Komponenten Design Pattern unterst tzen dieses Bestreben indem sie durch Kombination grundlegender objektorientierter Techniken wie abstrakte Oberklassen Polymorphie und dynamisches Binden flexible Verbindungen oder die Konfiguration von Frameworks zulassen Die Werkzeug Material Metapher als Methode zur objektorientierten Softwareentwicklung macht unter einem speziellen Leitbild Gebrauch von Entwurfsmetaphern und Design Pattern als Mittel zur softwaretechnischen Umsetzung der Entw rfe Zudem f hrt WAM die Trennung von Funktions und Interaktionskomponenten Aspekten als Bindeglied zwischen Werkzeug und Material und den Begriff des Subwerkzeuges ein Derart lose gekoppelte Komponenten sind leichter wiederzuverwenden z B gibt es Verschiedene IAK s f r eine FK Werkzeuge arbeiten nicht auf konkreten Materialklassen sondern nur auf abstrakten Aspektklassen und k nnen ohne nderungen auch neues Material bearbeiten Subwerkzeuge dienen der Zerlegung gro er Werkzeuge in kleinere eigenst ndige Klassen mit festgelegter Verantwortlichkeit und definierter Kooperation mit anderen Komponenten einer komplexen Anwendung Ein Sonderfall sind Subwerkzeuge als Mittel zur Wiederverwendung praktisch fertiger Teil Werkzeuge Neue Werkzeuge aus vorhandenen Subwerkzeugen aufzu bauen ist nur begrenzt m glich In einer konkreten Anwendung sind meist auch spezifische Komponenten erforderlich w hrend die Subwerkzeuge zwec
99. efined by protocol so the user needs to understand only the external interface of the components Thus this kind of a framework is called a black box framework Entsprechend definiert auch BBE95 die White Box Wiederverwendung Nachteilig ist demnach das notwendige Verst ndnis der Framework Implementation Der Benutzer ben tigt Kenntnisse der einzelnen Komponenten und deren Verbindungen Erweitert man ein Framework durch das berschreiben von Methoden spricht man von White Box Wiederverwendung Das Framework legt dabei wichtige Teile und Beziehungen fest Diese m ssen durch anwendungsspezifische Teile erg nzt werden Will man ein Framework so erweitern mu man in dieses hineinschauen und das Zusammenspiel der verschiedenen Teile verstanden haben Dagegen k nnen Klassen in Black Box Frameworks direkt benutzt werden Spezialisierung dieser Frameworks erfolgt nicht durch Anpassung einzelner Methoden in abgeleiteten Klassen sondern durch Parametrierung der erzeugten Objekte Bestandteil des Frameworks sind direkt instanziierbare Klassen die ohne weitere Ableitung benutzt werden Vorteil dieser Methode ist laut BBE95 die leichtere Wiederverwendung Ein Black Box Framework ist dadurch gekennzeichnet da es verschiedene direkt benutzbare Klassen zur Instantiierung und Parametrierung zur Verf gung stellt Es kann verwendet werden ohne da man versteht wie die Objekte intern zusammenspielen Seite
100. ehender An wendungen und Frameworks sowie vor allem die Konstruktion neuer Frameworks Dieses Ziel haben gem Pree auch bereits Design Pattern in GoF95 nur mu hier jeweils noch vom Benutzer die bertragung in neue Anwendungsgebiete vorgenommen werden We introduce the term metapatterns for a set of design patterns that describe how to construct frameworks independent of a specific domain Metapattern permit different levels of flexibility by combining basic object oriented concepts Pree94 Seite 32 Kapitel 2 Begriffe und Literatur Metapattern sind bereits abstrakt formuliert Die Wahl des geeigneten Musters richtet sich nach dem Grad gew nschter Flexibilit t also besonders der Frage ob die Konfiguration erst zur Laufzeit erfolgt bzw ge ndert wird Ausgangspunkt ist die Identifikation der Hot Spots vgl 2 1 4 also der Elemente eines Frameworks die flexibel bleiben m ssen W hrend dieser Analyse des Anwendungsfeldes m ssen konventionelle Techniken eingesetzt werden Meta pattern erg nzen die vorhandenen Methoden dann bei der Umsetzung Pree94 Once the desired hot spots are identified the characteristics of meta patterns assist in supporting the appropriate level of flexibility Methoden zur objektorientierten Softwareentwicklung geben bisher wenig Unterst tzung bei der Framework Konstruktion Pree fordert die Konzentration auf Frameworks framework centered software development u
101. einen Mechanismus bereitstellen Vorteil ist dabei auch die ausdr ckliche besser nachvollziehbare Benutzung Funktionalit t und Flexibilit t gleicherma en zeigen sich in optionalen Komponenten jeweils als eigenst ndige Mikro Frameworks f r verschiedene Zusammenh nge implementiert Ein Beispiel ist die Textformatierung in ET die WAM Bibliotheken im folgenden Kapitel zeigen weitere M glichkeiten F r die Benutzung eines Frameworks vorteilhaft sind Leitmetaphern die es dem Anwen dungs Entwickler erleichtern Intention und Einsatzkontext des Frameworks zu verstehen blich ist die direkte Manipulation als Handhabungsform f r Oberfl chenelemente mit Ausnahme von Unidraw verfolgen alle hier vorgestellten Application Frameworks einen Dokumentenzentrierten Ansatz Die Werkzeug und Material Metapher deren Leitbild und softwaretechnischen Konzepte ich in Abschnitt 2 3 vorgestellt habe bietet dem Entwickler eine Methode f r den Entwurf und die Konstruktion spezifische Frameworks helfen bei der technischen Umsetzung Die Frameworks in diesem Kapitel folgen keiner bestimmten Methode k nnen daraus resul tierende Vorteile nicht nutzen Softwaretechnisch wichtig ist die Identifikation von Hot Spots deren flexible Implementation in Form dokumentierter Design Pattern und die Zerlegung einer gro en Bibliothek in berschaubare lose gekoppelte Komponenten Black Box Wiederverwendung ist in allen standardisierbaren Bereichen anzustreben
102. en Aufgaben der Umgebung Gem WAM vgl 2 3 werden die Werkzeuge und Materialien eines Einzel Arbeitsplatz in eine Umgebung eingebettet Diese stellt einen Ort dar hnlich dem eigenen Schreibtisch vgl elektronischer Schreibtisch und bildet eine Abgrenzung gegen ber Arbeitsbereichen anderer Personen Von au en besteht kein Zugriff auf die Umgebung dort abgelegtes Material ist f r andere nicht sichtbar Auch neues Material kann der Benutzer nur selbst in seine Umgebung holen es wird nicht wie in Workflow Systemen automatisch zugeteilt und nach Erledigung der Arbeit wieder weggenommen vgl hierzu den Unterpunkt Kooperation Proze muster Gruppen und R ume betreff der L sung mit Postk rben unter der Kontrolle des Benutzers Umgesetzt in eine technische Komponente gibt es je Benutzer eine spezifische Umgebung in der genau jene Werkzeuge und Materialien vorliegen die er f r seine Arbeit ben tigt Die Umgebung startet diese Werkzeuge auf Anforderung des Benutzers und kennt den Zusam menhang zwischen Werkzeugtypen und Materialklassen vgl Late Creation weiter oben Seite 70 Kapitel 4 Frameworks f r WAM Innerhalb seiner Umgebung kann der Benutzer Material und Werkzeuge so anordnen und ggf einrichten wie es f r seine Arbeitssituation und pers nliche Arbeitsweise geeignet erscheint Diese persistente Konfiguration des Schreibtisches kann der Benutzer jederzeit ndern Andererseits richtet sich die Einrich
103. en Befindet sich die hook method in einer eigenen Klasse so Kann auch noch zur Laufzeit eine Konfiguration erfolgen bzw diese Methode ausgetauscht werden W hrend JF88 und BBE95 die Verwendung von Parameterklassen als Zeichen der Black Box Wiederverwendung ansehen macht Pree94 deutlich da diese Klassen ledig lich die Trennung von Sequenz und Einschubmethode erm glichen und so die Flexibilit t erh hen Wie bereits ausgef hrt beziehen sich die Begriffe White Box und Black Box nicht auf die verwendete objektorientierte Technik sondern auf das vom Framework ben tigte Verst ndnis des Benutzers Um das Framework als Black Box benutzen zu k nnen m ssen hot spots und frozen spots deutlich zu unterscheiden sein Der Benutzer mu erkennen k nnen wie die Anpassung der hot spots zu erfolgen hat Parameterklassen werden immer im Zusammenhang mit Flexibilit t zur Laufzeit ben tigt k nnen davon unabh ngig aber auch in anderen F llen verwendet werden B ume und W lder Frameworks sind objektorientierte Klassenhierarchien Dabei k nnen die Mitglieder eines Klassenteams unterschiedlichen Vererbungsb umen zugeh ren Abstrakte Klassen sind h ufig selbst Wurzelklassen neuer B ume Somit geh ren zu einem Framework meist mehrere Klas senb ume Wald zwischen denen vielf ltige Benutzungsbeziehungen bestehen Klassenbibliotheken und Frameworks k nnen andererseits ber eine gemeinsame Wurzel aller Klassen v
104. en Benennung erster Produkte wie das MVC Framework in Smalltalk und schlie e mit einer Darstellung des aktuellen Ansatzes von Taligent Im wesentlichen liegt das Ziel bei der Vorbereitung eines Vergleiches mit Komponenten der BibV30 WAM Framework siehe Kapitel 4 einer Gegen berstellung des Leistungsumfangs der Frameworks Zur Beschreibung und Beurteilung dienen die in Kapitel 2 definierten und in ihren Auswirkungen diskutierten Begriffe vor allem die Arten der Wiederverwendung Design Pattern und Metaphern sowie Leitbilder identifiziere ich in den einzelnen Frameworks 3 1 Historie Ein sehr fr hes objektorientiertes Framework wurde von Reenskaug 1978 79 entworfen und durch Goldberg weiterentwickelt Reenskaug95 Das MVC Framework Model View Controller ist seit Smalltalk 80 ein wichtiger Bestandteil von Objectworks Smalltalk Gold berg83 Als erste kommerziell verf gbare Anwendungsumgebung nennt Lewis95 MacApp Version 1 0 ausgeliefert 1987 MacApp the first widely used and commercially available application framework Dieses Framework erleichtert die Entwicklung von Macintosh Anwendungen mit konsistenter Benutzungsoberf che MacApp simplifies Macintosh application programming by implementing the common application structure Rosenstein95 Der Anwendungsentwickler konzentriert sich auf seine spezifischen Teile insbesondere die main event loop und die Behandlung der standardisierten Men s bernimmt d
105. en Beobachter Konkret benutzt hier also die IAK einen IAT kennt dessen Schnittstelle kann Werte setzen und abfragen Der IAT hat nur einen Verweis auf eine abstrakte Oberklasse der IAK kann somit nur diese gemeinsame Funktionalit t aller Interaktionskomponenten benutzen um ein Signal im Falle einer Benutzeraktion also nderung des Zustandes zu melden Eine IAK registriert sich bei dem von ihr erzeugten IAT als Beobachter Diese Methode ist in der Oberklasse tNotifier aller beobachteten Klassen implementiert ndert jetzt der IAT sei nen Zustand so ruft er die Methode Tell der Oberklasse auf diese wiederum meldet das Ereignis an registrierte Beobachter Dazu wird die Methode Notify der IAK benutzt die in deren Oberklasse tNotifier deklariert ist Jede IAK mu diese Methode berschreiben um auf die eingehenden Meldungen zu reagieren Ein Parameter identifiziert den Ursprung der Meldung ein zweiter numerischer Parameter den Typ des Ereignisses den IAT bei Aufruf der Methode Tell festlegt Die Methode Notify der IAK besteht aus einem gro en switch Konstrukt um entsprechend Ereignis und IAT zu reagieren Dazu m ssen meist Werte des meldenden IAT sondiert werden Vergleichbar ist der Mechanismus mit ET Change Propagation vgl WG95 und auch der entsprechenden Basisfunktionalit t in Smalltalk wird hier als nicht getypte Sprache nicht weiter untersucht Wie im Beispiel ET wurde Beobachtung universell
106. en Start Prozedur Main hier erfolgt die Festlegung des konkreten Fenstersystems Kapitel 4 Frameworks f r WAM C Bibliotheken BibV30 Seite 81 Aufgabe des Hook ist die Verbindung zwischen GUI und IAT als dessen Kapsel Als n chstes geht es um die Weiterleitung der Ereignisse von den Interaktionstypen an das Werkzeug bzw dessen Interaktionskomponente Der alte Beobachtungsmechanismus Interaktionskomponenten erzeugen IAT s und nehmen Einstellungen an diesen vor z B indem sie einen IAT vor bergehend deaktivieren Umgekehrt erreichen Ereignisse infolge Benutzer aktion den Interaktionstyp und m ssen an die IAK weitergeleitet werden Die Klassen kennen sich gegenseitig wechselseitige Benutzung als enge Kopplung ist aber unerw nscht Mechanismen bzw Design Pattern f r lose gekoppelte Komponenten arbeiten mit abstrakten Oberklasse das hei t eine Klasse kennt nicht die konkret verbundene andere Klasse sondern nur deren Oberklasse Das Protokoll der abgeleiteten Klassen bleibt unabh ngig von dieser Benutzt Beziehung nderungen wirken sich nicht auf die lose gekoppelte Klasse aus Das erste WAM Framework erreichte die lose Kopplung durch Beobachtung vgl Riehle93 die Oberklasse tNotifier enthielt diesen Mechanismus Im wesentlichen hei t Beobachtung einer Komponente deren Zustand zu sondieren Zur Vermeidung fortgesetzter Abfrage der Werte meldet die beobachtete Klasse jede eintretende Zustands nderung an d
107. en und die Qualit t der erstellten Software zu verbessern Die Framework Technik kombiniert Design und Code und wird als heutzutage optimales Mittel zur Wiederverwendung angesehen Pree94 Voraussetzung f r eine erfolgreiche Benutzung der vorhandenen Architektur und der verschiedenen Komponenten sind entsprechende Kenntnisse des Anwendungsentwicklers Dieser erwartet geringen Einarbeitungsaufwand und guten berblick Die im Kapitel 4 vorgestellten C Klassenbibliotheken wurden in den vergangenen Jahren mehrfach in Lehrveranstaltungen eingesetzt Projekte Die beteiligten Studenten betrachteten den Lernaufwand im Verh ltnis zu der sp teren Benutzung als sehr hoch Diese Einstellung nderte sich bei sp terer Erstellung von Studien oder Diplomarbeiten mithilfe der Application Frameworks W hrend die Vorteile des Frameworks im Verlauf eines zeitlich beschr nkten Projektes kaum zur Geltung kommen werden diese bei der Entwicklung und Implementation gr erer Anwendungen ausgiebig genutzt Application Frameworks im Lehrbetrieb unterscheiden sich somit von deren Anwendung in der industriellen Software Entwicklung Auch in diesem Rahmen sind h ufig neue Mitarbeiter einzuarbeiten oder auch Frameworks von Fremdanbietern zu testen dem hohen Lernaufwand steht aber regelm ig eine langfristige Nutzung in konkreten Projekten gegen ber wenn die Entscheidung f r ein Application Framework getroffen oder dieses selbst entwickelt wurde Seite 11
108. endungsumgebungen und verschiedener Mechanismen z B sp te Erzeugung eine gro e un bersichtliche Bibliothek ergeben Erste Schritte zur Strukturierung waren die Trennung der Application Frameworks BaseFIAK MainFIAK ToolCoordinator in einzelne Bibliotheken daneben bildet IATMotif eine eigene Bibliothek die Umgebung eine weitere Die ConLib war ohnehin eine gesonderte Bibliothek Implementierte Subwerkzeuge z B der in jede Anwendung integrierbare GUI Builder f r Motif wurden ebenfalls getrennt als letzte Komponente bleibt dann noch eine Bibliothek mit Standardklassen zu nennen Bool String in der auch das MOP angesiedelt ist Neue Komponenten der heutigen Framework Sammlung sind vor allem Implementationen auf Grundlage verschiedener Design Pattern Als Muster f r Probleml sungen m ssen Design Pattern je nach Anwendungsfall angepa t werden lassen sich nicht allgemeing ltig realisieren siehe Abschnitt 2 2 vgl BMRSS96 Die Implementationen verschiedener Design Pattern beziehen sich jeweils auf konkrete Verwendungszusammenh nge innerhalb der BibV30 vor einer Benutzung f r andere Komponenten einer Anwendung bedarf es einer n heren Pr fung Die Design Pattern halten gem Pree94 Hot Spots des Frameworks flexibel Eigenst ndige Mikro Frameworks f r diese Mechanismen tragen zu besserem Verst ndnis der Framework Architektur bei da der Benutzer deren Verwendung und somit die Hot Spots leicht erkennt Im Unters
109. er spezialisierten Anwendungsumgebung ToolCoordinator die Anforderung eines Subwerkzeu ges f r neues Material Da sich ein Werkzeug nicht selbst beenden bzw ein Objekt nicht selbst l schen kann wird dieser Auftrag an eine umgebende Komponente weitergeleitet also z B ein Kontext Werkzeug oder die Umgebung Der zweite Fall liegt vor wenn z B im Hypertextbrowser per Doppelklick ein Verweis auf einen anderen Knoten verfolgt wird Das Subwerkzeug interpretiert die Benutzeraktion als Aufforderung diesen Knoten zu ffnen ist daf r aber nicht selbst zust ndig Ob ein anderes Subwerkzeug mit diesem Material bereits besteht ein neues erzeugt werden mu oder eines der bestehenden z B auch eben jenes in dem der Benutzer den Doppelklick ausgef hrt hat mit neuem Material versorgt wird entscheidet das Kontext Werkzeug als verantwortliche Komponente Das Subwerkzeug leitet die Anforderung in der Kette weiter und geht von der Erledigung aus hnlich dem Command Muster f r IAT s kann die IAK oder eine Kontext FK als Observer entscheiden welche Events von Bedeutung sind Diese werden mit Event Stubs verbunden die f r den Aufruf spezieller Methoden in der IAK sorgen Bei den Events lassen sich beliebig viele Stubs registrieren also z B einer f r die Kontext FK und einer f r die IAK Somit beinhaltet die BibV30 jetzt zwei konzeptionell passende Design Pattern zur Kopplung von Werkzeugkomponenten Ein weiterer Mechanismus das Comman
110. erde ich zeigen wie die Erweiterung der BibV30 vom jeweiligen Fenstersy stem unabh ngige Anwendungen vorbereitet wo die Trennung zwischen der Funktionalit t und Interaktion eines Werkzeuges und dessen Erscheinungsbild liegt und wie die Application Frameworks im WAM Framework von den jeweils spezifischen IAT Bibliotheken entkoppelt sind Die Unabh ngigkeit ist wesentliche Voraussetzung f r eine einfache Portierung sowohl der Anwendungen als auch des Frameworks selbst auf neue Umgebungen Alle nderungen tragen zum besseren Verst ndnis der Bibliothek und damit entwickelter Anwendungen bei Hierarchien von GUI Widget Objekten zur Laufzeit Viele Fenstersysteme ordnen Oberfl chenelemente hierarchisch an Rahmen fassen elementa re Komponenten z B Kn pfe zusammen mehrere Rahmen sind in Fenster eingebettet Zur Laufzeit besteht ein Baum der Oberfl chenobjekte der aus dieser Einbettung resultiert Als Wurzel wird z B in Motif ein nicht sichtbares Objekt eingef hrt Seite 78 Kapitel 4 Frameworks f r WAM Das Application Framework erzeugt die Wurzel des Baumes und stellt so die Anbindung des Fenstersystems her Jedes Widget ben tigt einen Verweis auf den Knoten unter dem es in den Baum eingef gt wird Als Konsequenz ergibt sich ein Verkn pfung zwischen IAT Bibliothek als Kapsel um das Fenstersystem und der nicht GUI abh ngigen Anwendungsumgebung Eine abstrakte Hook Klasse als Oberklasse f r spezielle IAT Bibliotheken l st d
111. erden Da es sich bei der Anwendung aber um einen graphischen Editor handelt k nnen diese Figuren vom Benutzer manipuliert werden hier ergibt sich zwischen beiden Formen ein semantische Unterschied Operationen der Klasse tGFXCircle stellen sicher da das Objekt bei allen nderungen kreisf rmig bleibt Technisch sieht die Schnittstelle zu jeder setzenden Methode auch sondierende Funktionen vor zwecks Pr fung der Zul ssigkeit Definiert ist diese Schnittstelle bereits in der abstrakten Oberklasse tGFXDrawable Default ist der Ausschlu aller Operationen Handle Manipulatoren erlauben Verformung der Grafiken z B ndert ein Manipulator den Winkel eines Kreisausschnittes auch die blichen Manipulatoren f r Gr en nderungen sind als Handle realisiert die Punkte von frei gezeichneter Figuren Kette von Linien k nnen mit Manipulatoren verschoben werden Dagegen erlauben normale Manipulatoren bewegen von Grafikelementen Selektion einzelner Objekte oder Gruppenselektion Selektion geschieht durch anklicken der Elemente oder durch Lassos Der Anwender des Grafikeditors kann gleichzeitig verschiedene Manipulatoren ausw hlen die einzelnen Tasten der Maus zugeordnet werden So h ngt es von der gedr ckten Maustaste ab ob das angeklickte Objekt eine bestehende mehrfach Selektion erweitern oder nachher nur das gew hlte Grafikelement selektiert ist Eine Taste wird in vielen g ngigen Systemen mit der Funktionalit t Men belegt
112. ered one on top of another And a framework itself can be a specialization of a more abstract framework Andert95 Das Taligent System besteht aus vielen zusammenarbeitenden Frameworks Diese Architektur und die einzelnen Frameworks sind in gro em Ma e wiederverwendbar z B das SCSI Framework innerhalb der CommonPoint I O Architektur Andert95 Probleme ergeben sich jedoch aus der mangelnden bersichtlichkeit eines derartigen Geflechtes Kapitel 3 Einsatz der Frameworktechnik Seite 59 Frameworks m ssen korrekt instantiiert werden der Klient gibt dazu die Ensembles vor oder das Frameworks erzeugt diese automatisch z B besteht jeweils ein Default Erzeugung spezieller Ensembles innerhalb des Frameworks ohne Einwirkung des Klienten setzt voraus da weitere Informationen vorliegen Technisch helfen z B Fabriken oder sp te Erzeugung vgl BR96 Das CommonPoint I O Framework installiert f r erkannte Plug amp Play Hardware automatisch die richtigen Treiber Soweit manuelle Konfiguration wegen fehlender Hardware Erkennung erforderlich wird steht ein Configuration Recorder zur Verf gung der die Konfiguration mittels direkter Manipulation erm glicht Diese Informationen speichert das Framework bzw das integrierte Werkzeug persistent so da nach einmaliger manueller Konfiguration sp ter dann dieser Vorgang automatisch innerhalb des Frameworks abl uft Die automatische Instanziierung der Frameworks basier
113. eren Plattformen die Integration in die BibV30 als Ersatz f r heutige TAT Bibliotheken GUI und Event Loop Thema der letzten Unterpunkte war die Erzeugung von Oberfl chenelementen unabh ngig vom Fenstersystem Reaktive Systeme zeichnen sich zudem durch einen Informationsflu in der umgekehrten Richtung aus Die aktive Komponente der Anwendung ist nicht das Werkzeug sondern das Fenstersystem Dorthin gelangen Systemereignisse z B Benutzereingaben Fast allen Fenstersystemen gemeinsam ist eine integrierte Event Loop also eine Schleife die als zentraler Teil des laufenden Programmes Benutzereingaben in Form von Events der Reihe nach bearbeitet Das Application Framework stellt die Verbindung zum GUI her gibt die Kontrolle an dieses ab Sp ter wird die Anwendung an verschiedenen zeitlich wie auch hinsichtlich der Abfolge nicht vorhersehbaren Stellen Methoden beliebiger Klassen vom Fenstersystem aufgerufen und mu darauf reagieren Diese Abkehr von der Ablauf Steuerung in fr heren Systemen wird reaktiv genannt da nicht die Software aktiv ist sondern jeweils vom Benutzer durch Eingaben aktiviert wird Anwendungsumgebungen in der BibV30 namentlich BaseFIAK da die alle anderen hiervon abgeleitet sind arbeiten mit einem abstrakten Window System Hook Unterklassen f r Motif und wxWindows implementieren dessen abstraktes Protokoll Bei den Hook Klassen handelt es sich um Singletons die Objekte erzeugt die f r C vorgeschrieben
114. erf gen single rooted Baum Mittels Polymorphie erm glicht diese Wurzelklasse in getypten objektorientierten Sprachen die Konstruktion generischer Beh lter die Objekte beliebigen Typs aufnehmen k nnen da alle Klassen hier gleichbedeutend mit Typ verwendet von dieser gemeinsamen Oberklasse abgeleitet sind ET Eine bessere L sung bietet Generizit t inzwischen auch in C verf gbar da diese Beh lter nicht beliebige Objekte aufnehmen k nnen sondern jeweils nur einen spezifizierten Typ Mittels Polymorphie k nnen auch hier Unterklassen mit eingeschlossen werden Dazu wird in Kapitel 2 Begriffe und Literatur Seite 27 C ein Template implementiert das selbst keine fertige Klassendefinition ist sondern als Vorlage verwendet und mit einer konkreten Klasse instanziiert wird Der wesentliche Vorteil dieser L sung unter Verwendung von Generizit t ist der Erhalt der Typinformation w hrend polymorphe Beh lter grunds tzlich die Verwendung von Type Casts erfordern Nachteilig wirkt sich die gemeinsame Oberklasse dann aus wenn mehrere Frameworks mit einander kombiniert werden sollen deren Klassen nicht alle von derselben Oberklasse abgeleitet wurden Soweit die Quelltexte eines erworbenen Frameworks nicht verf gbar sind ist eine Anpassung nicht m glich anderenfalls jedenfalls sehr aufwendig Dies ist eines der Probleme das Allan et al bei der Wiederverwendung objektorientierten Klassenbibliotheken und Frameworks iden
115. ergrund des Musters hinreichend verstanden haben In jedem Fall geh rt es zur Verwendung von Design Pattern da der Ent wickler selbst die Implementation vornehmen mu Diese liegt mit Frameworks bereits vor Kann bei der L sung einer Problemstellung auf einem Framework aufgebaut werden ist bereits ein grosser Teil der Entwurfsarbeit von den Entwicklern des Frameworks geleistet worden Gamma92 Im Gegensatz zu Design Pattern enthalten Frameworks also bereits eine fertige L sung f r das jeweilige Problem w hrend die Design Pattern dem Entwickler nur eine Hilfe f r die eigene Implementation geben Seite 36 Kapitel 2 Begriffe und Literatur A framework is usually defined as a collection of classes that together solve a general problem and that are intended for specialization through subclassing The main difference between a framework and a pattern is that while the pattern tells the reader how to solve a problem the framework provides a canned solution Reenskaug95 Zur Beziehung zwischen Frameworks und Design Pattern sagt BMRSS96 To achieve adaptability and changability with an application framework you are not restricted to object oriented techniques such as inheritance and polymorphism you can also use patterns From the perspective of application frameworks patterns can be seen as their building blocks Vergleichbar verlangt auch RZ96 die Konstruktion von Frameworks unter Verwendung von Desig
116. ers be components of arrays or records or be directly pointed to by pointers oder auch Subroutinen Bibliotheken vgl Gamma92 Kapitel 2 Begriffe und Literatur Seite 9 Objektorientierte Sprachen erweitern wiederum die klassenbasierten Sprachen um das Konzept der Vererbung Klassen k nnen in objektorientierten Sprachen nach dem offen geschlossen Prinzip durch Vererbung angepa t und erweitert werden Meyer88 Diese m chtigen Sprachmittel werden von vielen Autoren als Grundlage f r die Realisierung wiederverwendbarer Softwarekomponenten betrachtet Gamma92 BBE95 Technische M glichkeiten allein sind allerdings noch keine Garantie f r wiederverwendbare Software komponenten Pree94 bezeichnet den Vererbungsmechanismus objektorientierter Programmiersprachen als Grundlage des programming by difference Entsprechend dem offen geschlossen Prinzip nach Meyer88 k nnen vorhandene Klassen einfach durch berschreiben einzelner Methoden angepa t werden w hrend die brigen Teile direkt weiter verwendet werden In objektorientierten Sprachen werden Funktionsbibliotheken durch Klassenbibliotheken ersetzt Sammlungen von Bausteinklassen k nnen dabei als erster Schritt angesehen werden Einzelne Klassen innerhalb der Bibliothek sind voneinander weitgehend unabh ngig und k nnen direkt benutzt werden eigene Klassen m ssen nicht abgeleitet werden Als typische Beispiele f r Bausteinklassen nennt Gamma92 Datenstr
117. erschiedener Dom nen Frameworks dienen auch unter diesem Gesichtspunkt betrachte ich nachfolgend die Struktur der Bibliotheken Seite 110 Kapitel 5 Strukturierung von Framework Bibliotheken Kapitel 5 Strukturierung von Framework Bibliotheken Dokumentation in gedruckter Form und auch Online als Hypertext ist eine Voraussetzung f r die Verst ndlichkeit gr erer Klassenbibliotheken Besonders gilt dies f r Frameworks deren vorgegebener Kontrollflu vielfach nur mittels zus tzlicher Werkzeuge verstanden werden kann vgl LS96 Explizite Leitbilder erleichtern den Einstieg in ein Framework erste Programme k nnen auf Basis dokumentierter Beispiele geschrieben werden Sp ter helfen vor allem Design Pattern bei dem Verst ndnis der Architektur wobei das angestrebte Ziel einer Black Box Wieder verwendung kein n heres Verst ndnis der internen Strukturen verlangt W hrend ein Benutzer nur verstehen mu welche Klassen er spezialisieren oder benutzen kann bzw welche Metho den anzupassen sind erfordert die Erweiterung oder nderung von Framework Komponenten weitergehende Kenntnisse Kapitel 4 beschreibt die Komponenten der BibV30 Grundprinzip des Entwurfs sind kleine eigenst ndige Frameworks die jeweils ein spezielles Konzept einen Mechanismus f r flexible Framework Komponenten z B Observer Design Pattern implementieren F r den Benutzer wird es dadurch leichter den Zweck und Verwendungszusammenhang der Mikro Framewo
118. erwendet werden Frameworks werden durch Ableitung eigener Klassen von abstrakten oder auch konkreten Framework Komponenten spezialisiert Das Framework gibt vor welche Methoden zu berschreiben sind Der Kontrollflu wird im Framework festgelegt somit werden auch die Methoden der vom Benutzer entwickelten Klassen aus dem Framework aufgerufen Hollywood Prinzip Kapitel 2 Begriffe und Literatur Seite 15 2 1 3 Application Framework Bischofberger et al bersetzen den Begriff Application Framework mit Anwendungsumgebung siehe BBE95 Aus einzelnen Frameworks f r graphische Benutzungsschnittstellen und f r ereignisorientierte dokumentbasierte Editoren vgl Kapitel 3 haben sich Anwendungs umgebungen entwickelt die eine Systemumgebung f r die Anwendungsentwicklung definieren z B MFC MacApp und ET Die Anwendungen selbst werden dadurch vom Fenstersystem und teilweise auch vom Betriebssystem unabh ngig Frameworks und besonders Application Frameworks werden f r eine Gruppe gleichartiger Anwendungen entwickelt Lewis95 schreibt A Framework is more than a class hierarchy It is a miniature application complete with dynamic as well as static structure It is a generic application we can reuse as the basis of many other applications And before I forget it frameworks are specialized for a narrow range of applications because each model of interaction is domain specific e g designed to solve a narrow set of pr
119. erwendung von Bausteinbibliothe ken bei der Anwendungsentwicklung und demgegen ber einem Application Framework als Basis der eigenen Applikation Die Umkehrung des Kontrollflusses ist deutlich zu erkennen der Anteil spezifischer Komponenten verringert sich Genauere Erl uterungen zur Verwendung von Frameworks folgen in 2 1 4 Seite 16 Kapitel 2 Begriffe und Literatur Klassen der Anwendung Application Framework Klasse A Klasse C KlasseA Klassec ER benutzen Klasse E E Bausteinbibli Klassen der Anwendung Abbildung 2 1 a Applikation mit Bausteinbibliothek b Verwendung eines Application Frameworks Die Unterscheidung kleiner Frameworks Mikroarchitekturen gegen ber Application Frameworks l t sich nicht scharf definieren da sich vielfach Application Frameworks aus kleineren Mikroarchitekturen entwickeln Pree94 It is often hard to decide whether a framework migrates to the category of application frameworks or not Als Anhaltspunkt gibt Pree folgende Definition In order to build a terminological basis we distinguish between two cate gories of framework Framework that constitute a generic application for a domain area are called application frameworks Framework are those that represent a micro architecture consisting of only a few components Spezielle Application Frameworks k nnen gro e Teile der Anwendungen bereits realisieren Demgegen ber beschr nken einfacher
120. eschr nkt aber auch nicht auf diesen Anwendungstyp zugeschnitten Gegen ber CommonPoint besteht eine sehr klare Abgrenzung da systemnahe Ebenen nicht im WAM Framework enthalten sind Konzeptionell finden sich auch andere Beziehungen zwischen den einzelnen Frameworks in der BibV30 dies ist Thema im 5 Kapitel Seite 66 Kapitel 4 Frameworks f r WAM 4 3 Entwicklung Ma nahmen Ziele und Ergebnisse Restrukturierung und Erweiterung des WAM Frameworks begann vor etwa eineinhalb Jahren im Jahren einer Lehrveranstaltung Eine systematische Analyse des bestehende Produkt f hrte zur Diskussion der Schwachpunkte und L sungsans tze Unter Ber cksichtigung des Einsatzes in Lehrveranstaltungen streben die Entwickler ein leicht erlernbares Framework an Die Verteilung der umfangreichen Funktionalit t auf unabh ngige und lose gekoppelte Komponenten tr gt hierzu bei Au erdem sind verschiedene prototypisch bereits implementierte Mikro Frameworks in die BibV30 zu integrieren Zum jetzigen Zeitpunkt ist die Entwicklung noch nicht abgeschlossen In diesem Abschnitt beschreibe ich vollzogene und auch geplante nderungen und bewerte deren Auswirkungen auf das Framework als Ganzes hinsichtlich der angestrebten Ziele und in Bezug zu Kapitel 3 Mein Anteil an dieser Arbeit liegt einerseits in der gemeinschaftlichen Diskussion in diversen Gruppen andererseits habe ich verschiedene Komponenten konzipiert bzw implementiert Die folgende Darstellung soll
121. eschreibe ich die konkrete technischen Umsetzung Kapitel 4 Frameworks f r WAM C Bibliotheken BibV30 Seite 85 4 4 1 Graphikkonzept der Anfangsphase Grundlegende Komponente des Ansatzes ist ein Interaktionstyp tIATCanvas innerhalb der IATMotif Bibliothek der einem Bildschirmbereich f r Grafikausgaben entspricht Anwen dungen zeichnen in diesem Bereich umgekehrt meldet der IAT bei gedr cktem Knopf die Position des Mauszeigers Verschiedene Klassen adressieren Zeichenfunktionalit t direkte Manipulation realisieren die Applikationen selbst mittels der gemeldeten Ereignisse MouseUp MouseDown MoveToXY ohne Abstraktion innerhalb des Frameworks Zeichnen unterst tzt das WAM Framework durch die Klasse tCanvas die Zeichenprimitiven als abstrakte Operationen definiert Graphischer GFX Klassen repr sentieren die konkreten Elemente z B Dreieck Kreis Die Zeichenfl che tCanvas leistet eine Abstraktion bez glich der tats chlichen Ausgabe es gibt konkrete Unterklassen f r die Bildschirmausgabe im X Windows System und f r den Ausdruck als Postscript Datei Calder95 hebt f r Interviews dessen nicht an Bildpunkten der technischen Basis orientierte Koordinaten hervor tCanvas in den C Bibliotheken ist durch Koordinaten im Millimeterformat plattformunabh ngig zudem erfolgt der Ausdruck im richtigen Ma stab Abstrakte Beschreibung komplexer Formen stellt ein Kernproblem graphischer Anwendungen dar GFX Klassen in der
122. et Die Struktur mu Varianten auf zeigen wahlweise zu benutzende Komponenten von Grundlegenden trennen und abh ngige Mikro Frameworks in Beziehung setzen Dies soll durch die Bildung von Schichten erreicht werden Zuerst stellt 5 2 1 Kategorien f r die Einteilung der Frameworks vor der konkrete Vorschlag f r die BibV30 folgt dann in 5 2 2 zur Motivation f r 5 2 1 ist ein Blick auf Abbildung 5 1 zu empfehlen Vorgestellte aber nicht vorhandene Kategorien greift 5 2 3 wieder auf Seite 116 Kapitel 5 Strukturierung von Framework Bibliotheken 5 2 1 Kategorien der Struktur Ausgangspunkt ist die Identifikation dreier Dimensionen in einer Framework Bibliothek technische Mechanismen als Fundament bilden mit methodisch gepr gte Komponenten den Rahmen f r fachliche Mikro Frameworks und Anwendungen Technische Klassen und Frameworks ergeben die Basis f r alle weiteren Komponenten einer Bibliothek Innerhalb dieser Dimension finden sich Frameworks verschiedener Kategorien mit deren Benennung und Abgrenzung wird die Zuordnung konkreter Frameworks m glich Spracherweiterungen bezwecken den Ausgleich von Defiziten einer konkreten Programmier sprache Es werden elementare Mechanismen erg nzt die in andere Sprachen automatisch integriert sind Vor der aktuellen Standardisierung fehlten in C beispielsweise die Klassen Bool und String sowie ein Meta Objekt Protokoll MOP Eine weitere wichtige Erg nzung w re ein Garbage Collector de
123. externe Repr sentationen die u a eine Postscript Darstellung der Components erzeugen oder ein fachliches Format zwecks Speicherung erstellen Im Beispiel k nnte in dieser Form eine Ausgabe der Komposition ber die Soundkarte stattfinden Komplexe Grafik Elemente ergeben sich als Composite Design Pattern vgl GoF95 aus anderen Objekten im einfachsten Fall K nnte z B ein Dreieck aus einzelnen Linien bestehen Diese Komposition erfolgt hinsichtlich der Subjects wie auch der Views ein Composite View delegiert die Darstellung einfach an die enthaltenen elementaren Views siehe Abbildung 4 6 Ein Benachrichtigungsmechanismus zwischen Composite und Komponenten erh lt genau wie zwischen View und Subject die Konsistenz vgl Methoden Notify und Update Abb 4 5 jedoch nicht vorgeschrieben zweeks eptimierter Darstellung u bject BEE STOK Abbildung 4 6 Composite Components gleiche Struktur von Subject und View kann ein einziges elementares Component View f r die Pr sentation eines komplexen aus vielen Komponenten bestehenden Composite Component Subject verantwortlich sein Abbil Objektdiagramm 2 Sichten Views auf 1 Subject optimierte Darstellung des Composite Subject incl aller 3 elementaren Subjects Abbildung 4 7 Composite Component Subject und Component Views Kapitel 4 Frameworks f r WAM C Bibliotheken BibV30 Seite 89 dung 4 7 zeigt zwei Sichten auf ein Compo
124. frastructure inherited by all descendants of Object WG94 Ebenso unterschiedlich kann auch die Bedeutung einheitlicher Mechanismen f r unter schiedliche Aufgaben betrachtet werden Gamma et al versuchen f r ET wenige Mechanismen m glichst universell einzusetzen So wurde z B die Beobachtung bereits in Object realisiert und steht somit allen Objekten zur Verf gung Im Gegensatz dazu erwies sich die Verwendung eines einheitlichen Mechanismus f r verschiedene Aufgaben bei dem in dieser Arbeit betrachteten Framework siehe Kapitel 4 gerade als schwer lehrbar diese Implementation wurde zwischenzeitlich abge ndert Im folgenden Abschnitt werden Design Pattern als Beschreibungsmittel solcher Mechanismen vorgestellt die WAM Methode gibt einen Kontext und eine Anleitung f r deren Verwendung Abschnitt 2 3 Seite 28 Kapitel 2 Begriffe und Literatur 2 2 Design Pattern There is an undeniable demand to capture already proven and matured object oriented design Pree94a Objektorientierte Programmiersprachen wurden eingef hrt mit dem Ziel die Wiederverwend barkeit von Software Komponenten zu verbessern Die einfache Ebene ist dabei code reuse also die mehrfache Nutzung einer Implementation weitaus gr ere Bedeutung hat aber die Wiederverwendung des Entwurfs also design reuse Frameworks erlauben nicht nur die Verwendung einzelner Klassen in verschiedenen Projekten sondern gr erer Strukturen bis hin zu kom
125. g Seite 6 Kapitel 1 Einleitung und Motivation F r die Konstruktion qualitativ hochwertiger Software ist es hilfreich ein Leitbild GKZ93 und passende Metaphern zu verwenden Application Frameworks k nnen nach diesen Metaphern entworfen werden und eine entsprechende Struktur der Anwendung vorgeben Benutzern des Frameworks helfen die verwendeten Metaphern beim Verst ndnis der Framework Komponenten den Entwicklern des Frameworks liegt eine Grundidee f r die Strukturierung vor In dieser Arbeit werde ich mich an den Metaphern der am Arbeitsbereich Softwaretechnik vertretenen WAM Methode orientieren Grundlegende Leitmetaphern dieser Methode sind Werkzeug und Material die software technisch durch Werkzeug Aspekt und Materialklassen modelliert werden GKZ93 Werkzeuge bestehen aus Funktions FK und Interaktionskomponente IAK Somit wird eine Trennung zwischen Werkzeugfunktionalit t und der Benutzungsoberfl che hergestellt Diese Entkopplung erlaubt auch die Verwendung derselben FK mit mehreren IAK s vgl MVC Reenskaug95 Zus tzlich wird die Unabh ngigkeit vom jeweils verwendeten GUT durch Interaktionstypen IAT erreicht Weitere Metaphern unterst tzen kooperative Arbeit sowie Persistenz Ich werde zeigen wie die WAM Methode die Strukturierung eines Frameworks und der darauf aufbauenden Anwendungen erleichtert Konkretes Beispiel f r diese Arbeit ist ein am Arbeitsbereich Softwaretechnik entwickeltes C Applicatio
126. gebiets und Vorgehensmodells z B evolution re Softwareentwicklung Pattern innerhalb eines Handbuches sind voneinander abh ngig und k nnen als gerichteter Graph angeordnet werden Dabei sei an die Klassifikation erinnert vgl 2 2 2 wobei aber auch innerhalb einer Kategorie die einzelnen Design Pattern voneinander abh ngen k nnen In der linearen Anordnung werden jeweils erst diejenigen Pattern beschrieben die den Kontext f r weitere Pattern bilden Conceptual patterns logically precede design patterns which logically precede programming patterns RZ95 ist eine Beschreibung der WAM Methode in Patternform hier als Pattern Language bezeichnet und als Basis f r ein Handbuch in der oben dargestellten Form geeignet Auf die Werkzeug und Material Metapher gehe ich im Abschnitt 2 3 n her ein 2 2 4 Frameworks und Design Pattern Bei einem Framework wird der Entwurf in der Form von Quellcode festgehalten Die Wiederverwendung umfasst bei einem Framework deshalb Code und Design Gamma92 Each design pattern focuses on a particular object oriented design problem or issue GoF95 Frameworks wie auch Design Pattern sollen dabei helfen Design wiederzuverwenden Es wird jeweils eine L sung f r ein bestimmtes Problem angeboten die Verwendung ist nur in einem festgelegten Kontext sinnvoll Beide Techniken adressieren ein hnliches Ziel w hlen aber unterschiedliche Wege Design Pattern werden meist in einer For
127. gerade auch eine Zusammenfassung dieser Arbeiten einer gro en Gruppe leisten meinen Anteil an konkreten Elementen gebe ich dabei mit an Einzelheiten der Implementation sind in anderen Arbeiten oder der Dokumentation zur BibV30 nachzulesen entsprechende Verweise gebe ich direkt bei der Darstellung der jeweiligen Komponenten Zur Orientierung in der Vielzahl einzelner Neuerungen sind diese den drei Bereichen GUI Anbindung 4 3 3 Application Frameworks 4 3 1 und allgemeine Grundlagen zugeordnet innerhalb dieser Bereiche sollen Unterpunkte den berblick erleichtern Die Auswertungen beziehen sich auf die Ergebnisse aus Kapitel 2 vgl 2 4 L sungsdetails werden mit anderen Produkten Kapitel 3 verglichen 4 3 1 Erweiterung der Anwendungsumgebung Als WAM Framework ber cksichtigt die BibV30 diverse Metaphern und Design Pattern die Grundlage dieser Methode sind oder in deren Umfeld eingef hrt wurden Ausgehend von der allgemeinen Infrastruktur z B MOP und der Umsetzung grundlegender Metaphern vgl Umgebung beschreiben die Unterpunkte verschiedene Application Frameworks in der BibV30 z B MainFIAK und generische Subwerkzeuge Late Creation MOP und deren Kopplung BR96 beschreiben das Muster sp te Erzeugung und motivieren dessen Verwendung Kern sind zwei Annahmen Die erzeugende Komponente ben tigt nur ein Objekt vom statischen Typ einer Oberklasse und der dynamische Typ richtet sich nach einer Spezifikation Zwecks
128. grad und der relativen Gr e Letzteres d rfte inzwischen als Merkmal ausfallen da es neben gro en Application Frameworks auch viele kleinere Frameworks gibt und ande rerseits Pattern jenseits der Kategorie von Design Pattern in GoF95 z B Conceptual Pattern in RZ95 oder z B die Composite Pattern Riehle96b dem entgegen stehen Design Pattern sind grunds tzlich abstrakter als Frameworks und damit eher in einen anderen Bereich bertragbar Allerdings stellen sie weitaus gr ere Anforderungen an den Benutzer Trotz aller u erungen der Autoren Gamma Johnson Buschmann etc betreff Nutzung von Design Erfahrungen durch weniger erfahrene Software Entwickler mu doch vor zu gro en Hoffnungen gewarnt werden Die in der Beschreibung integrierte Beispiel Implementation kann dazu verf hren diese direkt zu benutzen statt eine der konkreten Verwendung ange messene Adaption vorzunehmen In vielen F llen wird es schwerfallen alle Voraussetzungen und Konsequenzen eines Musters zu berblicken um die geeignete Auswahl zwischen scheinbar hnlichen Pattern zu treffen Metapattern Pree94 ignorieren anwendungsbezogene Unterschiede v llig und geben unerfahrenen Entwicklern diesbez glich keinerlei Anleitung RZ96 warnt vor Problemen wenn ein Pattern von dem Bereich aus dem heraus es abstra hiert wurde in einen neuen Verwendungszusammenhang transportiert werden soll Hierzu mu der Anwender sowohl die Struktur als auch den Hint
129. h die Methode WAM praktisch umzusetzen berwiegend wurde das Framework von Studenten entwickelt die neue Konzepte entwerfen und testen wollten So ist auch zu erkl ren da in vielen F llen der Nachweis der Tragf higkeit dieser Ideen im Vordergrund steht nicht das tats chlich implementierte Produkt Einige Konzepte wurden neben dem Framework teils unter Verwendung dessen Komponenten realisiert dann aber nicht in die Bibliothek integriert Fehlende Produktorientierung stellt damit einen Schwachpunkt der Framework Entwicklung dar Hinzu kommt fehlende Koordination der Aktivit ten diverser Studenten Dieses Problem adressiert die jetzige Phase der Entwicklung durch Workshops z B ber Interaktionsformen und Diskussion der Konzepte innerhalb von Lehrveranstaltungen Ein umfangreicher Einsatz der WAM Frameworks in gr eren Projekten bestehend aus Studien und Diplomarbeiten erfordert st rkere Produktorientierung bei der Weiterentwicklung des Frameworks insgesamt sowie einzelner neuer Bestandteile Diese Arbeiten sind effektiv zu koordinieren Zu den derzeitigen Bem hungen geh rt auch die konsistente vollst ndige Dokumentation Bereits vorhandene Beispiele als erprobter Einstieg in ein Framework werden erweitert und angepa t zus tzliche Werkzeuge f r die Darstellung der Dynamik sind derzeit ein aktuelles Forschungsvorhaben vgl LS96 Das eigene Framework kann f r diese Werkzeuge Testfeld aber vor allem auch technische Grundlage
130. h herer Flexibilit t soll kein Objekt einer konkreten Klasse mittels New erzeugt werden ggf ist die Klasse selbst in der erzeugenden Komponente nicht einmal bekannt sondern nur deren Oberklasse Die Auswahl der konkreten Klasse erfolgt sp t also zur Laufzeit Kapitel 4 Frameworks f r WAM C Bibliotheken BibV30 Seite 67 Im Kontext von WAM sind besonders zwei Einsatzf lle hervorzuheben die zu einer Integra tion dieses Design Pattern in die BibV30 gef hrt haben Werkzeuge bestehen grunds tzlich aus den getrennten Komponenten f r Funktionalit t und Interaktion deren Objekte zur Lauf zeit miteinander verbunden sind Ein Kontext Werkzeug oder die Umgebung s u erzeugt eine konkrete Funktionskomponente Jede FK ben tigt eine passende IAK f r deren Erzeuger ist aber nur wichtig da dies eine IAK ist Oberklasse Kenntnis der konkreten IAK w re eine vermeidbare Komplikation des System und eine Einschr nkung der Flexibilit t Sp te Erzeugung in der Anwendungsumgebung BaseFIAK l st dieses Problem f r die BibV30 Die Kontext FK erzeugt eine spezielle Sub FK die Kontext IAK eine Sub IAK Dabei kennt die Kontext IAK nur die allgemeine Oberklasse tIAKBase aller Interaktionskomponen ten als Spezifikation f r die Erzeugung einer passenden IAK dient die FK selbst Die zweite Anwendungssituation im WAM Framework ist die Zuordnung von Materialtyp und Werkzeug durch die Umgebung Innerhalb der Umgebung vgl Unterpunkt
131. h ein Beispiel der Benutzer kann und soll Materialien und Werkzeuge selbst entsprechend seiner Arbeitssituation anordnen die Ordnung ist persistent er wird Werkzeuge per Mausaktion starten und Material mit passenden Werkzeugen ffnen Aufgabenteilung zwischen IAT IAK und FK Variante eins ist ein WAM Werkzeug f r graphisches Material z B Aufgabennetze Dessen nderung geschieht immer in der FK seitens der IAK erfolgt nur der Aufruf entsprechender Methoden entsprechend dem Ergebnis des Manipulator ITAT s Umgekehrt meldet die FK ihre Zustands nderung und die IAK aktualisiert den tIATGraphic bzw dessen GFX Objekt Eine zweite Variante bilden Werkzeuge die fachlich mit numerischen Material arbeiten Die FK hat keine Kenntnis ob die Ergebnisse tabellarisch angezeigt oder graphisch aufbereitet werden direkte Manipulation ndert nicht das Material sondern nur dessen Darstellung Somit wertet die IAK selbst den tIATManipulator aus und ndert die GFX Objekten Als dritte und letzte Version sei die direkte Manipulation als Bedienform eines IAT verstanden Typische Listen verf gen ber Scrollbars mit denen der Anwender den sichtbaren Ausschnitt verschiebt ohne Beteiligung der IAK Dieses Beispiel l t sich direkt auf die Zeichenfl che bertragen zus tzlich denkbar ist z B eine Vergr erung durch Auswahl des gew nschten Bereiches durch direkte Manipulation Hier k nnte der Manipulator direkt den Ma stab und Ausschnitt des
132. he Dom ne und kein bestimmter Anwendungstyp unterst tzt sondern nur eine Infrastruktur f r die Applikation vorgegeben Betreff MainFIAK wird dies schon aus dem Vergleich mit MFC deutlich da auch dies vgl Kapitel 3 eindeutig zu klassifizieren ist Die Standardisierung des ToolCoordinator Frameworks beschr nkt sich auf das Kontext Werkzeug Angaben ber die Funktionalit t der Subwerkzeuge oder deren Dom ne werden nicht gemacht Diese m ssen nur als Werkzeuge gem WAM konstruiert sein BaseFIAK Mit BaseFIAK MainFIAK und ToolCoordinator stehen dem Benutzer drei Alternativen f r den Einstieg in die Entwicklung seiner Anwendung offen Dies entspricht dem grunds tzli chen Gedanken einer Framework Sammlung f r WAM die verschiedenartige Applikationen innerhalb dieses methodischen Rahmens unterst tzen soll Wird die BibV30 als Basis f r eine Anwendungsfamilie in einer bestimmten Dom ne eingesetzt so k nnen spezifische Dom nen Frameworks auf diesen und evtl noch weiteren Anwendungsumgebungen aufbauen Subwerkzeuge und Automaten Zur BibV30 geh ren fertige Subwerkzeuge innerhalb des WAM Konzeptes wurden diverse Automaten vorgeschlagen z B Postversand vgl Kooperation Letztere sind bisher nicht bzw nur prototypisch realisiert und nicht Teil des WAM Frameworks Hier besteht einiger Nachholbedarf da sowohl Kooperation als auch Persistenz Datenbankautomat von solchen Automaten abh ngen Abschnitt 2 3 erl utert d
133. hema f r WAM Frameworks in andere Zusammenh nge bertragbar ist Abschlie end fasse ich den Stand der Framework Entwicklung zusammen und werfe einen Blick in die Zukunft wiederverwendbarer Softwarekomponenten Textkonventionen und Darstellungsmittel L ngere Zitate erhalten eigene Abs tze in kursiver Schrift die erkennbar einger ckt werden Innerhalb des Textes werden kurze Zitate ebenfalls kursiv gedruckt wichtige Begriffe und Passagen teilweise durch Fettdruck hervorgehoben Kapitel 2 fa t Ergebnisse der Diskussion in Form eigener Begriffsdefinitionen zusammen Diese werden als Block abgesetzt definierte Begriffe sind fett gedruckt wesentliche Stichw rter kursiv hervorgehoben Grafiken werden jeweils bei der ersten Verwendung n her erl utert Seite 8 Kapitel 2 Begriffe und Literatur Kapitel 2 Begriffe und Literatur In diesem Kapitel werden die grundlegenden Begriffe eingef hrt und erl utert Verschiedene Sichtweisen und Ans tze innerhalb der Literatur JF88 Gamma92 BBE95 Lewis95 Pree94 etc werden betrachtet und gegen bergestellt Diese Diskussion motiviert eigene Definitionen f r die Verwendung der Begriffe innerhalb dieser Diplomarbeit Die Abgrenzung gegen ber anderen Autoren soll ein Grundverst ndnis f r die weiteren Ausf hrungen schaffen und meinen Standpunkt klarlegen Die Definitionen stellen gleichzeitig Anhaltspunkte zur Klassifikation von Frameworks zur Verf gung und erm glic
134. hen damit eine Einordnung spezieller Application Frameworks in den folgenden Kapiteln 2 1 Framework Begriffe Klassisches Mittel f r die Wiederverwendung sind sogenannte Funktionsbibliotheken in prozeduralen Programmiersprachen H ufig ben tigte Algorithmen werden in Bibliotheken zur Verf gung gestellt und m ssen nicht f r jede Anwendung neu entwickelt werden Standardbeispiele sind String Manipulation sowie verschiedene Such und Sortierverfahren Bei der Benutzung sind keine Abh ngigkeiten zu ber cksichtigen es wird jeweils die einzelne Funktion wiederverwendet Objektbasierte Programmiersprachen erweitern die M glichkeiten wiederverwendbare Elemente in Bibliotheken anzubieten Sprachen wie Modula 2 und Ada f hren ein Modul konzept ein Packages in Ada das eine bessere Strukturierung der angebotenen Funktionalit t und die Festlegung der Sichtbarkeit f r den Anwender erm glicht Gamma92 Einen wesentlichen Nachteil stellt die Abgeschlossenheit dieser Module gegen nachtr gliche Erweiterungen und Anpassungen dar Grundlage dieser Arbeit sind getypte objektorientierte Programmiersprachen speziell C Wegner90 unterscheidet objektbasierte Klassenbasierte und objektorientierte Programmier sprachen Modula 2 und Ada als Beispiele objektbasierter Sprachen unterst tzen zwar Objekte aber keine Klassen But Ada is not class based because its objects packages do not have a type and cannot therefore be passed as paramet
135. hend verhindert hat Dazu BBE95 Seit l ngerer Zeit diskutiert man die strategischen Vorteile spezialisierter Anwendungsframeworks Leider erfordert deren Entwicklung neben gro em softwaretechnischen Wissen auch noch ein sehr tiefes Verst ndnis f r das Anwendungsgebiet Vorteile spezieller Frameworks sind unbestritten Soweit ein Unternehmen ein eigenes auf das konkrete Anwendungsgebiet zugeschnittenes Application Framework einsetzt erleichtert dies die Erstellung einzelner neuer Anwendungen auf Basis des Frameworks da die ben tigte Grundfunktionalit t bereits berwiegend vorhanden ist Es werden Mechanismen vorgesehen neue Komponenten einfach zu implementieren und zu integrieren Die weitere Anwendungs entwicklung Kann zu Framework Erweiterungen f hren und den Ausgangspunkt f r Folgeprojekte weiter verbessern Aus Sicht des Management l t sich die Entwicklung von Frameworks dagegen nur schwer bewerten Erst die Wiederverwendung in Folgeprojekten bringt wirtschaftlichen Nutzen die Entwicklungskosten m ssen auf alle Projekte verteilt werden Dabei wird die Framework Konstruktion selbst nicht abgeschlossen da sich aus neuen Projekten h ufig nderungs und Erweiterungsbedarf ergibt BBE95 gibt zu bedenken da der Einsatz der Frameworktechnik die Wartung entwickelter Anwendungen erheblich erleichtert die Zuverl ssigkeit erh ht und eine einheitliche Bedienung sicherstellt Diesen Effekt mu das Management bei der K
136. her Grad an Flexibilit t erreicht und welches technische Mittel dazu verwendet wurde so erg nzen Metapattern bestehende Design Pattern Auch k nnte die Beschreibung von Design Pattern vereinfacht werden indem sich deren Autoren auf jeweils zugrunde liegende Metapattern berufen Pree ist eine gute Zusammenfassung der Bedeutung und M glichkeiten objektorientierter Mechanismen f r die Framework Konstruktion gelungen Dies kann sowohl den Entwurf neuer Frameworks unterst tzen als auch eine Erg nzung zu blichen Design Pattern darstel len Das hohe Abstraktionsniveau macht Metapattern von konkreten Anwendungsgebieten unabh ngig stellt aber zugleich hohe Anforderungen an die Benutzer dieser Technik Kapitel 2 Begriffe und Literatur Seite 33 2 2 3 Pattern Language Pattern System Handbuch W hrend GoF95 einen Katalog lose zusammenh ngender Design Pattern vorstellt bem hen sich derzeit diverse Autoren um enger gekoppelte Sammlungen BMRSS96 verwendet den Begriff System of Patterns andere sprechen in Anlehnung an Alexander von Pattern Language RZ96 argumentiert f r die Bezeichnung Handbuch Johnson Johnson92 und Beck BJ94 verwenden Design Pattern um die komplette Archi tektur eines Softwaresystems das Framework HotDraw vgl 2 2 4 zu beschreiben Vorteile dieser Beschreibung ist insbesondere die Darstellung von Designentscheidungen Warum anhand derer andere Entwickler die gew hlte S
137. hreren Wurzeln abgegrenzt Seite 46 Kapitel 2 Begriffe und Literatur Der Einflu von Design Pattern zeigt sich vor allem in der Dokumentation des Frameworks Dabei kann das komplette Framework mittels eines Handbuches aus Pattern dokumentiert sein oder auch Design Pattern nur f r einzelne Bereiche identifiziert werden Abschnitt 2 2 Eine besondere Bedeutung bekommen Design Pattern wenn diese bereits die Konstruktion des Frameworks erheblich beeinflu t haben und evtl auch Benennungen von Framework Klassen auf die Pattern zur ckzuf hren sind Gegebenenfalls implementieren sogar komplette Mikro Frameworks jeweils genau ein Design Pattern f r die Verwendung in anderen Kompo nenten des Application Frameworks Die Anwendung von Design Pattern hilft bei der Umsetzung erkannter Hot Spots Metapattern betrachten hier besonders den Aspekt der Flexibilit t die bliche Beschreibung konzentriert sich auf deren Hintergrund und vermittelt dem Benutzer des Frameworks ein Verst ndnis der gew hlten Konstruktion sowie deren Motivation Konsequenzen f r die eigene Anwendung sind so besser zu erkennen nderungen am Framework k nnen die explizit dokumentierten Gr nde f r gewisse Designentscheidungen ber cksichtigen Als letztes wird der Einflu von Leitmotiven und Metaphern auf die jeweiligen Frameworks untersucht siehe Abschnitt 2 3 Diese werden jedoch nicht unbedingt explizit sein und viel fach auch extrem allgemein gehalten Bewu te
138. htig ist die Typisierung von C einige Probleme der hybriden Sprache C lassen sich durch Programmierkonventionen Tali gent94 RWW95 umgehen Kern dieser ersten Entwicklung war die objektorientierte Kapselung der OSF Motif Widgets in Form von Interaktionstypen IAT gem WAM F r Kopplung zwischen IAT und IAK Interaktionskomponente Abschnitt 2 3 diente ein einfacher Beobachtungsmechanismus der zugleich auch f r die Verbindung zwischen IAK und FK benutzt wurde sowie zwischen Funktionskomponenten Kontext Subwerkzeug Das FIAK Framework als zweiter Teil der Bibliotheken bernahm bereits in erster Version die Konstruktion von Kontext Werkzeugen mit FK und IAK unter Verwendung von Subwerkzeugen vgl Riehle93 und Riehle93a Beobachtung Interaktionstypen und FIAK Framework gemeinsam bildeten die erste Anwen dungsumgebung nach WAM am Arbeitsbereich Softwaretechnik Seite 62 Kapitel 4 Frameworks f r WAM Zu einem sehr fr hen Zeitpunkt der Entwicklung begann der Einsatz in einer Lehrveranstal tung Aus diesem Projekt ergaben sich verschiedene Studien und Diplomarbeiten infolgedessen erhielten die Framework Entwickler umfassendes Feedback zu ihrer Arbeit Allerdings f hrten sowohl M ngel der halbfertigen Version als auch dadurch erforderliche Korrekturen Erweiterungen und Umstrukturierung der Klassenschnittstellen zu erheblichen Schwierigkeiten in der Anfangsphase Gerade die direkte R ckkopplung bewirkte jedoch f
139. ie Klassen Application und Document Unterst tzt wird die Bearbeitung von beliebigen Dokumenten in mehreren Fenstern Die Konsistenz mehrerer Sichten auf dasselbe Dokument wird ber einen Mechanismus hnlich MVC gew hrleistet Gem 2 1 3 ist ET eine Anwendungsumgebung Die Unterst tzung dokumentbasierter Editoren wurde von den Autoren gew hlt gerade weil ein sehr gro e Zahl unterschiedlicher Anwendungen so anzusehen sind Die spezifische Ausrichtung eines Dom nen Framework liegt nicht vor Seite 54 Kapitel 3 Einsatz der Frameworktechnik Im Unterschied zu Interviews enth lt ET als Application Framework neben einfachen Elementen zur Programmierung der graphischen Benutzungsoberfl che vor allem auch die Klassen Application und Document Pree94 betont da erst die Kombination dieser Ele mente Erscheinung und Umgang mit den so erstellten Anwendungen vereinheitlicht The application framework ET provides elementary user interface building blocks for example buttons and menus basic data structures for example the classes ObjList ObjArray and high level application components such as the classes Application Document View Command and Window Together with the elementary building blocks the high level application components predefine as far as possible the look and feel of ET applications Pree94 Abgesehen von einzelnen Klassen die wie einfache Typen der Sprache behandelt werden z B String Poin
140. ie softwaretechnische Umsetzung der Methode WAM und diskutiert die Bedeutung von Subwerkzeugen f r die Konstruktion wiederverwendbarer Komponenten Zu unterscheiden sind allgemeine generische Subwerkzeuge beispielsweise der in der BibV30 vorhandener Lister ggf nicht wiederverwendbare anwendungsspezifische Sub werkzeuge und als dritte Kategorie generische Vorlagen f r Subwerkzeuge die noch durch Ableitung eigener Klassen angepa t werden m ssen F r die Zukunft der Bibliothek sollte die Frage n her betrachtet werden inwieweit generische Subwerkzeuge verst rkt in die BibV30 eingef gt oder statt dessen Vorlagen gem der dritten Kategorie geschrieben werden Es handelt sich dann um spezifische Frameworks eigentlich Kapitel 4 Frameworks f r WAM C Bibliotheken BibV30 Seite 73 Dom nen Frameworks Allerdings kann mit diesen nur ein Subwerkzeug nicht eine kom plette Anwendung konstruiert werden vielmehr erfolgt eine Einbettung in ein weiteres Application Framework 4 3 2 Grundlagen und Struktur Design Pattern beeinflussen die Struktur der BibV30 in gro en Teilen Diese Mechanismen f r flexibel gestaltete Hot Spots sind explizit in Form einzelner Bibliotheken vorhanden damit erh lt der Benutzer eine bessere bersicht ber die Vielzahl an Klassen in der BibV30 deren Verwendung und die Zusammenh nge Application Frameworks in der BibV30 benutzen diese implementierten Versionen der Muster als besondere objektorientierte
141. ie unge wollte Verbindung des Application Framework mit einem bestimmten Fenstersystem Derzeit lassen sich die Anwendungsumgebungen in der BibV30 sowohl mit OSF Motif als auch wxWindows benutzen die Interaktionstypen f r Tc TK lassen sich leicht anpassen Dennoch ist diese Hook Klasse nur eine partielle L sung des Problems Layout Informationen in der IAK Calder95 beschreibt die deklarative Positionierung von Oberfl chenelementen in Interviews als Vorteil gegen ber festen Koordinatenangaben Fenster deren Gr e der Benutzer ndert positionieren ihre Inhalte unter Ber cksichtigung der neuen Rahmenwerte selbst neu wobei sich Interviews am Beispiel der Textformatierung orientiert vgl Kapitel 3 Auch ET verf gt ber hnliche Mechanismen der Softwareentwickler definiert die relative Positionierung durch Einbettung seiner Widgets in spezielle Layout Objekte Die Hierarchie von Oberfl chenelementen in Systemen wie Interviews ET aber auch OSF Motif und TeVTK dient also dieser vorteilhaften Positionierung ohne feste Koordinaten Im Unterschied zu ET erfolgen Einstellungen in einer separaten Ressource Datei nicht wie in ET an den einbettenden Objekten selbst Interaktionstypen sollen sich gem WAM auf Formen der Interaktion beschr nken nicht auf deren Umsetzung in bestimmten Systemen Eine IAT Bibliothek dieser Art l t sich auf jedes Fenstersystem portieren bestimmte Layout Informationen dagegen nicht oder
142. iel f r generische Subwerkzeuge sei ein Lister genannt 1 aus N Selektion Alle Subwerkzeuge und Automaten werden selbst unter Verwendung des Application Framework erstellt und stehen auf einer Ebene mit Werkzeugen und Subwerkzeugen konkreter Applikationen Eine harte Abgrenzung zwischen allgemeinen und speziellen Kapitel 5 Strukturierung von Framework Bibliotheken Seite 121 Komponenten ist insofern nicht erforderlich als Subwerkzeuge gem WAM ohnehin als wiederverwendbare Einheiten verstanden werden bzw so zu entwerfen sind 5 2 3 Fachliche Framework Komponenten Auf Grundlage der BibV30 bzw Vorg ngerversionen wurden verschiedene Anwendungen erstellt Dabei handelte es sich jeweils um einzelne Projekte nicht um eine Anwendungsfamilie in gegebener Dom ne Die BibV30 ist nicht f r einen bestimmten Kontext konstruiert bzw zugeschnitten vielmehr dient sie als Plattform f r Applikationen unterschiedlicher Bereiche Fachliche Frameworks beinhalten gemeinsame Konzepte verschiedener Applikationen jeweils aus mehreren Anwendungen heraus abstrahiert Einzelanwendungen implementieren selbst ihre Material Aspekt und Werkzeugklassen eine Wiederverwendung dieser speziellen Ele mente in anderen Anwendung steht nicht an Der gemeinsame Kontext fehlt es wurden keine abstrakten fachlichen Komponenten f r die BibV30 aus diesen Anwendungen heraus gewonnen Zwischen WAM Konzepten in der Framework Sammlung und dem Anwendungskontext
143. il seines Frameworks unter anderem mit der Abh ngigkeit des Manipulators vom graphischen Material Tool Objekte erzeugen Manipulator Objekte als Kombination mehrerer von den selektierten Views erstellter Manipulatoren grauer Teil in Abbildung 4 8 Die GFX Klassen der BibV30 bernehmen nicht die Aufgabe f r sich selbst Manipulatoren zu kreieren die entsprechende Funktionalit t der Tool Klasse entf llt folglich WAM bietet mit der Werkzeug Konstruktion aus IAK und FK ein bew hrtes Schema f r den Entwurf die Interaktionskomponente bernimmt die Erzeugung von Manipulatoren In der technischem Umsetzung 4 4 4 zeigt sich zudem eine gr ere Flexibilit t der f r die BibV 30 gew hlten L sung da die Annahme jeweils eines aktiven Tools entf llt Prinzipiell unvereinbar mit der Werkzeug und Material Metapher bzw der softwaretechni schen Konzepte dieser Methode sind Commands wie sie in Unidraw oder auch ET vorliegen Aufgabe dieser Objekte ist eine nderung des fachlichen Materials nach WAM mu dies in der FK geschehen Erzeugt werden die Commands aber in der IAK bei Beteili gung der Views sogar genau genommen in Interaktionstypen Kapitel 4 Frameworks f r WAM C Bibliotheken BibV30 Seite 95 Commands als Design Pattern nach GoF95 erleichtern die Konstruktion von Undo Redo Mechanismen und eben dies ist die Motivation f r ihren Einsatz in graphischen Editoren F r einen Mechanismus im WAM Framework gibt es zwei Al
144. ild on the collective experience of skilled software engineers They capture existing well proven experience in software development and help to promote good design practice Every pattern deals with a specific recurring problem in the design or implementation of a software system Pree94 betrachtet Design Pattern als die nat rliche Fortsetzung blicher Techniken der Softwareentwicklung Programmers tend to create parts of a program by imitating though not directly copying parts of programs written by other more advanced programmers Such imitation is as old as programming The design pattern concept can be viewed as an abstraction of this imitation activity Die besondere Leistung besteht darin die Erfahrungen explizit zu machen und anderen Ent wicklern zur Verf gung zu stellen Damit mu dieser nicht erst aus bestehenden Programmen das verwendete Design abstrahieren sondern bekommt eben dieses dargestellt Zur Beschreibung von Design Pattern gibt es unterschiedliche Formen Weit verbreitet ist die Form Kontext Problem L sung Alexandrian Form Im allgemeinen erg nzen weitere Abschnitte die Beschreibung u a Beispiele zur Erl uterung des Kontextes L sungsvarianten bekannte Verwendung RZ95 untersucht die verschiedenen Beschreibungsformen und deren spezielle Zielsetzung W hrend die Alexandrian Form dazu dient anhand der Design Pattern konkrete L sungen zu finden generativ ist die Beschreibung in
145. ilit t bringt tCanvasMousePolicy eine Strategieklasse f r ggf auch zur Laufzeit wechselnde Belegung z B f r Linksh nder Seite 102 Kapitel 4 Frameworks f r WAM Konkret ruft tIATCanvas nacheinander die Methode PrepareEvent aller Manipulator Objekte bis sich einer aktiviert IsActivated Das Ereignis und alle folgenden leitet der Canvas dann per AcceptEvent an den Manipulator bis dieser den Handlungsabschlu erkennt und sich in den Zustand nicht aktiviert versetzt Grafikeditoren beinhalten oft drei Arten von Manipulatoren Die erste Art sind Manipulatoren die nicht f r bestimmte bestehende Objekte aufgerufen werden Gemeint sind z B Lassos aber auch die Erzeugung neuer Elemente Der Anwender bet tigt die Maus an beliebiger Po sition der Zeichenfl che oder konkret an einer Stelle an der sich bisher kein Element befindet Den Kontrast bildet die zweite Art der Manipulatoren mit direktem Bezug zu bestehenden Grafiken z B um diese zu verschieben wird der Anwender einfach auf das Objekt klicken Als dritte Art ergeben sich Manipulatoren die an bestimmten Punkten gekennzeichnet sind und dort aktiviert werden blich sind vier oder acht Punkte um die selektierten Objekte mit denen Verformung bzw an den Ecken oft proportionale Gr en nderungen durchzuf hren sind Es gibt auch Punkte f r Drehung von Objekten um ihren Mittelpunkt oder um frei definierbare Punkte die ebenfalls per direkter Manipulation dieser
146. in der Darstellung offensichtlich eine andere Gewichtung der beteiligten Komponenten der fachliche Bereich berwiegt im GEBOS System und wird weiter strukturiert GEBOS ist eine gro e Anwendungsfamilie die Dom ne Bank wird nicht durch eine einzige Schicht unterst tzt sondern zuvor in Gesch ftsbereiche gegliedert Business Section Layers z B Anlagengesch ft oder Immobilien Finanzierung Deren Gemeinsamkeiten die das Bankgesch ft als Ganzes ausmachen ergeben eine eigene Schicht Business Domain Layer Im Vergleich zur Abbildung 5 2 bestehen zwar auch mit den einzelnen Gesch ftsbereichen mehrere Dom nen innerhalb der Bibliothek nur sind diese nicht voneinander unabh ngig Dies ist die Annahme f r eine weiterentwickelte BibV30 im GEBOS System dagegen sollen insgesamt Banken unterst tzt werden und die haben eine gemeinsame Gesch ftsgrundlage Meine Annahme in eine Bibliothek Elemente f r verschiedene Branchen zu integrieren ist auf derart gro e Systeme kaum bertragbar Ergebnis der Konzentration auf Banken ist eine Gr e deren Handhabung Schwierigkeiten mit sich bringt Also diskutiere ich nachfolgend nicht etwa eine Integration des GEBOS System in die Bibliothek sondern die Konstruktion eines neuen Systems unter Verwendung der BibV30 GEBOS bzw die Dom ne Bank dient als Beispiel wie es auch Krankenh user oder Autovermietungen w ren Implementation eines Dom nen Frameworks f r Banken mit der BibV30 Di
147. ine Pr sentation sondern dient nur der Verwaltung Bleibt ein einziger IAT der das Repertoire an Interaktionsformen erweitern k nnte als neue Form neben 1 from N select Activator und anderen reiht sich der graphische Manipulator ein Listen pr sentieren vielfach die bliche Interaktionsform Selektion 1 aus N M aus N Viele Systeme sehen als Alternative eine graphische Pr sentation vor z B f r Dateiverwaltung oder elektronische Schreibtische Aus dieser Sicht bilden die hier gezeigten Grafik Komponenten der BibV30 m glicherweise zuk nftig eine technische Basis f r spezielle Pr sentationsformen zu bekannten und neuen Formen der Interaktion Kapitel 4 Frameworks f r WAM C Bibliotheken BibV30 Seite 109 4 5 Erzielte Fortschritte und weitere Planung Die Vielzahl der in diesem Kapitel dargestellten Erweiterungen und nderungen des WAM Frameworks dokumentieren einen Teil der Entwicklung zur BibV30 Konzeptionell l t sich der Fortschritt auf zentrale Anliegen zusammenfassen E Die Methode WAM pr gt die Komponenten des Frameworks in diesem Kontext entwickelte Konzepte und Design Pattern sollen umgesetzt erprobt und vor allem miteinander kombiniert werden E Angestrebt wird der wahlweise Einsatz derjenigen Komponenten die f r bestimmte Anwendungen erforderlich sind Die Grafik gem Abschnitt 4 4 ist z B nur f r eine relativ Kleine Gruppe mit dem Framework entwickelter Applikationen notwendig E Zur Umset
148. ion kooperativer Arbeit in H Kremar H Lewe G Schwabe Hrsg Herausforderung Telekooperation D CSCW 96 Springer 1996 Thorsten G rtz Abstraktion der GUI Komponente in einem Rahmenwerk Diplomarbeit am Arbeitsbereich Softwaretechnik Fachbereich Informatik Universit t Hamburg voraussichtlich 1997 Erich Gamma Richard Helm Ralph Johnson John Vlissides Design Patterns Elements of Reusable Object Oriented Software Reading Massachusetts Addison Wesley 1995 Goldberg83 Adele Goldberg Smalltalk 80 The Interactive Programming Environment Addison Wesley Gryczan95 Hess93 JF88 Johnson92 Kornst dt94 KRW96 LCITV92 Lewis95 Lilienthal95 Lilienthal97 LS96 Meyer88 Meyer94 MS96 OOPSLA92 Perry96 Menlo Park 1984 Guido Gryczan Situierte Koordination computergest tzter qualifizierter T tigkeit ber Proze muster Dissertation Universit t Hamburg 1995 bzw Prozessmuster zur Unterst tzung kooperativer T tigkeit Deutscher Universit ts Verlag DUV Informatik Wiesbaden 1996 Hauke Hess Grundsteine f r eine STEPS Werkzeugumgebung Diplomarbeit am Arbeitsbereich Softwaretechnik Fachbereich Informatik Universit t Hamburg Juni 1993 Ralph E Johnson Brian Foote Designing Reusable Classes The Journal of Object Oriented Programming Vol 1 No 2 1988 Seiten 22 35 Ralph E Johnson Documenting fra
149. ion des Grafik Frameworks ergibt die L sung zweier Probleme vgl 4 4 1 Besonders wichtig ist die Verwaltung der Grafik IAT s durch den tIATCanvas W hrend fr her die Interaktionskomponente jederzeit in der Lage sein mu te den Inhalt der Zeichenfl che wieder herzustellen z B nach berdeckung des Fensters bernimmt diese l stige Aufgabe jetzt der IAT Dies erm glicht auch eine Optimierung des Vorgangs da der tIATCanvas Objekte nicht anzeigen mu die au erhalb des sichtbaren Ausschnitts liegen Bei dieser Besserung ist anzumerken da der Vorteil nicht nur technisch motiviert ist Es handelte sich auch um einen konzeptionellen Bruch gegen ber allen anderen Interaktionstypen die auch im alten Framework ohne Mitwirkung der IAK wiederhergestellt wurden Seite 100 Kapitel 4 Frameworks f r WAM Das zweite Problem ergibt sich aus dem Zeichenmodus XOR der alten Zeichenfl che Dort gab es keine Ebenen die Objekte wurden nicht in logischer Reihenfolge bereinander gezeichnet sondern alle Objekte waren in derselben Ebene gleichzeitig zu sehen Identische Objekte zeigte die alte Zeichenfl che berhaupt nicht an da sich diese gegenseitig ausl schten Notwendig ist die Verwendung dieses Modus unter X Windows um schnelle Bewegungen optisch akzeptabel anzuzeigen Mechanismen wie Double Buffering schaffen zwar Abhilfe gegen den Flimmer Effekt daf r erscheinen die Bewegung aber ruckartig wenn eine sehr gro e Anzahl an
150. it besonders hinsichtlich der Ereignisse einer FK Hinzu kommen technische Verbesserungen durch direkten Aufruf zust ndiger Me thoden Beschr nkung auf relevante Ereignisse und im Falle der Commands bergabe von Parametern 4 4 Integration fremder Konzepte Graphik W hrend Oberfl chenelemente wie Kn pfe Listen und Men zeilen in verschiedenen Formen zu jeder graphischen Benutzerschnittstelle geh ren gibt es bisher in GUI Systemen kaum Abstraktionen f r die Unterst tzung von Anwendungen mit spezifischen Grafikaktionen z B Malprogramme mit direkter Manipulation Zu den ersten Anwendungen der WAM Bibliotheken z hlte Sane ein graphischer Editor f r Aufgabennetze Im Gegensatz zum AT Konzept f r normale Oberfl chenelemente bzw als Abstraktion der Benutzerinteraktion mit diesen Elementen fehlte ein geeigneter Ansatz f r direkte Grafik Manipulation Implementiert wurde graphische Grundfunktionalit t in einer f r Sane tragf higen Form siehe 4 4 1 Im Zuge der Redesignphase sollte dieser Bereich der C Bibliotheken erneuert werden es schien angebracht vorhandene Konzepte aus fremden Systemen zur Vorlage zu nehmen Ein diesbez glich passendes Framework ist Unidraw vgl 3 2 2 dessen Ansatz ich in die BibV 30 integriert habe Dazu stelle ich den Bezug zwischen WAM und den Unidraw Konzepten her 4 4 2 und nehme entsprechende Anpassungen vor 4 4 3 Vorrangig ist die Metapher der direkten Manipulation in 4 4 4 b
151. it im Zustandsmodell der Cursor Klasse im Anwendungsprogramm kann dies sicher behandelt werden Zur Implementation der Beh lterkonzepte verwendet Traub95 nur drei tats chliche h chst effiziente Beh lter deren aufwendige interne Struktur dem Benutzer vollst ndig verborgen bleibt Mit der STL wird die ConLib nicht berfl ssig da deren Konzepte der STL berlegen sind Denkbar w re ein Austausch der genannten drei tats chlichen Beh lter als technische Basis der Bibliothek durch eine Abbildung auf die STL Kapitel 4 Frameworks f r WAM C Bibliotheken BibV30 Seite 75 Die ConLib hat sich ohne Integration in die WAM Frameworks bew hrt sie war mit diesen vertr glich wurde neben deren Listen verwendet Die BibV30 integriert ConLib Beh lter die fr heren eigenen Listen werden auch intern nicht mehr benutzt F r den Benutzer entf llt die Problematik verschiedene Listen verstehen zu m ssen um sich das Framework anzuse hen Au erdem profitiert die BibV30 von h herer Effizienz und Funktionalit t den ConLib Vertragsmodell Eiffel s Zusicherungen in C Eiffel verf gt ber Sprachkonstrukte zur Formulierung von Klasseninvarianten sowie Vor und Nachbedingungen f r Methoden Dies sind m chtige Konstrukte f r die Anwendung des Vertragsmodelles Meyer88 die andere objektorientierten Sprachen nicht kennen Um in C ber die Kommentierung der Klassen und Methoden hinaus Vorbedingungen zu pr fen kann der Makro Mecha
152. ken der Elemente Bei der Ausgabe mittels XOR ergibt sich dies aber automatisch abwechselnd falls nicht zwischenzeitlich die komplette Zeichenfl che gel scht wurde Da eine Verwaltung der Elemente in der Zeichenfl che fehlt und auch die GFX Objekte ihre Sichtbarkeit nicht als Zustand halten k nnen zumindest nicht wenn die Zeichenfl che gel scht wurde nach einer berdeckung sind die Methoden Show und Hide irref hrend Implementiert werden beide identisch die mit dem Namen angedeutete Wirkung ist nicht garantiert Aus diesen Nachteilen der alten Implementation l t sich ein Forderungskatalog f r die BibV30 erstellen um den Anspr chen zu gen gen folgt das neue Konzept einer bew hrten Infrastruktur f r graphische Editoren n mlich dem Dom nen Framework Unidraw 4 4 2 Vorstellung einiger Unidraw Konzepte Als Framework f r die Dom ne graphischer Editoren basiert Unidraw auf fortschrittlichen Konzepten im Bereich der Grafik und direkten Manipulation Den Leistungsumfang habe ich in 3 2 2 im berblick vorgestellt ausgew hlte Elemente erl utere ich nachfolgend detailliert um deren bernahme in die BibV30 vorzubereiten siehe 4 4 3 Zum Application Framework sei gesagt da in einer Anwendung beliebig viele Editoren mit jeweils mehreren Sichten auf das Material gleichzeitig ge ffnet sein k nnen Nachfolgend stelle ich die Konzepte Grafik Objekt Component direkte Manipulation und abschlie end Verbindungen Connector vor
153. ks Wiederverwendung generisch sein m ssen Welchen Bezug gibt es zwischen Frameworks und Subwerkzeugen Zum Einen bilden Frameworks die Infrastruktur f r die Entwicklung von Werkzeugen aus lose gekoppelten Komponenten in diesem Fall Subwerkzeugen Zum Anderen sehe ich aber gerade bzgl generischer Subwerkzeuge den Einsatzschwerpunkt von Frameworks Da ein Anwender mit Werkzeugen arbeiten soll die speziell seinem Bedarf entsprechen gilt es die generischen Komponenten anzupassen zu konfigurieren Frameworks sind nun gerade Software Bausteine die z B durch Parameterobjekte oder durch Subklassenbildung f r einen bestimmten Anwendungskontext spezialisiert werden So sollten generische Subwerkzeuge Bestandteil einer Framework Bibliothek sein indem diese als op tional verwendbare Mikro Frameworks evtl unter Verwendung anderer Mikro Frameworks entworfen werden Black Box Wiederverwendung sollte angestrebt werden soweit m glich auch schon konkrete Parameterklassen f r Standardf lle vorhanden sein Da es sich bei dieser Art Subwerkzeuge dann nicht um fertige Komponenten handelt sondern vielmehr im Gegensatz zu konkreten fachlichen Subwerkzeugen nach WAM der konkrete Bezug zur Anwendung noch zu erg nzen ist nenne ich diese Komponenten Halbzeuge In der Verwendung entstehen durch Ableitung oder Parametrierung dann die Subwerkzeuge einer WAM Applikation Kapitel 2 Begriffe und Literatur Seite 45 2 4 Begriffsbildung im berblick
154. kt hergestellt die ILAK verwendet dazu die Fabrikmethode des tIATCanvas Abb 4 16 Ansonsten merkt sich der IAT seine Position und Gr e nderungen der Form werden direkt am GFX Objekt vorgenommen class HATGraphic public HATBase public HATGraphic tGFXDrawable _pGFX Konstruktor virtual tIA TGraphic Destruktor virtual TATGraphic Clone O ll tiefe Kopie virtual void RegisterCommand tSelectCommandBase _pCmd selektiert kein Parameter virtual void Register Command tUnselectCommandBase _pCmd deselektiert kein Parameter fuer Manipulatoren und IATCanvas virtual tGFXDrawable GetDrawable virtual void Update Imeldet nderungen am GFXDrawable virtual void Select virtual void Deselect virtual bool sSelected virtual int GetSizeX virtual int GetLeft b Abbildung 4 17 Schnittstelle tIATGraphic Ausschnitt Update mu nach jeder nderung am GFX Objekt aufgerufen werden damit die Angaben zur Position und Gr e synchronisiert werden Im Gegensatz zum Vorbild Unidraw verzichtet die BibV30 hier aber auf wechselseitige Benutzung das GFX Objekt h lt keinen Verweis auf den IAT zu dem es geh rt Die ndernde Komponente ist f r den Aufruf der Methode Update selbst zust ndig kann somit auch den Zeitpunkt bestimmen da die nderung ausgewertet wird Beispiele in 4 4 5 und vor allem Wei 97 machen hiervon Gebrauch Kapitel 4 Frameworks f r WAM C Bibliotheken
155. kten Oberklassen ableitet Pree94 concrete classes can be implemented based on the contracts offered by the abstract classes Die Schnittstelle oder genauer das zu erf llende Protokoll ist dadurch vorgegeben erg nzt wird die konkrete Funktionalit t der Anwendung Das Nebeneinander festgelegter und variabler Aspekte hat zentrale Bedeutung beim Entwurf von Frameworks Dazu Pree94 In general an application framework standardizes applications for a specific do main Usually various aspects of an application framework cannot be anticipated The core characteristic of any framework is that various aspects have to be kept flexible while others are standardized Auf Ebene der Methoden k nnen Sequenz und Einschubmethoden unterschieden werden Gamma92 Die Anpassung einer komplexen Sequenzmethoden erfolgt ber die von dieser benutzten Einschubmethoden Pree94 verwendet die Begriffe hook method vgl Ein schubmethode und template method vgl Sequenzmethode wobei hook methods abstrakt oder regul r sein k nnen oder selbst wieder template methods Grunds tzlich kann jede Methode als Template betrachtet werden wenn sie andere Methoden benutzt jede benutzte Methode somit als Hook Diese Bezeichnungen h ngt von der Betrachtungsweise ab Regul re Methoden verwenden keine andere Methoden abstrakte Methoden m ssen in abgeleiteten Klassen implementiert werden Flexibilit t wird in Fra
156. l der Anwender die Objekte nicht verschieben sondern verformen Diese Aktion wirkt sich je nach Typ des Elementes unterschiedlich aus z B darf ein Kreis nur proportional vergr ert oder verkleinert werden Das Tool tr gt dem Rechnung indem es sich von jedem selektierten View einen eigenen Manipulator geben l t und selbst einen speziellen Manipulator als Kombination kreiert grauer Bereich in Abb 4 8 Der n chste Schritt ist in beiden Varianten des Beispiels die direkte Manipulation selbst Die Methode Grasp bereitet den Manipulator vor danach ruft der Viewer solange die Methode Manipulating auf bis diese den Wert false zur ck liefert Innerhalb dieser Schleife geschieht die Benutzerinteraktion Aufgabe des Manipulators bei diesem Vorgang ist eine R ckmeldung an den Benutzer und die Erkennung des Abschlusses der Handlung Entsprechend der Vorbereitung mit Grasp gibt es am Ende einen Methodenaufruf Effect Ein Abbruch der Interaktion ist w hrend des Vorgangs jederzeit m glich da noch keine nderung am Component Subject erfolgt der Manipulator t uscht lediglich eine Ver nderung der Views vor Tats chlich bergibt der Viewer das Manipulator Objekt dem Werkzeug damit dieses dazu passend ein Command erzeugt Auch hier besteht wieder die Option da das Tool selbst dieses Command herstellt oder die Aufgabe teilweise an die selektierten Views dele giert in der Abbildung wurde diese Variante nicht gesondert eingezeichnet Erst
157. lient und Receiver Invoker Mark int Zeile erzeugen Doc Commands sind Ma S ele ct C omman d Templates die aufzurufende Methode ConcreteCommand wird bei der Erzeugung mit angegeben Do int Index Abbildung 4 3 a Klassendiagramm b Interaktionsdiagramm Erl uterung vgl Abb 4 8 Konzeptionelle Bedeutung der nderung Motivation des Beobachtermechanismus war die Annahme da eine Komponente die andere beobachtet also deren Zustand sondiert Um st ndiges Abfragen zu vermeiden meldet diese beobachtete Komponente Zustands nderungen mittels eines Signals an seine Beobachter Es k nnen beliebig viele Beobachter registriert sein und die beobachtete Komponente kann keine Annahmen dar ber treffen ob das Signal empfangen bzw beachtet wird Zwischen IAK und FK wie auch zwischen Kontext FK und Sub FK bestehen Verbindungen dieser Art Die BibV30 verwendet daf r jetzt das Design Pattern Observer Im wesentlichen entspricht dies dem Konzept des Beobachters vgl RW96 verbessert wurde insbesondere die Umsetzung Es gibt die Oberklassen Observable und Observer Events stehen als eigene Objekte f r die Ereignisse Implementiert wurden die Mikro Frameworks f r Observer und Command per Template und Methoden Pointer Einzelheiten finden sich in RW96 Konzeptionell stellen die explizit an der Schnittstelle einer FK kenntlichen Ereignisse einen gro en Fortschritt dar Umgekehrt dokumentieren zu
158. llSector long _X long _Y long _Width long _Height int _Alpha int _Beta 0 I_Alpha Winkel zwischen X Achse und Sektor Beginn _Beta Sektor Groesse virtual void DrawLine long _X1 long_Y1 long_X2 long_Y 2 0 virtual void DrawPolyLine tOrdCol lt tCanvasPoint gt _pNodeL6ist 0 virtual void FillPolygon tOrdCol lt tCanvasPoint gt _pNodeLbist 0 virtual void DrawArrowhead long _X1 long _Y1 long _X2 long _Y2 0 i Abbildung 4 11 Schnittstelle tCanvas Ausschnitt Seite 98 Kapitel 4 Frameworks f r WAM Technisch zeichnet sich die neue Klasse tXCanvas neben einigen signifikanten Optimierungen vor allem durch die Unterst tzung von Farben aus Im X Windows GUI System ergeben sich durch begrenzte Farbpaletten verschiedene Probleme abh ngig von der Hardware die eine gegen ber der Oberklasse erweiterte Schnittstelle explizit behandelt vgl Ausschnitt der Schnittstelle in Abbildung 4 12 Eine nderung der abstrakten Klasse tCanvas entf llt da die Probleme nur den Interaktionstyp betreffen und dieser ohnehin vom konkreten Fenstersystem und damit von der konkreten Klasse tXCanvas abh ngt class XCanvas public tCanvas public tXCanvas Widget _xWidget virtual tXCanvas Hintergrund der Zeichenfl che setzen verschiedene Varianten virtual void SetBackground char _cBitmap int _iWidth int _iHeight virtual void SetBackground tString _sColor tString _sBitmapColor tString
159. llr ckflu ggf Beschriftet mit R ckgabewerten e ein 2 Balken am Objekt kennzeichnet einen Methodenaufruf bevor die aktive Methode beendet wurde e in einem Kasten am Objekt werden Methodenaufrufe innerhalb des Objektes vermerkt diese k nnen mit Namen der Ober Klassen qualifiziert sein e die grauen Bereiche in Abbildung 4 8 sind innerhalb des Ablaufs optional Kapitel 4 Frameworks f r WAM C Bibliotheken BibV30 Seite 91 e Abbildung 4 3 in Abschnitt 4 3 Doppelpfeile kennzeichnen Objekterzeugung die Unterbrechung der senkrechten Linie unterscheidet zeitlich unabh ngige Vorg nge In einem universellen Grafikeditor verschiebt der Anwender selektierte Elemente mit der Maus Die Anwendung besteht aus einem Editor und einem Viewer also einer Sicht auf das Material Ausgangspunkt der Interaktion ist dieser Viewer der die Benutzeraktion empf ngt Im Editor hatte der Anwender zuvor das Tool Verschieben ausgew hlt verschiedene Ele mente sind selektiert Erste Aufgabe des Viewer Objektes ist die Erzeugung eines Manipulators Dazu l t sich der Viewer vom Editor das aktive Werkzeug geben und fordert von diesem den Manipulator an Da Werkzeug erh lt als Parameter das Ereignis also Button Down Dieser einfache Fall setzt keine Mitwirkung der selektierten Views voraus da die Aktion verschieben unabh ngig vom Typ der Grafikelemente ist der graue Bereich in Abbildung 4 8 entf llt In einer Abwandlung des Beispiels wil
160. lten aufgrund dieser Information aktiviert die IAK entsprechende Methoden der Funktionskomponente der Manipulator selbst f hrt die Aktion nicht aus Er stellt aber den Handlungsabschlu fest Im Repertoire von WAM beschreibt dies exakt einen IAT der da Ergebnis seiner Berechnung an die IAK weiter reicht vgl 4 3 3 W hrend der Manipulation stellen die Manipulator Objekte das Zwischenergebnis oder dessen Abstraktion in Form von Umrissen in der Zeichenfl che dar nehmen aber keine nderungen der Grafik selbst vor Ein Abbruch durch den Benutzer oder auch das Werkzeug ist m glich Manipulatoren beachten Bedingungen die sich aus Verbindungen zwischen Grafikelementen ergeben Connectoren umgesetzt als Eigenschaften der GFX Objekte Zusammengefa t erweitern Konzepte aus Unidraw die BibV30 um folgende Komponenten e Interaktionstyp tIATGraphic zur Anzeige eines GFX Objektes auf der Zeichenfl che e Interaktionstyp tIATManipulator f r direkte Manipulation e Connectoren als Eigenschaften der GFX Objekte Erhalten bleiben aus dem alten Framework die Zeichenfl che tIATCanvas deren technische Basis tCanvas mit tXCanvas und tPSCanvas und die GFX Klassen Editor Viewer und Tool aus Unidraw gehen in die Werkzeuge ein Commands w ren eine optionale Erg nzung nicht nur f r die Grafik Subjects finden sich nicht im Framework wohl aber als fachliches Material konkreter Anwendungen Seite 96 Kapitel 4 Frameworks f r WAM 4 4 4 Technis
161. m beschrieben zu der auch eine Beispiel Implementation geh rt also provides sample code to illustrate an implementation GoF95 Dieser Code soll aber nicht direkt verwendet werden sondern lediglich einen Hinweis auf eine m gliche Implementation geben In der jeweiligen spezifischen Situation k nnen sich aufgrund konkreter Anforderungen v llig andere Codierungen ergeben B Anderson Workshop Report Towards an Architecture Handbook OOPSLA 92 Addendum OOPS Messenger April 1993 Kapitel 2 Begriffe und Literatur Seite 35 Wiederverwendung von Code und Design ist dagegen erkl rtes Ziel des Frameworkansatzes Ein Framework wird direkt benutzt lediglich spezifische Teile der Anwendung sind zu erg n zen F r den Benutzer ist die konkrete Implementation der im Framework gekapselten Funktionalit t nicht wichtig Er mu nur verstehen wie er diese benutzen kann an welchen Stellen er seine eigene Applikation mit dem Framework verbinden mu BMRSS96 A framework is a partially complete software sub system that is intended to be instantiated It defines the architecture for a family of sub systems and provides the basic building blocks to create them It also defines the places where adaptations for specific functionality should be made Unterschiede zwischen Frameworks und Design Pattern sah Gamma92 neben der Imple mentation im spezifischeren Anwendungskontext von Frameworks einem geringeren Abstraktions
162. material in a generic way but use our knowledge to select the right tool and handle it in a specific way suitable for the combination of tool material and work at hand solution We make the relationship between a tool and a material explicit by introducing aspects RZ95 Seite 40 Kapitel 2 Begriffe und Literatur Dadurch wird die Beziehung definiert notwendige Umgangsformen festgelegt Werkzeuge k nnen mit jedem Material arbeiten das den Aspekt erf llt Umgekehrt mu das Material nicht wissen mit welchen Werkzeug es bearbeitet wird Es erf llt lediglich den Vertrag der durch den Aspekt spezifiziert wurde siehe Abbildung 2 3 Aspektklassen sind kursiv beschriftet deren Vererbungsbeziehungen sind hervorgehoben Abbildung 2 3 Werkzeug Aspekt und Material Erg nzt werden diese Metaphern um Automaten und die Umgebung Automaten erledigen regelm ige Arbeitsprozesse im Hintergrund und haben im Vergleich mit Werkzeugen nur eine rudiment re Benutzungsschnittstelle zur nderung variabler Einstellungen Automaten im Sinne von WAM werden vom Benutzer gezielt benutzt und gesteuert unterer Kontext im Gegensatz zu gro en Automaten deren Zweck die Steuerung der Arbeitsabl ufe ist oberer Kontext Gryczan95 gibt eine umfassende Darstellung der Metapher und motiviert die Beschr nkung auf kleine Automaten Ausgehend vom Bild der gut sortierten Werkstatt wird eine Umgebung f r Software Werkzeug
163. men use to work on materials We have taken this basic notion as a starting point for understanding what tools and materials are and how we can extend this concept to software tools and materials RZ95 Die Werkzeug Material Metapher beruht auf der Annahme da in Arbeitssituationen ein intuitiver Unterschied festgestellt werden kann zwischen Dingen an denen man arbeitet Materialien und Dingen die Arbeitsmittel sind Werkzeuge Lilienthal95 Kapitel 2 Begriffe und Literatur Seite 39 Die fachliche Modellierung teilt die Komponenten der Arbeitswelt in Software Werkzeuge und mit ihnen bearbeitete Materialien Technisch setzen Material Aspekt und Werkzeug klassen diese Komponenten um Werkzeuge bestehen hnlich dem MVC Muster aus getrennter Interaktionskomponente IAK und Funktionskomponente FK Riehle und Z llighoven haben WAM in Form einer Pattern Language beschrieben Ihe term Tools amp Materials Metaphor characterizes our overall approach We explain the approach and its underlying idea by using a pattern language we have three levels within our pattern language for analyzing designing and constructing software systems 1 The design metaphors within the realm of a leitmotif guiding our perception and our thinking 2 The design metaphors helping us to transform our design ideas into a concrete software design 3 The programming patterns as basic means and forms for expressing software
164. meworks erreicht durch hook methods W hrend standardisierte Funktionalit t im Template festgeschrieben wird k nnen variable Teile durch Anpassung des Hook ge ndert werden Pree94 f hrt die Begriffe frozen spot und hot spot ein The standardized frozen spots of a framework are represented by template methods Hook methods are the flexible gray spots hot spots within these frozen spots Seite 26 Kapitel 2 Begriffe und Literatur Die Unterscheidung in standardisierte und flexible Methoden enth lt noch keine Angaben ber die Aufteilung in Klassen Wichtig ist erst einmal notwendigerweise anpa bare Teile des Frameworks zu identifizieren Ein Framework soll m glichst viele Komponenten bereits implementieren Gemeinsamkeiten aller Applikationen einer Dom ne sollen durch das Framework als Standard bereitgestellt werden also den Anwendungsentwickler nicht weiter belasten Andererseits h ngt der Erfolg eines Frameworks davon ab ob es sich hinreichend an konkreten Bed rfnissen orientiert und an einzelnen Punkten entsprechend flexibel ist The difficulty of good object oriented design is to identify the hot spots of an application framework i e those aspects of an application domain that have to be kept flexible Pree94a Als n chstes mu dann der ben tigte Grad an Flexibilit t ermittelt werden Hiervon h ngt es ab ob Template und Hook zu derselben Klasse geh ren k nnen oder aufgeteilt werd
165. meworks using patterns in OOPSLA92 Andreas Kornst dt Ein objektorientierter Interaktionstyp f r die dreidimensionale Darstellung von dynamischen Statistiken unter Motif in C Studienarbeit am Arbeitsbereich Softwaretechnik Universit t Hamburg 1994 http swt www informatik uni hamburg de 1kornsta Anita Krabbel Sabine Ratuski Ingrid Wetzel Objektorientierte Analysetechniken f r bergreifende Aufgaben in J rgen Ebert Hrsg GI Fachtagung Softwaretechnik 96 M A Linton P R Calder J A Interrante S Tang John M Vlissides InterViews Reference Manual Version 3 1 Stanford University 1992 Ted Lewis Editor Object oriented application frameworks Manning Publications Co Greenwich 1995 Carola Lilienthal Konzeption und Realisierung eines an der Anwendungssprache orientierten Hilfesystems nach der Werkzeug Material Metapher Diplomarbeit am Arbeitsbereich Softwaretechnik Universit t Hamburg 1995 http swt www informatik uni hamburg de Carola Lilienthal Dokumentation der BibV30 im WWW Arbeitsbereich Softwaretechnik Universit t Hamburg 1995 http swt www informatik uni hamburg de Carola Lilienthal Wolfgang Strunk Documenting frameworks by visualizing dynamics Beitrag zur TOOLS 96 http swt www informatik uni hamburg de Proceedings noch nicht erschienen Bertrand Meyer Object oriented Software Construction Prentice Hall 1988 Bertran
166. mit Ausf hrung des Commands veranla t innerhalb des Application Frameworks durch den Viewer erfolgt die Beeinflussung des Subjects Dieses teilt meldet die Zustands nderung an seinen View Methode Update und der View sondiert ggf einige Werte des Subjects bevor er sich neu zeichnet Als eine weitere Variante sei die gleichzeitige Ansicht der Grafik in mehreren Sichten Viewer genannt Da die Manipulation in einer dieser Sichten erfolgt ndert sich an der Beschreibung des Ablaufes nicht w hrend der Manipulation nimmt Unidraw eine Inkonsistenz der Sichten inkauf Erst im allerletzten Schritt ergibt sich der Unterschied zum Interaktionsdiagramm da das Subject nicht nur einen View sondern alle benachrichtigt sich Seite 92 Kapitel 4 Frameworks f r WAM alle Views synchronisieren und neu zeichnen Infolge dieser Trennung entsprechend MVC entsteht also f r die direkte Manipulation bei mehreren Sichten kein zus tzlicher Aufwand Unidraw f hrt mit dem Manipulator Objekt eine konkret verantwortliche Instanz ein die dem Anwender direktes Feedback gibt Oft sieht der Benutzer nicht das sp tere Ergebnis sondern eine spezielle Darstellung z B nur Umrisse der Objekte an der neuen Position in jedem Fall f hrt aber der Manipulator die Aktion nicht durch sondern simuliert deren Aus wirkungen nur Gewisserma en produziert der Benutzer durch seine Aktionsfolge mit interaktivem Feedback letztlich eine komplexe Anweisung ein Command da
167. n Autoren z B GoF95 nach Design Pattern die Pree als konkrete Auspr gungen der abstrakten Metapattern einordnet vgl Abschnitt 2 2 Aus Sicht der Framework Entwicklung sehe ich in diesen Mechanismen eine Erweiterung des objektorientierten Fundamentes f r wiederverwendbare Software Bausteine insbesondere Frameworks Gem Pree94 sind flexible Klassen und Teams ohne diese berhaupt nicht realisierbar Viele Bibliotheken implementieren Mikro Frameworks nach Vorlage von Design Pattern um mit diesen fachliche Application Frameworks flexibel zu konstruieren Ich rechne diese Art von Mikro Frameworks bzw Komponenten einer Bibliothek als objektorientierte Techniken der technischen Dimension zu wenn auch Implementationen von Design Pattern an der Schnittstelle zu methodisch motivierten Bereichen liegen Kapitel 5 Strukturierung von Framework Bibliotheken Seite 117 Eine weitere Begr ndung f r diese Sichtweise entnehme ich ET Dort fa t die allgemeine Oberklasse Object verschiedene Spracherweiterungen und Design Pattern zusammen um so eine bessere Infrastruktur f r das Framework und damit entwickelte Anwendungen zu bieten Es handelt sich also um eine Sammlung an Mechanismen die beliebig verwendbar sind In der methodischen Dimension erwarte ich dagegen einen konkreten Bezug dort implementierter Komponenten auf bestimmte Verwendungszusammenh nge Neben diesen selbst entwickelten technischen Basisklassen und Frameworks werden vielfa
168. n Framework an dessen Weiterentwicklung ich beteiligt bin Die Beschrei bung dieser gemeinschaftlichen Entwicklung verschiedener Studenten und wissenschaftlicher Mitarbeiter und eine Bewertung der Ergebnisse ist Teil dieser Arbeit Angestrebt sind lose gekoppelte Komponenten die der Anwendungsentwickler jeweils bei Bedarf einsetzen und kombinieren kann Diese Bestandteile eines nach WAM konstruierten Frameworks werde ich identifizieren und eine Zerlegung in Bibliotheken vorschlagen Ziel der Strukturierung ist neben unabh ngiger Weiterentwicklung der einzelnen Bestandteile und korrekter Integration zuk nftiger Komponenten auch eine Anleitung f r die Benutzung des Frameworks Ich werde auf Aspekte der Dokumentation eingehen auf den Stellenwert ausf hrbarer Beispiele Visualisierung der Dynamik und die Beschreibung mittels bekannter sowie neu identifizierter Design Pattern Dar ber hinaus bietet ein gut strukturiertes Framework dem Benutzer die M glichkeit sich jeweils nur mit einem berschaubarem Ausschnitt zu befassen und ggf auch jeweils nur diese Teile zu verwenden Aufbau des Textes Kapitel 2 dient zur Kl rung der im Text verwendeten Begriffe Es erfolgt eine Klassifizierung verschiedener Arten von Frameworks und die Abgrenzung gegen ber Bausteinbibliotheken Arten der Wiederverwendung und in der Literatur bliche Einteilungen f r Frameworks werden erl utert und bewertet GUI graphical user interface grafische Benutzungso
169. n Pattern Viele Pattern zielen darauf ab die Flexibilit t und Wiederverwendbarkeit einer Software zu erh hen und dies sind f r Frameworks entscheidende Qualit tsmerkmale Auch nach Pree sollen Design Pattern bei der Konstruktion neuer Frameworks helfen ebenso bei deren Verwendung Here we see a close connection between design pattern and frameworks A framework should incorporate and instantiate design patterns in order to enforce the reuse of designs in constructive way RZ96 Pattern can help to construct new frameworks which incorporate matured and proven designs Pree94a Design patterns support the re use and development of frameworks Pree94 Durch die Verwendung von Design Pattern zur Konstruktion eines Frameworks kann gleich zeitig eine weitere St rke dieser Muster ausgenutzt werden Pattern erhalten einen Namen und erweitern das Vokabular f r die Kommunikation innerhalb des Entwicklerteams Gamma92 Die Diskussion erfolgt nicht mehr auf Ebene einzelner Klassen sondern benannter Klassen teams Design Entscheidungen k nnen anhand der angestrebten Technik getroffen werden ohne da bereits eine konkrete Implementation vorliegt Patterns provide a common vocabulary and understanding for design principles GHJV93 Naming a pattern immediately increases our design vocabulary It let us design at a higher level of abstraction GoF95 Gleichzeitig kann ein Framework gut du
170. n spezialisiert werden Zudem funk tionieren auch Black Box Framework grunds tzlich nach demselben Prinzip Hier werden eigene Parameterklassen geschrieben die in getypten Umgebungen auch von abstrakten oder konkreten Frameworkklassen abgeleitet werden m ssen Es handelt sich lediglich um meist kleinere Klassen die weniger eventuell verwirrende Methoden enthalten Dennoch mu der Benutzer das Protokoll der Oberklasse implementieren also verstehen wie seine Klasse mit dem Framework interagiert Wesentliche Vorteile k nnen durch Parameterklassen erreicht werden die jeweils ein klar erkennbares Konzept definieren Wird eine gro e Framework Klasse beerbt so mu der Benutzer nicht nur diverse Methoden kennenlernen sondern auch noch verstehen welche jeweils zusammenh ngen Parameterklassen k nnen besser als Kommentare und die externe Dokumentation diese Verbindungen verdeutlichen wenn separate Parameterklassen f r jede vorgesehene Variante der Framework Anpassung zur Verf gung stehen Defaultimplementationen erleichtern den Einstieg in die Programmierung eines Frameworks Parameterklassen erm glichen eine Erweiterung dieses Ansatzes indem f r einen Mechanis mus mehrere konkrete Parameterklassen fertig zur Verf gung stehen der Benutzer also verschiedene Defaultimplementationen zur Auswahl hat Spezielle Frameworks k nnen dann tats chlich benutzt werden ohne zu programmieren einfach durch Kombination geeigneter Komponen
171. n zwischen Pattern verschiedener Kategorien Richtlinien zur Implementation Kombination und praktischen Benutzung in der Softwareentwicklung sind laut Definition Teil eines Pattern Systems Die von Alexander bernommene Bezeichnung Pattern Language lehnt BMRSS96 ab da die vorgestellten Sammlungen von Mustern jeweils nur Ausschnitte darstellen nicht jedoch eine vollst ndige Sprache RZ96 verwirft ebenfalls die Bezeichnung Pattern Language we think that our pattern sets are neither used in a linguistic nor in a computer science sense of the term language Gegen ber der Bezeichnung System wird die unvereinbare Besetzung dieses Begriffes in der Systemtheorie angef hrt W hrend jedoch die Bezeichnung pattern catalog auf lose Seite 34 Kapitel 2 Begriffe und Literatur gekoppelte Sammlungen beschr nkt bleiben sollte wird entsprechend der geplanten Verwen dung die Bezeichnung Handbuch empfohlen We therefore propose to re use the notion of handbook Anderson 1993 being defined as a handy work of print that concisely summarizes the relevant concepts from a domain Hier wird klargestellt da ein solches Handbuch nur innerhalb einer festgelegten Dom ne eingesetzt werden kann Riehle und Z llighoven betonen im Text auch die Notwendigkeit eines gemeinsamen Hintergrundes von Schreibern und Lesern solcher Handb cher dessen Darstellung enthalten sein sollte ebenso die Benennung des geplanten Anwendungs
172. nabh ngig von aller Funktionalit t ist die Verst ndlichkeit einer Softwarekomponente Voraussetzung f r deren Wiederverwendung der Nutzen infolge der Anwendung mu den Aufwand der Einarbeitung bertreffen Diese Diplomarbeit zeigt zweierlei auf die Mittel und Ergebnisse des Redesigns und eine m gliche zuk nftige Verwendung der BibV30 Grundlage der Konzeptionellen und techni schen Weiterentwicklung ist die Annahme durch berschaubare Komponenten mit loser auf gut dokumentierbaren Design Pattern basierender Kopplung eine Anwendungsumgebung ein facher zu gestalten das Verh ltnis zwischen Lernaufwand und flexibler Funktionalit t zu bessern Zur softwaretechnischen Umsetzung der Methode WAM besteht ein Repertoire an Metaphern und Konzepten da st ndig aufgrund neuer Anwendungssituationen erweitert wird Ein gro er Abschnitt dieser Arbeit beschreibt wie ich ein bew hrtes Grafik Konzept aus einer fremden Entwicklung in die Welt der Werkzeug und Material Metapher bertragen und die BibV30 damit aufwerten konnte Die st ndige Erweiterung der Methode und des Frameworks deutet die Richtung weiterer Entwicklungsarbeit an Zielvorgabe f r die Bibliothek ist die m glichst umfassende Anwendungsunterst tzung in dem durch das WAM Leitbild gesteckten Rahmen Konsequenz ist eine Bibliothek aus sehr vielen Komponenten die damit wieder das Ziel der Verst ndlichkeit gef hrdet Als L sung schlage ich als ersten Schritt eine Kategorisier
173. nc Taligent s Guido To Designing Programs Well Mannered Object Oriented Design in C Addison Wesley Reading Massachusetts 1994 Horst Peter Traub Objektorientierte Beh lterklassen Bibliotheken Konzepte Entwurf und Implementation Mitteilung FBI HH M 252 95 Fachbereich Informatik Universt t Hamburg Februar 1996 http swt www informatik uni hamburg de Vlissides90 John M Vlissides Generalized Graphical Object Editing Stanford University Technical Report CSL TR 90 427 June 1990 WAM Frameworks Literaturverzeichnis Seite 131 Vlissides95 John M Vlissides Unidraw A Framework for Building Domain Specific Graphical Editor in Lewis95 Vlissides96 John M Vlissides Pattern Hatching To Kill a Singleton C Report June 1996 Wegner90 Peter Wegner Concepts and Paradigms of Object Oriented Programming ACM OOPS Messenger Volume 1 No 1 August 90 Seiten 8 87 Wei 94 Ulfert Wei Spezifikation und Implementation eines Interaktionstypen zur graphischen Darstellung von Dokumenten und Dokumentbeziehungen als Erweiterung einer objektorientierten Bibliothek unter Verwendung des Fenstersystems Motif Studienarbeit am Arbeitsbereich Softwaretechnik Universit t Hamburg 1994 http swt www informatik uni hamburg de 1 weiss Wei 97 Ulfert Wei Dokumentation und Benutzerhandbuch f r Grafik IAT s und Manipulatoren Dokumentation zur BibV30 im WWW noch
174. nd in zwei Stufen Handle und Normal e Bearbeitung einer Kette von Ereignissen durch Simulation deren Wirkung e Feststellung des Handlungsabschlusses e Meldung der erfolgten Ausf hrung einer Interaktion an die IAK Die zus tzlichen Aufgaben des tIATCanvas bez glich direkter Manipulation sind Verwaltung und Aktivierung dieser Objekte Weiterleitung aller folgenden Ereignisse ab der Aktivierung bis zum Abschlu der Interaktion und der Abbruch dieser Handlung aufgrund spezieller Aktion des Benutzers Eine gute Praxis ist die Belegung einer speziellen Taste z B Escape um jede Manipulation abbrechen zu k nnen hnlich der Klasse tCanvasMousePolicy wird auch diese Tastenbelegung variabel gestaltet tCanvasKeyboardPolicy erm glicht die Festlegung spezieller Tasten f r Abbruch sowie vorzeitigen Abschlu der direkten Manipulation vgl Wei 97 Abbildung 4 16 zeigt die Klassenschnittstelle tIATCanvas Es k nnen tIATGraphic Objekte eingef gt und entfernt werden ebenso Manipulatoren abgeleitet von tIATManipulator Der Canvas bernimmt f r tIATGraphic Fabrik Funktionalit t um diese IAT s mit der konkreten Zeichenfl che ein Objekt vom Typ tXCanvas zu verbinden Die sonstigen bereits erl uterten Aufgaben in Kurzform e Anzeige der eingef gten IAT s tIATGraphic und tIATManipulator e Wiederherstellung der Anzeige wenn vom Fenstersystem gefordert e nderung der Anzeigereihenfolge von tIATGraphic Objekten Ebenen e Suche
175. nd oft ber einen langen Zeitraum Schon aus diesem Grund ist die Anwendung einheitlicher Programmierrichtlinien f r Frame works noch wichtiger als f r sonstige Softwareprojekte ein Beispiel f r Richtlinien ist Taligent94 Am Arbeitsbereich Softwaretechnik wurden fr h einige Regeln aufgestellt und von den Konstrukteuren der Bibliotheken in der Dokumentation genannt Riehle93a ver bindliche Programmierrichtlinien RWW95 aber erst am Beginn der Redesign Phase erstellt Diese Richtlinien enthalten Hinweise zur Gestaltung der Klassenschnittstelle z B Reihenfolge der Abschnitte public protected private und Methoden Namenskonventionen f r Methoden Pr fix f r Klassen etc wichtige Hinweise zur Verwendung objektorientierter Seite 76 Kapitel 4 Frameworks f r WAM Prinzipien innerhalb der heterogenen Sprache C und auch ganz spezielle Vorschriften f r das WAM Framework und damit entwickelter Anwendungen Ein wesentlicher Punkt ist die Vorschrift Objekte grunds tzlich dynamisch anzulegen als Grundlage f r Polymorphie vgl Pree94 und Methoden grunds tzlich virtual zu deklarieren au er deren nderung in abgeleiteten Klassen ist ausdr cklich verboten Ein sehr spezieller Bestandteil ist der Aufbau eines Init Baumes parallel zum Konstruktor vgl Riehle93 Design Pattern und die BibV30 Gegen ber den ersten relativ kleinen Versionen des WAM Frameworks BibV1 1 und V1 2 hatte sich mit Erweiterungen der Anw
176. nd sieht seinen Vorschlag als ersten Schritt in diese Rich tung The hot spot driven approach is a first step in that direction Nach der Identifikation flexibler Komponenten k nnen diese durch Metapattern umgesetzt werden Sp ter dokumentieren Metapattern die fertiggestellten Frameworks und helfen bei der An wendungsentwicklung Gegen ber Design Pattern vernachl ssigen Metapattern den Bezug auf ein konkretes Problem in festgelegtem Kontext f r das eine L sung mit Vor und Nachteilen angeboten werden soll Statt fachlicher Motivation f r eine Anwendung stehen die technischen M glichkeiten durch objektorientierte Mechanismen im Vordergrund Metapattern zeigen wie die Unabh ngigkeit einzelner Komponenten erreicht werden kann Auch damit verbundene Probleme werden auf abstrakter Ebene diskutiert Design Pattern sind weniger erfahrenen Entwicklern als Kochb cher oft zu kompliziert f r von den Autoren propagierte sofortige Umsetzung Design Pattern geben aber jedenfalls eine Anleitung in welchen Zusammenh ngen eine gewisse Entkopplung m glicherweise ange bracht sein k nnte und wie dies geschehen kann Metapattern erreichen dagegen ein Abstraktionsniveau da einer direkten konstruktiven Anwendung entgegensteht Dokumentation eines Frameworks durch Metapattern kann die fachliche Intention der Kon struktion nicht offenlegen hier sind bliche Design Pattern besser geeignet Soll allerdings konkret erl utert werden welc
177. ndungsumgebungen gegen ber Dom nen Frameworks abgegrenzt Dabei legen Anwendungsumgebungen nur eine sehr allgemeine Infrastruktur fest und lassen sich in einem relativ breiten Bereich wiederverwenden Sie erm glichen z B die Entkopplung darauf aufbauender Anwendungen vom verwendeten Fenster oder Betriebssystem und standardisieren einige Men eintr ge Open Close Je spezifischer Application Frameworks eingesetzt werden desto mehr standardisierte Funktionalit t kann integriert werden Dies setzt entsprechendes Wissen ber den Anwendungskontext voraus Als Basis f r spezialisierte Dom nen Frameworks k nnen allgemeine Anwendungsumgebungen verwendet werden um deren Infrastruktur zu nutzen Kapitel 2 Begriffe und Literatur Seite 19 2 1 4 Arten der Wiederverwendung White Box und Black Box Seit JF88 findet sich in der Literatur die Einteilung in White Box und Black Box Frameworks A framework s application specific behavior is usually defined by adding methods to subclasses of one or more of its classes We call these white box frameworks because their implementation must be understood to use them Another way to customize a framework is to supply it with a set of components that provide the application specific behavior Each of these components will be required to understand a particular protocol All or most of the components might be provided by a component library The interface between components can be d
178. nen Bestandteilen zu synchronisieren Nicht akzeptabel in einem WAM Framework w re auch die direkte Verbindung zwischen Subject also dem Material in der FK und Views in der IAK Eine direkte nderung des Materials durch die IAK oder sogar durch IAT s ist ausgeschlossen dies ist immer Aufgabe der Funktionskomponente Damit ergibt sich aber auch gleich eine passende L sung f r die 1 zu N Beziehung zwischen Subject und View da WAM eine solche zwischen der FK und den Interaktionskomponenten ohnehin vorsieht Statt mehrere IAT s entsprechend Views direkt mit fachlichen Material also Subject zu verbinden realisiert das Werkzeug verschiedene Sichten zwischen FK und IAK Hier findet sich auch der Beobachtungsmechanismus wieder Seite 94 Kapitel 4 Frameworks f r WAM Eine Abbildung der Komponenten f r die Grafik Darstellung im Unidraw Framework auf scheinbar hnliche Konzepte gem WAM kann nicht ber strukturelle Differenzen hinweg t uschen Mit der direkten Kopplung zwischen Subject und View reduziert sich der gro e Einflu von Composites auf die Anwendungen Im WAM Framework kann ein Werkzeug beliebiges Material bearbeiten dieses mu nicht hierarchisch aufgebaut sein also letztlich ein Composite bilden der Unidraw Editor arbeitet immer mit genau einem Composite Subject Umgekehrt werden auch GFX Objekte als Ersatz f r Views nicht zwingend zu Composites zusammengefa t Die M chtigkeit dieses Konzeptes steht au
179. nen Mechanismen verbergen bewegen wir uns auf ein Black Box Framework zu sich aber in Richtung eines Black Box Frameworks entwickeln sollten um die Benutzung vereinfachen zu k nnen Der bergang von White Box zu Black Box Wiederverwendung ist flie end Einige Frameworks erm glichen wesentliche Erweiterungen durch Parameterobjekte Andere erlauben nur aus einer vorgegebenen Menge von Klassen auszuw hlen Grundlage dieser Betrachtung sind auf der einen Seite sogenannte White Box Frameworks die vom Benutzer vollst ndig verstanden werden m ssen Die Benennung soll dabei hervor heben da ein Blick in das Innere des Frameworks in dessen Implementation der Schl ssel zur Verwendung ist Auf der anderen Seite stehen Frameworks die gewisse Leistungen erbringen Es handelt sich um Klassenteams deren interne Beziehungen der Anwender nicht weiter beachten mu vielmehr benutzt er das Black Box Framework ohne Kenntnis dessen Implementation Ziel der Entwicklung ist es ein leicht benutzbares Framework herzustellen Dabei ist zu ber cksichtigen da sich der einmalig investierte Aufwand vielfach auszahlt da erfolgreiche Frameworks vielfach verwendet werden Der Benutzer mu sich grunds tzlich in die Struktur eines Frameworks einarbeiten Er mu erkennen welche Komponenten f r ihn von Bedeu tung sind und wie er diese einsetzen kann Black Box Frameworks beschr nken diesen Aufwand auf die Frage der Benutzung vorhandene
180. ng ET Draw WG94 ET unterst tzt durch Commands Undo und Redo ber beliebig viele Ebenen Dieses Mikro Framework ist Bestandteil der Architektur und pr gt die Struktur der Applikationen Zu der Infrastruktur der Anwendungsentwicklung geh rt die Beh lterklassen Bibliothek Es handelt sich um Bausteinklassen vgl 2 1 1 wobei je Beh lterklasse eine passende Iteratorklasse existiert Die Besonderheit dieser Beh lterbibliothek sind robuste Iteratoren die auch bei nderungen am Beh lter g ltig bleiben dazu werden z B Elemente verz gert gel scht also erst dann wenn kein Iterator mehr auf dieses Objekt verweist Kapitel 3 Einsatz der Frameworktechnik Seite 55 Die Entwicklung der Benutzungsschnittstelle basiert auf der leichtgewichtigen Oberklasse VObject und deren Unterklassen Clipper eine der von V Object abgeleiteten Klassen verf gt ber ein eigenes Koordinatensystem die Komposition von Elementen z B Erg nzung eines Rahmens oder zweier Scrollbars folgt dem Composite Design Pattern vgl GoF95 ET verwendet eine deskriptive Layoutbeschreibung statt fixierter Positionen ET applications take care of windows moving resizing activation on clicking and so on and their contents for example scrolling Pree94 M ssen Teile der Benutzungsschnittstelle neu gezeichnet werden so ist dies Aufgabe des Frameworks die Anwendung wird nicht selbst neu zeichnen no direct call to draw within application
181. nicht vollst ndig wird sp ter integriert in Lilienthal97 http swt www informatik uni hamburg de West93 A West Animating C Programs Dynamic C Animation White Paper Objective Software Technology Ltd 1993 WG94 Andr Weinand Erich Gamma ET a Portable Homogeneous Class Library and Application Framework Proceedings of UBILAB Conference 94 Universit tsverlag Konstanz 1994 WG95 Andr Weinand Erich Gamma ET a Portable Homogeneous Class Library and Application Framework in Lewis95 Willamowius97 Jan Willamowius Framework Evolution am Beispiel eines Frameworks f r Telefonie Anwendungen Diplomarbeit am Arbeitsbereich Softwaretechnik Fachbereich Informatik Universit t Hamburg voraussichtlich 1997 WJ90 Rebecca J Wirfs Brock Ralph E Johnson Designing Object Oriented Software Englewood Cliffs NJ Prentice Hall 1990 WW94 Dirk Weske Martina Wulf Konzepte zur Materialversorgung verteilter Werkzeugumgebungen am Beispiel einer objektorientierten Datenbank Studienarbeit am Arbeitsbereich Softwaretechnik Fachbereich Informatik Universit t Hamburg 1994 Wulf95 Martina Wulf Konzeption und Realisierung einer Umgebung zur Koordination rechnergest tzter T tigkeiten in kooperativen Arbeitsprozessen Diplomarbeit am Arbeitsbereich Softwaretechnik Universit t Hamburg Juli 1995 http swt www informatik uni hamburg de
182. nicht vom MOP trennbare sp te Erzeugung s o dar Dieses Design Pat tern sollte durch ein eigenes Mikro Framework repr sentiert sein 4 3 3 Anschlu des Fenstersystems Interaktionstypen als Design Pattern nach WAM entkoppeln das Werkzeugs genauer dessen IAK von dem verwendeten Fenstersystem Statt spezifischer je nach GUI unterschiedlicher Widgets orientieren sich IAT s an Formen der Benutzer Interaktion die dann auf konkreten Systemen umzusetzen sind Es stellt sich dabei die Frage an welcher Stelle der Software eine Layout Beschreibung stattfindet Graphische Benutzungsoberfl chen gelten als Voraussetzung f r die Entwicklung reaktiver Systeme im Prinzip lie en sich derartige Systeme aber auch an Textterminals einsetzen Die Kontrolle geht an das System ber das entsprechend eingehender Events z B Eingaben des Benutzers mittels Callback Reaktionsmechanismus Methoden der Anwendung aktiviert IAT s leisten den Anschlu an die Events die Kontrolle wird an das Fenstersystem abgegeben Reaktionsmechanismen haben im Kontext von WAM eine gro e Bedeutung Nicht nur das Fenstersystem wird in dieser Form mit der Anwendung verbunden auch die Beobachtung 2 3 zwischen Werkzeugkomponenten folgt diesem Konzept Aus historischen Gr nden be schreibe ich die Design Pattern Observer und Chain Of Responsibility hier in Verbindung mit dem Fenstersystem statt im Bereich der Application Framework vgl 4 3 1 Im folgenden w
183. nismus verwendet werden Traub95 verweist in der Dokumentation zur ConLib auf den Gebrauch von Zusicherungen F r jede Methode ist vorgegeben welche Bedingungen bei dem Aufruf g ltig sein m ssen Verletzungen sind Fehler des Benutzers der ConLib Klassen und f hren bei Pr fung der Vorbedingung zum Abbruch des Programmes und Ausgabe einer Fehlermeldung So wird die Konsistenz der Beh lter gew hrleistet In der BibV30 stehen Makros f r Vor und Nachbedingungen zur Verf gung deren Pr fung per Compiler Option gesteuert wird Innerhalb des Frameworks findet das Vertragsmodell Anwendung die Vorbedingungen sind grunds tzlich in der Schnittstelle Header File der Klasse dokumentiert Allerdings k nnen dort auch Bedingungen angegeben werden die nicht wirklich berpr ft werden z B aufgrund zu hohen Aufwandes Da die Dokumentation der Vorbedingungen leider nur in Form eines Kommentars geschieht bleibt deren Korrektheit in der Verantwortung des Entwicklers Eine vollst ndige Nachbildung des Eiffel Konzeptes ist in dieser einfachen Form nicht m glich da die Pr fung im Rahmen der Implementation die Dokumentation jedoch in der Schnittstelle erfolgt Source File und Header File Die korrekte Verwendung des Vertragsmodells richtet sich nach den Programmierrichtlinien Programmierrichtlinien Frameworks werden von sehr vielen Benutzern gelesen und wiederverwendet Andererseits erfolgt auch die Entwicklung durch mehrere Personen u
184. nkret definieren und eine Klassifikation f r Application Frameworks vorbereiten Kapitel 2 Begriffe und Literatur Seite 11 2 1 1 Bausteinklasse und Bausteinbibliothek Gamma92 definiert Bausteinklassen folgenderma en Bausteinklassen sind Klassen die direkt ohne weitere Ab leitung unabh ngig von anderen Klassen wiederverwendet werden Bausteinbibliotheken k nnen als Sammlungen definiert werden Die einzelnen Baustein klassen einer Bibliothek werden weitgehend unabh ngig voneinander verwendet JF88 betont da diese Klassen nicht von einem bestimmten Anwendungsgebiet abh ngig sind und vielseitig wiederverwendet werden k nnen Each component in such a library can serve as a discrete stand alone context independent part of a solution to a large range of different problems Such components are largely application independent Als Merkmal von Bausteinklassen gilt deren Unabh ngigkeit von anderen Klassen innerhalb der Bausteinbibliothek Dies kann jedoch nur begrenzt gefordert werden da vielfach einzelne Klassen miteinander verkn pft sind Beh lterklassen sind bei vielen Autoren u a Gamma92 und JF88 Beispiele f r Bausteinbibliotheken Der Benutzer verwendet jeweils einzelne Beh lter in seiner Anwendung um Objekte seiner eigenen Klassen zu verwalten Dennoch sind gerade in hochentwickelten Beh lterbibliotheken z B ET siehe Gamma92 oder ConLib Traub95 meist Iterator oder Cursorkonzepte i
185. ntationen Eine direkte Wiederverwendung in anderem Kontext bietet sich an sollte aber fallweise genau gepr ft werden vgl Beispiel Code Buschmann et al schreiben an application framework can be seen as a pattern for complete software systems in a given application domain Frameworks sind konkreter Code und keine Design Pattern Es kann aber beraus hilfreich sein die im Framework verwende ten bekannten Pattern und insbesondere neue zu identifizieren Insofern k nnte im Sinne von BMRSS96 ein Architektur Muster f r einen bestimmten Anwendungsbereich auf Basis eines Application Frameworks beschrieben werden Seite 38 Kapitel 2 Begriffe und Literatur 2 3 Werkzeug und Material Metapher Gegenstand dieser Arbeit ist ein Application Framework BibV30 siehe Kapitel 4 da die Entwicklung von Anwendungen gem der Werkzeug Material Metapher WAM erm glicht Nachfolgend wird WAM erl utert und die Beziehung zwischen den Entwurfsmetaphern und Frameworks untersucht Der Ausgangspunkt f r WAM ist das Leitbild vom Arbeitsplatz f r qualifizierte menschliche T tigkeit Dazu RZ96 A leitmotif is a general principle that guides software development It makes the underlying beliefs and values explicit that drive software design as a whole Our leitmotif is the well equipped workplace for qualified human work at which experts carry out their work and take the responsibility for it
186. ntegriert die Beziehungen zwischen einer Cursor und einer Beh lterklasse herstellen W hrend in ET zu jeder Beh lterklasse eine spezielle Iteratorklasse besteht die auch pas send zueinander verwendet werden m ssen kann der Cursor in der ConLib auf beliebigen Beh ltern arbeiten In beiden F llen mu jedoch die Forderung unabh ngiger Bausteinklassen abgeschw cht werden da jeweils Cursor bzw Iteratorklasse und Beh lter direkt zusammen h ngen ein Cursor Objekt wird immer gemeinsam mit einem Beh lterobjekt benutzt Weiterhin k nnen in Beh lter vielfach keine beliebigen Objekte eingef gt werden ET verf gt ber eine Oberklasse Objekt monolithische Klassenhierarchie single rooted siehe auch 2 1 4 von der alle anderen Klassen abgeleitet werden m ssen Dagegen k nnen Beh lter der ConLib zwar mittels Verwendung des Template Mechanismus beliebige Objekte verwal ten einige Beh lter setzen jedoch ein minimales Protokoll der eingef gten Objekte voraus insbesondere Vergleichsoperationen siehe dazu auch die Erweiterung des C Standards durch die STL MS96 die hier noch weitgehendere Bedingungen stellt Die Verwendung des Begriffes Beh lter bezieht sich auf Traub95 Einige von den Autoren aufgef hrte Bibliotheken bleiben allerdings auf der Ebene von Datenstrukturen Seite 12 Kapitel 2 Begriffe und Literatur Komplette Unabh ngigkeit der Bausteinklassen kann somit nicht gefordert werden Innerhalb von
187. ntsprechend Kapitel 3 den Bezug zu anderen Produkten her 4 2 und bewerten die geleistete konzeptionelle und technische Weiterentwicklungen unter Ber cksichtigung der in Kapitel 2 dieser Arbeit aufgestellten Kriterien 4 3 Ein eigener Abschnitt 4 4 ist der neu entwickelten Unterst tzung graphischer Applikationen gewidmet Es handelt sich um eine Kombination von Konzepten aus fr heren Versionen des Frameworks mit jenen die Vlissides90 im Unidraw Framework realisiert hat Der Schwer punkt liegt auf der f r graphische Editoren wichtigen direkten Manipulation die im Kontext von WAM Frameworks bisher nicht unterst tzt wurde Bei der bernahme des in Unidraw tragf higen Manipulator Konzeptes mu te ich dessen Vertr glichkeit mit den Metaphern der WAM Methode pr fen bzw eine geeignete Anpassung des Konzeptes vornehmen 4 1 Entstehung und Rahmenbedingungen Ausgehend von konkreten Anwendungen im Rahmen einer Studien bzw Diplomarbeit entwickelten zwei Studenten 1992 93 die erste Version der heutigen Bibliothek Anla war die fehlende technische Basis oder auch Infrastruktur f r die Implementation von Software Werkzeugen nach WAM Als Hardwareplattform wurden Unix Workstations gew hlt als Programmiersprache C und als graphische Oberfl che OSF Motif Bez glich der Entschei dung f r C sei verwiesen auf Pree94 despite all its deficiencies C has proved to be good enough for programming in the large Wic
188. nur mit sehr gro em Aufwand Ressource Dateien als externe Beschreibungen entsch rfen dieses Problem wesentlich da die Werkzeug selbst also die IAK vom Layout getrennt wird OSF Motif trennt Einstellungen an den Layout Oberfl chenelementen Board Frame von den Objekten der Objekt Baum ist aber in der IAK aufzubauen Mit dem Ziel einer kompletten Trennung der Angaben zur Pr sentation von den eigentlichen Interaktionstypen wurde die IATTcl Bibliothek entwickelt und in der SEBib getestet noch in die BibV30 integriert Interaktionstypen entsprechen elementaren Oberfl chenele menten f r Layout Widgets gibt es keinen IAT S mtliche Angaben zur Pr sentation finden sich in dem TcV TK Skript der Ressource Datei f r dieses System Die Verbindung zwi Die SEBib wurde f r eine konkrete Lehrveranstaltung ein Projekt ber zwei Semester entwickelt In diesem Zusammen hang hat ein Student Jan Raap die IATTel Bibliothek implementiert Das Konzept der Beschr nkung aller Layout Informationen auf das Tc TK Skript bei kompletter Entlastung der IAK diesbez glich habe ich gemeinsam Martina Wulf entworfen derzeit wissenschaftliche Mitarbeiterin am Arbeitsbereich und Veranstalterin des Projektes Kapitel 4 Frameworks f r WAM C Bibliotheken BibV30 Seite 79 schen IAT und Beschreibung im Skript stellt eine fachliche Bezeichnung her z B Beenden f r einen Knopf oder Men eintrag mit der Beschriftung Beenden oder a
189. oblems A framework is the product of many iterations in design It is not something that you invent in a big bang and then go about reusing for years Frameworks evolve over long periods of time Ausgangspunkt f r die Entwicklung eines Application Frameworks ist meist eine relative kleine Anzahl konkreter Anwendungen deren Gemeinsamkeiten abstrahiert werden F r die evolution re Entwicklung ist die tats chliche Verwendung des Frameworks entscheidend nur so kann die Tragf higkeit des Entwurfes berpr ft werden Rosenstein95 You cannot really claim to have a reusable framework until it has been used in a variety of cases Das Ergebnis ist eine generische Applikation lauff hig aber ohne konkrete Funktionalit t Anwendungen werden entwickelt indem spezifische Komponenten erg nzt werden Der Kontrollflu und die Infrastruktur ist bereits vorhanden der Entwickler mu den Aufruf seiner spezifischen Operationen nicht selbst realisieren Dazu Weinand und Gamma in WG95 The application classes define the application s natural components and how they interact This interaction is the main difference between an application framework and a collection of abstract but not strongly related classes The former allows the factoring of much of the control flow into the class library while the latter requires that the developer know exactly when to call which method Abbildung 2 1 demonstriert den Unterschied zwischen der V
190. ohe Anforderungen zu stellen sind The N th ensemble for a framework benefits from real world testing by the N 1 previous ensembles Because the framework can live in a shared library separate from the ensemble when framework bugs are fixed all ensembles can benefit Andert95 Bei einem Wechsel der Version des verwendeten Frameworks wird immer auch ein Test der darauf aufbauenden Anwendungen erforderlich sein Soweit die nderungen hinreichend dokumentiert sind und das Framework keine neuen Fehler enth lt sollte dieser Aufwand gering sein Probleme ergeben sich z B durch workarounds mit denen Unzul nglichkeiten der alten Version ausgeglichen wurden Diese m ssen nach Behebung des Fehlers aus der Anwendung entfernt werden Wartung der Applikationen selbst sei es Fehlerkorrektur oder Erweiterung der Funktionalit t wird einerseits durch relativ geringeren Umfang infolge der Verlagerung gro er Teile der Funktionalit t in das Framework andererseits durch einheitliche softwaretechnische Struktur erleichtert Ein Application Framework realisiert die Infrastruktur einer vollst ndigen Anwendung und legt deren Kontrollflu fest Konkrete Anwendungen werden erstellt indem deren spezifische Komponenten in das Framework integriert werden Kleinere Frameworks zur Unterscheidung Mikro Framework genannt realisieren jeweils nur einzelne Ausschnitte Soweit der Umfang der Standardisierung von Bedeutung ist werden im folgenden Anwe
191. onskomponenten ist Aufgabe des Werkzeug Frameworks Die Zust ndigkeiten bei Abbau einzelner Werkzeuge oder Schlie en der ganzen Umgebung sind ebenso verteilt Noch arbeitet die BibV30 nach dem alten Prinzip Das Fehlen der Werkzeug Klasse ist in den bisher entwickelten Anwendungen unproblematisch da es in einer Anwendungsumgebung selten mehrere Werkzeuge gibt Entwickelt wurden weniger komplette Werkzeugs tze f r tats chliche Arbeitspl tze als vielmehr einzelne Applikationen Die Werkzeugklasse fehlt als Konzept technisch erzeugt die Umgebung jedoch meist nur genau ein Haupt Werkzeug und kann diesbez glich auch mit der Erzeugung aller zugeh rigen Komponenten also einer FK und einer IAK belastet werden auch mehrere IAK s w ren unkritisch Konzeptionell stellt das Werkzeug Framework einen Fortschritt gegen ber der Umgebung im WAM Framework dar Die Metapher Umgebung wird getrennt von der Konstruktion der Werkzeuge mittels FK und IAK umgesetzt Infolge der geplanten Erweiterung der Umgebung hinsichtlich verschiedener hier genannter Bestandteile wird sich der Bedarf dieser Trennung ergeben Der geplante Einsatz der BibV30 in einem gr eren zusammenh ngenden Projekt ist eine weitere Motivation Realisieren l t sich das Werkzeug Framework auf Grundlage der bestehenden Anwendungsumgebung BaseFIAK wie ich dies in der SEBib eine vereinfachte Bibliothek f r eine spezielle Lehrveranstaltung erfolgreich getestet habe Abb 4
192. oordination Zu unterscheiden ist dies von Design Pattern als Muster zur technischen Entkopplung von Komponenten innerhalb der Anwendung oder eines Frameworks Methodische Konzepte werden immer durch u ere Situation motiviert nicht durch softwaretechnische Anforderungen innerhalb des Entwurfes Bleibt als letzte Dimension dieser Aufz hlung die fachliche Dom nen Frameworks geh ren hierzu und Mikro Frameworks mit Bezug zum Kontext der Anwendungen Die Applikatio nen selbst sind nicht Teil einer Bibliothek aus Sicht von WAM kann es aber fertige Subwerkzeuge geben die in sp teren Projekten wiederverwendet werden Da die BibV30 bisher auf keine bestimmte Dom ne ausgerichtet ist gibt es solche fachlichen Framework Komponenten nicht Am Ende des Abschnittes greife ich dieses Thema auf und diskutiere die Erg nzung derartiger Komponenten in der BibV30 bzw zeige den prinzipiellen Unterschied zwischen dieser Framework Sammlung und einer Bibliothek mit festgelegtem Anwendungskontext Seite 118 Kapitel 5 Strukturierung von Framework Bibliotheken 5 2 2 Umsetzung der Struktur Anwendungen Anwendung 1 Anwendung 2 WAM Hilfswerkzeuge und Automaten gt z B Datenbankautomat GUI Builder Desktop Manager Versandautomat evtl auch generische Subwerkzeuge die direkt verwendbar sind ggf nur in der Entwicklungsphase WAM Frameworks WAM Application Frameworks
193. orderlich Falls aber Komponenten des Frameworks ge ndert werden m ssen die im Black Box Ansatz standardisiert wurden so kann der Entwickler hierzu direkt in das White Box Framework eingreifen ben tigt dazu dann aber weitergehende Kenntnisse interner Zusammenh nge BBE95 Black Box Frameworks erfordern keine Kenntnisse ber das zur Im plementierung benutzte White Box Framework Normalerweise kann man aber darauf zur ckgreifen wenn man Funktionalit t ben tigt die sich nicht durch Black Box Wiederverwendung realisieren l t Wie bereits in den vorangehenden Abschnitten erw hnt werden Frameworks nicht einmalig entwickelt sondern m ssen eingesetzt und praktisch erprobt werden Die Erfahrungen der Anwender m ssen gesammelt und ausgewertet werden Framework Entwicklung ist im gro en Umfang auf ein derart zyklisches Vorgehen angewiesen You never get it right the first time Reenskaug95 Erst durch die R ckkopplung mit den Benutzern des Frameworks k nnen dessen Schw chen erkannt werden Kapitel 2 Begriffe und Literatur Seite 21 In fact as the design of a system becomes better understood black box relationships should replace white box ones JF88 fordert diese Ergebnisse zu nutzen und dementsprechend das Framework zu vereinfa chen BBE95 geht davon aus da die meisten Frameworks eine Mischform sein werden Wenn wir das offene White Box Framework einfacher benutzbar machen und die inter
194. orks die softwaretechnische Design Komponente der f r die Anwendungs entwicklung empfohlenen Methode WAM bereit Schichten strukturieren das Framework im Zusammenhang mit diesem Konzept ist aber nicht gemeint da jeweils die n chst h here Schicht nur die Funktionalit t der direkt unterliegenden benutzt WAM Frameworks sind also nicht als Kapselung der technischen Basis gedacht die Anwendungen verwenden vielmehr diverse Klassen und Mikro Frameworks dieser Schicht Spracherweiterungen w ren ansonsten auch gar nicht verst ndlich Beh lterklassen n tzen vor allem der Anwendung Au erdem umfa t das Strukturschema keine Vorgaben betreff der Beziehungen zwischen Frameworks innerhalb einer Schicht oder verschiedener Schichten Die Pfeile in Abbildung 5 1 bedeuten nicht etwa Benutzung im objektorientierten Sinne zwischen Klassen Gerade die andere Variante erben von Klassen eines Frameworks oder erg nzen von Parameterklassen macht die St rke objektorientierter Frameworks aus Innerhalb der Schichten finden sich die beschriebenen Kategorien konkrete Komponenten der BibV30 sind eingeordnet Die implementierten Spracherweiterungen tauchen bereits unter 5 2 1 auf einige Klassen z B Bool entfallen voraussichtlich sobald alle Compiler den neuen C Standard erf llen Zu der Bedeutung des MOP f r die BibV30 gibt 4 3 1 Auskunft einen Garbage Collector GC gibt es leider bisher nicht Technische Beh lterklassen meinen konkret die ConLib
195. osten rechnung geeignet mit ber cksichtigen W hrend Styleguides gewisse Konventionen f r die Gestaltung der Oberfl che und deren Handhabung vorschreiben k nnen Application Frameworks wesentliche Teile bereits imple mentieren Sogar eine sp tere nderung kann unter Umst nden m glich sein ohne da Anwendungen betroffen sind Sobald diese mit der neuen Version des Frameworks bersetzt werden ber cksichtigen sie neue Konventionen ohne weiteren Aufwand Zur nachtr glichen Erweiterung bestehender Anwendungen durch nderung des zugrunde liegenden Frameworks sagen Weinand und Gamma WG94 An object oriented application framework transfers a lot of control flow from client code into the class library This characteristic allows the addition of new functionality without any modification in existing applications and with little programming effort Seite 18 Kapitel 2 Begriffe und Literatur Die erh hte Zuverl ssigkeit resultiert vor allem aus der h ufigen Wiederverwendung der Framework Komponenten und deren dadurch sehr vollst ndigen Tests Au erdem k nnen sp ter erkannte Fehler einmal im Framework behoben werden Alle darauf aufbauenden Applikationen profitieren direkt Der Testaufwand bleibt auf das Framework begrenzt und mu nicht in jeder Anwendung wiederholt werden Unter der Annahme einer Verwendung des Framework in sehr vielen Anwendungen ist dies ein gro er Vorteil auch wenn an den Test innerhalb des Frameworks h
196. pen und Canvas f r X Windows in Arbeit befinden sich Klassen f r wxWindows Kapitel 4 Frameworks f r WAM C Bibliotheken BibV30 Seite 97 Darstellung graphischer Elemente Als abstrakte Oberklasse definiert tCanvas Zeichenprimitiven f r Linie Pfeil Polygon und Kreissegment sowie die jeweils eingeschlossenen Fl chen Anzugeben sind Koordinaten in der Einheit Millimeter also unabh ngig von der Hardware vgl Calder95 und gegebenen falls Winkel Verschiedene Parameter sind als Zeichenmodus am Canvas Objekt einzustellen Farbe der Linien Breite F llung und Muster sowie Form Farbe und Gr e von Pfeilspitzen Im Vergleich zur Vorg ngerversion weist die Schnittstelle Ausschnitt siehe Ab bildung 4 11 praktisch alle Methoden aus um beliebige Figuren zu zeichnen Konzeptionell unterscheidet sich vor allem die Festlegung der diversen Parameter Getrennte Methoden zu deren Einstellung ersetzen die extrem langen und inflexiblen Parameterlisten der Vorversion Im alten WAM Framework erhielt jede Zeichenoperation alle Parameter davon waren zwecks vereinfachter Handhabung einige mit Default Werten belegt Der neu tCanvas h lt den Zeichenmodus als seinen Zustand verliert ansatzweise den Charakter einer schlichten Methoden Sammlung ohne objektorientierte Elemente Dieser Zustand wird gesetzt Set und kann abgefragt werden Get spezielle Methoden setzen mehrere Parameter gleichzei tig Kommen sp ter weitere Parameter hinzu
197. pletten generischen Anwendungen Frameworks sind ein m gliches Vorgehen wie Design Strukturen im Hinblick auf eine sp tere Wiederverwendung beschrieben werden k nnen Gamma92 Als Alternative stellt Gamma Design Pattern als Konzepte eines neuen Ansatzes f r die Unterst tzung des objektorientierten Entwurfs vor Nach Motivation und Einf hrung dieser Entwurfs Muster folgt eine kurze Darstellung der derzeitigen Entwicklung und aktueller Diskussionen Der wichtige Zusammenhang zwischen Design Pattern und Frameworks wird gekl rt und damit die Bedeutung dieses Ansatzes f r die Framework Entwicklung 2 2 1 Motivation f r Muster W hrend die meisten objektorientierten Methoden die Anwendung von Vererbung betonen wird die Gestaltung der Interaktion zwischen Objekten sowie deren Komposition nicht ausrei chend ber cksichtigt Design Pattern sollen diese L cke schlie en wobei es sich nicht um eine neue Methode mit bestimmtem Vorgehensmodell handelt sondern eine Erg nzung zu bestehende Methoden Design Pattern verbessern die Qualit t der Softwarearchitektur vor allem die flexible Wiederverwendbarkeit und Erweiterbarkeit der Komponenten GoF95 increased flexibility and reusability Gamma92 stellt fest Es gibt in objektorientierten Systemarchitekturen bestimmte Arten der Organisation von Klassen die immer wieder auftreten und die zu einer eleganten gut strukturierten L sung beitragen Das Ziel l
198. r Entwicklung eines Werkzeugs zur Visualisierung des Objektverhaltens in C Programmen Studienarbeit am Arbeitsbereich Softwaretechnik Fachbereich Informatik Universit t Hamburg 1996 http stw www informatik uni hamburg de Ihamer Christiane Floyd Arbeitsunterlagen zur Lehrveranstaltung Einf hrung in die Softwaretechnik Universit t Hamburg 1994 Nils Fricke Das Projekttagebuch Ein Fallbeispiel f r eine verteilte Anwendung nach WAM Studienarbeit am Arbeitsbereich Softwaretechnik Fachbereich Informatik Universit t Hamburg 1996 http stw www informatik uni hamburg de 1fricke Frank Fr se Konzepte der Fenstersystemanbindung mit Interaktionstypen Studienarbeit am Arbeitsbereich Softwaretechnik Fachbereich Informatik Universit t Hamburg 1996 http stw www informatik uni hamburg de 1froese WAM Frameworks Literaturverzeichnis Seite 129 Gamma92 GHJV93 GKZ93 GWZ96 G rtz97 GoF95 Erich Gamma Objektorientierte Software Entwicklung am Beispiel von ET Springer Verlag Berlin Heidelberg 1992 Erich Gamma Richard Helm Ralph Johnson John Vlissides Design Patterns Abstraction and Reuse of Object Oriented Design in ECOOP93 Guido Gryczan Klaus Kilberth Heinz Z llighoven Objektorientierte Anwendungsentwicklung Vieweg Braunschweig Wiesbaden 1993 Guido Gryczan Martina Wulf Heinz Z llighoven Prozessmuster f r situierte Koordinat
199. r hzeitig eine stabile Bibliotheksversion die dann festgeschrieben wurde In der Folgezeit fand eine von der benutzten Version entkoppelte Erweiterung besonders im Bereich des Application Frameworks FIAK statt neue Komponenten wurden hinzugef gt Au erdem wurde mit der ConLib eine unabh ngige Beh lterklassen Bibliothek Traub95 entwickelt Die neuen Entwicklungsst nde wurden jeweils nach Fertigstellung neben weiter bestehenden Vorversionen freigegeben f r den Umstieg geeignete Anleitungen verfa t Nach einer Phase geringer Nutzung der Frameworks wurde Mitte 1995 eine Restrukturierung eingeleitet Es hatte sich gezeigt da in einigen Bereichen eine starke Ausrichtung auf den Bedarf der ersten entwickelten Anwendungen vorlag Bessere Abstraktionen verschiedene Erweiterungen und Integration neuer bereits au erhalb der Bibliothek implementierter Konzepte sind angestrebte Ziele vor allem mu te aber die bereits vorhandene Komplexit t untersucht werden Aufgrund fehlender bersichtlichkeit entstand ein weiteres stark vereinfachtes Framework f r den Lehrbetrieb dessen Integration erw nscht ist Wichtiges Merkmal dieser neuen Entwicklungsphase ist die Bildung einer Gruppe zur Koordination der Arbeiten am Framework W hrend der Startphase befa ten sich lediglich zwei Personen mit dem Projekt die sich direkt koordinieren konnten Sp ter haben dann vorwiegend einzelne Studenten jeweils ihre Schwerpunkte bearbeitet die Diskussion von
200. r Dokumentation gibt eine Orientierung und ggf auch einen Anhaltspunkt vorgegebener Szenarien f r das Debugging 17 Kochb cher sind immer nur unvollst ndig vgl Pree94 da nicht alle Anwendungsf lle vorhersehbar sind A framework used extensively tends to be used in ways never conceived by its designers LS96 Kapitel 5 Strukturierung von Framework Bibliotheken Seite 113 F r die Ordnung der gro en Anzahl an Klassen benutzt Meyer94 den Begriff Cluster bei Verwendung der Programmiersprache C bietet sich die Verwendung eigener dynamisch gelinkter Bibliotheken an Der neue Benutzer beschr nkt sich auf einige wenige Bibliothe ken interne Details werden in eigene Bibliotheken gekapselt Jede Bibliothek bildet ein Framework bzw Kapselt einen Mechanismus die Namen dieser Bibliotheken geben einen berblick ber die Leistungen des kompletten Application Frameworks Dokumentierte Abh ngigkeiten zwischen Bibliotheken lassen sich nutzen die Komponenten in einer daran orientierten Reihenfolge zu betrachten Gekennzeichnete nur intern verwendete oder durch weitere Frameworks auf h herer Abstraktionsebene gekapselte Bibliotheken betrachtet der Benutzer nicht weiter 5 1 2 Wartung und Erweiterung um neue Komponenten Bei der Entwicklung eines Application Frameworks handelt es sich nicht um einen kurzen und abgeschlossenen Proze dessen Ergebnis die Erstellung eines fertigen Produktes ist Vielmehr f hrt die Verwendung de
201. r Komponenten w hrend White Box Wiederverwendung zus tzlich verlangt die Implementation der benutzten Komponenten zu verstehen Wieweit dem Benutzer infolge von Black Box Wiederverwendung eine genauere Betrach tung der Implementation erspart werden kann h ngt vor allem davon ab ob er mit den angebotenen Komponenten die gew nschte Funktionalit t erreichen kann Sind wesentliche Grundlagen nicht vorgesehen wird er in die Implementation eingreifen m ssen um das Framework entsprechend zu erweitern In diesem Zusammenhang ist es von besonderem Wert wenn als Grundlage der standardisierten Komponenten des Frameworks zur Black Box Wiederverwendung ein flexibles Framework dient da eine Anpassung im Sinne des White Box Ansatzes erlaubt Seite 22 Kapitel 2 Begriffe und Literatur Black Box Wiederverwendung mu vom Entwickler vorbereitet werden und dient somit ausschlie lich zur Anpassung des Frameworks Ein Verst ndnis der Implementation wird nicht erwartet Dagegen dient der White Box Ansatz zur flexiblen nicht vorhergesehen Erweiterung der Framework Funktionalit t innerhalb des vorgegebenen Anwendungsbereiches und setzt eine weitgehende Kenntnis der Framework Architektur voraus White Box Frameworks sind insbesondere fr he Entw rfe die noch wenig Annahmen ber die konkrete Verwendung machen und damit weitgehend mittels aufwendiger White Box Wiederverwendung benutzt werden Demgegen ber sehen Black Box Frame
202. r auch heute noch zu C geh rt Ein Merkmal oder Anhaltspunkt f r die Zuordnung von Frameworks zu dieser Kategorie ist der Vergleich mit anderen Sprachen die den Mechanismus bereits enthalten So kann auch eine sicher nicht zwingende Integration des Vertragsmodelles in eine Bibliothek als Erweite rung der Sprachm chtigkeit aufgefa t werden da sich dieses Konzept in Eiffel bew hrt hat Beh lterklassen in irgendeiner Form benutzt jede Anwendung nahezu jede objektorientierte Sprache liefert diese mit wieder mit der Ausnahme C Allerdings verf gt genaugenommen auch diese heterogene Programmiersprache ber ein diesbez gliches Konzept nur stammt es noch aus purem C das Array In einer objektorientierten Umgebung ist die damit verbundene Pointer Arithmetik nat rlich indiskutabel die Sprache wird um Beh lterklassen erweitert Seit kurzem best tigt die Normierung der STL Standard Template Library die Auffassung da dieser Typ von Klassen zur Sprache selbst geh ren mu Diskussionsbedarf ergibt sich bei der zweiten Kategorie der objektorientierten Techniken die ich auch der technischen Dimension zurechne Pree94 argumentiert f r die Kombination der elementaren objektorientierten Konzepte Vererbung Polymorphie und abstrakte Klassen als notwendige Grundlage f r die Framework Konstruktion Er identifiziert sieben Varianten der Kombinationen und nennt diese Metapattern Umgekehrt suchen aus Richtung des praktischen Konstruktio
203. rch Patterns dokumentiert werden BJ94 HotDraw Gamma et al empfehlen bestehende Software nachtr glich durch Design Pattern zu doku mentieren Wird ein Framework von vornherein auf Basis bekannter Design Pattern entwickelt bzw zus tzlich ben tigte Muster identifiziert und beschrieben so k nnen die Autoren des Frameworks dessen Benutzern gleich hieran den Entwurf erl utern soweit zur Implementation verwendete Mechanismen f r die Benutzung relevant sind Die Wartung und Kapitel 2 Begriffe und Literatur Seite 37 die Weiterentwicklung eines Frameworks profitiert von dieser Form der Dokumentation in besonderem Ma e da auch eventuelle Probleme und Seiteneffekte sowie die getroffenen Ent scheidungen selbst anhand von Design Pattern gut dargelegt werden k nnen Bereits Gamma92 nennt den Dokumentationsaspekt als Ziel des Ansatzes Die Reduzierung des Einarbeitungsaufwandes in eine Klassenbibliothek Der Klassenproduzent soll f r den Klienten festhalten k nnen welche Organisationsformen und Rollen er verwendet hat Gamma92 the documentation of a class library is a difficult problem Design patterns represent one powerful possibility for accomplishing that task Pree94 Patterns are a means of documenting software architectures BMRSS96 Pree sieht in der Dokumentation von Frameworks den haupts chlichen Verwendungszweck von Design Pattern Dabei ist die Unabh ngigkeit von der konkreten Implementation wich
204. rde ich im n chsten Kapitel das WAM Framework einordnen und dem Leser so einen Anhaltspunkt f r dessen Bewertung geben ET und besonders Taligent zeigen zudem die Tendenz auf mehrere Frameworks miteinander zu kombinieren woraus sich Fragen der Strukturierung ergeben die ich im 5 Kapitel anspreche Merkmale weiter entwickelter Frameworks hinsichtlich Funktionalit t sind Application Frameworks angefangen mit allgemeinen Anwendungsumgebungen bis hin zu sehr speziellen Dom nen Frameworks Je weiter ein Gebiet standardisiert werden kann desto gr er ist der Nutzen f r Anwendungen die auf dem Framework basieren Anzustreben ist z B der Bezug auf spezielle Branchen oder Firmen Seite 60 Kapitel 3 Einsatz der Frameworktechnik Flexibilit t und Portabilit t sind weitere Qualit tskriterien f r Frameworks Abh ngigkeiten der Anwendungen vom Fenstersystem sind zu vermeiden indem diese in den Komponenten des Frameworks gekapselt werden So mu die Portierung auf ein neues System nur noch einmal erfolgen nicht f r jede einzelne Anwendung Design Pattern sind das Mittel der Wahl um die Hot Spots eines Frameworks flexibel zu gestalten Technisch lassen sich diese Mechanismen gewisserma en als Erweiterungen der Sprache in einer allgemeinen Oberklasse bereitstellen vgl ET Die Probleme des daraus resultierenden Klassen Baumes sind zu vermeiden indem jeweils einzelne m glichst voneinander unabh ngige Mikro Frameworks explizit je
205. ren konstruiert Die Gemeinsamkeiten derartiger Anwendungen wurden abstrahiert und im Framework bereitgestellt Die Konstruktion grafischer Editoren wird in einem m glichst weiten Anwendungsgebiet unterst tzt Gr ere Applikationen k nnen f r andere Teile ihrer Funktionalit t direkt auf die M glichkeiten von Interviews zugreifen Vlissides95 Unidraw is designed to provide only the graphical portions of a larger application Thus in addition to providing the usual graphical editing functions it must smoothly integrate with other parts of the application Seite 52 Kapitel 3 Einsatz der Frameworktechnik 3 2 3 Plattformunabh ngigkeit Interviews erleichtert den Entwurf grafischer Benutzungsoberfl chen auf UNIX Workstations mit X Windows Somit kann auch Unidraw nur in dieser Umgebung eingesetzt werden Andererseits wurde MacApp ausschlie lich f r Macintosh Computer entwickelt MFC f r Microsoft Windows vgl 3 3 2 Demgegen ber hat ET den Anspruch der Plattformunabh ngigkeit in seiner Architektur umgesetzt siehe 3 3 1 Lewis95 this elegant framework incorporates a very strong model of interaction and has ambitions to become a portable application development framework You might think of ET as a second generation MacApp but one that is evolving toward platform independence Inzwischen sind diverse kommerzielle Produkte als Basis f r portable Anwendungen verf gbar zum Beispiel wx Windows und St
206. rks zu erkennen die Zugeh rigkeit der Klassen zu kleinen Teams ist explizit Nachteilig erweist sich dagegen im praktischen Einsatz der Bibliotheken die gro e Anzahl an Frameworks durch die auf den ersten Blick die Framework Sammlung BibV30 un bersichtlich wirkt Die L sung sehe ich in einer nachvollziehbaren Struktur der Framework Sammlung Abschnitt 5 1 definiert Anforderungen an eine Strukturierung indem die zu l senden Probleme beschrieben und bewertet werden Daraus ergibt sich in Abschnitt 5 2 ein Ansatz f r die Struktur der BibV30 und deren geplante Erweiterung zudem sind Anforderungen ableitbar die Einzelkomponenten des Frameworks zu erf llen haben Meinen Strukturvorschlag f r die BibV30 setze ich in Bezug zu einem auf GEBOS basieren den Beitrag BGKLRZ97 siehe Abschnitt 5 3 GEBOS ist ein auf WAM bezogenes Framework f r die Banken Dom ne vgl BGKZ96 Damit greife ich den Gedanken des 4 Kapitels wieder auf die C Bibliotheken des Arbeitsbereiches Softwaretechnik au erhalb der Lehre einzusetzen und zwar als Meta Framework f r die Entwicklung konkreter Do m nen Frameworks Die Einordnung der inhaltlich in Kapitel 4 vorgestellten Komponenten in die Struktur der BibV30 gem Abschnitt 5 2 hilft mir den Bezug der Mikro Frameworks zu dem Dom nen Framework GEBOS aufzuzeigen Ich verallgemeinere die Beziehung zwischen BibV30 und GEBOS auf die Konstruktion verschiedener Dom nen Frameworks unter Verwend
207. rks at both the lowest levels in the system and the highest levels Dabei stellt jedes Framework einen Dienst f r Frameworks auf den h heren Ebenen zur Verf gung Taligent beschr nkt sich nicht auf die Unterst tzung der Anwendungsentwicklung sondern versucht gleichzeitig die Ebene des Betriebsystems mit abzudecken Nachfolgend wird CommonPoint nicht hinsichtlich seiner Eigenschaften als Application Framework betrachtet sondern die Komposition einzelner Frameworks in der Vordergrund gestellt Lewis95 betont die Aufteilung von Anwendungen in viele kleine Frameworks die jeweils leicht zu erstellen sind und dabei die Portabilit t des kompletten Systems nutzen Taligent is trying to rejuvenate the software industry by changing the rules Instead of writing large monolithic applications which are tied to one GUI platform the Taligent strategy is to make it not only possible but economically attractive to write small highly leveraged applets small applications that are easily ported to many platforms Die Kooperation zwischen Frameworks Kann auf zwei Arten geschehen Einerseits Kann ein Framework ein anderes ber dessen ffentliche Schnittstelle benutzen also die abstrakt ange botenen Dienste des Klassenteams verwenden Gewisserma en wird in diesem Fall das gesamte Framework als ein Baustein betrachtet der von au en erzeugt wird und der danach Auftr ge ausf hrt Die Umkehrung des Kontrollflusses findet dabei nur innerhalb
208. roffe ner Komponenten und der Zusammenh nge mit abh ngigen Teilen der Klassenbibliothek Wechselwirkungen von nderungen und Erweiterungen mit bestehender Funktionalit t werden berschaubarer unabh ngige Bereiche k nnen unbeachtet bleiben Ein Schema zur Strukturierung mu zudem die Einordnung neu erstellter Komponenten vorsehen um auch zuk nftig den berblick zu erhalten Dem Entwickler zus tzlicher Klassen ist somit eine Anleitung zu geben wie er seine Erweiterung in die Architektur integrieren kann Dabei ist das Ziel loser Kopplung weiterhin zu beachten 5 1 3 Aspekte der Konfiguration DLL s Sammlungen von Frameworks lassen sich in verschiedenen Anwendungsfeldern einsetzen eine Bibliothek erf llt unterschiedliche Anforderungen Beispielsweise enth lt die Framework Sammlung verschiedenen Application Frameworks Die Verwendung der BibV30 sowohl f r Lehrveranstaltungen als auch f r Anwendungs Entwicklung im Rahmen von Diplomar beiten ist ein weiteres Beispiel Lehrveranstaltungen zielen darauf ab theoretische Kenntnisse der WAM Methode praktisch zu vermitteln Gerade der Umgang mit einem objektorientierten Framework wird vermittelt Demgegen ber wollen Diplomarbeiter das Framework in der blichen Form als Infrastruktur f r ihre eigene Anwendung benutzen Die dritte Gruppe sind Studien und Diplomarbeiter die selbst konzeptionelle Erweiterungen des Frameworks vornehmen B umer et al BGKLRZ97 stellen einen Ansa
209. rung des Einsatzkontextes der BibV30 setzt mit WAM konforme Mechanismen voraus um kooperative Arbeitszusammenh nge ber die einzelne Umgebung hinaus zu unterst tzen Zur Zeit liegt der Entwicklung keine bestimmte Dom ne zugrunde angestrebt wird vielmehr eine Bibliothek die als Grundlage f r viele verschiedene Anwendungsbereiche benutzbar ist Erreichbar ist dies durch Integration diverser Konzepte jeweils als unabh ngige wahlweise verwendbare Subwerkzeuge Automaten oder Mikro Frameworks realisiert Zum gegenw rtigen Zeitpunkt enth lt die BibV30 keine Komponenten f r die Koordination kooperativer Arbeiten Eine prototypische Implementation f r Proze muster und Postk rbe liegt vor die Integration in das WAM Framework w re naheliegend Konzeptionell anzumer ken ist bez glich dieser Kooperationsform deren Unterscheidung von Workflow Systemen Kapitel 4 Frameworks f r WAM C Bibliotheken BibV30 Seite 69 und die Vertr glichkeit mit dem Leitbild der WAM Methode Gryczan95 diskutiert beides ausf hrlich hier soll nur betont werden da die Software keine Steuerung vornimmt sondern selbstbestimmtes Handeln des Anwenders f r die Koordination ma geblich ist Kooperative Arbeitssituationen deren Ablauf alle Beteiligten kennen vergegenst ndlicht das Material Proze muster in Form einer Beschreibung des Vorganges Das Proze muster dient als Laufzettel an einer Vorgangsmappe gibt Auskunft ber den n chsten zu erledigen
210. rweiterung um neue Komponenten 112 5 1 3 Aspekte der Konfiguration DLL s 113 5 2 Strukturkonzept f r die BibV30 114 5 2 1 Kategorien der Struktur 115 5 2 2 Umsetzung der Struktur 117 5 2 3 Fachliche Framework Komponenten 120 5 3 Eine Verbindung zwischen der BibV30 und GEBOS 122 Kapitel 6 Fazit und Ausblick uu22uuuu222000nn0nnnnnnnnnnnn nn 125 Literaturverzeichnis uuunnuunnnnnnnnnnnnnnnnnnnnnnnnnnnnnnannnannnnnne 127 Kapitel 1 Einleitung und Motivation Seite 5 Kapitel 1 Einleitung und Motivation One of the next major steps in object oriented design and programming is framework design and programming Ted G Lewis Lewis95 Objektorientierte Softwareentwicklung hat den Anspruch durch wiederverwendbare Komponenten robuste wartbare Software zu geringen Produktionskosten erstellen zu k nnen Dieses Ziel kann erreicht werden durch Rahmenwerke Framework insbesondere Application Frameworks f r bestimmte Anwendungsgebiete Dom nen in die der Anwendungsentwickler nur noch die jeweils spezifischen Komponenten seiner Applikation einf gen mu Frameworks bestehen aus abstrakten und implementierten Klassen Durch Vererbung werden Klassenhierarchien gebildet Das wesentliche Merkmal objektorientierter Frameworks gegen ber aus prozeduralen Sprachen bekannten Funktions und Bausteinbibliotheken ist ein bereits definiertes Modell der dynamischen Beziehungen verschiedener Klassen zur Laufzeit vgl
211. s Framework zu neuen Erkenntnissen aus denen sich notwendige nderungen sowie Erweiterungsw nsche ergeben Im Vergleich zur reinen Benutzung des Produktes stellt dessen Bearbeitung h here Anforderungen an den Software Entwickler An dieser Stelle soll nur der Zusammenhang mit Framework Strukturierung betrachtet werden Ausf hrungen zur Framework Evolution finden sich z B bei Willamowius97 Im Falle einer Fehlerkorrektur ist die verantwortliche Komponente zu identifizieren von der nderung indirekt betroffene Klassen zu ermitteln Basieren bereits Anwendungen auf dem Framework so ist eine genaue Analyse der Auswirkungen erforderlich Zur Bew ltigung dieser Aufgabe ist ein wesentlich h herer Lernaufwand als bei einfacher Benutzung unvermeidlich Ein gut strukturiertes Application Framework erleichtert die Identifikation jeweils betroffener Komponenten St rker noch als bei der Benutzung wirken sich dokumentierte Abh ngigkeiten positiv auf die Wartungst tigkeit aus Erfolgreiche Frameworks f hren durch ihre Verwendung zu neuen W nschen der Anwender Es ergibt sich aus den Erfahrungen der Anwendungsentwickler da gewisse Bereiche besser zu unterst tzen sind Zusammenh nge flexibler gestaltet werden m ssen und daf r andere Komponenten zu standardisieren sind Wird ein bew hrtes Application Framework au erhalb des urspr nglichen Anwendungskontextes eingesetzt ben tigt es daf r neue Mechanismen Auch bei diesen Erweiterungen
212. s grunds tzlich auch als Kommando mit entsprechenden Parametern h tte eingegeben werden K nnen Direkte Manipulation ist eine bequeme Form der Bedienung aber keine neue Befehlsart Connectoren verkn pfen Grafikelemente in Unidraw zwecks Einhaltung von Vorschriften zur relativen Anordnung Beispielsweise soll die Spitze eines Pfeiles mit einem Symbol auch nach dessen Bewegung verbunden bleiben sich also mit bewegen Ein anderes Beispiel w re ein per direkter Manipulation einstellbarer Schieberegler der nur im vorgegebenen Bereich beweglich ist siehe Abbildung 4 9 Lautst rke Balance Lautst rke Balance Abbildung 4 9 a Pfeil verkn pft mit bewegtem Objekt b beschr nkte Beweglichkeit eines Schiebereglers Generell kennt Unidraw verschiedene Connectoren die miteinander kombiniert Freiheitsgrade entsprechend Abbildung 4 10 ergeben Soweit es sich nicht um eine feste Verbindung handelt Punkt Punkt Kann ein Objekt innerhalb des vorgegebenen Bereiches frei bewegt werden Verl t es diesen mu das verbundene Objekt zwecks Einhaltung der Anordnungsvorschrift mit bewegt oder die Bewegung ber den Bereich hinaus verhindert werden Der Parameter Mobility regelt das Verhalten weitere Attribute der Objekte betreffen Gr en nderungen vgl Abbildung 3 3 b Minimal Normal und Maximalgr e Elastizit t siehe Vlissides90
213. sich die M glichkeit Fl chen und auch Linien mit Bit Mustern zu hinterlegen Dies kann eine spezielle 2 Farb Bitmap sein fr her wurde die Option vor allem auch f r Graut ne benutzt daher Variante mit Angabe in Prozent es gab nur eine Schwarz Wei Ausgabe Die Beschr nkung der Bitmap auf zwei Farben bleibt bestehen diese m ssen aber nicht gerade Schwarz und Wei sein GFX Klassen stehen f r graphische Formen Eine Auswahl blicher Formen f r allgemeine Grafikeditoren w re z B tGFXLine tGFXRectangle und tGFXEllipse aber auch Polygone und Kantenz ge will der Anwender zeichnen Quadrate und Kreise lassen sich als Sonderf lle von Rechtecken und Ellipsen verstehen dagegen werden Rechtecke in bekannten Systemen nicht einfach als spezielle Polygone gesehen Erst im Zusammenhang mit der Manipulation dieser Formen ergeben sich semantische Unterschiede s u Kapitel 4 Frameworks f r WAM C Bibliotheken BibV30 Seite 99 Soll die Software Statistiken visualisieren so werden u a GFX Klassen f r Kreisausschnitte bzw Segmente erstellt um Tortendiagramme zu pr sentieren CAD Systeme ben tigen je Anwendungsgebiet spezifische Formen die GFX Klassen sind also immer spezifisch f r die konkrete Applikation oder Dom ne Abbildung 4 13 zeigt Beispiele Abbildung 4 13 Beispiele f r GFX Figuren teilweise durch konkrete Klassen realisiert Aufgabe der GFX Objekte ist es die entsprechende Grafik auf einem tCanvas
214. site Subject links mit strukturgleichen Views rechts mit einer optimierten Version f r einen Teilbereich des Composites Components erm glichen durch ihre Zerlegung gem MVC in Subject und View Sichten auf das graphische Material und durch Kombination elementarer oder bereits zusammengesetzter Objekte zu Composites den einfachen Aufbau komplexer Strukturen Grafikeditoren arbeiten mit diesen Components erm glichen dem Benutzer die direkte Manipulation der Objekte Das Unidraw Framework wird um drei Komponenten erg nzt Tool Manipulator und Com mand Jedem Editor im Application Framework ist ein aktives Tool zugeordnet Commands haben die gleiche Bedeutung wie in ET die zentrale Klasse ist der Manipulator Abh ngig vom aktiven Werkzeug Tool des Editors wird ein Manipulator Objekt erzeugt Das Werkzeug wendet sich eventuell an alle selektierten Views die jeweils einen spezifischen Manipulator erzeugen In diesem Fall fa t das Werkzeug selbst alle Manipulator Objekte zu einem komplexen Manipulator zusammen es kann aber auch selbst einen Manipulator erzeugen ohne die selektierten Views mit einzubeziehen siehe Abbildung 4 8 Das Manipulator Objekt empf ngt nach der Aktivierung alle Benutzeraktionen bis es selbst den Handlungsabschlu feststellt W hrend der Interaktion ist der Manipulator f r visuelles Feedback zust ndig und vermittelt dem Benutzer den Eindruck direkter Manipulation Nach Abschlu der Interaktion wird ein
215. sollen die Kon struktion von Frameworks unterst tzen Some design pattern approaches focus on the design of single components or of a small group of components ignoring the framework concept we consider design pattern approaches as more advanced and more important if the framework aspect is stressed Pree94 Viele der Design Pattern im Katalog GoF95 beziehen sich auf die Framework Konstruktion Most of the patterns focus on frameworks Pree94 Verschiedene dieser vorgestellten Design Pattern sind hnlich da dieselben objektorientierten Techniken verwendet werden Pree stellt fest da Design Pattern meist Beispiele gelungener Konstruktion in konkreten Anwendungen bzw Frameworks sind sorgf ltig gew hlt und hinreichend allgemeing ltig Als eine h here Abstraktionsebene unabh ngig von konkreten Implementationen f hrt er Metapattern ein We present a more advanced abstraction that allows us to categorize the catalog patterns and to describe them on a metalevel Es handelt sich nicht um neue Design Pattern sondern eine abstrakte Beschreibung bestehen der Strukturen in Frameworks The seven composition metapatterns repeatedly occur in frameworks Im Vorwort zu Pree94 stellt Lewis fest da mit Metapattern die komplette Framework Architektur beschrieben werden kann metapattern can express all of the notions of frameworks found in popular architectures Ziel ist die Beschreibung best
216. st der Entwickler gezwungen nicht objekt sondern kontrollflu orientiert vorzugehen Klassen und Klassenhierarchien gehen zur Laufzeit verloren der Debugger arbeitet nur mit Methoden einzelnen Anweisungen Look West93 ist ein Werkzeug mit v llig anderen Debugging Ans tzen Der Benutzer verfolgt Objekt Erzeugung das Werkzeug visualisiert dynamische Benutzt Beziehung Die Klassen und Objekte sind in diesem System Ausgangspunkt der Betrachtung und nicht nur dem eigentlichen Debugging beigef gt Eine aktuelle Betrachtung dieses Thema und eine Reihe neuer Vorgehensweisen Darstellungen und Werkzeugkomponenten diskutiert LS96 Das Werkzeug VOOP teilweise noch in der Entwicklung verwirklicht diese Ideen Neben der wichtigen Erg nzung zur konventionellen Dokumentation durch Klassenhierarchien Design Pattern und Kochb cher zur Verwendung in der vorhergesehenen Standardf llen hilft VOOP bei Integration in die Entwicklungsumgebung auch bei der Fehlersuche und Optimierung ist also eine echte Alternative zum Debugger oder eine n tzliche Erg nzung Auch neue objektorientierte Debugging Techniken verlangen Vorkenntnisse des Benutzers vermittelt durch konventionelle statische Dokumente Die Gr e heutiger Application Frameworks verlangen nach einer Eingrenzung des relevanten Bereiches der Benutzer mu entscheiden wie detailliert er einzelne Vorg nge verfolgen will Die Struktur eines Frame works als Leitfaden de
217. t leiten sich alle ET Klassen von Object ab WG95 sprechen daher von mostly single rooted So ist es m glich in dieser Klasse eine umfangreiche Infrastruktur bereitzustellen Vor allem ist dies ein Mechanismus zum Aktivieren Passivieren von Objekten das hei t die Transformation des Objektes in einen Stream Hiermit werden neben permanenter Speicherung auch tiefe Kopien DeepCopy sowie die bertragung in ein Clipboard und von da aus in andere Anwendungen realisiert Mittels Dynamic loading and linking k nnen sogar Objekte bertragen werden deren Klassen noch gar nicht bekannt waren vgl WG95 Obwohl ET zur Laufzeit ausreichend Laufzeitinformationen in Form eines ber den C Standard weit hinausgehenden per Makro realisierten RTTI Run Time Type Information zur Verf gung stehen um die Passivierung automatisch durchzuf hren m ssen die Methoden ReadFrom und PrintOn doch vor Hand implementiert werden Der Entwickler einer Klasse soll entscheiden welche Attribute gespeichert werden m ssen und welche jederzeit durch einfache Berechnungen wieder hergestellt werden K nnen Bereits in Object wurde der Benachrichtigungsmechanismus change notification implemen tiert Somit kann dieser nicht nur benutzt werden um verschiedene Fenster also Sichten auf ein Dokument zu aktualisieren sondern zwischen beliebigen Objekten Ein von den Autoren genanntes Beispiel sind verbundene Grafikelemente in der Anwendu
218. t betreff Undo ein Composite Subject aus mehreren Subjects zu jedem Subject kann es mehrere Views geben auch hier sind Composite Strukturen m glich aber nicht erforderlich vgl View 2 Commands k nnen je ein Clipboard anlegen f r Informationen Undo Redo Benutzung Beobachtung Abbildung 3 2 Objekte in einer Unidraw Applikation zur Laufzeit vgl 4 4 2 Eine Unidraw Applikation besteht aus Editoren zu denen jeweils Werkzeuge Tool und vom Benutzer aktivierbare Kommandos Command geh ren F r Kommandos werden Undo und Redo unterst tzt Jeder Editor kann seine Komponenten Component gleichzeitig in mehreren Sichten anzeigen mehrere Viewer Components have an MVC like structure the component subject corresponds to the model for the component and the component view corresponds to the component s view There is no object corresponding to an MVC controller Vlissides95 Somit kann es zu einem Component Subject mehrere Component Views geben die dann in jeweils eigenen Viewer Objekten angezeigt und manipuliert werden 1 Eine umfassende Darstellung der Unidraw Architektur findet sich in Vlissides90 Kapitel 3 In dieser Arbeit gehe ich im Abschnitt 4 4 besonders unter 4 4 2 n her auf Unidraw ein Kapitel 3 Einsatz der Frameworktechnik Seite 51 Direkte Manipulation erfolgt mittels Werkzeugen Der Editor bestimmt das gerade aktive Werkzeug das dann vom jeweiligen Viewer verwendet wird
219. t auf den ben tigten Protokollen unterliegender Schichten Andert95 spricht von einem stack of services Speziell mit der VO Architektur wird es m glich Ger tetreiber unabh ngig vom jeweiligen Betriebsystem zu entwickeln Es werden jeweils gro e Teile des Frameworks wiederverwendet somit sind neue Fehler meist auf die berschaubaren neuen Komponenten beschr nkt Taligent setzt auf die extensive Benutzung vieler jeweils kleiner Frameworks Mit dieser Architektur werden Komponenten realisierbar deren vollst ndige Plattformunabh ngigkeit durch das Framework gew hrleistet ist Anpassungen einzelner Komponenten sind leicht zu implementieren oft stellt sich jedoch die Frage welche Komponenten berhaupt zust ndig ist Zur Beantwortung kommt es wesentlich auf die Struktur der kompletten Sammlung an 3 5 Zusammenfassung Die vorgestellten Frameworks reichen von GUI Frameworks Interviews f r X Windows bis zu Ans tzen plattformunabh ngiger Benutzungsoberfl chen Mit MFC und ET finden sich Anwendungsumgebungen mit dem Leitbild dokumentenbasierter Applikationen Unidraw ist ein Dom nen Framework f r graphische Editoren ET zeigt die Bereitstellung mehrerer Teil Frameworks innerhalb eines gro en Application Frameworks Taligent versucht sich an der kompletten Aufteilung der Software Systeme in kleine Frameworks angefangen auf der Ebene von Betriebsystemen bis hinauf zu Anwendungsumgebungen In dieses breite Spektrum we
220. t die Trennung zwischen Pr sentation und Interaktion da nur letztere Einflu auf die IAK haben sollte Angestrebt ist die vollst ndige Behandlung von Darstellungsaspekten durch Werkzeuge zur Oberfl chengestaltung Styleguides bestimmter Plattformen und die Widgets eines konkreten Fenstersystems haben hinsichtlich der Pr sentation Bedeutung die Interaktion wird im Workshop hiervon unabh ngig diskutiert Interaktionsformen sind auf der Ebene 1 from N Selection M from N Selection und Ac tivation angesiedelt Ob der Benutzer ein Kommando ber einen Knopf das Men oder durch einen gesprochenen Befehl aktiviert ist f r die IAK ohne Bedeutung Auch Auswahlen stellen heutige Fenstersystemen in unterschiedlichster Form dar z B Liste Combobox oder Drop Down Feld Die Entwicklung neuer Widgets erweitert st ndig die Auswahl auf Seiten der Pr sentation v llig neue Formen der Interaktion sind dies im allgemeinen nicht An dieser Stelle sollen vorliegende Teilergebnisse und Ans tze f r zuk nftige L sungen nicht im einzelnen aufgef hrt werden Ich gehe davon aus da ein vollst ndiger Katalog und vor allem dessen Umsetzung in G rtz97 zum Jahresende vorliegen wird Titel der Diplomarbeit ist die Abstraktion der GUI Komponente in einem Rahmenwerk vorl ufige Ergebnisse flie en in den Workshop ein und pr gen die Diskussion Nachgewiesen wird die Tragf higkeit des Ansatzes dann durch konstruktive Umsetzung auf mehr
221. t sich auf Applikationen aus die mit den Frameworks erstellt werden auch hier werden alle Mechanismen explizit angegeben ET verwendet in weitaus gr erem Ma e Parameterklassen als die BibV30 Dennoch streben beide Frameworks die Black Box Wiederverwendung an und erm glichen durch geeignete Dokumentation gleichzeitig umfassende Anpassung nach dem White Box Ansatz Gr nde f r verst rkten Einsatz von Parameterklassen in ET sind sowohl eine gr ere Zahl standardisierter Komponenten als auch ein h herer Bedarf an Flexibilit t zur Laufzeit Interviews ist kein Application Framework das Fenstersystem wird nicht portabel gekapselt Eine Gemeinsamkeit mit ET liegt in der deskriptiven Anordnung der Oberfl chenelemente anstelle absoluter Positionierung WAM Frameworks verfolgen einen grunds tzlich anderen Ansatz durch die Verwendung von Interaktionstypen oder Interaktionsformen die s mtliche Aspekte der Pr sentation vor der Anwendung verbergen Statt dessen werden diese au erhalb des C Programmes in Ressourcen beschrieben Das Layout soll mit einem Prototyping Werkzeug erstellt und unabh ngig von der Applikation ge ndert werden k nnen im einzelnen wird dieser Punkt in 4 3 3 ausgef hrt ebenso die unterschiedliche Herangehensweise an den Anspruch einer portablen L sung Ein Vergleich mit dem Dom nen Framework leistet 4 3 4 grunds tzlich ist die BibV30 breiter angelegt also nicht auf die Dom ne graphischer Editoren b
222. teinbibliotheken ist die Umkehrung des Kontrollflusses die wichtigste Eigenschaft von Frameworks vgl Abbildung 2 1 Nur so ist es m glich die Wiederverwendung von Design zu erreichen und eine Struktur f r die Anwendung Applica tion Frameworks bzw Teile der Anwendung vorzugeben Dazu sagt JF88 One important characteristic of a framework is that the methods defined by the user to tailor the framework will often be called from within the framework itself This inversion of control gives the frameworks the power to serve as extensible skeletons Auch Gamma92 spricht von der Wiederverwendung vollst ndiger Designstrukturen Im Gegensatz zu Programmger sten die vorher die einzige M glichkeit darstellten die Struktur einer Anwendung wiederzuverwenden k nnen Frameworks ohne nderung des Quellcodes wiederverwendet werden Damit ist es auch zu einem sp teren Zeitpunkt m glich Korrekturen oder Erweiterungen des Frameworks vorzunehmen von denen alle darauf basierenden Anwendungen direkt profitieren Zusammenfassend k nnen Frameworks folgenderma en charakterisiert und gegen ber Bausteinbibliotheken abgegrenzt werden Frameworks sind Klassenhierarchien die abstrakte L sungen f r verwandte Problemstellungen realisieren Wiederverwendet werden nicht einzelne Klassen sondern das Klassenteam als Ganzes design reuse Dabei definieren abstrakte Klassen Schnittstellen die von anderen konkreten Klassen des Teams v
223. ten Dabei ist einerseits denkbar da separate Bibliotheken von Parameterklassen durch Drittanbieter bereitgestellt werden andererseits ergibt sich die Grundlage f r visuelle Programmierung Lewis95 die Zusammenstellung der Komponenten kann durch ein Werk zeug geschehen Noch eine Variante sind Frameworks die sich zur Laufzeit selbst konfigurieren Andert95 nennt diese Eigenschaft des CommonPoint I O Frameworks von Taligent soweit es sich bei der verwendeten Hardware um Plug amp Play Komponenten handelt Vorl ufig halte ich es nicht f r vorstellbar komplette Applikationen durch reine Konfiguration vorhandener Framework Komponenten zu erstellen Eine Ausnahme bilden sehr begrenzte Anwendungsbereiche zum Beispiel Datenbankschnittstellen Voraussetzung sind in jedem Fall sehr spezialisierte Dom nen Frameworks die auch nur in einem entsprechend engem Rahmen verwendbar sind Weitergehender Einsatz der Framework Technik verlangt immer die Implementation eigener Komponenten Seite 24 Kapitel 2 Begriffe und Literatur Framework Klasse mit Ableitung eigener Fertige Framework Komponenten Sequenz und Einschubmethoden Parameterklassen keine eigenen Klassen erforderlich Methoden Implementatio Die ausgew hlten Komponenten werden miteinander verbunden abstrakte Oberklasse 1 mit 1 aufgeschobenen Methoden wird spezialisiert 2 und mit den anderen Framework Komponenten alternative k verbunden 3 i Parameter Klassen
224. ternativen die unabh ngig von den Grafikkomponenten als optionale Erweiterung der Anwendungsumgebungen realisierbar sind Eine L sung ist die Implementation der Funktionalit t innerhalb der FK Das Command Design Pattern ist dabei nur eine technische Variante entscheidend ist Erweiterung der Schnittstelle der FK Das Application Framework kann zudem in der IAK z B im Standard Men die Funktionalit t dem Anwender bereitstellen Alternativ ist die komplette Implementation innerhalb der IAK Statt direkt Methoden der FK aufzurufen erzeugt die Interaktionskomponente Command Objekte f hrt diese zu gegebe ner Zeit aus und realisiert mittels einer Liste Undo und Redo Ein weiterer Vorteil ergibt sich aus der M glichkeit durch Commands Makro Befehle zu schaffen das Command Objekt ruft eine Folge von Methoden der Funktionskomponente auf die FK selbst bleibt unver ndert Die BibV30 verzichtet vorl ufig auf die Integration von Commands die skizzierte Erweite rung ist von der Grafik unabh ngig Werkzeuge nach WAM bernehmen sowohl die Aufgaben der Commands wie auch der Tool Klassen Diese berlegungen isolieren das Unidraw Konzept der Manipulator Objekte als Kern der direkten Manipulation als die Komponente die in das WAM Framework zu integrieren ist Manipulatoren simulieren die dem Benutzer das direkte Feedback seiner Interaktion also die direkte Manipulation der Grafikelemente Die Benutzerinteraktion wird festgeha
225. tifizieren AGO935 Gemeinsame Oberklassen bieten die M glichkeit diverse Mechanismen f r ein Komplettes Framework bereitzustellen die in der Programmiersprache fehlen Trotz des bereits genannten Nachteiles mangelnder Kombinierbarkeit verschiedener Frameworks ist dieses Argument oft entscheidend f r die Verwendung einer gemeinsamen Oberklasse oft Object genannt In dieser Klasse wird oft ein Meta Object Protocol spezifiziert da in der Programmiersprache fehlt oder ungen gend ist WG95 beschreiben die Verwendung einer Klasse Object f r eine Vielzahl h ufig ben tigter Mechanismen In ET wird sowohl das Problem persistenter Daten als auch ein Beobach tungsmechanismus in dieser Klasse realisiert oder vorbereitet Abgeleitete Klassen implementieren die aufgeschobenen Methoden vgl Kapitel 3 Spezialisierte Klassen m ssen somit ein m chtiges Protokoll erf llen unabh ngig davon ob diese Funktionalit t ben tigt wird Es ergeben sich schwere Objekte mit umfangreicher Schnittstelle vgl Calder95 Speziell in ET wurde versucht diese Probleme weitge hend zu vermeiden WG94 betont das Prinzip do not bother the programmer bez glich der Notwendigkeit geerbte Methoden implementieren zu m ssen andererseits hat sich aber die gew hlte L sung f r dieses Framework offenbar bew hrt ET is organized as a mostly single rooted class library this or ganization enabled the implementation of some valuable in
226. tig also die Beschreibung auf einem h heren Abstraktionsniveau The main purpose of the framework centered design pattern approaches is to describe the design of a framework and its individual classes without revealing the implementation details Pree94a Design patterns try to describe frameworks on an abstraction level higher than the corresponding code that implements these frameworks Pree94 Design Pattern als Bestandteil der Framework Dokumentation stellen auch LS96 heraus Ein weiterer Bestandteil sollten Kochb cher und Beispiele sein Diese bieten einen Einstieg in das Framework decken jedoch nur einige Anwendungsm glichkeiten ab A framework used extensively tends to be used in ways never conceived by its designers Anpassung und Erweiterung von Frameworks ist nur m glich wenn die dynamischen Strukturen verstanden werden Hierzu werden zus tzliche Diagrammtypen und Werkzeuge vorgeschlagen die eine Betrachtung der Dynamik zur Laufzeit erm glichen vgl Kapitel 5 Eine weitere Verbindung zwischen Pattern und Frameworks folgt aus der Verwendung von Design Pattern zur Konstruktion von Frameworks Die so konstruierten Teile eines Frame works sind spezifische Instantiierungen des Pattern Formalisierung von Pattern zwecks automatischer Generierung von L sungen sehen viele Autoren skeptisch vgl BMRSS96 und RZ96 innerhalb eines Anwendungssystems gibt es aber oft f r einige Pattern konkrete Impleme
227. tig erkl rt und automatisch durch das Framework erneuert Standarddialoge f r ffnen Schlie en Speichern und Drucken sind in integriert W hrend der Ansatz einer gemeinsamen Oberklasse Object von ET bernommen wurde fehlen Commands Undo in MFC ebenso wie direkte Manipulation Die Unterst tzung f r vergr ern zooming rollen scrolling und Teilen splitting ist nach Pree95 nicht state of the art die rudiment ren Metainformationen entsprechen etwa dem C Standard RTTI Benutzereingaben event handling bearbeitet das zugrunde liegende Software Development Kit SDK eine objektorientierte Kapselung fehlt Zwei Arten dokumentbasierter Anwendungen sind m glich MFC beinhaltet zwei insofern unterschiedliche Anwendungsumgebungen Entweder wird jeweils genau ein Dokument betrachtet oder es k nnen beliebig viele Dokumente desselben Typs gleichzeitig ge ffnet sein Zu einem Dokument zeigt MFC ggf mehrere Sichten konsistent an MFC wird hier nicht wegen seiner Framework Architektur erw hnt die gegen ber ET und anderen Ans tzen deutliche Defizite und wenig Neuerungen bringt Die Besonderheit liegt vielmehr in der mitgelieferten Entwicklungsumgebung Neben Editoren f r den Quelltext Compiler und Klassenbrowser gibt es speziell auf das Framework zugeschnittene Werkzeuge der AppWizard erstellt und verkn pft alle f r die Anwendung notwendigen Klassen die von Basisklassen des Frameworks abgeleitet werden Weitere Erlei
228. tikale Box sind 2 horizontale sogenannten Handlern bearbeitet die Darstellung und das Ver Boxen eingef gt die Anordnung erfolgt automatisch entsprechend der Elastizit t halten einzelner Glyphs kann durch Wrapper beeinflu t werden dargestellt durch Einzelheiten siehe Calder95 oder LCITV92 Abbildung 3 1 TgX Layout Kapitel 3 Einsatz der Frameworktechnik Seite 49 Lewis95 betrachtet Interviews als Toolkit Interviews ist kein Application Framework da es lediglich die Entwicklung graphischer Benutzungsschnittstellen unterst tzt Vorgefertigte Glyphs hneln Bausteinklassen jedoch wird die Kontrolle zwecks Meldung von Benutzerein gaben grunds tzlich dem Mikro Framework bertragen Die Komposition von Objekten fertiger Klassen entspricht daher eher der Verwendung konkreter Parameterklassen W hrend die Verwendung fertiger Klassen der Black Box Wiederverwendung entspricht setzt die Entwicklung eigener Glyphs weitgehende Kenntnisse der internen Framework Strukturen voraus es handelt sich um White Box Wiederverwendung Diverse Design Pattern des Kataloges GoF95 wurden in Interviews identifiziert obwohl zum Zeitpunkt der Entwicklung diese Diskussion noch nicht begonnen hatte Leitbild f r die Gestaltung von Interviews war direkte Manipulation betreff Anordnung der Elemente wurden Prinzipien aus dem Textlayout bernommen Ansonsten ist anzumerken da Interviews eben nur die Gestalt
229. tion unter Zuhilfenahme von tIATCanvas demonstriert die Wichtigkeit einer verbesserten technischen und konzeptuellen Basis Neben dem Mangel an Funktionalit t f llt die prozedurale Schnittstelle der abstrakten Klasse tCanvas auf tCanvas sammelt diverse einfache Methoden mit jeweils langen Parameterlisten und einigen Defaultwerten zur einfacheren Handhabung Offensichtlich verf gt das Objekt ber keinen Zustand von dem die Methoden abh ngig w ren Au erdem fehlen Zeichenpri mitiven die getroffene Auswahl l t deutlich den Bezug zur ersten mit der Bibliothek entwickelten Anwendung Sane erkennen Dies setzt sich in der Implementation der Klassen tXCanvas und tPSCanvas fort tPSCanvas implementiert einfach die Methoden nicht bzw leer die Sane zum Ausdruck nicht braucht Konzeptionell wichtiger ist aber die Entscheidung im tXCanvas den Zeichenmodus XOR des X Windows Systems einzusetzen Der Vorteil ist schnelles L schen und Neuzeichnen der GFX Objekte bei Manipulationen Verschiebt der Benutzer ein Grafikelement so wird dieses einfach an der alten Position neu gezeichnet und damit die vorher dort befindlichen Kapitel 4 Frameworks f r WAM C Bibliotheken BibV30 Seite 87 Elemente wieder hergestellt und dann an der neuen Position noch einmal gezeichnet Werden zwei identische Objekte gezeichnet ist allerdings infolge XOR keines zu sehen GFX Klassen und tIATCanvas unterscheiden an ihren Schnittstellen zeichnen und verstec
230. trakten Klasse tCanvas in deren Implementation durch tXCanvas und tPSCanvas sowie der Beziehung zwischen tIATCanvas und den GFX Objekten Letzteres betrifft vor allem die fehlende Funktionalit t zur Verwaltung dargestellter GFX Objekte in der Zeichenfl che Resultat dieser Entscheidung der Framework Entwickler ist eine hohe Belastung der Anwendung mit fachfremden Aufgaben die sich in den Frameworkklassen zudem effizienter erledigen lassen Zusammen mit der fehlenden direkten Manipulation ergibt sich f r eine neue L sung in der BibV30 die Gelegenheit gro e Teile der technisch bedingten Aufgaben einer Applikation zu bernehmen Technisch bedingt ist die Notwendigkeit Bildschirminhalte zu erneuern wenn diese z B von Fenstern anderer Anwendungen zwischenzeitlich berdeckt wurden Interaktionstypen oft auch Widgets des Fenstersystems erledigen dies ohne Eingriff des Anwendungsentwicklers nur tIATCanvas bildet eine Ausnahme Da der Zeichenfl che Informationen ber ihren Inhalt fehlen ist dessen Wiederherstellung Aufgabe der Anwendung W hrend tIATCanvas aufgrund seiner Kenntnis des dargestellten Ausschnitts und des berdeckten Bereiches dies optimieren k nnte zeichnet die Anwendung grunds tzlich alle Elemente neu z B auch beim Scrolling Wei 94 beschreibt den spezifischen tIATSymbolNet der f r einen eingeschr nkten Anwen dungsbereich vgl Ritz94 die Funktionalit t auf h herer Ebene anbietet Die Komplexit t der Implementa
231. truktur besser verstehen k nnen Perry96 beschreibt die softwaretechnische Entkopplung von GUI und Anwendung durch die Displayer Data Pattern Language Dabei definiert er A pattern language is a set of related patterns not necessarily design patterns The context of each pattern is influenced by the application of other patterns in the pattern language Als Vorz ge der Beschreibung durch aufeinander aufbauende Pattern nennt Perry die Anpa bar keit an spezifische Systeme Der Anwender kann aufgrund der Beschreibung die Motivation und die Konsequenzen der Designentscheidungen nachvollziehen und Alternativen bewerten Each pattern identifies a problem the context in which it occurs the forces that influence it and suggest a solution Consequences to accepting the solution are also considered part of the pattern It must therefore be explained in a comprehensive form and must be adaptable to different situations Patterns force the writer to express the motivation behind decisions Patterns also encourage the writer to state the implications and drawbacks of the design decisions Ziel des von Buschmann et al vorgestellten System of Patterns BMRSS96 ist vor allem dem Benutzer eine im Vergleich zu einfachen Katalogen bessere Anleitung zu geben wann welche Pattern benutzt werden Innerhalb des Systems soll eine ausreichende Menge an Pat tern als Basis beschrieben werden sowie die Beziehunge
232. tung der Materialobjekte Vorteil der unabh ngigen Konstruktion von Werkzeugen und Material ist die einfache Wie derverwendung bestehender Werkzeuge f r neue Materialklassen die lediglich den Aspekt implementieren m ssen Umgekehrt k nnen auf den bestehenden Aspekten neue Werkzeuge aufgebaut werden Einen weiteren Schritt in Richtung Wiederverwendung liefert das WAM Pattern Tool Composition RZ95 Aufgrund der Feststellung da komplexe Werkzeuge h ufig hnliche Komponenten enthalten sollen diese leicht wiederverwendet werden k nnen Werkzeuge werden durch Kombination bestehender einfacher Werkzeuge konstruiert vgl Abbildung 2 4 Das Kontextwerkzeug delegiert seine Aufgaben an die Subwerkzeuge und koordiniert Aufgaben an denen mehrere Subwerkzeuge beteiligt sind Zus tzliche Funktiona lit t Kann hinzugef gt werden Als Beispiel dieser Konstruktion nennen Riehle und Z llighoven RZ95 einen Kalender der Termine auflistet Subwerkzeug Lister Der Benutzer kann jeweils einen Eintrag ausw hlen und ver ndern Subwerkzeug Editor Aufgabe des Kontextwerkzeuges Kalender ist es nderungen im Editor dann auch im Lister zu zeigen und umgekehrt den im Lister ausgew hlten Termin in den Editor zu bertragen Beispiel Kontext Terminkalender Werkzeug ha er k zen 8 05 04 97 WAM DWS 27 05 97 Diplomarbeit Kalender 09 04 97 IAF Workshop 16 04 97 9 30 L beck Abgabetermin 23 04 97 15 00 CL 09 00 12 00 27 04 97 16 30 HZ
233. tung der Shape Tools als Grundlage einer objektorientierten Software Entwicklungsumgebung Diplomarbeit am Arbeitsbereich Softwaretechnik Fachbereich Informatik Universit t Hamburg 1994 Rosenstein95 Larry Rosenstein MacApp First Commercially Successful Framework in Lewis95 RZ95 RZ96 RW96 RW97 RWW95 Taligent94 Traub95 Dirk Riehle Heinz Z llighoven A Pattern Language for Tool Construction and Integration Based on the Tools amp Materials Metaphor in PLoP95 Dirk Riehle Heinz Z llighoven Understanding and Using Patterns in Software Development Theory and Practice of Object Systems 2 1 1996 Stefan Roock Henning Wolf Konzeption und Implementierung eines Reaktionsmusters f r objektorientierte Softwaresysteme Studienarbeit am Arbeitsbereich Softwaretechnik Fachbereich Informatik Universit t Hamburg 1996 http swt www informatik uni hamburg de 1roock Stefan Roock Henning Wolf Der Werkzeug amp Material Ansatz und Mehrbenutzerumgebungen Die Raummetapher zur Kooperation und Koordination ber persistente Materialien Diplomarbeit am Arbeitsbereich Softwaretechnik Fachbereich Informatik Universit t Hamburg 1997 Stefan Roock Ulfert Wei Henning Wolf Programmierrichtlinien am Arbeitsbereich Softwaretechnik HTML Dokument entstanden innerhalb eines Projektseminares WS 1995 http swt www informatik uni hamburg de Taligent I
234. tung seiner Umgebung mit bestimmten Werkzeugen meist nach den funktionellen Rollen vgl Floyd94 die der Benutzer im Unternehmen erf llt Es bietet sich an ein Konzept von Benutzerprofilen vorzusehen Weiterhin ist die Umgebung zust ndig f r die Synchronisation von gleichzeitig benutzten Werkzeugen die auf demselben Material arbeiten innerhalb dieser Umgebung Gem WAM erfolgt die Steuerung nicht von unten ber das Material sondern explizit zwischen den Werkzeugen und der Umgebung Auch die Verbindung zu Datenbankautomaten geh rt nach WW94 zu den Aufgaben der Umgebung Die derzeitige Version der BibV30 setzt nur ein sehr eingeschr nktes Umgebungskonzept um Persistenz Benutzerprofile und auch der visualisierte elektronische Schreibtisch sind nicht umgesetzt die Umgebung bernimmt nur die Aufgaben der Anbindung an ein Fenstersystem siehe 4 3 3 und den Start der Werkzeuge n chster Unterpunkt Werkzeug Framework in der SEBib Software Engineering Project Bibliothek Aufgrund der softwaretechnischen Trennung zwischen FK und IAK vgl Abschnitt 2 3 mu die Umgebung in der BibV30 jeweils beide Teile erzeugen da das ein Werkzeug als ganzes nicht als Klasse vorhanden ist Ich habe eine konkrete Werkzeugklasse f r die Erzeugung und Konfiguration der Hauptwerkzeuge eingef hrt um dieses Problem zu l sen Die Umgebung erzeugt Werkzeuge Zusammenstellung passender Funktionskomponente und evtl mehrerer Interakti
235. tz zur Strukturierung gro er Frameworks vor Ausgangspunkt ist ein Dom nen Framework im Bankenbereich GEBOS das im Zusam menhang mit Anwendungen f r praktisch alle Bereiche des Bankgesch ftes family of applications cover almost the complete area of banking entwickelt wurde Die vorge schlagene Struktur wird in Abschnitt 5 3 n her betrachtet folgende zwei Aspekte beziehen sich auf unterschiedliche Konfiguration erstellter Anwendungen Kapitel 5 Strukturierung von Framework Bibliotheken Seite 115 F r jedes Framework wird eine eigene DLL dynamic link library erzeugt Anwendungssy steme mit den jeweils ben tigten DLL s ausgeliefert Each application system consists of only those libraries that are required for functioning Innerhalb der Entwickler Organisa tion benutzen die Anwendungsentwickler Frameworks nur als DLL und nehmen selbst keine nderungen am Framework vor The different frameworks are provided in DLLs to ensure that framework classes cannot be changed at will by application developers nderungen am Framework sind Aufgabe einer speziellen Gruppe innerhalb der Organisation Zudem gibt es neben technischer Technical Kernel Layer und methodischer Schicht zur Werkzeug Konstruktion Desktop Layer weitere gemeinsame Frameworks f r alle Anwendungen Business Domain Layer auf deren Basis dann spezialisierte Frameworks f r einzelne Gesch ftsbereiche entwickelt werden Business Section Layer
236. uch Quit Portable Anwendungen geh ren auch zu den Zielen von ET obwohl hier s mtliche Angaben zum Layout in der Applikation direkt stehen Daf r investieren die Framework Entwickler in die Entwicklung der Klassen f r Oberfl chenelemente einen weitaus h heren Aufwand und greifen nicht auf bestehende Widget Bibliotheken der einzelnen Systeme zur ck Ein Problem bleibt aber das look amp feel der Anwendungen ein einheitliches Layout f r alle Plattformen mu zwangsl ufig die unterschiedlichen Styleguides verletzen Einhaltung von Styleguides und reduzierter Aufwand sind Argumente f r die im WAM Kontext gew hlte L sung Ein weiteres ist die Vorbereitung f r Oberfl chen Prototyping Eine Voraussetzung f r das Prototyping hinsichtlich graphischer Benutzungsoberfl chen ist die M glichkeit diese mit komfortablen Werkzeugen schnell entwerfen und danach ohne gro e Wartezeiten testen zu k nnen vgl BBLSSZ94 Die Integration der Beschreibung in den Teil des Programmes der jeweils neu zu compilieren ist erf llt diese Anspr che nicht da lange Wartezeiten bei kleinen nderungen entstehen Ressourcen als externe Beschreibungen des Layout wertet das Laufzeitsystem direkt aus IAT Bibliotheken als Verbindung zwischen Werkzeug IAK und Fenstersystem trennen die Implementation von der Gestaltung der Benutzeroberfl che Prototyping setzt dar ber hinaus komfortable Werkzeuge voraus um diese Oberfl che schnell und ohne spezielle
237. ugen Kapitel 4 Frameworks f r WAM C Bibliotheken BibV30 Seite 65 Vergleich mit anderen Frameworks Gro e hnlichkeiten im Leistungsumfang bestehen zwischen dem WAM Framework BibV30 und ET Beide Frameworks orientieren sich bei den bereitgestellten Basis Mechanismen an Design Pattern z B Observer Command verf gen ber hoch entwickelte Beh lter mit Iteratoren bzw Cursors und eine Kapselung des Fenstersystems Beide bauen hierauf eine Anwendungsumgebung mit klar definiertem Leitbild sowie weitere optionale Komponenten Konzeptionell unterschiedlich sind die Arten der Wiederverwendung in beiden Frameworks ET folgt dem Ansatz einer gemeinsamen Oberklasse Baum und benutzt diese Klasse auch f r diverse Mechanismen die so allen anderen Klassen implizit bereitgestellt werden Der gr te Nachteil dieser allgemeinen Oberklasse ist die weitgehende Unvertr glichkeit mit fremden Bibliotheken vgl 2 1 4 die Integration diverser Mechanismen macht diese Klasse und alle anderen also abgeleiteten Klassen un bersichtlich der Anwender ist gezwungen einige Methoden immer zu implementieren z B Activation Die BibV30 realisiert alle Mechanismen zur Gew hrleistung flexibler Komponenten explizit als eigene Klassen bzw Mikro Frameworks WAM als Methode gibt dazu eine Anleitung in welchen Situationen einige dieser Mechanismen einzusetzen sind vgl Diskussion ber die Beobachtungsmuster in Abschnitt 4 3 Dieses Prinzip wirk
238. ukturen und Dialog elemente So kann eine Bibliothek Listen Arrays und einen Stack anbieten die von anderen Klassen direkt verwendet werden Innerhalb der Bibliothek k nnen die Klassen voneinander abgeleitet werden und eine Hierarchie bilden die dem Benutzer der Bibliothek durch Klassifizierung der Elemente einen besseren berblick gibt Vielfach wird jedoch Implemen tationsvererbung eingesetzt um z B eine sortierte Liste von einer Liste abzuleiten zu den Problemen dieses Vorgehens siehe Traub95 Bausteinbibliotheken haben sich als Mittel f r die Wiederverwendung im Kleinen bew hrt Die Klassen lassen sich h ufig und direkt wiederverwenden das Zusammenspiel zwischen den Objekten mu die Anwendung aber jeweils neu realisieren Implizite Annahmen betreff m glicher Kombinationen der Klassen erschweren den Anwendern die Benutzung komplexer Bausteinbibliotheken Frameworks haben das Ziel Wiederverwendung im Gro en zu erm glichen Es wird nicht nur der Code einzelner Klassen wiederverwendet sondern Entwurfsstrukturen Ein Framework kann f r eine Gruppe verwandter Problemstellungen eine allgemeine abstrakte L sung implementieren dabei den Kontrollflu einer kompletten Anwendung bestimmen und die einzelnen Komponenten miteinander verkn pfen Der Benutzer erg nzt nur die spezifischen Teile seiner Applikation Nach Pree94 sind f r die Entwicklung von Frameworks neben der Vererbung besonders die abstrakten Klassen ein
239. ulatoren GFX und Manipulator Klassen lassen sich aber z B in hnlichen Projekten direkt wieder verwenden Das Beispiel enth lt dabei einen Manipulator zum Erzeugen neuer Grafikelemente Realisiert wurde dieser unter Verwendung der GFX Klassen mit derselben Manipulator Klasse kann der Benutzer unterschiedliche graphische Figuren erzeugen der Manipulator wird einfach mit der Kopie eines GFX Objektes parametrisiert Dies funktioniert z B auch mit speziellen vom Anwender frei entworfenen Figuren die sich so beliebig kopieren lassen vgl Wei 97 Sind Manipulatoren IAT s Interaktionstypen dienen der Kommunikation mit dem Anwender verf gen ber darstellende Komponenten und nehmen Eingaben des Benutzers entgegen tIATManipulator ist eindeutig ein IAT Auch tIATGraphic stellt logische Einheiten dar Benutzeraktionen erfolgen aber nicht ber diesen IAT erfolgen sondern immer ber einen Manipulator In der vorliegenden Implementation ist die Selektion dem tIATGraphic Objekt zugeordnet Bei der Zeichenfl che tIATCanvas meldet die IAK dagegen keine Commands an Entspre chend 4 3 3 handelt es sich eher um ein Layoutelement einen Rahmen um die tIATGraphic Zur Diskussion ber Interaktionsform und Pr sentation F hre ich diese berlegungen hinsichtlich der angestrebten Trennung von Pr sentation und Interaktion fort so stellen Canvas und Grafik IAT offensichtlich keine Interaktionsform dar tIATCanvas hat eigentlich auch ke
240. und Diplomarbeiten Dabei ist sicherzustellen da eine gemeinsames gro e Aufgabe anstelle vieler Einzelprojekte tritt Seite 126 Kapitel 6 Fazit und Ausblick Kapitel 6 Fazit und Ausblick Objektorientierte Technologie verspricht wiederverwendbare Software Komponenten Um dieses Versprechen einzul sen kombinieren moderne Frameworks Mechanismen der Pro grammiersprachen und den Ansatz der Design Pattern orientieren sich eventuell zudem an Methoden zur Softwareentwicklung Ein Beispiel solcher Frameworks sind die am Arbeitsbereich Softwaretechnik entwickelten C Bibliotheken mit dem Namen BibV30 Entstanden ber einen Zeitraum mehrerer Jahre in kooperativer T tigkeit hilft diese auf die Werkzeug und Material Metapher ausgerichtete Fra mework Sammlung in der Lehre am Arbeitsbereich dient Diplomarbeitern als Infrastruktur f r die Anwendungsentwicklung und ist vor allem eine Plattform f r die konzeptionelle und softwaretechnische Erweiterung der Methode WAM ber die Jahre hat die BibV30 einen Funktionsumfang erreicht den ich in dieser Arbeit an anderen Produkten messe z B ET und MFC Es ist meine berzeugung auch als Ergebnis dieses Vergleichs da die Bibliothek k nftig st rker als Produkt betrachtet werden sollte In den letzten Monaten hat eine Gruppe von Entwicklern Studenten und Mitarbeiter des Ar beitsbereiches einige Schritte vollzogen um die BibV30 mit der wichtigsten Eigenschaft aller Frameworks auszustatten u
241. und Gestaltungsmuster Conceptual Patterns hier werden Design Metaphern zugeordnet helfen das Anwendungsgebiet und dessen Aufgabenstellungen zu verstehen und das gewonnene Verst ndnis application domain model mit den Anwendungsexperten und sp teren Benutzern zu diskutieren Die Verwendung von Metaphern vgl WAM Abschnitt 2 3 als Grundlage dieser Pattern ist sehr hilfreich um Anwendungswelt und Softwaretechnik n her zueinander zu bringen Conceptual patterns should be based on metaphors rooted in the application domain Kapitel 2 Begriffe und Literatur Seite 31 Im Software Design werden dann Design Pattern verwendet die konzeptionell passend ge w hlt werden sollen fit or complement the conceptual space Design Patterns definieren Struktur Zusammenarbeit und Verantwortlichkeiten der Komponenten Die Form wird durch softwaretechnische Konstrukte beschrieben also Objekte Klassen Benutzungsbeziehungen und Vererbung RZ96 Programmiersprachliche Konstrukte dienen schlie lich zur Beschreibung der Programming Pattern die je nach verwendeter Sprache und Sprachkultur variieren Mechanismen die in der einen objektorientierten Sprache bereits integriert sind z B Smalltalk Metaklassen werden in anderen z B C durch Programming Pattern realisiert Pree94 unterscheidet den Bezug von Design Pattern auf einzelne Komponenten oder gr ere Zusammenh nge Letztere Pattern sind seiner Ansicht h her zu bewerten und
242. ung der nicht auf einen bestimmten Anwendungskontext bezogenen BibV30 Kapitel 5 Strukturierung von Framework Bibliotheken Seite 111 5 1 Ziele der Strukturierung Probleme bereiten gro e Klassenbibliotheken durch eine Vielzahl an Klassen bzw auch kleiner Frameworks aus denen im gerade betrachteten Kontext die jeweils relevanten herauszufinden sind Unterschiedliche Anforderungen entstehen hinsichtlich Benutzung und Entwicklung des Frameworks F r Benutzer eines Frameworks sollte der Zugang leicht sein damit das Framework die durch Wiederverwendung erwartete Minderung des Aufwandes tats chlich erreicht Dagegen darf Wartung nderung und Erweiterung dieser Bibliotheken durchaus einen h heren Aufwand erfordern Der Schwerpunkt der Strukturierung betreff Erweiterung eines Frameworks ver schiebt sich mehr auf die internen Beziehungen der Komponenten zueinander Im letzten Teil dieses Abschnittes werden M glichkeiten untersucht verschiedene Versionen eines Frameworks bereitzustellen bzw in Applikationen jeweils nur einige Komponenten zu verwenden Als Motivation dienen Anwendungsf lle im Bereich der Industrie sowie des universit ren Lehrbetriebes Abschnitt 5 3 wird die Frage nach Framework Konfiguration auf die Konstruktion neuer Framework Sammlungen erweitern 5 1 1 Lernaufwand bei der Framework Benutzung Wiederverwendung ist ein anerkanntes Ziel objektorientierter Programmierung um Entwick lungskosten und zeit einzuspar
243. ung der Oberfl che erlaubt eine Struktur f r die Anwendung als Ganzes wird nicht vorgegeben 3 2 2 Unidraw Graphische Editoren Unidraw ist ein Framework mit dessen Hilfe graphische Editoren f r unterschiedliche An wendungsgebiete konstruiert werden k nnen Lewis95 verweist in seinem Vorwort darauf da dieses spezialisierte Application Framework ein anderes Framework wiederverwendet John Vlissides describes Unidraw which is an application of the best principles of object oriented application frameworks First Unidraw reuses Interviews instead of reinventing a new GUl based framework Then Unidraw extends InterViews into new domains e g editors for graphical drawing musical scores and circuit design Grafische Editoren erm glichen dem Benutzer die direkte Manipulation der dargestellten Elemente Die Grafik Symbole stehen f r spezifische Anwendungsobjekte z B Transistoren im Schaltplanentwurf oder vielleicht Musiknoten Die Bildschirmdarstellung kann in andere Formate bertragen werden einerseits wird auf einen Postscript Drucker ausgedruckt ande rerseits soll eine nicht grafische Netzliste des Schaltplanes erstellt werden W hrend traditionelle Benutzungsschnittstellen Kn pfe Men s und andere Oberfl chenele mente anbieten stellt Unidraw eine Abstraktion zur Verf gung und vereinfacht die Entwicklung grafischer Editoren f r sehr unterschiedliche Anwendungsfelder deutlich Vlissides95 Unidr
244. ung und Ordnung dieser Bestandteile vor der zweite Schritt orientiert sich entsprechend der unterschiedlichen Herkunft und Zielrichtung der Komponenten auf eine logische Aufspaltung der Framework Sammlung Kapitel 6 Fazit und Ausblick Seite 127 Gemeint ist ein R ckbezug auf die Anwendungsdom nen aus denen sich neue Konzepte er geben haben Motiviert wurden einige Kooperationsformen durch konkrete Anwendungen in Banken andere durch die Arbeit im Krankenhaus Umgekehrt lassen sich diese Bereiche mit spezifischen Dom nen Frameworks weitaus besser unterst tzen als mit einer allgemeinen Anwendungsumgebung f r WAM Verbunden mit dem Richtungswechsel zu Frameworks f r bestimmte Dom nen ist aber auch die Forderung nach praktischen Einsatz der BibV30 in gr eren zusammenh ngenden Pro jekten Nur so l t sich das Potential nutzen Dom nen wirklich erfassen Einzelanwendungen leisten dies nicht Konsequenz dieser Empfehlung ist ein st rkerer Produkt Charakter der Bibliothek Voraussetzung dagegen noch h heres Engagement seitens der Studenten folglich auch der Mitarbeiter am Arbeitsbereich Ich selbst will dieses Thema weiter verfolgen andere erkennen es hoffentlich auch als lohnen Und vielleicht findet dann jemand einen geeigneten Namen f r dieses Produkt das derzeit noch BibV30 hei t Diese Diplomarbeit fa t eine Entwicklungsphase zusammen kennzeichnet deren konzeptio nellen Hintergrund und bewertet das Ergebnis Mit der
245. ungsfamilie im Bankenbereich entwickelt die Anwendungsentwicklung bei der RWG folgt der Methode WAM Meine Betrachtung des GEBOS Systems st tzt sich auf BGKLRZ97 Die Autoren st tzen sich auf diese Framework Sammlung bei der Untersuchung von Framework Entwicklungen f r gro e Systeme Die Beschreibung der Struktur siehe Abbildung 5 3 ist direkt dem Artikel entnommen ich werde einen Vergleich mit der BibV30 vornehmen und dann erkl ren wie ich mir die Konzeption eines diesem vergleichbaren Dom nen Frameworks unter Benutzung der BibV30 vorstelle Zuerst einige Hinweise zu der Darstellung selbst um diese meinem Strrukturvorschlag gegen berzustellen Technical Application Layers Kernel Layer Adviser Telephone Teller Desktop Banking r D lt Tool Construction Teller Business Section Layers Investment m E m an m m m m suono Business Domain Layer erson account P product roles 20 Die RWG erstellt Software f r einen Verbund unabh ngiger Banken n here Informationen zum GEBOS System dessen Entwicklung und das organisatorische Umfeld in der RWG gibt z B BGKZ96 Seite 124 Kapitel 5 Strukturierung von Framework Bibliotheken Abbildung 5 2 Struktur des GEBOS Frameworks gem BGKLRZ97 Im mittleren Bereich der Abbildung finden sich alle fachlichen GEBOS Elemente Dieser Teil fehlt in der BibV30 gem Abb 5 1 entspricht der fachlichen Schicht in Abb 5 2 Es ergibt sich
246. verwendung von Code sondern von Entwurf design reuse Pree94 betont die Kombination objektorientierter Techniken zur Framework Konstruktion und zwar dynamische Bindung zusammen mit Vererbung und abstrakten Oberklassen an appropriate combina tion of the basic object oriented concepts is necessary Auch Wirfs Brock und Johnson definieren Frameworks als Wiederverwendung von Design mittels abstrakter Klassen An object oriented abstract design also called a framework consists of an abstract class for each major component JF88 A framework is a collection of abstract and concrete classes and the interface between them and is the design for a subsystem WJ90 Seite 14 Kapitel 2 Begriffe und Literatur Wiederverwendet werden nicht einzelne Klassen sondern immer das ganze Team BBE95 Ein Framework definiert ein Klassenteam als Wiederverwendungseinheit JF88 motiviert die Verwendung von Frameworks gegen ber Bausteinbibliotheken die meist einfacher zu benutzen und auch h ufiger wiederverwendbar sind Application independent components can be reused rather easily but reusing the edifice that ties the components together is usually possible only by copying and editing it Unlike skeleton programs which is the conventional approach to reusing this kind of code frameworks make it easy to ensure the consistency of all components under changing requirements Zur Abgrenzung gegen ber Baus
247. work s public interface Letztere Art der Framework Benutzung entspricht der blichen Sichtweise auf Application Frameworks Anwendungen benutzen das Framework nicht von au en als einen Baustein sondern konkretisieren die vorhandene generische Anwendung durch Implementation nicht standardisierter Hot Spots Im Zusammenhang mit der Kombination verschiedener Frameworks unterschiedlicher Ebenen erh lt der erste Punkt jedoch gr ere Bedeutung also die Benutzung eines Mikro Frameworks tieferer Ebene durch ein anderes Framework wobei einfach auf die Dienste der ffentlichen Schnittstelle zugegriffen wird Hinsichtlich der Unterscheidung zwischen Bausteinklassen und Frameworks wird hier die Sichtweise entscheidend die Definition von Bausteinklassen siehe 2 1 1 stellt auf deren Verwendung von au en ab intern durchaus ein komplettes Framework hinter der als Baustein verstandenen Interface Klasse stehen Ebenso lassen sich Frameworks zu neuen gr eren Frameworks kombinieren wie dies schon Mikro Frameworks innerhalb der ET Anwendungsumgebung gezeigt haben z B die Commands CommonPoint basiert auf dieser M glichkeit Mikro Frameworks bilden eine Vielzahl auf einander aufbauender Schichten Zudem kann auch ein fertig implementiertes Framework als Grundlage f r ein weiteres spezielleres Framework dienen indem dessen Klassen von dem allgemeineren abgeleitet werden CommonPoint frameworks are composable They can be lay
248. works bereits umfangreiche Mechanismen zur einfachen Benutzung vor Eine scharfe Trennung zwischen White Box und Black Box Frameworks ist nicht m glich Auch Black Box Frameworks k nnen als White Box Frameworks betrachtet und entsprechend unabh ngig von den vorgesehenen Mechanismen erweitert werden wenn sie f r die konkrete Anwendung nicht ausreichen In der Regel ist dies jedoch nicht erforderlich Implementationstechnik Parameterklassen Obige Darstellung und Definition stellt ausschlie lich auf die Form der Wiederverwendung ab ohne die hierzu verwendete Technik zu diskutieren Die von den Autoren vorgenommene Verkn pfung der Konzepte Black Box und White Box mit den dazu verwendeten objekt orientierten Implementationstechniken ist problematisch Die Gleichsetzung zwischen White Box Wiederverwendung und Vererbung widerspricht dem grunds tzlichen Framework Konzept Jedes Framework soll dabei helfen Implementationsdetails durch Kapselung vor dem Benutzer der Klassen zu verbergen Und jedes Framework mu dem Anwender vorgeben an welchen Stellen er Erg nzungen vornehmen kann welche Spezialisierung zwingend erfor derlich sind und welche Teile des Frameworks nicht ver ndert werden d rfen bzw nur vom Framework Entwickler Vielfach werden diese Hinweise nur in der Dokumentation zu finden sein Eine deutliche Verbesserung ist z B durch Namenskonventionen f r die Methoden im Framework m glich objektorientierte Programmiersprachen
249. z B Materialklassen und Aspekte sowie spezifische Subwerkzeuge Anwendungsumgebungen der BibV30 werden konkretisiert durch Ableitung entstehen neue Dom nen Frameworks Wie im Abschnitt 2 1 dargelegt ist gerade die M glichkeit einer Standardisierung gro er Teile der Anwendungen die eigentliche St rke eines Dom nen Frameworks F r die Konstruktion eines Banken Frameworks ist somit die komplette Infrastruktur der BibV30 verf gbar angefangen von Spracherweiterungen ber objektorientierte Mechanismen und die Systemschnittstelle bis hin zur methodischen Schicht der WAM Frameworks Die Darstellung in BGKLRZ97 Abbildung 5 3 verdeutlicht da diese Komponenten einen bedeutenden Teil der Entwicklung einer Anwendungsbibliothek ausmachen auch wenn deren Schwerpunkt die fachliche Bereiche bleiben Letztere Arbeit ist jeweils spezifische zu leisten eine allgemeine Bibliothek wie die BibV30 als Basis entlastet von den brigen Aufgaben die Entwickler k nnen sich auf die Infrastruktur verlassen und auf ihre Dom ne konzentrieren Bis auf weiteres wird die konkrete Verwendung der BibV30 in der hier beschriebenen Form nicht infrage kommen Vorbedingung w re erst einmal ein praktischer Einsatz wie in 5 2 3 beschrieben und gefordert Dies sollte in n chster Zeit forciert werden den Anfang k nnen in bew hrter Form vgl Anfangsphase der Bibliotheks Entwicklung studentische Projekte als Lehrveranstaltungen bilden mit der Fortsetzung in Studien
250. zung dieses Anspruchs optional kombinierbarer Komponenten werden kleine Mikro Frameworks mit minimaler Kopplung entwickelt ein Beispiel ist die Anbindung des Fenstersystems siehe 4 3 3 E Es wird eine Trennung zwischen objektorientierten Mechanismen in Form genereller Design Pattern nach Ma gabe GoF95 und den damit realisierten WAM Metaphern durch eigene Mikro Frameworks f r die Design Pattern durchgef hrt E Alternative Application Frameworks als oberste Ebene der WAM Frameworks sowie ein Satz an Hilfswerkzeugen und Automaten runden den Ansatz ab Zusammenfassend lassen sich die C Bibliotheken am Arbeitsbereich Softwaretechnik als Sammlung von Frameworks auffassen die im Rahmen der Methode WAM entwickelt und aufeinander abgestimmt wurden um die Grundlage f r verschiedene Anwendungs dom nen zu legen Hinsichtlich dieser Dom ne gibt es als einzige Einschr nkung das Leitbild der Werkzeug und Material Metapher vom Arbeitsplatz f r qualifizierte mensch liche T tigkeit vorzugsweise in einer B roumgebung Benutzern soll ein leichter Einstieg in neue Frameworks gegeben werden Lose gekoppelte Komponenten der BibV30 sind ein Weg dies zu erreichen Gleichzeitig ergeben sich aus der Vielzahl an Komponenten jedoch neue Probleme die das n chste Kapitel thematisiert Weiter verfolgen will ich den Bezug zwischen der BibV30 und spezifischen Frameworks f r bestimmte Dom nen Nach meiner Vorstellung soll dieses WAM Framework als Basis v

Download Pdf Manuals

image

Related Search

Related Contents

english français deutschespa ñ olitaliano р у с с к и й центральная  User's Manual - Certon Audio  Fingerprint Safe /Lock module Smack Bio S50 User`s manual  岩通エコラベル ・ 環境データ - LEVANCIO-S レバンシオ-S  Epson EB-D6155W  Benutzerhandbuch  

Copyright © All rights reserved.
Failed to retrieve file