Home
Diplomarbeit
Contents
1. keiten werden erst im Zuge der Visualisierung gewonnen und sind daher nicht Bestandteil von Strukturmodellen Die Teile eines Diagramms haben die Aufgabe Eigenschaften der Gegebenheiten des Strukturmodells ber die genannten Assoziationen abzufragen und in die Notation umzusetzen innere a EE ES name String instanz Diagramm parent neu Parent teil name String Teil N Symbol position Vektor Diagramm instellungen farbe Farbe md TI entitaetenBeruehrbar boolean paketeBeruehrbar boolean init start Symbol end Symbol pfeileBeruehrbar boolean x add t Teil remove t Teil element e Element pfeile kanten Kante Re Ikante s 1 Symbol s2 Symbol Kante aktualisierePfeile Abbildung 12 4 Interne Repr sentation von Diagrammen Kursiv geschriebene Namen kennzeichnen in dieser und in den folgenden Abbildungen abstrakte Entitaten gegen ber konkreten Entit ten Unterstreichungen markieren statische Methoden oder Variablen SchnittstellenSymbol EntitaetsSymbol IK NKlassenSymbol RootSymbol KlassenSymbol K AKIlas senSymbol GruppenSymbol Zack FKlassenSymbol Zus ammenfas s ungs Symbol PaketquaderSymbol K PaketSymbol Abbildung 12 5 Spezialisierungen der Klasse Symbol UsePfeil ImportPfeil PPPfeil gt VerwendungsPfeil ZugehoerigkeitsPfeil K Abbildung 12 6 Spezialisierungen der Klasse Pfeil Teile besitzen einen eindeutigen
2. Um dabei auch einen Eindruck von der Anzahl der Beziehungen zu vermitteln erscheint es zun chst m glich die Dicke der Markierungen entsprechend der Beziehungsanzahl zu variieren Dagegen spricht aber das bereits im Kapitel 8 1 1 vorgestellte Problem der schlechten Erkennbarkeit von Gr enverh ltnissen durch die perspektivische Verzerrung Somit ist eine H ufigkeitsangabe ber die Dicke von Markierungen nicht praktikabel und die Anzeige von Verwendungen zwischen Entit ten verschiedener Pakete durch Pfeile wie sie 1m Abschnitt 8 4 gezeigt wurde bleibt weiter n tzlich 2 ad 300 aaml relt_ Lee ne 1500 xml ad1300 applicati Abbildung 8 24 Darstellung der Abh ngigkeiten zwischen Paketen 64 Ein 3D Klassenbrowser f r Java 8 Visualisierungstechniken fiir Java Software ee T ob Adjustable S Layoutldanag ament MediaTracker Toolkit B Pi lternSelectable e Ben age MenuManagement lt LE el 2 Sea Sa ee ile de ze ur OF fe S rer diih Abbildung 8 25 Beispiel f r Abh ngigkeiten bei Gruppen 8 6 Assoziierte Dokumente Ohne die Verwendung zusatzlicher Dokumente und somit allein anhand einer graphischen Darstellung kann die Arbeitsweise einer Software nicht verstanden werden Als Dokumentation bieten sich beispielsweise Entwurfsdokumente oder der Quelltext an Bei in Java implementierter Software kann die ber das zum Java Development Kit JD
3. 75 Ein 3D Klassenbrowser f r Java 10 Benutzung des Systems seine Benutzungsoberfl che minimiert werden kann so da mehr Platz fur den Darstellungsbereich verbleibt Da die Navigation ausschlie lich ber Mausbewegungen unter Zuhilfenahme der Tastatur erfolgen kann bietet sich diese Minimierung an Sie wird erzielt indem das in Abbildung 10 2 rot umkreiste Dreieck angeklickt wird Ansonsten wird m folgenden nicht weiter auf die Benutzung des VRML Browser eingegangen es sei auf dessen Online Hilfe verwiesen Erw hnt sei noch da sich die Aktivierung des sog Dauersuchmodus bew hrt hat n dem ein Anklicken graphischer Objekte mit der rechten Maustaste dazu f hrt da sich diesem Objekt in der Art der Rapid Zooming Technik schnell gen hert wird Nachfolgende Abschnitte beschreiben die Anwendung der Darstellung und orientieren sich dabei an den vorhandenen Men s Deren Aufgaben lauten im berblick Diagramm Handhabung von Diagrammen Selektion Ausw hlen von Symbolen Teile Arbeiten mit Diagrammteilen Struktur Strukturieren des Diagramms Info Anzeige von Informationen ber den J3Browser Das Men nfo wird im folgenden nicht weiter betrachtet Auf die Bedeutung der Symbole in der Symbolleiste wird am Ende im Abschnitt 10 7 eingegangen Zuvor werden verschiedene Fenster vorgestellt die dem Hauptfenster untergeordnet sind Diese sind 1 d R nicht modal so da Benutzer des Systems sie permanent ge ffnet haben
4. ES90 wieder so da sich Erkenntnisse die f r Java gewonnen wurden bertragen lassen d rften Gegen die Wahl von C sprach die dort vorliegende Vermischung von prozeduralen und objektorientierten Konzepten 2 2 Warum Visualisierung Die Motivation f r Visualisierungen ist ein Gedanke der sich gut durch die Redensart ein Bild sagt mehr als tausend Worte ausdr cken l t Komplexe Sachverhalte lassen sich nur schwer als ganzes berblicken Textuelle Beschreibungen geraten oft detailliert und Ein 3D Klassenbrowser f r Java 2 Motivation umfangreich so da hier der berblick schwer erreicht wird und schnell wieder verloren gehen kann Bilder k nnen von Menschen 1 d R leichter rezipiert werden als Text Ein Grund hierf r d rfte sein da das Lesen von Text ein sequentieller Vorgang ist Das Betrachten eines Bildes hingegen erfolgt normalerweise nicht sequentiell von oben nach unten und von links nach rechts Die stattfindende parallele Betrachtung unterschiedlicher Bildteile entspricht eher den kognitiven F higkeiten des Menschen Die Idee Sachverhalte graphisch aufzubereiten ist auch innerhalb der Informatik bereits seit langem etabliert Fr h wurden z B Programmablaufpl ne eingesetzt die den Ablauf von Programmen graphisch beschreiben Eng93 S 542f Im Laufe der Zeit sind f r unterschiedliche Problemstellungen innerhalb der Informatik eine Reihe von graphischen Sprachen entwickelt worden um die entsprechenden
5. nderung der Ansicht dient w re die visualisierte Software ver ndert worden Sollen solche Drehungen dann unterbunden werden Der Erfahrung des Autors nach ist dies nicht sinnvoll eine Drehung wird meist initiiert um ein bestimmtes Symbol in den Vordergrund zu bringen W rde die Drehung vorzeitig gestoppt um zu verhindern da Symbole ein bergeordnetes Symbol verlassen w re das ausgew hlte Symbol nicht vollst ndig n den Vordergrund gebracht und der Betrachter m te um Details des ausgew hlten Symbols zu sehen weitere Aktionen durchf hren z B den Betrachtungsstandort ndern Dies ist umst ndlich und schr nkt die N tzlichkeit von Cone Trees stark ein Manipulationen und die mit ihnen verbundene Semantik bed rfen demnach noch weiteren Untersuchungen Ein Ansatz hierzu liefern Alfert und Fronk vgl AFO0O die Manipula tionen in vier Ebenen einteilen Ebene 0 Hier finden sich Manipulationen die weder die Darstellung noch ihre Semantik ver ndern Beispiele hierf r sind die Ver nderung der Betrachterposition oder die des Betrach tungswinkels Ebene I Dies Ebene umfa t Manipulationen welche zwar die Darstellung ver ndern aber nicht ihre Semantik Ein Beispiel w re eine Ver nderung der Symbolfarbe wenn diese keine spezielle Bedeutung besitzt Ebene 2 Manipulationen die eine Auswirkung auf die Semantik haben bzw haben konnen wenn dies vom entsprechenden Visualisierungssystem so vorgesehen ist werden in
6. 100 Unterst tzung durch Markierungen in der Szene Gute Die Gr en nderung im Eigenschaftsfenster bezieht sich nur m sicnthar m verankert auf selektierte Symbole eventuell vorhandene innere Symbole bleiben unver ndert Demgegen ber kann mittels der Skalierung eine Ver nderung der Symbolausdehnung erreicht werden bei der das Verh ltnis zwischen der Gr e innerer und u erer Symbole konstant bleibt Setzen Zur cksetzen rs Unterzeichnet von Abbildung 10 8 Eigenschaftenfenster 10 5 5 Automatische Ausrichtung Die Gestaltung von Darstellungen mit Hilfe der im vorherigen Abschnitt beschriebenen einfachen Editierfunktionen erweist sich aufgrund der meist hohen Zahl von Symbolen schnell als m hselig Daher verf gt der J3Browser ber die Option Darstellungen 1m S nne eines Graph Drawing vgl Abschnitt 7 1 7 automatisch zu berechnen bspw um eine erste wenig aufwendige Verbesserung der initialen Darstellung vorzunehmen Die Editier funktionen brauchen dann nur noch f r gew nschte Verfeinerungen der Darstellung verwendet werden Wegen der vergleichsweise h ufigen Verwendung von Federmodellen kommt ein solches auch hier zum Einsatz Es kann mittels des in Abbildung 10 9 auf nachfolgender Seite gezeigten Fensters beeinflu t werden Die Anwendung des Federmodells ist immer begrenzt auf Symbole mit einem gemeinsamen u eren Symbol bzw auf die Symbole ohne u eres Symbol und von gleicher Schachtelungst
7. Ein 3D Klassenbrowser fiir Java 12 Realisierung des Systems Maschine eine Spezifikation der durchzuf hrenden Drehung Die Spezifikation wird in der Methode drehSpezifikation berechnet Da sich die Drehung von Cone Trees und Kegeln unterscheidet wird die Methode erst in den Subklassen implementiert Eine Drehspezifikation besteht aus einer Menge von DrehSpezElement Instanzen Jedes dieser Drehspezifikations elemente umfa t einen Verweis auf eine Hierarchie Instanz der Anordnung und eine Angabe die besagt um welchen Winkel die durch die Hierarchie Instanz modellierte Teilhierarchie um hre Wurzelsymbol gedreht werden soll instanz Drehmaschine drehe drehSpez DrehSpez Anordnung InteraktiveAnordnung drehSpezifikation fuelle DrehSpez aktive Spezifikation Selektions Listener erzeugt DrehSpezElement winkel float hierarchie Hierarchie Abbildung 12 11 Interaktive Drehung von Anordnungen erzeugt 2 Ein Pfad durch einen Cone Tree der bei der Wurzel beginnt und mit dem Symbol endet welches dem hauptselektierten Symbol direkt bergeordnet ist wird nachfolgend als Selektionspfad des Cone Trees bezeichnet Bei der Drehungsberechnung wird f r jedes Symbol auf einem solchen Pfad ein Drehspezifikationselement erzeugt d h genauer fur die Hierarchie Instanzen dieser Symbole Bei dem in Abbildung 12 12 gezeigten Beispiel w rde f r Hierarchie Instanze
8. n einem Kreis um den vom Symbol berechneten Ansatzpunkt angeordnet Von der Kante wird dabei f r jeden Pfeil em Winkel auf dem Kreisbogen bestimmt Gleichartige Pfeile verschiedener Richtung wird der gleiche Winkel zugeordnet so da sie zusammen gefa t werden wohingegen verschiedenartige Pfeile gleichm ig ber den Kreisbogen verteilt werden Bei zwei zusammengefa ten Pfeilen wird also nicht eine Verbindungslinien gemeinsam genutzt sondern es werden beide Linien bereinander dargestellt Diese L sung wurde wegen ihrer leichteren Umsetzbarkeit gew hlt Allerdings sind so in der dargestellten Szene ein wenig mehr graphische Objekte enthalten als unbedingt notwendig sind Um diesen Umstand zu begegnen m te f r jeden Pfeil die S chtbarkeit seiner Pfeilspitze getrennt von der der Verbindungslinie gewechselt werden k nnen Dies ist derzeit n cht der Fall 12 5 6 Selektion und Ber hrung Die Selektion von Symbolen wird ber die vier Entit ten Selektion Selektionserweiterung Selektion Listener und SelektionsHighlighter gehandhabt Die Singleton Klasse Selektion kap selt die Menge der ausgew hlten Symbole Die Funktionen zur Selektionserweiterung aus dem Abschnitt 10 4 werden durch Selektionserweiterung realisiert An Ver nderungen der Se lekt on interessierte Klassen m ssen die innere Schnittstelle Listener von Selektion imple mentieren Instanzen dieser Klassen k nnen sich bei der Selektion registrieren lassen und werden dann
9. 10 Konstante static Initialisierung der Klasse Klasseninitialisierer L caw ANELI LLSTELENG Crier Instanz su J 74 Instanzi n tialisierer Konstruktoren Methoden Klassen und Instanzinitialisierer sowie Variablen werden nachfol gend unter dem Begriff der Entit tselemente zusammengefa t 5 1 1 Erweiterungen zwischen Klassen Wie in vielen objektorientierten Programmiersprachen ist die Vererbung in Java ein wichtiges Sprachkonzept Vererbung wird in Java dadurch erreicht dal eine Klasse eine andere erwei tert Nachfolgendes Beispiel zeigt die Deklaration einer Klasse Auto welche die oben dekla r erte Klasse Fahrzeug erweitert Beispiel 5 3 Erweiterung von Klassen class Auto extends Fahrzeug Auto String initialerStandort super initialerStandort tanken int wankiuel lung void tanken tankfuellung 50 23 Ein 3D Klassenbrowser f r Java 5 Strukturmodelle f r Java Software Die Klasse die erweitert wird ist nach dem Schlusselwort extends angegeben Sie wird als die direkte Superklasse der deklarierten Klasse bezeichnet Umgekehrt ist die deklarierte Klasse eine direkte Subklasse der hinter extends angegebenen Klassen Eine direkte Subklasse erbt die Methoden und Variablen ihrer direkten Superklasse und kann zusatzlich weitere Entitatselemente deklarieren Jede Instanz einer erweiternden Klasse kann durch die geerbten Methoden und Variablen als Instanz der erweiterten Klasse angesehen w
10. Andersartige Diagrammteile wie z B Pfeile werden derzeit nicht gespeichert Die Reihen folge der Bl cke wird durch die Schachtelungshierarchie der Symbole bestimmt dem Block eines Symbols folgen die Bl cke f r dessen innere Symbole Dateiausri 12 1 Auschnitt aus einer Darstellungsdatei ART de j3browser darstellung diagramm KRaketSymbol Name java awt Farent Diagramm Farbe 0 0 0 56078434 0 5352941 Woesse 502 0 30 9 20 0 Position 391 44205 15 75 437 14288 20 ART de j3browser darstellung diagramm SchnittstellenSymbol Name java awt ItemSelectable Farent java awt Farbe 0 0 0 56078434 0 8352941 Groesse 1 0 1 0 1 0 Postevon 369067 526063946 S 2893014 itt Eine wichtige Symboleigenschaft ist die Art Hier wird die Klasse angegeben durch die das Symbol reprasentiert wird Diese Angabe wird dazu genutzt die entsprechende Klasse beim Laden zu instanziieren Dies geschieht in der statischen Methode factory von Symbol static Symbol factory String arty 4 Class symClass Class forName art Constructor constructor symClass getConstructor NOARG_FORMAL return Symbol constructor newInstance NOARG_AKTUELL W hrend der Laufzeit einer Java Software existiert f r jede Klasse eine Class Instanz die s e repr sentiert Diese Instanz wird f r die angegebene Art ermittelt Daraufhin wird n ihr ein 99 Ein 3D Klassenbrowser fiir Java 12 Realisierung des Systems parameterloser Konstr
11. FW94 Eine derartige Verwendung ist auch in Abbildung 8 7 erkennbar Im Zusammenhang mit der Simulation einer Beleuchtung k nnen sich bei Helligkeits verl ufen aber st rende optische Effekte ergeben In Einzelf llen kann s ch eine Verwirrung dar ber einstellen ob eine Aufhellung durch die Beleuchtung oder im Zuge der Richtungs angabe entstanden ist so da eine Verwendung von Pfeilspitzen weiter notwendig bleibt 50 Ein 3D Klassenbrowser f r Java 8 Visualisierungstechniken fur Java Software KR H Im ur ort a Benutzer benutzt Benutzte b Importeur importiert Import Asussere Subklasse1 Superklasse Innere Aeussere c Subklassel erweitert Superklasse d Innere ist inneres Element von Aeussere Subklasse2 Superschnittstelle e Subklasse2 implementiert Superschnittstelle Abbildung 8 7 Verwendete Arten von Pfeilen und ihre Bedeutung Viele bestehende Notationen nutzen die Abwandlung von Pfeilspitzen zur Vermittlung weiterer Informationen Dies ist auch hier m glich da die so zu vermittelnden Details nicht unbedingt aus gr erer Entfernung erkennbar sein m ssen Bei Benutzungs beziehungen kann beispielsweise angezeigt werden welche Formen der Benutzung vorliegt In Anlehnung an UML werden hier die Deklaration von Variablen und die Benutzung von Feldern gesondert hervorgehoben Abbildung 8 8 zeigt die beiden entsprech enden Erweiterungen Die
12. HRSG Scientific Visualization techniques and applications Springer Verlag Berlin u a 1992 121 Ein 3D Klassenbrowser f r Java BS84 CAW COSMO CT96 DH96 Eng93 Eng95 ES90 IFDF 90 FJ98 FPF88 FR91 Fur8 1 FW94 14 Literatur M H BROWN R SEDGEWICK A System for Algorithm Animation In Proceedings of ACM SIGGRAPH 84 S 177 186 ACM New York 1984 Homepage der Firma C4W COM Inc URL http www c4w com Cosmo Player 2 1 Copyright 2000 by Computer Associates International Inc Islandia USA URL www cai com cosmo I F CRUZ AND J P TWAROG 3d graph drawing with simulated annealing Graph Drawing Proc GD 95 LNCS 1027 162 165 Springer Verlag 1996 R DAVIDSON D HAREL Drawing Graphs Nicely Using Simulated Annealing In ACM Transactions on Graphics Vol 15 No 4 October 1996 Pages 301 331 HERMANN ENGESSER LTG HRSG Duden Informatik ein Sachlexikon f r Studium und Praxis 2 vollst berarb und erw Auflage Mannheim u a Dudenverlag 1993 H ENGLBERGER Computergest tzte Informationsvisualisierung Eine Klassifikation aktueller Techniken und ihre Einsatzpotentiale f r die Unternehmung Diplomarbeit TU M nchen Fakult t Informatik Nov 1995 M A ELLIS B STROUSTRUP The Annotated C Reference Manual Addison Wesley Reading Massachusetts U S A 1990 J FOLEY A DAM S FEINER J HUGHES Computer Grap
13. Sie erbt von DiagrammEA wo Gemeinsamkeiten verschiedener Eingabe Ausgabeoperationen wie z B das Anfordern von Berechtigungen mittels HTMLBrowser geb ndelt s nd Nachdem das zu visualisierende Strukturmodell ber den Serialisierungsmechanismus von Java eingelesen wurde erfolgt die weitere Initialisierung durch die Methode initialisierung von DiagrammEANew in f nf Schritten 1 F r die Elemente des Strukturmodells werden entsprechende Symbole erzeugt 2 Den Symbolen wird eine initiale Position zugewiesen 3 F r die Beziehungen des Strukturmodells werden Pfeile erzeugt 4 Pfeile f r Abh ngigkeiten werden erzeugt 5 Das Diagramm wird graphisch realisiert Erzeugen von Symbolen Um f r die n einem Strukturmodell enthaltenen Elemente Symbole zu erzeugen werden die Elemente rekursiv durchlaufen Dies geschieht ber die Klasse SymbolErzeuger die eine Subklasse von GegebenheitsErwVisitor ist Nur die Methode visitElement wurde redefiniert Bei einem Aufruf f r ein Element e geschieht folgendes Eine Subklasse von Symbol wird instanziiert Hierf r ist die Klasse Symbollnstanziierer verantwortlich Diese ist wie SymbolErzeuger eine Subklasse von GegebenheitsErw Visitor Hier sind alle visit Methoden der konkreten Subklassen von Element redefiniert d h f r Paket und Schnittstelle sowie f r N A und FKlasse Die Redefinition besteht dar n eine Instanz der entsprechenden Subklasse von Symbol zu erzeugen S e lautet also
14. ber den Symbolen entfernt oder verdreht st Der Versuch Text von den Symbolw nden abzulesen 66 Ein 3D Klassenbrowser f r Java 8 Visualisierungstechniken fur Java Software erfordert hingegen haufig ein muhsames Ausrichten der Betrachtungsposition und richtung 8 7 M gliche Probleme bei Manipulationen Bei der gleichzeitigen Verwendung mehrerer Visualisierungstechniken k nnen Probleme auftreten Eine m gliche Art von Problemen wurde bereits h ufiger erw hnt bei Schachtelungen wird durch die entstehenden abgegrenzten Bereiche die Verwendung z B von Cone Trees f r Symbole aus unterschiedlichen Bereichen verhindert Hier ist somit zu entscheiden welche der beiden Techniken m konkreten Fall s nnvoller ist Weitere Schwierigkeiten entstehen dann wenn dem Betrachter die M glichkeit gegeben wird die Darstellung zu manipulieren Ein Beispiel fur eine problematische Konstellation ist die Verwendung eines Cone Trees der Symbole z B f r Entit ten umfa t die alle in ein bergeordnetes Symbol z B das f r ein Paket geschachtelt sind vgl AF00 Wenn der Betrachter den Cone Tree nun dreht k nnen Symbole des Cone Trees das bergeordnete Symbol verlassen Wie ist dies nun zu interpretieren Geh ren die Entit ten jetzt nicht mehr zum Paket Hat sich also die auf die dargestellte Software gest tzte Semantik der Darstellung ver ndert Dies w re etwas seltsam durch eine Manipulation die eigentlich nur der
15. bspw f r NKlasse public Object visitNKlasse NKlasse g return new NKlassenSymbol Eine Instanz von Symbollnstanziierer wird der Methode accept des Elements e bergeben wodurch der Aufruf der korrespondierenden visit Methode erfolgt und die richtige Symbol Subklasse instanzuert wird Durch diese Nutzung des Visitor Entwurfmusters wird ein umstandliches if then else Konstrukt der Form if e instanceof NKlasse return new NKlassenSymbol else if e instanceof AKlasse return new AKlassenSymbol vermieden Das erzeugte Symbol wird mit e verbunden Hierf r ist die Methode element von Symbol zust ndig Die Eigenschaften von e werden erst sp ter w hrend der graphischen 97 Ein 3D Klassenbrowser fiir Java 12 Realisierung des Systems Realisierung s u abgefragt Fur das erzeugte Symbol wird ein u eres Symbol gesucht Dies geschieht in der Methode parentFuer von SymbolErzeuger W hrend der Initialisierung liefert diese Methode fur Pakete stets die RootSymbol Instanz als Parent Entit tssymbole werden f r gew hnlich in das Symbol des jeweiligen Pakets geschachtelt Eine Ausnahme bilden Symbole f r innere Entit ten deren Parent das Symbol der u eren Entit t st Das erzeugte Symbol wird dem gefundenen u eren Symbol zugewiesen Damit geh rt das neue Symbol zum Diagramm Zuweisung einer initialen Position Die Positionsangabe jedes Symbols wird mit einem zuf lligen Wert initialisiert Einzig
16. sondern eine L sung vorzuziehen ist die es erlaubt zwischen verschiedenen Techniken gem der Eigenschaften des zu zeigenden Sachverhaltes auszuw hlen So entstand eine Art Baukasten f r V sualisierungen der Anwendern eine Reihe von Techniken anbietet die sie flexibel einsetzen k nnen F r die Umsetzung des Konzepts wurde eine Kombination aus einem Java Applet und der Virtual Reality Modeling Language VRML ANM97 eingesetzt Danksagung An dieser Stelle m chte ich mich aufrichtig bei Dipl Inform Klaus Alfert und Dipl Inform Alexander Fronk f r ihre geduldige Betreuung bedanken Durch ihre freundliche Unter st tzung und ihre stets konstruktive Kritik haben sie mir viele Denkanregungen geliefert die mir bei der Arbeit sehr geholfen haben Claudia Hellinger danke ich f r die Durchsicht der Arbeit Frank Kloster f r das Bereitstellen seines Computers zu Testzwecken Daf r da sie mir mein Studium berhaupt erst erm glicht haben geb hrt meinen Eltern besonderer Dank der um so gr er ausfallen mu da sie mich w hrend der oft stressigen Zeit vor Pr fungen und Abgaben jederzeit moralisch unterst tzt haben Ganz wesentlich hat m r n dieser Zeit auch Petra Lamparsk geholfen F r ihre Liebe und Geduld m chte ich mich bei ihr herzlich bedanken Endlich k nnen wir sagen Geschafft iii Konzeption und Implementierung eines dreidimensionalen Klassenbrowser fur Java Inhaltsverzeichnis ABBIEDUN
17. tigt JBROWSER ZIP Notwendig f r die Installation des J3 Browsers VRML ZIP ZIP Date mit den Beispieldiagrammen als Exporte im VRML Format Nach der Installation des J3Browsers sind neben dem System selbst zusatzlich noch der Quelltext des Browsers sowie eine mit Javadoc generierte Dokumentation des Quelltexts verfugbar Auch vom J3Browser lesbare Dateien mit den Beispieldiagrammen sind dann erreichbar vgl nstall txt 127 Ein 3D Klassenbrowser f r Java B Das Werkzeug j3merge Anhang B Das Werkzeug 3merge J3Merge ist ein einfaches Werkzeug da dazu dient verschiedene Diagramme d h Darstel lungsdateien zusammenzuf hren Die kann z B daf r genutzt werden f r h ufig verwendete Bibliotheken wie die Java API einmal ein Diagramm zu erstellen und dies dann ggf mit weiteren Diagrammen zu verbinden Gesteuert wird das Werkzeug ber die Kommandozeile Der Aufruf besitzt folgende Syntax j3merge help oder J3merge out neuVis dar smneuSM sm altVisl dar altVisN dar Erste Variante f hrt lediglich zur Ausgabe eines Hilfetexts Die zweite Variante ist die Wesentliche Die Darstellungsdateien altVisl dar bis altVisN dar werden dabei zu einer neuen Darstellungsdatei neuVis dar zusammengef gt ber die Option sm kann ein neues Strukturmodell f r die Darstellungsdatei angegeben werden Wird dies unterlassen so wird das Strukturmodell aus altVis1 dar verwendet Das Zusammenf gen verschiedener Darstellun
18. um den Anfertigungsaufwand f r Visualisierungen zu verringern In diesem zweiten Teil der Arbeit wird schwerpunktm ig auf die ersten beiden Fragen ein gegangen Die Antwort auf die erste Frage findet sich in der Definition eines Metamodells f r sogenannte Strukturmodelle von Java Software Das Strukturmodell einer Software b ndelt Informationen ber hren Aufbau und dient somit als Grundlage f r hre Visualisierung Das Metamodell f r Strukturmodelle wird im nachfolgenden Kapitel 5 definiert Da es festlegt welche Informationen ber Java Software ber cksichtigt werden kann es als Anforderungs katalog an den Teil der Konzeption angesehen werden der sich mit dem Aufbau von Visuali s erungen besch ftigt Um zu entscheiden wie Visualisierungen aufgebaut sein sollen ist es naturgem hilfreich die einschl gige Literatur zu studieren Dabe stellt sich heraus da bereits eine Reihe von Visualisierungstechniken existieren Aus dieser Erkenntnis entstand die grunds tzliche Idee 18 Ein 3D Klassenbrowser f r Java 4 Ziel und Vorgehen zur Beantwortung der zweiten Frage Zur Visualisierung sollen nach Moglichkeit vorhandene Visualisierungstechniken genutzt werden Daher umfa t die Konzeption des Klassenbrowsers die Vorstellung derartiger Techniken vgl Kapitel 7 Weiterhin gilt es Techniken fur den Einsatz zur Darstellung von Softwarestrukturen auszuw hlen und ggf Rahmenbedingungen aufzuzeigen welche die Zweckm igke
19. 1993 G PARKER G FRANCK C WARE Visualization of Large Nested Graphs in 3D Navigation and Interaction In Journal of Visual Languages and Computing 9 S 299 317 1998 M PHILIPPSEN JavaGrande Hochleistungsrechnen mit Java In Informatik Spektrum 23 2 S 79 89 2000 Informationen tiber Rational Rose lassen sich unter der URL http www rational com products rose index jtmpl finden G G ROBERTSON S K CARD J D MACKINLAY Information Visualizing using 3D Interactive Animation Communications of the ACM Vol 36 No 4 1993 REKIMOTO J GREEN M The Information Cube Using Transparency in 3D Information Visualization In Proc of the Third Annual Workshop on Information Technologies amp Systems WITS 93 S 125 132 URL ftp ftp csl sony co jp CSL CSL Papers 95 SCSL TR 95 012 ps gz Dezember 1993 G G ROBERTSON J D MACKINLAY S K CARD Cone Trees Animated 3D Visualizations of Hierarchical Information In Proceedings of CHI 91 S 189 194 1991 K RYALL J MARKS S SHIEBER An Interactive Constraint Based System for Drawing Graphs In Proceedings of UIST 97 Banff Alberta Canada 1997 124 Ein 3D Klassenbrowser f r Java RS99 SM93 SMM00 Ten94 T0196 TS92 VFAQ98 WC98 WF96 WHF93 W n97 XM92 You96 Zie95 14 Literatur K REICHENBERGER R STEINMETZ Visualisierungen und ihre Rolle in Multimedia Anwendungen In Informati
20. 27 5 3 EE seen A EEN ee seen EE 28 5 4 PARETE UND he NEE EEN 28 5 5 PNTITATSSCHACH TEL UNG EE 30 5 6 AUSN HMEBEHANDEUNG EEN 30 5 7 BENUTZUNGEN ZWISCHEN ENTITATEN 31 5 8 ZUSAMMENFASSUNG EEN 33 6 VERWENDETE SOFTWAREBEISPIELE eseseesesscsesesecseseosesesecseseoscoccseseoseseseoscsesecseseoseseseoseseoscseseosesese 34 Iv Konzeption und Implementierung eines dreidimensionalen Klassenbrowser fur Java 7 EINIGE VISUALISIERUNGSTECHNIKEN UND SYSTEME 22000000000000s022200000000000000 0000000000000 00 36 vl VISUALISIERUNGSTECHNIK EE 36 7 1 1 Semiotische Prinzipien nach Franck und Ware 36 7 1 2 Einfache Darstellungsformen f r Hierarchien ccccccccccccccc cece cece cece ccc EEE 37 7 1 3 Cone Trees Und Cam Trees eegene 38 7 1 4 Tomati OT CUD CG an ee Aa 39 7 1 5 Mormation Landscapes ee 39 7 1 6 Dreidimensionaler hyperbolischer Roum 40 LAT POPL EE 41 7 1 8 FSW PVE VIEWS eegene 41 7 1 9 Weitere Techniken f r das Fokus und Kontextproblem o cccccccccccccccccc cece cece cece naan 42 2 VISUALISIERUNGSS NEE 43 2 1 Voue tnd EN 43 E Eelere eebe eet ee 44 2 3 Graph Visions D und Nested Visions D ominie 2 a a sk AEEA 45 8 VISUALISIERUNGSTECHNIKEN F R JAVA SOFTWARE ccsccccscsscsssssscsssssscsssssscssssssesesessesesenes 47 8 1 NOTA DEE 48 8 1 1 OVD OLC aa E ee essen 48 8 1 2 EEN 50 8 2 ENIITATEN UND IHRE E RE EE 32 8 2 1 EENEG J2 8 2 2 Erweiterungen ZWISChenSSchnilistelien au eu 33 8 2 3 Implementieren von Schnittstellen du
21. 7 4 Visualisierung eines Dateisystem durch den FSN Quelle Wiin97 Die Abbildung entstammt dem File System Navigator FSN von SGI TS92 Er visualisiert die Struktur von Dateisystemen unter UNIX Dabei bilden die Verzeichnisse Bl cke auf dem Boden der Darstellung Sie erinnern an Geb ude in einer Landschaft Die einzelnen Dateien der Verzeichnisse werden durch Quader auf den Bl cken dargestellt Die Quader unterscheiden sich in Volumen und Farbe um verschiedene Dateiattribute wie Gr e und Zugriffsrechte zu verdeutlichen Die Beziehung zwischen ber und untergeordneten Verzeichnissen wird durch Verbindungslinien dargestellt die entsprechend der Landschaftsmetapher an Stra en zwischen den Geb uden erinnern Der Benutzer von FSN kann durch die Landschaft navigieren indem er z B virtuell ber sie hinweg fliegt Problematisch an Information Landscapes ist meiner Ansicht nach die geringe Ausnutzung des verf gbaren dreidimensionalen Raumes Der Himmel bleibt ungenutzt Insbesondere wird es bei der Darstellung nicht planarer Graphen berschneidungen wie im Zweidimensionalem geben wenn wie in der Abbildung Verbindungslinien nur auf der Bodenflache gezeichnet werden Eingesetzt werden Information Landscapes auch im Harmony Hyper G Browser And95 Hier findet sich auch eine Nutzung des Himmels zur Darstellung weiterer Beziehungen APW96 7 1 6 Dreidimensionaler hyperbolischer Raum Fur die Darstellung
22. 8 15 Darstellung mehrerer Hierarchien in Anlehnung an VRCS nnnnnnsnnnsssssssssssssssssssssssssssssssssssssssssss SC 8 16 Orthogonale Darstellung der Implementierung ccc ccceeeeeessssesssessesessesssseseeeesseeseseeeeeeeeesaas 56 8 17 Top Down Darstellung von Implementierungen zusammen mit Erweiterungen 56 8 18 Darstellung der Paketzugehorigkeit mit Hilfe von Schachtelung uuu000000eenneeeeennnn 57 8 19 Beziehungen zwischen Entit ten verschiedener Pakete 0000nn000nnnooooooesesssnssnssnssssssssssnsnsssssssssnsssn 59 8 20 Zusammenfassung zweier Pakete bei Unterscheidung ihrer Entit ten durch die Symbolfarbe 59 8 21 Darstellung viele Benutzungen anhand der Filter FEV Technik eeeeseeesseeoeeeeeeeessssssssssssssssrree 62 8 22 Darstellung viele Benutzungen durch Transparenz 62 8 23 EE 63 8 24 Darstellung der Abh ngigkeiten zwischen Paketen nn 64 8 25 Beispiel t r Abh ngigkeiten bei LR Ee 65 8 26 Beispiel einer durch Javadoc generierten HTML Seite cccceecsessessssesseesssesseeesssssssssssessessaaas 65 8 27 Darstellung von Dokumenten auf den Symbolseitenw nden nennen 66 8 28 Darstellung von Dokumenten vor einem semitransparenten Hintergrund cc0cceeessesseeeeeeeees 66 21 ne e E E 71 10 1 Das Konfigurationsfenster f r die Analyse 74 10 2 Das Haupifensterder D rsteluns nee een 75 E03 Menma DOTAN ee re ee 76 OAS E
23. 96 einen Verweis auf hre Pfeile enthalten 12 6 Paket darstellung diagramm anordnung 12 6 1 Modellierung von Anordnungen Dieses Paket realisiert die Visualisierungstechniken Baum Cone Tree und Kegel die unter dem Begriff der Anordnung zusammengefa t werden Entsprechend benannte Klassen sind f r die Realisierung der Visualisierungstechniken verantwortlich vgl Abbildung 12 9 Gruppens ymbol Symbol l A Anordnung KEES s KSE emmmer l i eg E E gruppenS ymbol generiereDeko wurzel ordneAn R La l A A subs parent KegelDeko DreieckDeko Baum InteraktiveAnordnung Abbildung 12 9 Modellierung von Anordnungen Paketfremde Entit ten in grau Hierarchie Builder O OE E e a build p BuildPara Hierarchie load block Block Hierarchie filter FilterSpezifikation nurSelektierte boolean fuerAnordnung Anordnung El benutzt save h Hierarchie BlockSchreiber bs erzeugt erzeugt l e wurze erzeugt oder speichert A subs parent Abbildung 12 10 Erzeugen und Laden von Hierarchien Anordnungen stellen aus Symbolen bestehende baumf rmige Hierarchien dar System benutzer spezifizieren eine darzustellende Hierarchie indem sie ein Wurzelsymbol selektieren und die Arten von Pfeilen ausw hlen die bei der Hierarchiebildung zu ber cksichtigen sind Aus diesen Angaben wird mit Hilfe der Klasse HierarchieBuilder vgl Abbildung 12 10 eine baumf rmige Objektstruktur gewonnen welche die darzu
24. Arbeit ist das kommerzielle System NestedVision3D NV3D bzw dessen m Forschungsumfeld entstandener Vorg nger GraphVision3D GV3D u a auch deshalb weil viele Ergebnisse der Arbeit der Entwickler publiziert sind WHF93 FW94 WF96 PFW98 FA AVG Werk gl whet e Fla Edi iem i 4 ippa d Ba PD Di ed ecgep amp DL IS v i d ax coe RELEASE he E Irpa Gooey Fl A E Ippa i clac EA E E ma nen 158 Dana a oee Oa IER are HE NEMUSEASFEK Abbildung 7 7 79 We von NV3D Ouelle NVISION NV3D wird zwar als allgemein f r die Visualisierung komplexer Graphen geeignet beschrieben der Schwerpunkt des Systems liegt aber bei der dreidimensionalen Visualisierung objektorientierter Software NV3D bietet zudem Ans tze das dynamische Verhalten von Programmen darzustellen auf die hier nicht weiter eingegangen wird Wie auch bei ArchView wird die Struktur der darzustellenden Software durch einen Graphen dargestellt Bei den Knoten kann es sich um Klassen oder andere Elemente des Programmes handeln Die Kanten werden aus Beziehungen zwischen diesen Elementen gebildet Eine Besonderheit bei GV3D und NV3D ist die Verwendung der Information Cubes Technik daher auch der Name Nested verschachteln Innerhalb der Knoten k nnen s ch selbst w ederum ganze Graphen befinden deren Knoten abermals Graphen enthalten usw Interessant ist dies vor allem zur Darstellung von Ganzes Teile Beziehungen z B k nnten umschlie ende Knoten Teilsysteme der S
25. Ber hrungen von Pfeilen erkannt werden sollen was zu mehr Speicherbedarf f hrt ob auf den Symbolw nden Dokumente angezeigt werden sollen nur m glich nach der im Anhang C beschrieben nderung der Implementierung oder ob der Ladevorgang beschleunigt werden soll kann bei sehr gro en Diagrammen zu Fehlern f hren Beim Speichern kann eine Beschr nkung auf sichtbare Symbole erfolgen 10 4 Ausw hlen von Symbolen Men Selektion Viele der Funktionen des J3Browsers beziehen sich auf zuvor vom Benutzer ausgew hlte Symbole Diese Selektion erfolgt in den meisten F llen durch Anklicken eines Symbols in der Darstellung mit der Maus Es werden zwei Selektionsmodi unterschieden Einfachselektion und Mehrfachselektion Bei akt vierter Einfachselektion ist immer genau ein Symbol selektiert das Anklicken eines neuen Symbols f hrt zur Deselektion des vorher ausgew hlten Symbols Im Modus Mehrfachselektion w rd zwischen einer Hauptselektion die aus einem Symbol besteht und einer Nebenselektion die aus mehreren Symbolen bestehen kann unterschieden Die Anwahl eines neuen Symbols f hrt jetzt dazu dal es zur Hauptselektion wird und das zuvor hauptselektierte Symbol fortan zur Nebenselektion z hlt Ein Anklicken eines zur Nebenselektion geh renden Symbols entfernt es aus dieser Haupt und Nebenselektion werden durch farbige Markierungen des Symbols angezeigt Bei aktivierter Einfachselektion gilt das allein selektierte Symbol als Hau
26. Definition eines Prototyps nicht auf Knoten au erhalb des Prototyps verwiesen werden kann Der Verweis kann allein durch die Belegung der im Kopf des Prototyps deklarierten Attribute erfolgen Insgesamt wurde daher von einer ausgiebigen gemeinsamen Verwendung von Knoten abgesehen wobei aber der DEF USE Mechanismus innerhalb von Prototypen nach Moglichkeit genutzt wird 12 9 Ubersicht tiber die Realisierung der Visualisierungstechniken Als Ausgangspunkt fur spatere Weiterentwicklungen des J3Browsers wird an dieser Stelle noch einmal zusammengetragen wo sich Realisierungen der im Kapitel 8 vorgestellten Visualisierungstechniken finden lassen Da sind zunachst die Klassen ConeTree Kegel und Baum zu nennen mit deren Hilfe die ver schiedenen Formen von Anordnungen umgesetzt werden Fur die sichtbare Drehung von Cone Trees und Kegeln ist die Klasse Drehmaschine verantwortlich Die Gruppierung der zu einer Anordnung gehorenden Symbole ist Aufgabe der Klasse AnordnungsgruppenSymbol wohingegen allgemeine Gruppen durch GruppenSymbol implementiert werden Die fur die Darstellung von Paketzugeh rigkeiten Pakethierarchien und Entitatsschach telungen einsetzbaren Information Cubes werden innerhalb der Klassen Teil und Symbol umgesetzt Symbole sind deswegen darauf vorbereitet innere Diagrammteile zugeordnet zu bekommen Um der u U schlechten Erkennbarkeit von Beziehungen zwischen Entitaten verschiedener Pakete entgegenzutreten wurden Paketzusam
27. Eine Variable die von einem Klassentyp ist kann uber eine Referenz auf eine Instanz der entsprechenden Klasse verwei sen Beispielsweise verweist standort aus obigem Beispiel w hrend der Laufzeit auf eine In stanz der Klasse String Referenzen sind mit Zeigern anderer Programmiersprachen ver gleichbar Die Unterscheidung zwischen Instanzen und Referenzen ist f r diese Arbeit nicht weiter relevant so da z B h ufig auch von einer Variable mit einer Instanz vom Typ Fahr zeug gesprochen wird Schnittstellentypen s nd den Klassentypen sehr hnlich Der Wertebereich eines Schnitt stellentyps wird durch die Referenzen auf alle existierenden Instanzen der Klassen gebildet welche die Schnittstelle implementieren Feldtypen werden ber den Typkonstruktor erzeugt Beispielsweise w rde String daten eine Variable daten deklarieren die ein Feld von Referenzen auf Instanzen vom Typ String aufnehmen kann Felder werden immer ber einen Basistyp gebildet im Beispiel String ber einen solchen Bas styp k nnen auch mehrdimensionale Felder gebildet werden Der Objekt begriff wird bei Java auf Felder ausgedehnt d h neben Instanzen von Klassen sind auch Fel der Objekte Es ist nicht zu erwarten da primitive Typen wesentliche Erkenntnisse uber die Struktur einer Software liefern Daher werden sie nicht in das Metamodell integriert Klassen und Schnitt stellentypen werden wie gezeigt durch Klasse und Schnittstelle modelliert Feldtype
28. Eintrag in einer durch EventQueue verwalteten Warteschlange vorgenommen Dies kann in so kurzer Zeit geschehen da weitere Ereignisse in der Zwischenzeit nicht zu erwarten sind Ein ebenfalls in EventQueue gekapselter Thread pr ft ob Eintr ge in der Warteschlange vorhanden sind und bearbeitet diese ggf wobei dann u U zeitintensive Reaktionen des J3Browsers ausgef hrt werden Die Stabilit t konnte so um einiges gesteigert 113 Ein 3D Klassenbrowser fiir Java 12 Realisierung des Systems werden 12 8 3 Performante Aktualisierung der Darstellung Eine Aktualisierung der Darstellung kann aus zwei Gr nden notwendig werden zum einen dadurch da der Betrachtungsstandort oder der Betrachtungswinkel ver ndert wird und zum anderen durch Manipulationen an der Szene selbst Bei nderungen am Betrachtungsstandort oder winkel mu die Bildschirmdarstellung so schnell aktualisiert werden da f r den Betrachter der Eindruck einer fl ssigen Bewegung entsteht Dies st weitgehend die Aufgabe des VRML Browsers der dazu auf ggf vorhandene spezielle Hardware zur ckgreift Bei sehr komplexen Szenen kann es aber notwendig sein hier unterst tzend zu wirken Bei J3Browser werden daher an vielen Stellen LOD Knoten eingesetzt um ein Zeichnen weit entfernte Objekte die vom Betrachter nicht mehr erkannt werden k nnen im Sinne einer Elision zu verhindern Beispielsweise werden so Schatten Beschriftungen und Eigenschaftsmarkierungen von w
29. Formen der Erweiterungen s nd ebenfalls an die UML angelehnt sie werden aber etwas vereinfacht In der UML wird eine Aggregation durch ein rautenformiges Symbol angezeigt welches mit dem f r die Verwendung von Variablen benutzten Quader vergleichbar ist Die Multiplizitatsangabe erfolgt fur eine Kardinalitat n durch einen Stern der hier durch eine Kugel angenahert wird Liegen beide Sonderformen der Benutzung vor so werden die entsprechenden Erweiterungen kombiniert a Variablenbenutzung S gt b Feldbenutzung Abbildung 8 8 Anzeige der Details einer Benutzung Der Zugriffsmodus wird mit Hilfe von F rbung der Pfeilspitze bzw deren Erweiterungen angezeigt Dabei wird die bereits in Tabelle 8 1 auf Seite 50 angegebenene Farbkodierung verwendet Die Farbe der Pfeilspitze wird durch den h chsten vorliegenden Zugriffsmodus bestimmt Abbildung 8 9 gibt ein Beispiel und zeigt auch die Zusammenfassung von Pfeilen bei symmetrischen Beziehungen die zur Reduktion der Gesamtzahl der ben tigten Pfeilen eingesetzt werden kann Zur Verdeutlichung ist neben der Abbildung ein entsprechender Quelltextausschnitt aufgef hrt class El Ed E2 private E2 alsVar public E2 alsFeld el av class E2 public El einfach Abbildung 8 9 Beispiel einer symmetrischen Benutzung Es kann vorkommen da zwischen zwei Elementen gleichzeitig mehr als eine Beziehung 51 Ein 3D Klassenbrowser f r Java 8 Visu
30. Fur81 nach Wun97 Sie lassen sich unterteilen in Filter FEV und Verzerrungs oder Distortions FEVs Verzerrungs FEVs simulieren die Optik von Fischaugen Objekte in der Mitte des Sichtfeldes dem Fokus werden vergr ert dargestellt w hrend Objekte am Rand stark verkleinert werden und dadurch mehr Kontext darstellbar wird Ein Beispiel f r eine Umsetzung ist das Hyperbolic Lens System LRP95 Filter FEVs hingegen var eren die Menge der dargestellten Objekte abh ngig von einem Brennpunkt d h eines selektierten Objektes F r alle andere Objekte wird ein Wert der Degree of Interest DOI bestimmt Der DOI eines Objektes ist dabei abh ngig von der globalen Relevanz des Objektes z B ist bei der Darstellung eines Baumes die Wurzel global relevanter als ein Blatt und dem Abstand des Objektes zum Brennpunkt gemessen z B anhand des Gewichtes verbindender Kanten Liegt der DOI eines Objektes nun unterhalb eines festgelegten Schwellenwertes so wird die Darstellung des Objektes unterdr ckt Filter FEV lassen sich gut mit anderen Visualisierungstechniken kombinieren da sie nicht eine bestimmte Anordnung der Darstellung erfordern 7 1 9 Weitere Techniken f r das Fokus und Kontextproblem In PFW98 werden weitere Techniken zur Behandlung des Fokus und Kontextproblems vorgestellt Die dort zu findenden Ausf hrungen sollen hier kurz zusammengefa t werden Rapid Zooming Technik Bei der Rapid Zooming Technik erfolgt eine benutzerge
31. Graphiksoftware vorausgesetzt ergibt sich mit der M glichkeit die Darstellung aus verschiedenen Blickwinkeln zu betrachten und sie gleichsam eines Werkst ckes in der Hand zu drehen und zu untersuchen schnell ein intensiverer Eindruck vom dargestellten Sachverhalt ein Umstand der in konstruktiven Ingenieurdisziplinen wie z B dem Maschinenbau 1m Rahmen des Computer Aided Designs CAD besonders genutzt wird vgl Abbildung 2 6 D Dir D sst e Bear dgtk gz e Le da MI bees b Di mc ee D au BA BA A See d EB Aa ege Ss FeY as A a ee A Pie eee Pass u 5 pall A amna ES d PATH Xel ock ED SNOT oe Abbildung 2 6 Bildschirmfenster der dreidimensionalen CAD Abbildung 2 7 Beispiel fur die Nutzung der Software 3D Shop Expert der Firma C4W COM C4W Perspektive Quelle You96 Bei der Visualisierung sehr komplexer Sachverhalte kann die bei dreidimensionaler Graphik m gliche perspektivische Verzerrung verwendet werden um das Problem der berfrachtung zu mildern Teile des Sachverhalts die man im Moment genauer betrachten m chte werden dann m Vordergrund dargestellt wodurch ggf auch Details sichtbar werden Es st f r den Betrachter aber auch wichtig die Einbettung dieser Details in den Gesamtzusammenhang weiter vor Augen zu haben Die Darstellung dieses Gesamtzusammenhanges kann im Hintergrund erfolgen so da dieser perspektivisch verzerrt und damit kleiner wird Durch dies
32. Grund daf r nennen Reichenberg und Steinmetz n der bereits erw hnten Arbeit RS99 Durch eine naturalistische Gestaltung kann d e Menge der unerw nscht mit transportierten Informationen steigen Beispielsweise k nnte das in Abbildung 3 2b gezeigte Symbol so fehl interpretiert werden da die Kirchen die es symbolisiert genau einen Turm haben und in dem gezeigten Baustil erbaut wurden Das abstraktere Symbol aus 3 2a kann nicht zu solchen Assoziationen f hren Weiterhin k nnen detaillierte Symbole insbesondere wenn s e n gro en Mengen verwendet 13 Ein 3D Klassenbrowser f r Java 3 Grundlagen werden dazu f hren da die Darstellung berfrachtet erscheint und ein Betrachter von den vielen Details erschlagen wird Somit k nnen zu komplexe Symbole der Verst ndlichkeit eher abtr glich sein Es gilt also ein Mittelweg zwischen Intuitivit t und Komplexit t zu finden A a b Einfaches Kirchensymbol Detailliertes Kirchensymbol Abbildung 3 2 Zwei verschieden detaillierte Symbole Der Entwurf dreidimensionaler Zeichen wird dadurch erschwert da sie von verschiedenen Betrachtungswinkeln ann hernd gleich verst ndlich sein m ssen PFW98 Weiterhin ist es im Hinblick auf die ver nderliche Betrachtungsposition notwendig die Zeichen so zu gestalten da sie auch noch bei einer gewissen Entfernung erkennbar bleiben 3 2 Weitere Begriffe In dieser Arbeit geht es um Visualisierungen welche die Struktu
33. Hier kann argumentiert werden daf benutzende Entit ten abstrakter ein Problem beschreiben w hrend benutzte Entitaten konkreter zu dessen L sung verwendet werden Analog zu Erweiterungshierarchien w rden Symbole f r benutzende also abstraktere Entit ten oberhalb von Symbolen f r konkreteren Entit ten plaz ert Dabei kommt es allerdings zu einer Ausrichtung von Pfeilen die der bisher vorherrschenden Pfeilrichtung 56 Ein 3D Klassenbrowser f r Java 8 Visualisierungstechniken fur Java Software von unten nach oben entgegen l uft Dies scheint aber akzeptabel da die unterschiedlich ausgerichteten Pfeile unterschiedliche Bedeutungen haben Die nach der Benutzungsbeziehung ermittelte vertikale Anordnung zwischen Entitaten kann mit der sich aus den Erweiterungen und Implementierungen ergebenden Anordnung in Konflikt stehen Gem einer schw cheren strukturellen Bedeutung der Benutzung die 1 d R vorausgesetzt werden kann sollte bei gleichzeitiger Anzeige normalerweise die aus der Erweiterung bzw Implementierung abgeleitete Anordnung den Ausschlag geben 8 3 Pakete 8 3 1 Paketzugehorigkeit Die Paketzugeh rigkeit von Entit ten bietet einen sinnvollen Ansatzpunkt zur Aufteilung der Darstellung in mehrere Bereiche die getrennt betrachtet werden k nnen und damit leichter verst ndlich sind Die Visualisierung der Paketzugeh rigkeit kann bei einer dreidimensiona len Darstellung in Anlehnung an die Information Cubes Techn
34. Instanzen assoziiert Die Farbe einer Dekoration ergibt sich aus der Tiefe des jeweiligen Symbols in der Hierarchie Die Farbvergabe wird durch die Singleton Klasse Anordnungsfarben realisiert Sie kann ber das Einstellungs fenster vom Benutzer ver ndert werden Wird eine Anordnung erzeugt so m ssen Symbole angeordnet und Dekorationen generiert werden Hierf r sind die abstrakten Methoden ordneAn und generiereDeko verantwortlich die durch die Subklassen implementiert werden Je nach Subklasse werden die Symbole in der Form eines Baum eines Cone Trees oder eines Kegels positioniert Dabei werden sie automatisch gruppiert Die so entstehenden Gruppen werden durch Anordnungsgruppen symbole symbolisiert Die entsprechende Klasse ist eine Spezialisierung der f r allgemeine Gruppen verwendeten Klasse GruppenSymbol aus dem Paket diagramm Das persistente Speichern einer Anordnung erfolgt zusammen mit der jeweiligen Hierarchie innerhalb einer Darstellungsdatei im Block des Anordnungsgruppensymbols F r das Speichern und Laden von Hierarchien ist die Klasse HierarchieEA zust ndig wobei beim Laden ein Abgleich mit nderungen im Strukturmodell notwendig werden kann Dieser ist in der derzeitigen Implementierung recht einfach gehalten Lediglich das Fehlen von Elementen in Strukturmodellen wird ber cksichtigt auf ein Hinzukommen neuer Elemente die in eine bestehende Anordnung passen w rden mu der Benutzer eigenst ndig durch einen erneuten Auf
35. Namen Dieser ist f r Teile die f r Gegebenheiten aus dem Strukturmodell stehen immer gleich dem Namen der entsprechenden Gegebenheit F r Symbole ohne Entsprechung im Strukturmodell wie z B f r Gruppensymbole wird der Name vom Benutzer festgelegt Bei Abhangigkeitspfeilen geschieht die Namensvergabe wie 96 Ein 3D Klassenbrowser fiir Java 12 Realisierung des Systems bei Beziehungen wobei das K rzel Abh verwendet wird Anhand des Namens kann vom Diagramm mittels der Methode teil das entsprechende Diagrammteil abgefragt werden Die Klasse Symbol bietet Methoden mit denen u a Position Gr e und Farbe von Symbolen ver ndert werden k nnen Die Position eines Symbols wird dabei relativ zum Mittelpunkt des umschlie enden Symbols gespeichert Dies hat den Vorteil da bei einer Positionsanderung eines umschlie enden Symbols bei der innere Symbole ja ebenfalls bewegt werden m ssen die Positionsangaben dieser inneren Symbole trotzdem unver ndert bleiben k nnen Alle Pfeile zwischen zwei Symbolen werden unabh ngig von ihrer Richtung zu einer Kante zusammengefa t Dieses Objekt ist f r die optische Trennung bzw Zusammenfassung der Pfeile verantwortlich vgl Abschnitt 12 5 5 Weiterhin erfolgt anhand der Kanten die auto matische Ausrichtung vgl Abschnitt 12 7 12 5 2 Initialisierung der internen Repr sentation Die Initialisierung eines Diagramms wird durch eine eigene Klasse gesteuert Diese hei t DiagrammEANew
36. Paket darstellung diagramm Dieses Paket bildet den Kern der Realisierung Es implementiert die zweite Stufe des im Kapitel 9 beschriebenen Dreistufenmodells zur Visualisierung die interne Repr sentation von Diagrammen Neben diesem statischen Aspekt umfa t es auch die Ver nderung der Repr sentation z B aufgrund vorhandener Visualisierungstechniken wie der tempor ren Einblendung Nachfolgend wird auf einige Aspekte dieses Paketes genauer eingegangen auf die interne Re prasentation Abschnitt 12 5 1 und deren Initialisierung 12 5 2 die Persistenz von Diagrammen und dem Abgleich mit veranderten Strukturmodellen 12 5 3 die Berechnung der Sichtbarkeit einzelner Diagrammteile 12 5 4 die optische Zusammenfassung und Tren nung von Pfeilen 12 5 5 die Handhabung der Selektion und der Ber hrung von Diagramm teilen 12 5 6 sowie der Umsetzung der Degree of Interest Darstellung 12 5 7 der Gruppierung 12 5 8 und der Manipulation von Diagrammen 12 5 9 12 5 1 Interne Reprasentation Die interne Repr sentation erfolgt 1m wesentlichen durch die Klasse Diagramm die das angezeigte Diagramm kapselt sowie durch eine Klassenhierarchie mit der Wurzel Teil mittels der verschiedene Bestandteile des Diagramms hier Symbole und Pfeile modelliert werden vgl Abbildung 12 4 auf folgender Seite Fur die verschiedenartig verwendeten Symbole und Pfeile werden weitere Spezialisierungen vorgenommen vgl Abbildungen 12 5 und 12
37. Probleme oder deren L sung darzustellen So entstand z B f r das Problem der Datenmodellierung die bekannten Entity Relationship Diagramme ER Diagramme Eng93 S 232ff Weit verbreitet sind auch Petrinetze Eng93 S 520ff oder Klassendiagramme f r objektorientierte Software n verschiedenen Notationen wie z B der Booch Notation Boo94 oder der Unified Modeling Language BRJ99 2 3 Probleme bei Visualisierungen Visualisierungen sind allerdings kein Allheilmittel Zu dieser Erkenntnis kommen z B Larkin und Simon in einem Artikel der in Anlehnung an die oben zitiere Redewendung mit Why a Diagram is Sometimes Worth Then Thousand Words berschrieben ist LS87 Die in der Abbildung 2 1 dargestellte Karikatur l t einige der Probleme erahnen die mit Visualisierungen verbunden sein k nnen Zu diesen z hlen Unklare Bedeutung der verwendeten Symbole Unstrukturiertheit der Darstellung berfrachtung der Darstellung mr MT tf cfs ME cna oe ae ee HERE CHE Ban EEE CAB Se celts SAS EE NR e KEEN V leonora mim ama ata ae een mm Cam Hm In l l z E EN a rad r Le m i Lorre RES TT AA Kaal Ta 0 i Lf l i MO coe es os A K LH i Gei Sch ex nn eg H Y os Ti Lh m a L U id A Ez Aa paa 1 l ja Be W ap 4 ET ET m eT ee ME nn nn ea a ain a e Ge Sa H Abbildung 2 1 Karikatur zur Visualisierung Quelle Ten94 nach Eng95 Eine Darstellung wird aus einzelnen Symbolen
38. Symbole 8 5 2 sinnvoll zu begrenzen Zudem wird mit sogenannten Abh ngigkeiten eine M glichkeit eingef hrt Softwarestrukturen auf einem hohen Abstraktionsniveau zu betrachten 8 5 3 Abschnitt 8 6 zeigt M glichkeiten zur Darstellung mit der visualisierten Software assoziierter Dokumente auf Im Abschnitt 8 7 wird auf Probleme eingegangen die auftreten k nnen wenn dem Betrachter M glichkeiten zur Darstellungsmanipulation gegeben werden Abschlie end erfolgt 1m Abschnitt 8 8 eine Zusammenfassung Zudem werden aus den vorherigen Betrachtungen resultierende Anforderungen an ein Visualisierungssystem genannt Es ist zu beachten da die statischen zweidimensionalen Abbilder der dreidimensionalen Szenen die in diesem Kapitel gezeigt werden jeweils nur einen relativ schlechten Eindruck von der Szene selbst geben k nnen Aus diesem Grund sind einige der hier gezeigten Abbildungen auf der beiliegenden CD ROM als dreidimensionale Szenen enthalten vgl Anhang A Dort finden sich auch umfangreichere Beispiele 8 1 Notation In diesem Abschnitt wird eine Notation f r die Darstellung von Elementen und Beziehungen vorgestellt einen berblick ber die Notation liefert auch Anhang D Wie bereits erw hnt f hrt die dreidimensionale Darstellung zu erh hten Anforderungen an die Gestaltung einer Notation da Symbole und Pfeile z B auch aus einer gr eren Entfernung der Betrachtungsposition noch erkennbar sein sollen Als Gestaltungshilf
39. Visualisierung strukturierter Informationen mit VRML Diplomarbeit Institut f r Computergrafik Fachbereichinformatik Universit t Rostock 1997 Y XIAO MILGRAM Visualization of Large Networks in 3 D Space Issues in Implementation and Experimental Evaluation Proceedings of the 1992 CAS conference S 247 258 1992 PETER YOUNG Three Dimensional Software Visualisation Technical Report 12 96 Department of Computer Science University of Durham UK URL http www dur ac uk des3py pages work Documents Nov 1996 ZIELONKA R GESCH FTSF HRER Visual Recall Hochentwickeltes Dokumenten Management und Informations Visualisierung in Netzwerk Umgebungen Xerox XSoft D sseldorf 1995 125 Ein 3D Klassenbrowser f r Java 14 Literatur ZK95 R ZAVODNIK H KOPP Graphische Datenverarbeitung Grundz ge und Anwendung Hanser Verlag Munchen Wien 1995 126 Ein 3D Klassenbrowser f r Java A Inhalt der beiliegenden CD ROM Anhang A Inhalt der beiliegenden CD ROM Die beiliegende CD ROM enthalt die folgenden Dateien Install txt Beschreibt die Installation des J3Browsers Compile txt Erkl rt das Kompilieren des J3 Browsers Diagramm txt Beschreibt die nach der Installation des J3Browsers verf gbaren Beispieldiagramme swingall jar Benotigter Teil der Swing GUI Bibliothek cc32e46 exe Installationsprogramm fur den Netscape Communicator Version 4 6 Der Communicator wird fur den J3Browser ben
40. Wie im Abschnitt 3 1 erw hnt ist die Expressivit t einer Visualisierung jedoch zu einem gewissen Teil subjektiv Ma nahmen welche die Expressivitat in vielen F llen beg nstigen sollten sich dennoch finden lassen b Es m ssen Mittel bereitgestellt werden die den Aufwand f r das Anfertigen von Visuali sierungen in einem vertretbaren Rahmen halten Welcher Aufwand noch vertretbar ist l t sich allerdings nicht allgemeing ltig fest legen Abh ngig von der Gr e der betrachteten Software und auch des Zwecks der Visu alisierung soll w hrend der Entwicklung einer Software mal eben der aktuelle Stand gezeigt werden oder dient die Visualisierung der Schulung von Kunden sind hier unter schiedliche Ma st be anzusetzen Ein zugiges Arbeiten sollte aber in allen F llen unter st tzt werden Beispielsweise st ein Vorgehen bei dem mittels eines herk mmlichen dreidimensionalen graphischen Zeichenprogramms eine Visualisierung ausschlie lich von Hand erstellt wird so da f r jede Klasse ein Symbol plaziert und f r jede Beziehung ein Pfeil gezeichnet werden m te aufgrund der zu erwartenden Vielzahl von Klassen und Beziehungen nicht praktikabel Das Konzept f r den Klassenbrowser besteht aus Antworten auf die folgenden drei Fragen 1 Welche Sprachkonzepte von Java sollen visualisiert werden 2 Wie sollen Softwarestrukturvisualisierungen aufgebaut sein 3 Wie ist die Benutzung des Klassenbrowser zu gestaltet
41. ZK95 oder FDF 90 Nachfolgend werden einige Aspekte aus diesem Zusammenhang eingef hrt soweit sie f r diese Arbeit relevant sind Graphische Objekte Dreidimensionale Graphiken sie werden auch als Szenen bezeichnet setzen sich aus vielen verschiedenartigen graphischen Objekten zusammen Um diese darzustellen werden sie meist in einzelne Dreiecke zerlegt die leichter von entsprechender Hard und Software zu verarbeiten sind Fur die Performanz der Darstellung ist es 14 Ein 3D Klassenbrowser f r Java 3 Grundlagen entscheidend die Anzahl der benutzten Dreiecke gering zu halten Rundungen oder auch detaillierte Objekte wie beispielsweise Texte lassen sich nur durch die Verwendung vieler Dreiecke annahern und beeinflussen somit die Performanz negativ Koordinatensystem In dieser Arbeit wird mit einem rechtshandigem Koordinatensystem gearbeitet vgl Abbildung 3 3 H ufig ist von Ebenen die Rede die mit zwei der insgesamt drei Koordinatenachsen betitelt werden z B der XY Ebene Diese bestehen aus allen Punkten des Raumes bei denen die Koordinate der nicht genannten Achse m Beispiel die Z Achse gleich null sind Virtuelle Kamera Als Betrachter einer dreidimensionalen Szene m chte man die Ansicht variieren d h z B die Szene aus verschiedenen Richtungen betrachten Software die diese M glichkeit bietet bedient sich h ufig der Metapher einer Abbildung 3 3 Verwendetes virtuellen Kamera Die Bildschirmd
42. a Konstruktoren Metho den und Variablen deklariert werden Nachfolgendes Beispiel 5 1 zeigt die Deklaration einer Klasse Fahrzeug zusammen mit der einer Klasse Test deren Methode eine Instanz von Fahrzeug erzeugt und eine Methode die ser Instanz aufruft Wie man am Beispiel sieht erinnert die Syntax von Java an C Beispiel 5 1 Klassendeklaration class Fahrzeug String standort Variable mit aktuellem Standort als Zeichenkette Pahrzeug String Initialestandasrt 4 Konstruktor standort InLtlialerstandort String fahren string ziel 4 Methode standort ziel return standort In der Java Sprachdefinition wird in diesem Zusammenhang von Fields Feldern gesprochen Da unter dem Begriff Feld in der Informatik h ufiger eine Aneinanderreihung gleichartiger Elemente verstanden wird vgl Eng93 S 248 wird in dieser Arbeit wie z B auch in K h96 von Variablen gesprochen Variablen die innerhalb eines Codeblock deklariert werden werden zur Unterscheidung immer als lokale Variablen bezeichnet 22 Ein 3D Klassenbrowser f r Java 5 Strukturmodelle f r Java Software class Test 4 static void ety f statische Methode Fahrzeug f new Fahrzeug Dortmund f Iahren Essen Instanzen der Klasse Fahrzeug besitzen die Variable standort vom Typ String und die Me thode fahren Neue Instanzen von Fahrzeug k nnen unter Verwendung eines Konstrukt
43. anhand der Farben f r Pfeilarten aus Abbildung D 5 die Arten der vorliegenden Beziehungen angeben Details von Erweiterungen Erweiterungen mit Redefinitionen k nnen durch eine doppelte Pfeilspitze kenntlich gemacht werden z Z nicht implementiert 132
44. auf die Implementierung der Opera tionen eingegangen wird vgl z B Eng93 S 173ff Schnittstellen bestehen daher aus De klarationen abstrakter Methoden Zus tzlich k nnen unver nderliche Variablen Konstanten definiert werden Da Schnittstellen und ihre Methoden immer abstrakt und ihre Variablen immer unveranderlich sind soll die Angabe der Schl sselw rter abstract final und static ge m Sprachdefinition unterlassen werden Methoden und Konstanten von Schnittstellen haben immer den Zugriffsmodus public so dal auch der Zugriffsmodifizierer entfallen kann Schnittstellen selbst k nnen aber verschiedene Zugriffsmodi haben Beispiel 5 7 Deklaration einer Schnittstelle mit Zugriffsmodus default interface Ausdruckbar int MAXIMALE SEITENZAHL 10 Konstante public void drucken abstrakte Methode public Es ist zu beachten dal in Schnittstellendeklarationen nicht alle Arten von Entitatselementen m glich sind Konstruktoren Klassen und Instanzinitialisierer sowie nicht statische Variab len sind nicht moglich In Strukturmodellen werden Schnittstellen ber Schnittstelle modelliert einer Spezialisierung von Entit t die ber keine zus tzlichen Attribute oder Assoziationen verf gt 5 2 1 Erweiterungen zwischen Schnittstellen Auch bei Schnittstellen kann eine Erweiterung stattfinden Wiederum wird diese durch das Schl sselwort extends angezeigt und es wird von direkten Super bzw Subschnittstellen ge s
45. bzw auf Wechsel des Betrachtungsstandorts Sensor Knoten besitzen sog Ereignisausg nge die mit vorgegebenen Ereigniseing ngen anderer Knoten verbunden werden k nnen Ereignisse die ein Knoten an einem Ausgang erzeugt werden an allen mit dem Ausgang verbundenen Eing nge weitergeleitet VRML bietet zudem die M glichkeit unter Verwendung bestehender Knotentypen eigene Typen abzuleiten d e dann als Prototypen bezeichnet werden Das nachfolgende Beispiel deklariert einen Knotentyp f r rote Zylinder mit w hlbarem Radius und wahlbarer Position deren Anklicken zu einem Ereignis f hrt VRML Beispiel 11 2 Spezifikation eines Prototyps WRML V2 0 utf8 FROTO RoterZylinder field SER LOdc f d exposedField SFVec3f position 000 event Out SEN eg angeklickt Transform children TouchSensor 1sActive IS angeklickt Shape geometry Cylinder 4 height 0 7 radius IS r appearance Appearance material Material diffuseColor 1 0 0 88 Ein 3D Klassenbrowser fiir Java 11 VRML als Basistechnologie translation IS Pos t on Zun chst werden in einem Kopfbereich Attribute sowie Ereignisausg nge eventOut deklariert Es wird zwischen unveranderlichen Attributen fields und Attributen die w hrend der Darstellung ver ndert werden k nnen exposedFields unterschieden Nach diesem Kopf folgt die Beschreibung des Aufbaus des neuen Knotentyps Dabei wird ber das S Konstrukt auf Bestandteile des Kopfes bezug genomme
46. da entsprechende Assoziationen bereits ber Entit t vorgesehen sind Mit Instanziierbarkeit und Zugriff werden zwei Aufz hlungstypen model l ert Entsprechend gilt da von den drei bzw vier Attributen stets genau eins mit true und alle anderen mit false belegt sind Warum Klasse abstrakt ist wird ersichtlich wenn 1m Ab schnitt 5 6 auf sogenannte Ausnahmen Exceptions eingegangen wird Instanziierbarkeit istA bstrakt boolean istKonkret boolean istFinal boolean istPublic boolean istProtected boolean istDefault boolean istPrivate boolean mitRedef boolean Abbildung 5 2 Modellierung von Klassen und Erweiterungen Bei Erweiterungen handelt es sich um eine Form der Verwendung Erweiterungen werden durch Erw modelliert wobei f r eine Instanz erw von Erw gilt erw von verweist auf die di 26 Ein 3D Klassenbrowser f r Java 5 Strukturmodelle fiir Java Software rekte Subklasse und erw nach auf die direkte Superklasse Dabe wird festgehalten ob Rede finitionen vorliegen Genauer gesagt wird auf die Modellierung der direkten Sub bzw Su perklasse verwiesen nicht auf die Klasse selbst Zur Vereinfachung wird dieser Umstand nachfolgend nicht mehr hervorgehoben 5 2 Schnittstellen Neben Klassen bietet Java auch sogenannte Schnittstellen Diese dienen der Spezifikation von abstrakten Datentypen Bei abstrakten Datentypen werden Wertemengen ausschlie lich durch die darauf zul ssigen Operationen beschrieben ohne da
47. des Gebietes Applied Ars Arts gezeigt Durch die Anordnung kann es auf dem ersten Blick so erscheinen als w re Furniture Design ein Oberbegriff von Interior Design Erst bei n herer Betrachtung wird deutlich da statt dessen Interior Design in Kombination mit Product Design zum Abbildung 3 1 Beispiel f r mangelnde Expressivit t Furniture Design f hrt abgewandelt nach RS99 Die Expressivitat einer Darstellung la t sich allerdings nicht objektiv quantifizieren und unterliegt letztlich auch dem Empfinden des jeweiligen Betrachters Textile Design Furniture Design Interior Design Building Design Architecture Urban Planing 3 1 1 Forschungsbereiche Obwohl wie erwahnt bereits seit langem Sachverhalte graphisch dargestellt werden bildete sich erst in letzter Zeit ein eigenes Forschungsgebiet Visualisierung heraus H ufig findet man eine Einteilung in drei Teilbereiche 12 Ein 3D Klassenbrowser f r Java 3 Grundlagen Softwarevisualisierung Software Visualization Price Baecker und Small definieren Softwarevisualisierung als the use of the crafts of typography graphic design animation and cinematography with modern human computer interaction technology to facilitate both the human understanding and effective use of computer software und liefern eine Taxonomie fur diese Bereich PBS93 Anfanglich wurde in diesem besonders nach Wegen zur Veranschaul
48. diese mental zu einem Gesamtbild zu verbinden Um den Betrachter von dieser Aufgabe zu entlasten bietet es sich an verschiedene Arten von Beziehungen ggf mittels verschiedener Visualisierungs techniken innerhalb eines Diagramms zur Ansicht zu bringen Dies ist der Ansatz dem im weiteren gefolgt wird Dabei wird im Grundsatz von den semiotischen Prinzipien der k rperf rmigen Darstellung von Elementen und der weitgehend pfeilformigen Darstellung von Beziehungen ausgegangen da sich so Diagramme ergeben die einem Betrachter auf Anhieb vertraut erscheinen Wie kann die geforderte Gleichzeitigkeit nun aussehen Bevor nachfolgend auf Details ein gegangen wird gibt Abbildung 8 1 ein Beispiel Simultan mit der Darstellung einer Klassen hierarchie durch einen Cone Tree m Vordergrund wird d e Paketzugeh rigkeit der einzelnen Klassen durch ein Schachtelung gem der Information Cubes Technik angezeigt Im Hintergrund sind weitere Pakete zu sehen so da auch Beziehungen zwischen den Paketen in das Diagramm aufgenommen werden k nnen Dabei wird eine Anordnung verwendet die an Information Landscapes erinnert so dal sich eine Landschaft von Paketen ergibt in der sich der Betrachter bewegen kann tadi 300 adml rel1_2 consistency aci 300 adml reld 2 me aa lt i Abbildung 8 1 Beispiel fur die Darstellung von Softwarestrukturen 47 Ein 3D Klassenbrowser f r Java 8 Visualisierungstechniken fur Java So
49. durch den Aufruf von Methoden der Schnittstelle ber Ver nderungen informiert Die Klasse SelektionsHighlighter st eine solche interessierte Klasse S e sorgt f r die optische Hervorhebung selektierter Symbole Auf hnliche Weise wie bei der Selektion wird bei Ber hrungen eines Symbols oder Pfeils verfahren Um diese zu handhaben existiert die Singleton Klasse BeruehrungsManager welche ebenfalls eine innere Schnittstelle Listener umfa t Durch das Implementieren dieser Schnittstelle sowie eine Registrierung bei der BeruehrungsManager Instanz kann eine Benachrichtigung ber Ber hrungen gefordert werden 12 5 7 DOIManager DokuManager und EinblendungsManager Die drei Singleton Klassen DokuManager DOIManager und EinblendungsManager sind genau wie SelektionsHighlighter an Ver nderungen der Selektion interessiert Mit hnen wird die Anzeige von Dokumentation die Degree of Interest Darstellung f r Pfeile und die 102 Ein 3D Klassenbrowser fiir Java 12 Realisierung des Systems temporare Einblendung von Symbolen umgesetzt Informationen ber die Arbeitsweisen der einzelnen Manager k nnen der Javadoc Dokumen tation zum J3Browser entnommen werden vgl Anhang A Als ein Beispiel soll hier auf den DOIManager eingegangen werden Anhand einer FilterSpezifikation Instanz wird festgelegt fur welche Arten von Pfeilen dieser aktiv werden soll Das Verandern dieser Instanz fuhrt genauso wie ein Wechsel der Hauptselektion zu einer Aktuali
50. einem bergeordneten Symbol ergibt Weiterhin besteht noch die M glichkeit die Auswahl anhand verbindender Pfeile zu erweitern wobei d e Pfeilart und r chtung angegeben werden kann Auch die transitive Fortf hrung dieser Erweiterung kann veranla t werden Schlie lich kann die Erweiterung in allen F llen auf sichtbare Symbole begrenzt werden 10 5 Arbeiten mit Diagrammteilen Men Teile 10 5 1 Darstellungsformen f r Elemente F r Symbole mit inneren Symbolen sind verschiedene Darstellungsformen vorgesehen die ber das Teilemen ausgew hlt werden k nnen vgl Abbildung 10 6 Diese sind einsehbar wodurch das Symbol semitransparent dargestellt wird und innere Symbole sichtbar werden und uneinsehbar Bei dieser Darstellungsform sind die W nde undurchsichtig Bei Symbolen f r Pakete und Paketzusammenfassungen besteht zus tzlich die M glichkeit nur die Unterseite des Symbol genannt Sockel anzuzeigen Unabh ngig von diesen Darstellungsformen kann zur Filtrierung die Isolierung von Symbolen veranla t werden Die aktuell vorliegende Isolierung eines Symbols wird auf Wunsch ber dessen Beschriftung angezeigt vgl Anhang D Neben der Isolation von Symbolen und damit der Reduktion angezeigter Pfeile kann die Komplexit t der Darstellung weiter reduziert werden indem Gruppen konifiziert werden was dazu f hrt da die gruppierten Symbole in einem Symbol zusammengefa t werden Auch dies wird ber das
51. geschehen So werden die bei der Paketzugeh rigkeit genannten Probleme der Schachtelung vermieden g2 a Normal b f r Hierarchien Eine Gruppierung von Paketen ist ebenfalls denkbar Bei den betrachteten Softwarebeispielen erschien es aber nicht notwendig Gruppen von Gruppen bilden zu k nnen Gegebenenfalls kann dies bei noch umfangreicherer Software aber sinnvoll sein wobei sich das Problem der Zugehorigkeitsdarstellung dann aber verst rken w rde 8 5 3 Abh ngigkeiten Im Abschnitt 8 4 wurde eine Abbildung gezeigt bei der anhand der Darstellung von Beziehungen zwischen den Entit ten verschiedener Pakete ein berblick ber die gesamte Software gewonnen werden konnte Ein vergleichbarer berblick kann dadurch entstehen da Abh ngigkeiten zwischen den Paketen angezeigt werden die aus den Beziehungen der Entit ten abgeleitet werden Die Darstellung von Abh ngigkeiten erlaubt d e Betrachtung einer Softwarestruktur auf einem hohen Abstraktionsniveau Zun chst soll m folgenden gekl rt werden wann von Abh ngigkeiten zu sprechen ist Dabe braucht man sich nicht auf Abh ngigkeiten zwischen Paketen beschr nken auch f r Entit ten Paketzusammenfassungen und Gruppen sind Abh ngigkeiten definierbar Obwohl 63 Ein 3D Klassenbrowser f r Java 8 Visualisierungstechniken fur Java Software weder Paketzusammenfassungen noch Gruppen zu Strukturmodellen gehoren es sich also in diesem Sinne nicht um Elemente von Java S
52. glich ist eine universell einsetzbare Technik zur Visualisierung von Softwarestrukturen zu benennen Die Eignung verschiedener Techniken ist teilweise stark von den Umst nden abh ngig sowie von dem was in der Visualisierung betont werden soll F r baumf rmige Erweiterungshierarchien gilt da gro e Hierarchien gut durch Cone Trees visualisiert werden k nnen w hrend dann wenn man die Zusammenh nge zwischen mehreren Hierarchien zeigen will B ume in hintereinander liegenden Ebenen oft geeigneter sind Der Einsatz von Kegeln ist dann n tzlich wenn zwischen den Entit ten einer Hierarchie gleichzeitig viele andersartige Beziehungen vorhanden sind oder es Entit ten au erhalb der Hierarchie gibt die zu vielen Entit ten der Hierarchie Beziehungen haben und somit gut in den Innenraum des Kegels plaziert werden k nnen Weiterhin ist die Verwendung der Information Cubes Technik f r Pakethierarchien aufgrund der Reduktion der Darstellungskomplexitat zweckm ig Sie bietet aber keinen sehr guten Gesamt berblick B ume Cone Trees usw sind hier besser geeignet F r die Paketzuge horigkeit von Entitaten ist die Schachtelung aber sinnvoll insbesondere da sie intuitiv zu verstehen ist und einen natiirlichen Ubergang von einer Gesamtsicht zu Detailsichten erlaubt Problematisch sind hier allerdings lange Pfeile zwischen den Symbolen fur Entitaten verschiedener Pakete sowie das Fehlen der M glichkeit Cone Trees usw paket bergreifend ein
53. hier eine Rotfarbung Das gezeigte DEF USE Konstrukt wird verwendet um mehrfach auf einen Knoten zu verweisen wodurch weitere Kanten entstehen Ob eine Kante durch ein solches Konstrukt oder durch die Schachtelung von Knotendefinitionen spezifiziert wurde ist f r die Darstellung der Szene nicht relevant Daher erfolgt im Szenengraph diesbez glich keine Unterscheidung Im Beispiel wird der Knoten f r den roten Zylinder durch ein DEF USE Konstrukt zweifach benutzt so da sich bspw eine nderung der Farbangabe auf beide angezeigte Zylinder auswirken w rde Neben den im Beispiel gezeigten Typen gibt es weitere Man kann z B Switch Knoten verwenden um aus mehreren untergeordneten Teilgraphen einen darzustellenden auszuw hlen W hrend bei Switch Knoten das Auswahlkriter um selbst bestimmt werden mu wird bei sog LOD Knoten f r Level of Detail ein anzuzeigender Teilgraph immer in Abh ngigkeit zur Entfernung vom Betrachtungsstandort ausgew hlt Hierdurch k nnen bei gr eren Entfernungen geometrisch einfachere Objekte dargestellt werden um so die Performanz der Darstellung zu erh hen Um auf Aktionen des Betrachters reagieren zu k nnen werden Sensor Knoten verwendet Diese senden Ereignisse an w hlbare Zielknoten Als ein Zielknoten k nnte z B ein Switch Knoten dienen der so bei Benutzeraktionen die Auswahl ver ndert Unter anderem gibt es die Knotentypen TouchSensor und ProximitySensor f r Reaktionen auf Mausereignisse
54. noch wenn Visualisierungen nicht durch einen Menschen entworfen werden sondern automatisch durch einer Computer berechnet werden sollen Gerade f r umfangreiche Sachverhalte uber die Daten ggf bereits n einer maschinell lesbaren Form vorliegen w nscht man sich eine derartige Berechnung da ein manuelles Vorgehen mit einem hohem Aufwand verbunden ist Insbesondere f r die Darstellung von Graphen existieren bereits seit l ngerem eine gro e Anzahl von Algorithmen vel BET 94 Diese liefern teilweise erstaunlich gute Resultate Als ein Beispiel zeigt Abbildung 2 4 eine mit Hilfe der Softwarebibliothek GLT 2 2 von der Tom Sawyer Software Inc erzeugte Darstellung eines Telekommunikationsnetzwerkes Tol96 Als Eingabe fur diese Art von Algorithmen dient h ufig eine einfache Beschreibung des darzustellenden Graphens anhand einer Menge von Knoten und einer Menge von Kanten zwischen diesen Knoten Diese einfache Datenstruktur erlaubt es 1 d R nicht alle Aspekte eines Sachverhalts zu beschreiben So kommt es da die Qualit t automatisch generierter Darstellungen h ufig nicht an sorgf ltig von Hand gestaltete Visualisierungen heranreichen kann da dem menschlichen Gestalter sein Hintergrundwissen ber den Sachverhalt zur Verf gung steht um diesen besser zu repr sentieren Abbildung 2 4 Automatisch erzeugte Darstellung eines Telekommunikationsnetzwerkes Tol96 Bei sehr komplexen Sachverhalten kann es zu wenig verst ndlichen Darstellu
55. ob vor der Fahrt getankt wird oder nicht 5 1 3 Abstrakte konkrete und finale Klassen In Java kann das Vorhandensein einer Methode in einer Klasse gefordert werden ohne da die Methode durch einen Codeblock implementiert wird Es wird dann von einer abstrakten Methode gesprochen Klassen die mindestens eine abstrakte Methode deklarieren werden als abstrakte Klassen bezeichnet Derartige Klassen k nnen nicht mstanzuert werden Abstrakte Methoden und Klassen werden durch das Schl sselwort abstract gekennzeichnet In eine Subklasse einer abstrakten Klasse m ssen die abstrakten Methoden unter Angabe eines Code block redefiniert werden ansonsten ist die Subklasse ebenfalls abstrakt Bei der Redefinition von abstrakten Methoden wird auch von deren Implementierung gesprochen Klassen die nicht abstrakt sind werden als konkrete Klassen bezeichnet Folgendes Beispiel zeigt die De klarationen der abstrakten Klasse Reservierung und deren konkreter Subklasse TagesReser vierung Beispiel 5 5 Abstrakte und konkrete Klassen abstract class Reservierung abstract void durchf hren Fahrzeug class TagesReservierung extends Reservierung void druchf hren Fahrzeug T Zus tzlich kann in Java verhindert werden da zu einer bestimmten Klasse Subklassen er zeugt werden Dies ist nur bei konkreten Klassen zul ssig Es geschieht ber die Angabe des Schl sselwortes final vor class so da in diesem Fall von finalen Klass
56. r Java 13 Bewertung und Ausblick der entwickelte J3Browser doch daf r einen guten Eindruck von der Leistungsf higkeit dreidimensionaler Visualisierungen zu bekommen Um einen direkten Vergleich zwischen zwei und dreidimensionalen Diagrammen zu erm glichen wurden von einigen der w hrend der Entwicklung erstellten Darstellungen auch zweidimensionale Versionen erstellt vgl Anhang A Auch hierf r konnte der J3Browser eingesetzt werden Beschr nkt man sich be der Navigation durch eine solche Szene bei direktem Blick zur Ebene auf ein Gleiten parallel der Ebene sowie auf ein gerades auf die Ebene zu bzw von dieser wegtreten kann der Bildlauf und das Zooming zweidimensionaler Systeme simuliert werden Allerdings besteht dann immer noch eine Nahtlosigkeit der Bewegung wie sie von g ngigen Systemen wie bspw Rational Rose RATIONAL h ufig nicht geboten wird Einen derartigen Vergleich in der Form einer empirischen Studie mit einer Gruppe von Probanden bspw Softwareentwicklern aus der Praxis durchzuf hren w rde eine sinnvolle Erganzung zur vorliegenden Arbeit darstellen Als Ansatz dazu konnte das Path Tracking Problem dienen vgl Kapitel 2 Die detaillierte Konzeption und Verwirklichung einer solchen Studie h tte aber den Rahmen dieser Arbeit gesprengt so da sich nachfolgende Betrachtungen auf eine Wiedergabe subjektiver Erfahrungen beschr nken mu Eine dieser Erfahrungen ist es da ein Einhalten obiger Navigat
57. rung genutzt werden kann um neben dem vergr ertem Paket 1m Vordergrund gleichzeitig eine Ubersicht tiber weitere Pakete zu zeigen Die W nde der verwendeten Paketsymbole erinnern an halb durchsichtige Spiegel Von au en kann ungehindert hineingeguckt werden die Wand wird maximal angedeutet bzw entf llt ganz Demgegenuber kann von innen nur eingeschrankt herausgesehen werden Dadurch treten bei der Betrachtung des Paketes au erhalb liegende graphische Objekte in den Hintergrund Durch eine leichte Durchsichtbarkeit bleibt die Einbettung des Paketes in den Gesamtzusammenhang aber sichtbar Geschachtelte Symbole k nnen flexibel angeordnet werden So bleibt die Verwendung spezieller Visualisierungstechniken z B zur Darstellung von Klassenhierarchien m glich Wie Abbildung 8 18 ebenfalls zeigt werden Paketsymbole in einer an die Information Land scapes erinnernden Form angeordnet so da sich eine Landschaft von Paketen ergibt in der sich der Betrachter bewegt Gegen ber dem urspr nglichen Konzept der Information Landscapes m ssen die Symbole aber nicht auf dem Boden der Darstellung fu en sondern k nnen verschiedene H hen besitzen Dadurch verliert das Bild zwar etwas von seiner Nat rlichkeit berschneidungen von Pfeilen k nnen aber besser vermieden werden Simulierte Schatten dienen dazu die H he zu verdeutlichen und den Tiefeneindruck zu verst rken 8 3 2 Pakethierarchie Pakethierarchien s nd n Java baumf rmig Im Al
58. stellt eine Methode createVRMLFromString zur Verf gung die als Parameter VRML Quelltext erwartet Aus diesem Quelltext wird ein Szenengraph erzeugt der uber weitere Methoden bspw in den aktuell dargestellten Szenengraph eingef gt werden kann Dieser Mechanismus wird f r den J3Browser genutzt wobei der dargestellte Szenengraph initial weitgehend leer ist Zu kl ren war wie der Quelltext aus der internen Repr sentation des Diagrammes abzuleiten st W hrend der Experimentierphase wurde jeder benutzte VRML Knotentyp durch eine Klasse gekapselt Es lag n der Verantwortung der Diagramm teile diese nach Bedarf zu nstanzueren und zu attr butieren So wurde ein Abbild des sp teren Szenengraph als Java Objektstruktur geschaffen Die Klassen f r Knotentypen verf gten ber Methoden zur Quelltexterzeugung ber einen Durchlauf durch die Objektstruktur wurde bei jedem Laden mit Hilfe dieser Methoden der Quelltext f r das Diagramm gewonnen Obige L sung hat s ch aber als n cht hinreichend performant erwiesen Beispielsweise dauerte das Laden eines Diagrammes der Java AWT API dessen VRML Quelltext mehrere Megabytes umfa te auf dem Entwicklungsrechner ber f nf Minuten Auch wenn der VRML Quelltext f r ein Diagramm nur einmal erzeugt und dann immer wieder beim Einladen des Diagramms verwendet wird sinkt die Dauer nicht sonderlich stark Der Grund daf r ist da ein Gro teil der Zeit daf r aufgebracht werden mu den sehr gro en Sz
59. top down Darstellungen fest Die Verteilung beeinflu t den Abstand zwischen unverbundenen Symbolen Um Symbol berschneidungen zu vermeiden kann ein Minimalabstand zwischen Symbolen angegeben werden bei dessen Unterschreitung eine besonders starke Feder f r die Trennung der Symbole sorgt Unter Allgemeine Federkonstanten wird u a die St rke von Federn f r die Verteilung und den Minimalabstand bestimmt H ufig kann die Berechnung von Federn f r den Minimalabstand unterbleiben da es auch ohne sie nicht zu berschneidungen kommt In diesem Fall sollte die entsprechende Federkonstante auf 0 gesetzt werden Weiterhin kann eine Feder dimensioniert werden die dazu dient auszurichtende Symbole n her an den Mittelpunkt des bergeordneten Symbols zu bringen wodurch kompaktere Darstellung entstehen Besonders wichtig f r die Darstellung ist der mittlere Bereich im Ausrichtungsfenster Durch die Variation der Federkonstanten f r Pfeile kann die Deutlichkeit der Darstellung unterschiedlicher Beziehungsarten ver ndert werden Beispielsweise f hren hohe Werte f r die Vererbungsbeziehung gegen ber geringen Werten f r die Benutzung dazu dah Vererbungshierarchien deutlicher hervortreten F r jede Art von Beziehung sind jeweils zwei Konstanten anzugeben Die erste Konstante Kn beschreibt die St rke der Federn die zwischen zwei Symbolen f r die gew nschte Kantenl nge sorgen sollen Mit Hilfe der Konstante Ke wird die Feder zur Einhaltung
60. um O alle Symbole f r Elemente im selben Paket alle Symbole f r Elemente in der selben Gruppe O alle Symbole im gleichen bergeordnetem Symbol alle durch Pfeile verbundene Symbole Isolierung j Gruppe ikonifizieren Aktive Pfeilarten v Erweiterung Eigenschaften _ Implementierung v in Pfeilrichtung Ausrichten C Import v in Gegenrichtung Drehen C Abh ngigkeit transitiv Skalieren _ Pakethierarchie Tmp Einblendung _ Entitatsschachtelung Filtern v Nur sichtbare Symbole Ausf hren gt Unterzeichnet yon Abbildung 10 5 Fenster zur Selektionserweiterung Abbildung 10 6 Teilemen Da das einzelne Anklicken der Symbole schnell recht m hsam werden kann bietet die Selektionserweiterung vgl Abbildung 10 5 die M glichkeit ausgehend von der Hauptselektion die Auswahl gem der Struktur der visualisierten Software zu erweitern Es k nnen alle Symbole ausgew hlt werden die ein Element m selben Paket symbolisieren ein Element in derselben Gruppe symbolisieren oder die sich im selben bergeordnetem Symbol befinden wie das hauptselektierte Symbol bzw das durch dieses symbolisierte Element Hier gilt da die Selektion gleichzeitig nur in einer Schachtelungstiefe erfolgt Bei der dritten Option wird zus tzlich die M glichkeit geboten die vorhandene Haupt und Nebenselektion zu deselektieren wodurch sich eine Invertierung des Auswahlzustands der Symbole in
61. verwendeten VRML Browsers am unteren Rand 3 Wwmser Dare Datei Beabeten Go Gehe Communicator Hite E CEET E 7 Comp Ochsen ck 1 0 an tellung hind X Disg armen Selukimm Teile Struktur Oo a I ser um Er Akt al 300 edmirelt_2 conautency Hb WM Ki EP Abbildung 10 2 Das Hauptfenster der Darstellung mit roter Hervorhebung der Minimierungsschaltflache f r den VRML Browser Die Statuszeile wird genutzt um den Namen von Symbolen einzublenden die mit dem Mauszeiger ber hrt werden Dies wird notwendig da zur Steigerung der Performanz und auch um eine Uberfrachtung der Darstellung zu vermeiden die Beschriftung entfernter Symbole abgeschaltet wird Diese ware aufgrund der perspektivischen Verkleinerung ohnehin oft nicht lesbar Ber hrt der Mauszeiger ein Symbol tritt die Statuszeile durch eine helle Farbe deutlich hervor Verl t er das Symbol wird die Farbe abgedunkelt bis das n chste Symbol ber hrt wird der Text bleibt aber unver ndert Dies f hrt dazu da der Name auch bei kleinen Symbolen die nur schwer mit dem Mauszeiger getroffen werden lesbar wird Auch beim Ber hren eines Pfeils wird die Statuszeile verwendet um eine Beschreibung des Pfeil anzuzeigen Durch das Diagramm m Darstellungsbereich kann mit der vom VRML Browser angebotenen Funktionalit t navigiert werden Dieser bietet dazu verschiedene Modi wie z B Gehen Rotieren Schwenken und so weiter Ein Vorteil des verwendeten Cosomo Browser ist es da
62. vgl Abbildung 7 1c 7 1 3 Cone Trees und Cam Trees Die namensgebenden Kegel Cones spielen eine wichtige Rollen bei der durch Robertson Mackinlay und Card eingef hrte Cone Tree Darstellung RMC91 RCM93 Diese dienen zur Darstellung baumf rmiger Hierarchien Die Wurzel eines jeden Teil baums der Hierarchie bildet die Spitze eines semitransparenten Kegels Die der Wurzel direkt untergeordneten Knoten werden auf einem Kreis plaziert der die Grundfl che des Kegels bilden Diese Konstruktion wird rekursiv fortgesetzt so da eine Struktur ent steht wie sie in Abbildung 7 2 gezeigt wird Abbildung 7 2 Cone Tree Quelle RMC91 Zeigt man die Hierarchie nicht vertikal wie in der Abbildung sondern hor zontal dann wird von Cam Trees gesprochen Robertson Mackinlay und Card treffen die Aussage da sich mit Hilfe von Cone Trees Strukturen visualisieren lassen die bis zu tausend Knoten umfassen RMC91 Ein wichtiges Hilfsmittel dabei ist die Animation der Darstellung die es dem Benutzer erlaubt einzelne Teilbaume eines Cone Tree zu drehen Dadurch kommen zuvor perspektivisch verkleinert Knoten aus dem Hintergrund in dem sie dargestellt wurden um einen Kontext zum aktuellen Vordergrunds zu liefern Wurde die Drehung ohne die Darstellung von Zwischenschritten alleine durch Umschalten 38 Ein 3D Klassenbrowser f r Java 7 Einige Visualisierungstechniken und systeme zwischen einer aktuellen und einer gew n
63. 1 S 65 99 1987 C MARRIN Proposal for a VRML 2 0 Informative Annex External Authoring Interface Reference Silicon Graphics URL http www vrml org WorkingGroups vrml eai ExternalInterface html 1997 123 Ein 3D Klassenbrowser f r Java 14 Literatur MM56 MRS95 NETSCAPE JBuilder NVISION Oes98 PBS93 PFW98 Phi00 RATIONAL RCM93 Rek93 RMC91 RMS97 MILLER G M RZ The Magical Number Seven Plus or Minus Two Some Limits on Our Capacity for Processing Information In The Psychological Review vol 63 2 S 86 1956 B MONIEN F RAMME H SALMEN A Parallel Simulated Annealing Algorithm for Generating 3D Layouts of Undirected Graphs Proc of Graph Drawing 1995 S 396 408 1995 Netscape Communicator 4 6 Copyright 1994 1999 Netscape Communications Corporation URL www netscape com JBuilder Standard Version 2 00 Copyright 1997 1998 Borland International Copyright 1999 2000 Inprise Corporation URL www borland com jbuilder Homepage der Firma NVision Software Systems Inc Fredericton NB Kanada URL http www nvss nb ca BERND OESTEREICH Objektorientierte Softwareentwicklung Analyse und Design mit der Unified Modeling Language 4 aktualisierte Auflage R Oldenbourg Verlag M nchen Wien 1998 B A PRICE R M BAECKER I S SMALL A Principled Taxonomy of Software Visualization In Journal of Visual Languages and Computing 4 3 S 211 266
64. 6 ebenda Um die Information Cubes Technik zu realisieren werden die Diagrammteile gema der Schachtelung hierarchisch gespeichert Jedes Symbol ist ber die Assoziation innere mit des sen inneren Teilen verkn pft und jedes Teil verf gt mit parent ber einen Verweis auf das als Parent bezeichnete umschlie ende Symbol Die Wurzel dieser Hierarchie bildet eine Instanz der Klasse RootSymbol die ein Symbol modelliert welches das gesamte Diagramm umfa t das Rootsymbol Alternativ k nnte man auch die Klasse Diagramm von Symbol erben lassen und das Diagramm so selbst als u erstes Symbol auffassen wodurch sich eine hnlichkeit zum Composite Entwurfsmuster ergeben w rde GHJ S 163ff Da aber die Interpretation als Symbol der Klasse Diagramm einiges an Komplexit t hinzuf gen w rde wurde RootSymbol zus tzlich eingef hrt Aus diesem Grund wurde auch die Verwaltung einer Reihe von Einstellungen die Diagramme betreffen wie z B der Ausf hrlichkeit der Beschriftung in eine eigene Klasse DiagrammEinstellungen ausgelagert Bis auf Gruppen und Zusammenfassungssymbole sowie dem Rootsymbol ist allen Symbolen das jeweils symbolisierte Element assoziiert Ein Zusammenfassungssymbol steht f r mehrere Elemente wohingegen Gruppensymbole im Strukturmodell keine Entsprechung haben Bei Pfeilen gilt da nur Abhangigkeitspfeile nicht mit einer Beziehung assoziiert sind Abh ngig 95 Ein 3D Klassenbrowser fiir Java 12 Realisierung des Systems
65. Bildschirmsaktualisierung l nger als AT her bildschirm Aktualisieren fortfuehren layoutListenerUpdatet gt until fortfuehren In einem vorbereitenden Schritt werden die anf nglichen Impulse p t 0 der Knoten initiali siert Daran schlie t sich die eigentliche Berechnung an Hier wird zun chst jeweils die Simu Unterstreichungen kennzeichnen hier dreidimensionale Vektoren bzw vektorwertige Funktionen 110 Ein 3D Klassenbrowser fiir Java 12 Realisierung des Systems lationszeit um einen konstanten Wert Ar erh ht Dann wird f r jeden Knoten n die Gesamt kraft aller mit ihm verbundenen Federn ermittelt Diese Federn werden durch AO bezeichnet Die Berechnung geschieht in Abh ngigkeit von der Simulationszeit durch die vektorwertige Funktion federkraft auf die weiter unten noch eingegangen wird Anhand der ermittelten Kr fte wird der auf jeden Knoten wirkende Impuls ermittelt und dann wenn die Position eines Knotens ver nderbar ist d h das entsprechende Symbol z B nicht verankert ist die Position aktualisiert Die Positionsaktualisierung ist beim J3Browser durch kontrolle einer Beaufsichtigung unter zogen Im Regelfall gilt kontrolle x d x d Wenn aber die so ermittelten Koordinaten Maximalwerte ber bzw Minimalwerte unterschreiten so da es z B zu einem Verlassen des bergeordneten Symbol kommen w rde kann eine Begrenzung auf eben diese Maximal oder Minimalwerte erfolgen Zus tzlich ist es m gl
66. Daher werden in den folgenden drei Abschnitten Ma nahmen erl utert wie die Anzahl der Pfeile und Symbole reduziert und wie eine abstraktere Sicht auf die Softwarestruktur pr sentiert werden kann 8 5 1 Reduktion von Pfeilen F r gew hnlich existieren beraus viele Beziehungen zwischen den Elementen einer Soft ware Insbesondere sind hier Benutzungen zu nennen die meist weit h ufiger als Erwei terungen oder Implementierungen auftreten Die gleichzeitige Darstellung aller Beziehungen f hrt durch berm ig viele Pfeile schnell zu einer berfrachtung der Darstellung Die ge meinsame Nutzung von Pfeilen f r symmetrische Beziehungen wirkt dem nicht gen gend entgegen so da weitere Mechanismen notwendig sind zumal ein manuelles Bestimmen der Sichtbarkeit jedes einzelnen Pfeils vielfach zu aufwendig w re Einen m glichen Ansatzpunkt zur Reduktion der angezeigten Benutzungen bieten die m Abschnitt 5 1 4 beschriebenen Zugriffsmodi f r Benutzungen und deren Rangordnung Hier durch wird es m glich da der Betrachter einen minimalen Zugriffsmodus f r dargestellte Benutzungen angeben kann Somit kann die Anzeige auf die f r das Gesamtverst ndnis wahr scheinlich relevanteren Beziehungen begrenzt werden 60 Ein 3D Klassenbrowser f r Java 8 Visualisierungstechniken fur Java Software Eine weitere Option zeigt das Programm NV3D auf vgl Abschnitt 7 2 3 Dort ist es m glich Knoten als tot zu markieren Deren Kanten werde
67. Der VON von Innen aus obigen Beispiel ist demnach de beispiele Au en Innen Innere Klassen k nnen wiederum innere Entit ten enthalten die dann ebenfalls innere Entitat der u ersten Klasse sind usw An Stellen wo dies notwendig ist wird m dieser Arbeit ana log zu direkten Subpakten und Subpaketen zwischen direkten inneren Entitaten und transiti ven inneren Entit ten unterschieden Die Schachtelung von Entitaten ber die Spezialisierung EE von Zugeh rigkeit modelliert vgl Abbildung 5 3 Dabei wird auf eine direkte innere Entitat uber die Assoziation von und auf die entsprechende direkte u ere Entitat ber die Assoziation nach verwiesen Anonyme Klassen werden nicht in Strukturmodelle aufgenommen da sie im Regelfall eine sehr geringe und nur lokale Relevanz haben 9 6 Ausnahmebehandlung F r Abweichungen vom normalem Programmablauf k nnen n Java sogenannte Ausnahmen Exceptions oder Fehler Errors verwendet werden Diese k nnen innerhalb von Methoden aufgeworfen und behandelt werden Bei Ausnahmen und Fehlern handelt es sich um Instan 30 Ein 3D Klassenbrowser f r Java 5 Strukturmodelle fiir Java Software zen bestimmter Klassen Klassen f r Ausnahmen m folgenden auch als Ausnahmeklassen bezeichnet erben f r gew hnlich von der Klasse Exception w hrend Klassen f r Fehler Feh lerklassen von der Klasse Error erben Wahrend Ausnahmeklassen fur Abweichungen ver wendet werden auf die ein Programm reagier
68. Diplomarbeit Konzeption und Implementierung eines dreidimensionalen Klassenbrowsers fur Java Frank Engelen Diplomarbeit am Lehrstuhl fur Softwaretechnologie Fachbereich Informatik Universitat Dortmund Gutachter Prof Dr E E Doberkat Dipl Inform K Alfert 1 September 2000 Konzeption und Implementierung eines dreidimensionalen Klassenbrowser fur Java Zusammenfassung In der Softwareentwicklung ist der Einsatz von Diagrammen schon lange ublich Die Kom plexitat moderner Softwaresysteme f hrt allerdings dazu da Diagramme die deren Struktur verdeutlichen sollen oft un bersichtlich erscheinen Dies gilt insbesondere bei einer auto matischer Generierung der Darstellung Verschiedene Studien haben gezeigt da sich durch dreidimensionale Graphiken umfangreiche Sachverhalte besser verdeutlichen lassen WF96 SM93 Ziel dieser Arbeit ist es deshalb ein Konzept f r eine dreidimensionale Visuali sierung von Softwarestrukturen aufzuzeigen und dieses prototypisch umzusetzen Dies erfolgt am Beispiel von Software die in der Programmiersprache Java implementiert ist Das entwickelte Konzept beruht insbesondere auf einer Kombination verschiedener zwei und dreidimensionaler Visualisierungstechniken wie z B der Cone Trees RMC91 oder Informa tion Cubes Rek93 Es zeigte sich da Sprachkonzepte von Java wie z B Klassifizierung oder Vererbung nicht starr auf bestimmte Darstellungstechniken abgebildet werden sollten
69. GSVERZEICHNSBS ee dE EE EES vii TABELLENVERZEIC HNI eer X ABKURZUNGSVERZEICHNIBS cccccccoscccossccossccossccossccossccesscccsscccssccessccessccesscccssccessecesscccesccesscccssscesscessccessccess xi Teil I Einf hrung 1 EINEELFTUNG 23222 anna ncusesuceussusseecus cube EEEN ERA 2 2 TT A PIC N EE 3 2 1 KE ER EE 3 22 WARUM V OALE RUNG er ee ee ee en ee EAE oe 3 2 3 PROBLEME BEL V ISU ALISIER UINGE N dee dE A 2 4 WARUM DREIDIMENSIONALE VISUALISIERUNG ccceceneneesenenenennnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnenennenn 7 3 GRUNDI AGEN 22 22 22 EE EEEO EA AA 12 3 1 DER VISUALISIERUNGSBEGRIFF UND SEIN UMEELD 12 3 1 1 EE 12 3 1 2 EE 13 3 2 WEINERF BEGRIFFE EE 14 3 3 DREIDIMENSIONALE COMPUTERGRAPHIK s seseseseseonsnsosesososoreretrerers tototo tr treser erer erers seses esesesenerenenensesesen 14 Teil I Konzeption 4 ZIELE UNDVORGEHEN eeleren 18 4 1 FEN ee IEEE A ee Pe re nee AE E 18 4 2 VORGE E ereechen 19 5 STRUKTURMODELLE FUR JAVA SOFTWARE ccccccosscssscsocsccossccessccessccessccessccessccesccesccesccessccees 21 5 1 TR e EES E a ee T ee 22 5 1 1 ErWe terungen zwischen Klassen ann aaa ee 23 SSES EE ee 24 5 1 3 Absirakte konkrere und finale Klassen ene ae 25 3 1 4 ZUSH SMO r aaa 25 5 1 5 Aus 1 Lg 00 a EE 26 5 1 6 Modellierung von Klassen und Ernwetiterunggen 26 3 2 KEE HOH ER EI CEET 27 Izd Erw eiter ngen zwischen Schnitistellena u an sah 27 22 Implementierung von Schnittstellen LE an
70. K geh rende Werkzeug Javadoc aus dem Quelltext gewonnene Dokumentation im HTML Format hinzugez hlt werden Abbildung 8 26 zeigt ein Beispiel einer durch Javadoc generierten HTML Seite Zur Anzeige solcher verschiedenartigen Dokumente gemmen Dasi erbeten Ansch Bee Cormuricator Hie existieren 1 d R bereits Werkzeuge Hat der Betrachter ss aa 240 o e qe e T af Lererechen E Aene 1000011 Droe open se Component hr op sl MER earan D ck in der dreidimensionalen Darstellung ein Element far is wen me sun Gravion wor inn identifiziert Uber das er ein Dokument einsehen mochte so mu er ein solches Werkzeug aktivieren Geht man von der Verwendung einer herk mmlichen fenster 1 orientierten Benutzungsoberfl che des Betriebssystems aus so wird damit ein Wechsel des aktuellen Bild u n a aa schirmfensters verbunden sein der da der auf dem summer n int diyi ate srta Bildschirm verf gbare Platz begrenzt ist h ufig zu einer ee l A vaso mehr oder weniger starken Uberdeckung der drei SS2 A a a m dimensionalen Darstellung f hren wird Ist diese Class java awt Component berdeckung zu umfangreich so wird der Betrachter Variable Index __ WEE beim Zur ckwechseln zur Darstellung eine gewisse Zeit SC on S Abbildung 8 26 Beispiel einer durch Javadoc ben tigen sich wieder in ihr zu orientieren Ahnlich generierten HTML Seite ergeht es ihm auch beim urspr nglichen Aktivieren des Wer
71. Klassenbrowser f r Java 10 Benutzung des Systems Dokumentation im Teilemen gew hlt wurde Sie wird mit den in Abbildung 10 10 gezeigten Schaltflachen der Symbolleiste gesteuert die es erlauben von links nach rechts in der Abbildung in der Dokumentation vor und zur ck zu bl ttern die Darstellung zu schlie en oder einige der eventuell in der Dokumentation vorhandenen HTML Steuerzeichen zu unterdr cken Innere schachteln Zusammenfassung erzeugen Zusammenfassung auftrennen Fre Gruppierung sten 1 Gruppen hervorheben Anordnung erzeugen gt Anordnung ndern Teilhierarchien vertauschen Interaktive Anordnungen Abbildung 10 10 Schaltfl chen zur Dokumentation Abbildung 10 11 Strukturmen vel Text Wurde die Darstellung geschlossen kann sie solange mittels Doppelklick auf ein Symbol neu ge ffnet werden bis im Teilemen Eigenschaften gew hlt wurde Danach f hrt jeder Doppelklick wieder zum ffnen des Eigenschaftenfensters 10 6 Strukturieren von Diagrammen Menu Struktur Das Strukturmen vgl Abbildung 10 11 bietet dem Benutzer M glichkeiten zur Strukturierung der Darstellung Es dient der Benutzung der Information Cubes Cone Tree Baum und Kegelvisualisierungstechnik Weiterhin werden Funktionen f r Paketzusammen fassungen und Gruppen angeboten 10 6 1 Information Cubes Die Information Cubes Technik wird ber den Befehl Innere schachteln gesteuert Ist ein Symbol se
72. Knoten d h hier Klassen geeignet sein sollen k nnte hr Einsatz zwar bei Hierarchien angebracht se n die selbst f r Cone Trees zu gro sind normalerweise d rfte eine Aufspaltung der Hierarchie in mehrere Teilhierarchien hier aber g nstiger sein 52 Ein 3D Klassenbrowser f r Java 8 Visualisierungstechniken f r Java Software Component Text omponent Container Abbildung 8 11 Darstellung einer Klassenhierarchie als Cone Tree Auch die herk mmliche Darstellung einer Vererbungshierarchie als Baum kann im dreidimensionalem Raum eingesetzt werden Gegenuber einer zweidimensionalen Darstellung ergibt sich der Vorteil da der jeweilige Baum aus verschiedenen Blickwinkeln betrachtet werden kann Hierbei wird besonders deutlich wie die perspektivische Verzerrung dazu f hrt da neben einigen fokussierten Klassen im Vordergrund viele weitere verkleinert im Hintergrund sichtbar sind und so der Kontext erkennbar bleibt vgl Abbildung 8 12 T ot iy i LR dr t a Ein SEN Fe A LL 8 ScrollPa Abbildung 8 12 Schr ger Blick auf eine Klassenhierarchie als Baum Durch den Wunsch mehrere Aspekte n einem Diagramm darzustellen also bspw mit den Erweiterungen auch Benutzungen zwischen Klassen zu zeigen kommt es dazu da die Pfeile f r Erweiterungen nicht die einzigen sind welche die Klassen in einem Cone Tree einem Information Cube oder einen Baum ber hren Insbesondere die Cone Tree Darstellung f
73. Knoten eines Graphen wurden dazu zuf llig in einer Darstellungsebene bzw in einem Darstellungsraum plaziert Weiterhin waren verschiedene Knoten ebenfalls zuf llig bestimmt paarweise miteinander verbunden Einer Reihe von Probanden wurde nun aufgetragen festzustellen ob zwischen zwei bestimmten Knoten eine Verbindung derart vorlag da vom ersten bestimmten Knoten eine Verbindung zu einem beliebigen Knoten und von diesem dann weiter zum zweiten vorgegebenen Knoten bestand Man spricht in diesem Zusammenhang vom Path Tracking Problem vgl auch Abbildung 2 11 a Gegeben ein zuf lliger Graph b Gefragt Gibt es im Graphen einen Pfad zwischen zwei bestimmten Knoten ber einen beliebigen Zwischenknoten Abbildung 2 11 Illustration des Path Tracking Problems Es wurde sowohl die Zeit die ein Proband zur L sung des Path Tracking Problems brauchte als auch die Anzahl falscher Antworten gemessen Dabei stellte sich dreierlei heraus Bei der zweidimensionalen Visualisierung ist die Fehlerrate bis zu dreimal h her als bei der dreidimensionalen Visualisierung Die Fehlerrate wird bei dreidimensionalen Visualisierungen ma geblich durch Ma nahmen zur Unterst tzung des Eindrucks von der Tiefe der Darstellung beeinflu t Die ben tigte Zeit ist nahezu unabh ngig von der eingesetzten Visualisierungsform 10 Ein 3D Klassenbrowser f r Java 2 Motivation Eine Ma nahme zur Unterst tzung des Tiefeneindrucks ist z B die
74. NTER W CRAWFORD Java Servlet Programming O Reilly amp Associates Inc Cambridge u a 1998 Homepage zur Java 3D API URL http developer java sun com developer earlyAccess java3 D download html Java Developement Kit 1 1 8 Copyright Sun Microsystems Inc URL http java sun com products Jdk 1 1 H KOIKE H C CHU How Does 3D Visualization Work in Software Engineering Empirical Study of a 3D Version Module Visualization System Proc of Int Conf on Softw Eng S 516 519 1998 H KOIKE The Role of Another Spatial Dimension in Software Visualization In Transactions on Information Systems 11 3 266 286 1993 RALF KUHNEL Die Java Fiebel Programmierung interaktiver Homepages fur das World Wide Web Addison Wesley Bonn u a 1996 H KOIKE H YOSHIHARA Fractal approaches for visualizing huge hierarchies In Proceedings of the 1993 IEEE Symposium on Visual Languages S 55 60 IEEE CS 1993 D LEA Concurrent Programming in Java TM Entwurfsprinzipien und Muster Addision Wesley Bonn u a 1997 H LEISERING Neues grosses Worterbuch Fremdworterbuch Sonderausgabe Compact Munchen 1999 J LAMPING R RAO P PRIOLLI A foucs and context technique based on hyperbolic geometrics for visualizing large hierarchie ACM CHI 95 Denver ACM Press Addison Wesley New York 401 408 1995 J H LARKIN HERBERT A SIMON Why a Diagram is Sometimes Worth Ten Thousand Words Cognitive Science Vol 1
75. Pfeilarten entschieden werden ob entsprechende Pfeile angezeigt werden sollen Wenn Pfeile f r Benutzungen dargestellt werden sollen kann zus tzlich ein minimaler Zugriffsmodus fest gelegt werden ab dem diese sichtbar sind hnliches gilt f r Entit tssymbole Nach Aktivierung der Karte DOI kann ein Degree of Interest Filter aktiviert werden wiederum getrennt f r lokale und globale Pfeile und nach Pfeilarten In der ver nderten rechten Spalte k nnen dazu Parameter spezifiziert werden Ver nderungen im Filterfenster f hren 1 d R zu einer sofortigen Aktualisierung der Darstellung einzig die beiden ver nderbaren Transparentwerte f r nahe und max mal entfernte Pfeile m ssen ber die Schaltfl che Setzen best tigt werden Zwischenwerte werden interpoliert 10 5 3 Tempor re Einblendung Im Kapitel 8 4 wurde das Problem besprochen da f r das Erkennen von Beziehungen zwischen Entit ten unterschiedlicher Pakete besteht Als eine M glichkeit zu dessen Linderung wurde das tempor re Heranbringen von Symbolen die mit einem ausgew hlten Symbol ber Pfeile verbunden sind an das ausgew hlte Symbol vorgeschlagen Beim J3Browser kann dieser Vorgang ber den entsprechenden Befehl des Teilemen s aktiviert werden Bei jeder nderung der Hauptselektion werden dann Symbole in die N he des hauptselektierten Symbols gebracht die durch Pfeile von einer Art mit diesem verbunden sind f r welche die Sichtbarkeit bei Symbollokalitat gefor
76. Teilemen gesteuert 78 Ein 3D Klassenbrowser f r Java 10 Benutzung des Systems 10 5 2 Filter Der Befehl Filter des Teilemen s ffnet das gleichnamige Fenster Dieses besitzt die zwei Registrierkarten Normal und DOI vgl Abbildung 10 7 Beide sind in drei Spalten eingeteilt wobei die linke und mittlere Spalte f r beide Karten ann hernd gleich sind Die rechte Spalte f r die Karte DOI zeigt Abbildung 10 7b M Filter JD x Symbollokale Pfeile Globale Pfeile Entitat sichtbar wenn Zugriffm minimal Allgemeines v Benutzung Minimal private v Benutzung private v v In Pfeilrichtung Z 3 j 5 Erweiterung _ Erweiterung A In Gegenrichtung v Implementierung _ Implementierung Max Entfernung y Import _ Import Abh ngigkeit C Abh ngigkeit 1 02 03 O4 Pakethierarchie _ Pakethierarchie Transparenzwerte _ Entitatsschachtelung _ Entitatsschachtelung Nah 0 0 Weit 0 85 Setzen Unterzeichnet von a aktivierte Karte Normal b Ver nderte rechte Spalte bei Karte DOI Abbildung 10 7 Filterfenster Es wird zwischen lokalen und globalen Pfeilen unterschieden Ein lokaler Pfeil liegt vor wenn beide durch den Pfeil verbundenen Symbole dasselbe bergeordnete Symbol besitzen bzw wenn beide kein bergeordnetes Symbol besitzen Nicht lokale Pfeile sind global Auf der Karte Normal kann getrennt f r lokale und globale Pfeile und nach
77. Verwendung sogenannter Eye Shutter Brillen Aufgrund der Wichtigkeit derartiger Ma nahmen die auch durch eine Studie von Sollenberger und Milgram SM93 bestatigt wird werden sie im Abschnitt 3 3 nochmals gesondert behandelt Die Vielzahl der hier aufgez hlte Argumente f r dreidimensionale Visualisierungen l t es lohnend erscheinen diese auch fur die Visualisierung von Softwarestrukturen anzuwenden Diese Arbeit soll mithelfen die Frage zu kl ren wie eine solche Anwendung zweckm ig gestaltet und umgesetzt werden kann 11 Ein 3D Klassenbrowser f r Java 3 Grundlagen 3 Grundlagen In diesem Kapitel wird zun chst der Visualisierungsbegriff und sein Umfeld beleuchtet Abschnitt 3 1 dann werden drei eigene Termini definiert 3 2 und schlie lich wird auf einige Grundlagen der dreidimensionalen Computergraphik eingegangen 3 3 3 1 Der Visualisierungsbegriff und sein Umfeld Die Begriffe Visualisierung und auch visualisieren wurden mit ihrem umgangs sprachlichen S nn bereits mehrfach verwendet In diesem Abschnitt soll deren Bedeutung etwas genauer gefa t werden Weiterhin werden Termini eingef hrt die h ufig in der einschl gigen Literatur verwendet werden Das Verb visualisieren kann mit f r das Auge gef llig gestalten bersetzt werden Le199 S 520 Bilder oder graphische Darstellungen die einen Gegenstand oder Sachverhalt erkl ren sollen werden nach Reichenberger und Steinmetz als Visu
78. Vorteil gegen ber NV3D gewertet werden Eine vergleichbare Interaktionsform steht dort nicht zur Verf gung Eine den Cone Trees entsprechende statische Anordnung von Symbolen kann zwar bei NV3D manuell erzeugt werden wenn auch ohne halbtransparente Kegel dies d rfte aber sehr m hsam sein Auch ArchView bietet keine Cone Trees und zudem keine Information Cubes Die F higkeit von ArchView mit Relationen zu rechnen d rfte aber eine sinnvolle Erg nzung des J3Browsers sein gerade auch um die hohe Anzahl von dargestellten Benutzungsbeziehungen sinnvoll zu verringern Die Integration der verschiedenen Visualisierungstechniken mit dem Federmodell ist beim derzeitigen System noch ausbauf hig So k nnte man sich vorstellen da auch die Positionierung eines Cone Trees in der Darstellung auf diesem Wege automatisiert wird Einige Ans tze hierfur finden sich in RMS97 Dort wird gezeigt wie mit Hilfe von Federn einfache Anordnungen von Symbolen durchgesetzt werden bspw ein Ausrichten in einer Ebene oder das gleichm ige Verteilen auf einer Strecke Es ware zu pr fen ob sich diese Ans tze auf komplexe Anordnungen bertragen lassen Auch in anderer Hinsicht gibt es noch einige Erweiterungsm glichkeiten beim J3Browser Neben weiteren Verbesserungen der Editierfunktionen z B w re eine Undo Funktion zweckdienlich k nnte an einigen Stellen durch Nutzung von An mation die Objektkonstanz verbessert werden Insbesondere w re dies b
79. Weiterhin mu die Verbindungslinie des Pfeils g ltig sein d h Start und Endsymbol d rfen sich nicht auf derselben Position befinden Zudem sind Pfeile unsichtbar die von u eren zu inneren oder von inneren zu u eren Symbolen verlaufen In der Methode startEndOk wird gepr ft ob sowohl Start als auch Endsymbol sichtbar sind und ob keine Isolierungen von Symbolen der Sichtbarkeit des Pfeils im Wege stehen Schlie lich pr ft inFiltermenge ob nicht ein gesetzter Filter die Darstellung des Pfeils verhindert Die Ausgestaltung des Filters wird durch eine mit dem Diagramm assoz erte Instanz der Klasse FilterSpezifikation bestimmt vgl Abbildung 12 7 Eine Filterspezifikation besitzt f r jede Pfeilart zwei boolsche Eintr ge die bestimmen ob lokale Pfeile d h Pfeile bei denen die verbundenen Symbole denselben Parent besitzen und oder globale Pfeile dieser Art angezeigt werden F r lokale und globale Benutzungspfeile werden zus tzlich minimale Zugriffsmodi festgelegt Gleiches gilt f r Entitatssymbole FilterSpezifikation use boolean impl boolean erw boolean filter import boolean pp boolean ee boolean abhaengig boolean Diagramm use Zugriff entitaetenZugriff Zugriff Abbildung 12 7 Klasse FilterSpezifikation Will man dem J3Browser weitere Visualisierungstechniken hinzuf gen welche die 101 Ein 3D Klassenbrowser fiir Java 12 Realisierung des Systems Sichtbarkeit von T
80. aftliche Visualisierung Scientific Visualization Hier steht die Visualisierung quantitativer Gr en wie sie z B bei der Auswertung physikalischer Experimente auftreten im Vordergrund Einen berblick ber diese Disziplin liefert z B Bro92 Da die rechnergest tzte Visualisierung das Problem der Kommunikation von Informationen vom Computer zum Menschen umfa t findet man Arbeiten zur Visualisierung zudem unter dem Stichwort Human Computer Interaction HCI 3 1 2 Semiotik Die Semiotik ist die Lehre von den sprachlichen Zeichen und ihrer Nachrichtenfunktion Le199 In Rahmen dieser Arbeit findet sie bei der Gestaltung der Form der verwendeten Symbole Zeichen Anwendung Wesentliche Qualitatsmerkmale f r die Verst ndlichkeit von Zeichen sind deren Unverwechselbarkeit Originalit t Eindeutigkeit und die Einfachheit ihrer graphischen Form RS99 W hrend es unmittelbar einsichtig ist warum Unverwechselbarkeit Originalit t und Eindeutigkeit zur Qualit t eines Zeichens beitragen bedarf der Punkt der Einfachheit weiterer Kl rung zumal einleitend die Aussicht ber dreidimensionaler Computergraphik komplexere und somit intuitivere Symbole verwenden zu k nnen als ein m glicher Vorteil genannt wurde Warum ist beispielsweise das h ufig in Landkarten verwendete und in Abbildung 3 2a auf nachfolgender Seite gezeigte Symbol f r Kirchen einem naturalistischerem und detail lierterem Symbol wie in Abbildung 3 2b vorzuziehen Ein
81. aket im Abschnitt 12 8 erl utert 98 Ein 3D Klassenbrowser fiir Java 12 Realisierung des Systems 12 5 3 Persistenz und Abgleich von Diagrammen Um Strukturmodelle zu speichern wird der Java Serialisierungsmechanismus genutzt der binare Dateien erzeugt Fur Darstellungsdateien wurde ein anderer Weg gewahlt Hier werden Textdateien verwendet Dies wurde am Anfang der Arbeit festgelegt da zun chst geplant war da Ver nderungen an Diagrammen alle n uber die Manipulation von Darstellungsdateien geschehen konnen Dieser batchorientierte Ansatz erwies sich aber schnell als unbrauchbar da wahrend einer Veranderung deren Auswirkungen nicht direkt sichtbar werden und so sehr viel Vorstellungskraft bei der Diagrammgestaltung notwendig ist Daher wurde eine graphische Benutzungsschnittstelle geschaffen Trotzdem blieb es bei Textdateien um einen Umstellungsaufwand zu vermeiden Eine manuelle Ver nderung der Darstellungsdateien ist aber nicht mehr empfehlenswert da diese mittlerweile einen recht komplexen Aufbau besitzen Darstellungsdateien s nd n Bl cke unterteilt Jeder Block besteht aus mehreren Zeilen und endet mit zwei Nummernkreuzen vgl Dateiausri 12 1 Jede Zeile enth lt die Festlegung einer Eigenschaft Im Paket util existieren Klassen wie Block BlockLeser und Block Schreiber d e eine Nutzung derartig aufgebauter Klassen erleichtern Be Darstellungsdateien beschreibt au er den ersten drei Bl cken jeder Block ein Symbol
82. alisierungen bezeichnet Werden relationale Daten ohne Bezug zu physikalischen Gegenstanden wie z B Hausern Autos etc visualisiert so wird von abstrakten Visualisierungen oder auch von Diagrammen gesprochen RS99 Da in dieser Arbeit nur die abstrakte Visualisierung behandelt wird werden zur Verein fachung die Begriffe Darstellung Visualisierung abstrakte Visualisierung und Diagramm synonym verwendet Es lassen sich auch Definitionen finden die starker auf eine Rechnerunterstutzung abzielen In den Frequently Asked Questions FAQ zur Internet Newsgroup comp graphics visu alization hei t es Visualization is the use of computer generated media based on data in the service of human insight learning oder hnlich Visualization The use of computer imagery to gain insign into complex phenomena VFAQ98 Bei der Visualisierung steht derselben FAQ nach der Zweck im Vordergrund nicht die sthetik der Darstellung The purpose of visualization is insight not virtual realities or pictures Der Visualisierung wird dabei das Ziel zugeschrieben vorgegebene Daten m glichst m helos wahrnehmbar verst ndlich und berschaubar darzustellen Eng95 S 15 Gen gt sie diesem Anspruch nicht wird sie als nicht expressiv bezeichnet Hierzu geben Reichenberger und Steinmetz in RS99 das a Beispiel einer Visualisierung die falsche Design Interpretationen beg nstigt In Abbildung 3 1 ca werden Teildisziplinen
83. alisierungstechniken fur Java Software besteht In diesen Fallen besteht die Aufgabe die verschiedenen Pfeile optisch voneinander zu trennen Dies erfolgt hier durch eine Variation der Ansatzpunkte der Pfeile an den Symbolen vel Abbildung 8 10 E3 EA Abbildung 8 10 Gleichzeitige Erweiterungen mit Redefinition und Benutzung von E4 durch E3 Abbildung 8 10 zeigt zudem wie durch eine doppelte Pfeilspitze Erweiterungen mit Redef in tionen hervorgehoben werden k nnen Dieses Detail der Notation wurde allerdings im Rahmen dieser Arbeit nicht implementiert so da in den nachfolgenden Abbildungen keine Hervorhebungen gezeigt werden 8 2 Entit ten und ihre Beziehungen 8 2 1 Erweiterungen zwischen Klassen Die Erweiterungen zwischen Klassen ist bei objektorientierten Programmen von besonderer Relevanz die sich auch darin zeigt da viele Methoden zum objektorientierten Softwareentwurf wie bspw der Booch Methode Bo095 den Entwickler dazu anhalten Vererbungshierarchien zwischen Klassen zu bilden Aus diesem Grund soll mit der Entwicklung einer Darstellungstechnik f r Klassenhierarchien begonnen werden In Java handelt es sich durch die fehlende Unterst tzung der Mehrfacherbung um baumformige Vererbungshierarchien Dadurch wird die Verwendung der im Kapitel 7 beschriebenen Techniken zur Darstellung baumf rmiger Hierarchien m glich Betrachtet man sich die Gegebenheiten genauer so stellt man fest da Java Software immer gena
84. ang des Quelltextes der Pei ausf hrbaren Klassen Entit ten Es hat sich aber w hrend dieser Arbeit gezeigt da bei dreidimensionalen Darstellungen die Gr e von graphischen Objekten kaum nutzbar ist um Informationen zu vermitteln vgl hierzu auch RS99 S 93 Dies gilt zumindest dann wenn keine spezielle Hardware f r die Unterst tzung des Tiefeneindrucks zur Verf gung steht da die Gr e von Objekten in solchen F llen st rker mit der perspektivischen Verzerrung in Verbindung gebracht wird Objekte erscheinen eher unterschiedlich tief n der Darstellung als unterschiedlich gro Simulierte Schatten k nnen bei wechselnden Betrachtungspositionen und Blickrichtungen nur unzureichende Abhilfe schaffen da sie leicht aus dem Blickfeld geraten 8 1 2 Pfeile Die Pfeile f r verschiedene Arten von Beziehungen werden durch ihre F rbung voneinander unterschieden vgl Abbildung 8 7 auf nachfolgender Seite Dies hat sich wegen einer relat v guten Unterscheidbarkeit als zweckm ig erwiesen Die Richtung von Pfeilen wird wie gew hnlich durch ihre Spitzen angegeben Bei einer dreidimensionalen Darstellung verst rkt s ch aber das Problem diese geeignet zu dimensionieren Zu gro e Spitzen k nnen st rend wirken w hrend bei kleiner Spitzen bereits aus relativ geringer Entfernung die Richtung nicht mehr leicht erkennbar st Franck und Ware schlagen deshalb eine Verwendung von Helligkeitsverlaufen zum kenntlich machen der Richtung vor
85. ann ber Anordnung ver ndern eine R ckf hrung in den Ursprungszustand erreicht werden Symbole innerhalb von Anordnungen werden allerdings verankert um eine Zerst rung der Anordnungen durch die automatische Ausrichtung auszuschlie en ber Interaktive Anordnungen k nnen Cone Trees und auch Kegel interaktiv gemacht werden Nur bei interaktiven Cone Trees f hrt eine Selektion eines Symbols ggf zur Drehung des Cone Trees auf den Betrachter zu Auch Kegel werden dann bei einem Selektionswechsel um ihre Wurzel gedreht so da am Ende das selektierte Symbol nach M glichkeit vor dem Betrachter steht Anordnungen gelten als Spezialformen von Gruppen Daher k nnen die Befehle Gruppierung aufheben und Gruppe ikonifizieren auch f r Anordnungen angewendet werden F r ikonifizierte Anordnungen wird immer das Kegelsymbol verwendet da sie stets eine baumf rmige Hierarchie beinhalten 10 7 Schnellzugriff auf Funktionen ber die Symbolleiste Die Symbolleiste bietet einen gegen ber dem Men beschleunigten Zugriff auf wichtige Funktionen des J3Browsers Zudem sind einige Funktionen nur ber die Symbolleiste 85 Ein 3D Klassenbrowser f r Java 10 Benutzung des Systems erreichbar So kann die Geschwindigkeit mit der sich der Betrachter durch die Szene bewegt variiert werden Zwar bietet der VRML Browser dazu schon eine M glichkeit beim Vorliegen von tief geschachtelten Symbolen reicht diese aber nicht aus Abbildung 10 13 zeigt die Bede
86. arstellung wird durch das Koordinatensystem Bild bestimmt das die Kamera von der Szene aufnimmt Die Darstellungsparameter der Kamera welche ihre Position im Raum und hren Blickwinkel umfassen k nnen vom Betrachter ver ndert werden F r diesen entsteht der Eindruck da er sich mit der virtuellen Kamera quasi selbst durch die Szene bewegt In diesem Sinne werden in dieser Arbeit Begriffe wie Betrachtungsposition und dergleichen verwendet ty Hilfen f r die Anwendungsentwicklung Das Erstellen von Software f r dreidimensionale Computergraphik ist vergleichsweise aufwendig Deshalb sind Hilfen entstanden die den Programmierer bei dieser Aufgabe unterst tzen Als Beispiele k nnen hier die Virtual Reality Modeling Language VRML und die Java 3D API dienen Bei VRML werden textuell vorliegende Dateien durch einen sog VRML Browser interpretiert und angezeigt vgl z B ANM97 Dieser Browser kann innerhalb der Anwendung als eine Komponente zur Darstellung dreidimensionaler Graphiken genutzt werden Die Java 3D API dagegen ist eine Erweiterung der Klassenbibliothek von Java die von Sun kostenlos im Internet zur Verf gung gestellt wird J3D Auf VRML wird da die Sprache f r diese Arbeit verwendet wurde im Rahmen des dritten Teils dieser Arbeit n her eingegangen Unterst tzung des Tiefeneindrucks Ein besonderer Vorteil dreidimensionaler Darstellungen ist es da bei ihnen die Tiefe des Darstellungsraumes genutzt werden
87. aufgebaut Wenn deren Bedeutung nicht 4 Ein 3D Klassenbrowser f r Java 2 Motivation festgelegt ist kann auch die Bedeutung der gesamten Darstellung nicht erschlossen werden Besonders problematisch wird dies wenn mangels einer Festlegung ein Symbol mit unterschiedlicher Semantik verwendet wird Zudem mu nach M glichkeit aus der Gestalt eines Symbols intuitiv auf dessen Sinn geschlossen werden k nnen damit ein immer wiederkehrendes Nachdenken und ggf ein Nachschlagen in Legenden vermieden wird Eine wahlfreie Anordnung von Symbolen in der Darstellung kann allerdings deren Aussagekraft trotz noch so intuitiver Symbole verderben Ein besonderes Problem bei der Darstellung von Graphen ist da es schnell zu berschneidungen von Kanten kommt Diese erschweren das Verst ndnis vgl Abbildung 2 2 Im Extremfall kann es dazu kommen da ein Betrachter nur noch ein Gewirr aus Linien und Symbolen zu erkennen vermag A B C DE A B C DE CE D BA A B C DE a mit berschneidungen b ohne berschneidungen Abbildung 2 2 Zweimal derselbe Sachverhalt einmal dargestellt mit berschneidungen und einmal ohne Das Vermeiden von berschneidungen f hrt allein aber nicht immer zu einer guten Aufteilung der Darstellung Vielmehr sollten sich Eigenschaften der Struktur des Sachverhalts auch in der Struktur seiner Darstellung wiederfinden Wird ein Graph beispielsweise zur Beschreibung eines zeitlichen Ablauf von Aktivit ten eingesetzt so bi
88. barkeit von Diagrammteilen sowie ber die Klasse FilterSpezifikation realisiert Die Notation schlieBlich wird im Zusammenspiel mehrerer Klassen umgesetzt Dies sind zum einen die Klasse Teil und ihre Subklassen sowie ebenso die Klasse GraObj und deren Subklassen Letztere st tzen sich auf die in der Datei protos wrl definierten Prototypen um das Aussehen der Diagrammteile Uber VRML sichtbar zu machen Erste sind weitgehend unabh ngig von der verwendeten Anzeigetechnologie und bilden die Eigenschaften der Gegebenheiten eines Strukturmodells in die Notation ab 115 Teil IV Abschlu Ein 3D Klassenbrowser f r Java 13 Bewertung und Ausblick 13 Bewertung und Ausblick Ziel dieser Arbeit war es eine Konzept fur eine dreidimensionale Visualisierung der Strukturen innerhalb von Java Software aufzuzeigen und dieses Konzept prototypisch umzu setzen Das entwickelte Konzept beruht insbesondere auf einer flexiblen Kombination verschiedener zwei und dreidimensionaler Visualisierungstechniken wie z B der Cone Trees oder Information Cubes Es zeigte s ch da Sprachkonzepte von Java w e z B Klassen oder Ver erbung n cht starr auf bestimmte Darstellungstechniken abgebildet werden sollten sondern eine L sung vorzuziehen ist die es dem Anwender erlaubt Techniken gem der Eigenschaften des zu zeigenden Sachverhaltes auszuw hlen Als Bas s der Konzeptumsetzung durch den entwickelten J3Browser wurde VRML zusammen mit den Exter
89. bau der Hierarchie reagieren vgl Option Neue Hierarchie des im Abschnitt 10 6 4 beschriebenen Fensters f r Anordnungen Bei fehlenden Elementen gilt ist ein Element dessen Symbol Bestandteil einer Hierarchie ist nicht mehr im Strukturmodell enthalten so wird die entsprechende Hierarchie Instanz aus der Hierarchierepr sentation der Anordnung entfernt Dies bedingt dal auch untergeordnete Symbole aus der Anordnung gel st werden m ssen da es in Anordnungen keine L cken geben kann 12 6 2 Interaktive Drehung Bei Cone Trees und Kegeln gilt es deren interaktive Drehung zu verwirklichen Diese sorgt daf r da ein hauptselektiertes Symbol m glichst direkt vor der Betrachterposition erscheint Hierf r ist die gemeinsame Superklasse nteraktiveAnordnung verantwortlich die dazu die Schnittstelle SelektionsListener mplementiert vgl Abbildung 12 11 auf nachfolgender Seite Dies zeigt wie das Observer Muster genutzt werden kann um mit der Selektion wei tere Aktionen z B zus tzliche Visualisierungstechniken zu verkn pfen ohne da die Klasse Selektion dazu ge ndert werden mu Die Klasse nteraktiveAnordnung st tzt sich bei der Rotation von Anordnungen auf die Klas se Drehmaschine Wahrend erste zusammen mit ihren Subklassen fur die Berechnung der Drehung verantwortlich ist ist es die Aufgabe der Drehmaschine die Drehung sichtbar durchzuf hren Beim Starten der Drehmaschine bergibt eine interaktive Anordnung der 107
90. ben f r Dekorationen von Anordnungen zu vergeben Mit der Schaltfl che Tmp Einblendung gelangt man zum Fenster f r die automatische Ausrichtung vgl Abschnitt 10 5 5 in dem Einstellungen f r die tempor re Einblendung vorgenommen werden k nnen N Einstellungen Del Allgemein Ebenenfarben rv Beschriftung bei Entitaten anzeigen v Beschriftung bei Pakete und Paketzusammenfassungen anzeigen v Isolierung ber Beschriftung anzeigen _ Verankerung ber Beschriftung anzeigen 7 Existenz von inneren Symbolen ber Beschriftung anzeigen v Pfeile w hrend interaktiver Drehung aktualisieren Transparenz f r innere W nde 0 4 und f r u ere W nde 1 0 Faktor f r Geschwindigkeits nderungen 10 0 Drehungsgeschwindigkeit rad sec 0 9 Aktualisierung alle 125 ms Tmp Einblendung Zur cksetzen 5 Unterzeichnet von Abbildung 10 14 Fenster f r globale Einstellungen 86 Ein 3D Klassenbrowser fiir Java 11 VRML als Basistechnologie 11 VRML als Basistechnologie Nachdem im vorherigen Kapitel die Benutzung des J3Browsers beschrieben wurde wird in diesem und im nachsten Kapitel auf dessen Implementierung eingegangen Dieses Kapitel gibt dazu einen kurzen berblick ber die Virtual Reality Modeling Language VRML die als Basistechnologie zur Darstellung dreidimensionaler Graphiken verwendet wird Fur weitere Informationen kann beispielsweise auf ANM97 zur ckgegriffen we
91. besonders umfangreicher Graphen wurden Darstellungstechniken fur den dreidimensionalen Raum entwickelt die auf einer Projektion auf Kugeln beruhen und eine gute Ber cksichtigung des Kontext und Fokus Problems sowie eine einfache Navigation bieten Es werden im Wesentlichen drei Modelle unterschieden W n97 vgl auch Abbildung 7 5 auf nachfolgender Seite Beim Projective oder Klein Modell wird der darzustellende Graph auf die Innenflache einer Kugel projiziert vgl Abbildung 7 5a Das Conformal oder Poinncare Modell ist eine Erweiterung des Projective Modells Knoten werden als Teile der Kugeloberfl che dargestellt die durch bogenf rmige Kanten verbunden werden vgl Abbildung 7 5b Inside Modell Der Betrachtungsstandort liegt innerhalb der Kugel die nicht verlassen werden kann vgl Abbildung 7 5c Die Navigation kann in den drei F llen bspw dadurch erfolgen da die Kugel durch den Betrachter gedreht werden kann und so verschiedene Knoten in den Vordergrund gelangen 40 Ein 3D Klassenbrowser f r Java 7 Einige Visualisierungstechniken und systeme a Projective Modell b Conformal Modell c Inside Modell Abbildung 7 5 Modelle im dreidimensionaler hyperbolischer Raum Quelle W n97 7 1 7 Graph Drawing Graph Drawing ist ein Forschungsbereich der sich mit der Entwicklung und Bewertung von Algorithmen beschaftigt die ansprechende und verstandliche Darstellungen von Graphen erzeugen sollen Einen berbli
92. ch Eine Ausnahme bilden innere Entitaten auf die im Abschnitt 5 5 eingegangen wird Nachfolgendes Beispiel deklariert eine uneingeschrankt sichtbare Klasse Autovermietung mit der nach au en sichtbaren Methode reservieren und der nur intern sichtbaren Methode datenSpeichern Beispiel 5 6 Sichtbarkeit public class Autovermietung public void reservieren private void datenSpeichern 5 1 5 Ausf hrbarkeit Java Software kann in mehreren Formen auftreten Bekannte Formen sind eigenst ndige Ap plikationen sowie Applets Weitere Formen sind z B Doclets f r das zum Java Development Kit geh rende Dokumentierungswerkzeug Javadoc JDK oder Servlets HC98 Als Ein stiegspunkt in eine Applikationen dient eine Klasse die eine Methode main deklariert Die Ausf hrung eines Applets beginnt bei einer Klasse die Subklasse der Klasse Applet ist Klas sen die derartig zum Start einer Software genutzt werden k nnen werden nachfolgend als ausf hrbar bezeichnet 5 1 6 Modellierung von Klassen und Erweiterungen Abbildung 5 2 zeigt wie Klassen und Erweiterungen in das Metamodell integriert werden Jede Klasse verf gt ber einen Namen Da alle Elemente benannt sind besitzt bereits Element ein Attribut name F r jede Klasse wird weiterhin ihre Ausf hrbarkeit ihre Instanziierbarkeit und ihr Zugriffsmodus gespeichert Die letzten beiden Eigenschaften sind wie noch gezeigt wird auch f r Schnittstellen relevant so
93. chien gut auf die ebenenf rmige oder die top down Darstellung zur ckgegriffen werden 8 2 3 Implementieren von Schnittstellen durch Klassen Die Verwendung einer dreidimensionalen Darstellung bieten den Vorzug da mehrere Hierarchien hintereinander dargestellt werden k nnen Benutzt man hintereinander liegende Fl chen abwechselnd f r Klassen und Schnittstellen entsteht eine Darstellung der Implementierungsbeziehung die den Abbildungen hnelt wie sie durch das im Abschnitt 7 2 1 beschriebene Versionsmanagementwerkzeug VRCS vgl Abbildung 8 15 erzeugt werden Auf diese Art k nnen Zusammenh nge zwischen den Hierarchien gut verdeutlicht werden wobei man sich nicht auf Implementierungen beschr nken mu sondern auch z B Benutzungen einzeichnen kann MenuContainer SystemCulor Ke gt Abbildung 8 15 Darstellung mehrerer Hierarchien in Anlehnung an VRCS Erweiterungshierarchien zwischen Schnittstellen und Klassen kann man da sie sich auf verschiedene Arten von Entit ten beziehen als orthogonal bezeichnen im Sinne von unabh ngig voneinander Im dreidimensionalen Raum ergibt sich die M glichkeit dies durch eine geometrische Orthogonalit t zu versinnbildlichen vgl Abbildung 8 16 auf nach folgender Seite Aufgrund der verh ltnism ig kleinen zu erwartenden Schnittstellenhierarchien und auch der weit geringeren Zahl von zu erwartenden Schnittstellen gegen ber Klas
94. ck ber diesen Bereich liefert BET 94 Es finden sich vor allem folgende drei Vorgehensweisen um Darstellungen zu berechnen die Anwendung spezifischer Algorithmen f r bestimmte Sonderformen von Graphen wie z B B ume sowie die Simulation von Federmodellen und die Optimierung von Kostenfunktionen f r allgemeine Graphen Die Verwendung des Federmodells erfolgt indem Knoten als Verbindungspunkte interpretiert werden zwischen denen verschieden d mensionierte Federn gespannt werden Wichtige Merkmale der Dimensionierung einer Feder sind ihre Federkonstante und ihre Ruhel nge d h die L nge welche die Feder ann mmt wenn keine externen Kr fte auf sie einwirken Federn besitzen eine zur Federkonstante und hrer aktuellen Dehnung bzw Stauchung proportionale potentielle Energie M chte man z B da sich Knoten nicht berschneiden so plaziert man zwischen je zwei Verbindungspunkten eine Feder mit einer Ruhel nge die gr er ist als die Radien der Knoten und w hlt eine gro e Federkonstante Weiterhin sorgen Federn zwischen jeweils zwei Knoten die mit einer Kante verbunden sind daf r da die Knoten aufeinander zustreben und unverbundene Feder sich voneinander entfernen Ist ein solches System modelliert wird die durch die Federkr fte resultierende Bewegung der Knoten simuliert bis die Summe aller wirkenden Kr fte einen gesetzten Schwellenwert unterschreitet Man erhofft sich da das Ergebnis dieser Simulation eine ansprech
95. d ist also ein Realisierungsaspekt gegen ber einer geforderten Eigenschaft 1m Fall des Prinzips der k rperf rmigen Elementdarstellung Eigenschaftsdarstellung durch graphische Eigenschaften Dargestellte Elemente und auch Beziehungen k nnen ber verschiedene Eigenschaften verf gen Handelt es sich bei einem dargestellten Element beispielsweise um eine Klasse kann eine hrer Eigenschaften der 36 Ein 3D Klassenbrowser f r Java 7 Einige Visualisierungstechniken und systeme Umfang des zu ihrer Implementierung notwendigen Quelltextes sein Das dritte semiotische Prinzip von Franck und Ware sagt aus dal derartige Eigenschaften eines Sachverhaltes ber die Oberfl cheneigenschaften oder die Form des entsprechenden graphischen Objektes anzuzeigen sind Bei Eigenschaften von Oberfl chen handelt es sich beispielsweise um deren Farbe oder Transparenz Unter Eigenschaften der Form k nnen neben der allgemeinen Gestaltung des graphischen Objektes auch dessen Gr e verstanden werden die sich z B daf r eignen k nnte den Quelltextumfang aus obigem Beispiel darzustellen Orthogonalit t Voneinander unabh ngige Eigenschaften eines darzustellenden Sachverhalts sollen durch unabh ngige Eigenschaften des entsprechenden graphischen Objekts dargestellt werden Weiterhin sollten die zur Darstellung gew hlten Eigenschaften des graphischen Objektes unabh ngig von u eren Gegebenheiten sein Hierf r geben Franck und Ware zwei Beispiele Ein Vers
96. d zwar entweder mit der Konstante fur den Minimalabstand zwischen Symbolen oder mit der Verteilungskonstante Symbol X Mittelpunkt u eres Symbol gt Feder der Art la gt Feder der Art 1b gt Feder der Art 2 Feder der Art 3 Abbildung 12 14 Aufbau eines Federsystems F r die Simulation von Federsystemen stellen Ryall Marks und Shieber einen Algorithmus vor RMS97 Diesem dient eine Menge von Knoten N und eine Menge von Federn A zwischen den Knoten als Eingabe F r jeden Knoten n berechnet der Algorithmus mit x t die zeitabh ngige Position Dies erfolgt anhand des ebenfalls zeitabh ngigen Impulses pi an einem Knoten Als Besonderheit wird um ein unendliches Oszillieren des simulierten Federsystems zu verhindern auch eine D mpfung des Systems ber cksichtigt die ber eine w hlbare Dampfungskonstante y konfiguriert wird Zur Vereinfachung wird die dabei eigentlich zu ber cksichtigende Masse der Knoten einheitlich auf eins gesetzt Nachfolgend wird eine modifizierte Version des Algorithmus von Ryall Marks und Shieber gezeigt wie sie im J3Browser implementiert wurde t 0 fortfuehren true forall n N p t 0 repeat t t At forall nj N Fi Ae an federkraft ni s t forall oe N pi t pdt At E ypilt At At if Position von n ver nderbar x t kontrolle x t At pi t At else xt x t At if letzte
97. dargestellt werden Abbildung 7 3 zeigt ein Beispiel Abbildung 7 3 Information Cubes Quelle You96 Der Wurzelknoten wird als ein W rfel Cube dargestellt der die gesamte Darstellung umfa t An der Stirnseite kann er beschriftet werden in der Abbildung REKIMOTO In dem W rfel werden geschachtelt kleinere W rfel berlappungsfrei dargestellt welche die der Wurzel direkt untergeordneten Knoten repr sentieren Diese k nnen ebenfalls beschriftet werden und enthalten wiederum die Darstellung von W rfeln fur ihre direkten Nachfolger in der Hierarchie usw Durch eine Semitransparenz der W rfelw nde wird zum einen erreicht da geschachtelte W rfel erkennbar bleiben Zum anderen ergibt sich durch die Addition der Transparenzwerte aber auch eine Ausblendung von W rfeln n tiefen Schachtelungsebenen wodurch die Komplexit t der Darstellung reduziert wird Um auch W rfel in tiefen Schachtelungsebenen sichtbar zu machen sind Navigationsm glichkeiten notwendig durch welche die W rfel betreten werden k nnen 7 1 5 Information Landscapes Die dreidimensionale Visualisierungstechnik der Information Landscapes nutzt die Metapher 39 Ein 3D Klassenbrowser f r Java 7 Einige Visualisierungstechniken und systeme der Landschaft Dem Betrachter wird ein Bild pr sentiert das an das Aussehen einer nat rlichen Landschaft erinnern soll vgl Abbildung 7 4 aes E Ah eee T i Te ia a al Baia El ECH ee eg ee a Abbildung
98. dem ist gerade bei Cone Trees eine Interaktionsform gegeben bei der das Fehlen dreidimensionaler Eingabeger te nicht allzusehr ins Gewicht f llt Eine vergleichbare leichte Navigationsm glichkeit bietet auch die Kugelprojektion bei der vom Betrachter eine Kugel zu rotieren ist vgl Seite 40 Die Kugelprojektion wurde zun chst als eine Alternative zur Information Cubes Technik in Betracht gezogen Pakete w ren als drehbare Kugeln dargestellt worden auf deren Oberfl che die Symbole der zugeh rigen Entit ten anzuordnen gewesen w ren Auch hier k nnte eine Kombination mit dem Information Landscape Ansatz erfolgen indem mehrere Kugeln n einer Landschaft positioniert werden Ein Probleme dieses Ansatzes ist die mangelnde Kombinierbarkeit insbesondere mit Cone Trees oder Kegeln Da die Verwendung der Information Cubes Technik deshalb bei weitem vorteilhafter erschien wurde auf die Aufnahme der von der Implementierung relativ komplexen Kugelprojektion n den Klassenbrowser verzichtet 119 Ein 3D Klassenbrowser f r Java 13 Bewertung und Ausblick Besonders die Realisierung gekrummter Pfeile wie sie 1m Conformal Model vorgesehen sind ware mit VRML nur schwer zu machen gewesen Zudem bietet VRML zwar eine M glichkeit das Drehen von graphischen Objekten ber Ereignisse zu erkennen es zeigt sich aber da bei der verwendeten Browser Kombination Drehungen fehlerhaft gemeldet werden Die direkte Unterst tzung von Cone Trees kann als
99. den Aussagen von Franck und Ware die Erkennbarkeit und die Einpr gsamkeit der Darstellung verbessert Die k rperliche Darstellung von Elementen im dreidimensionalen Raum kann auch als bertragung deren fl chiger Darstellung im zweidimensionalem Raum gesehen werden Beispielsweise werden n Klassendiagrammen z B Rechtecke zur Darstellung von Klassen verwendet Die Verwendung anderer bspw linienf rmiger Darstellungen f r Elemente ist weit weniger bl ch Pfeilformige Beziehungsdarstellung Beziehungen zwischen darzustellenden Elementen sollen als Pfeile dargestellt werden wobei Franck und Ware diese Aussage auf die gegenseitige Verwendung der Elemente oder der Kommunikation zwischen diesen beziehen Dies ist eine direkte bertragung der pfeilf rmigen Beziehungsdarstellung im zweidimen sionalen Raum Wie bereits erw hnt ergeben sich 1m dreidimensionalen Raum aber aufgrund wechselnder Betrachtungspositionen und winkel erweiterte Anforderungen an die Ge staltung Hier stellt sich vor allem das Problem die Richtung von Pfeilen erkennbar zu machen Franck und Ware haben auch diesen Aspekt betrachtet und treffen die Aussage da insbesondere durch Farbwechsel innerhalb des Pfeils die Erkennbarkeit der Richtung unterst tzt werden kann Naturgem werden Pfeile in der dreidimensionalen Darstellung ebenfalls durch K rper wie z B Zylinder realisiert Diese K rperlichkeit steht aber gegen ber der oben geforderten nur im Hintergrun
100. dene Knoten nahe beieinander plazieren zu lassen 46 Ein 3D Klassenbrowser f r Java 8 Visualisierungstechniken fur Java Software 8 Visualisierungstechniken fur Java Software In diesem Kapitel werden auf der Basis der im vorherigen Kapitel beschriebenen Visuali sierungstechniken und systeme Techniken zur dreidimensionalen Visualisierung des Aufbaus von Java Software entwickelt Damit wird die zweite konzeptionelle Frage Wie sollen Softwarestrukturvisualisierungen aufgebaut sein beantwortet Diese Antwort beruht auf den wahrend der Experimentierphase gemachten Erfahrungen des Autors Betrachtet man die im Abschnitt 7 1 vorgestellten Techniken B ume Cone Trees Infor mation Cubes und Information Landscapes so f llt auf da diese in ihrer urspr nglichen Form jeweils zur Darstellung genau einer Art von Beziehungen zwischen Elementen vorge sehen sind Bei den ersten drei Techniken m ssen die dargestellten Beziehungen zudem eine baumf rmige Hierarchie bilden In Java Software treten jedoch verschiedene Arten von Beziehungen gleichzeitig auf Diese Beziehungen bilden 1 A keine baumf rmige Hierarchie Dies macht deutlich da es nicht einfach m glich ist eine dieser Techniken auszuw hlen und damit alle Arten von Beziehungen gleichzeitig n einem Diagramm darzustellen Eine Gleichzeitigkeit st aber erstrebenswert da es bei der Verwendung verschiedener Diagramme f r unterschiedliche Arten von Beziehungen dem Betrachter obliegt
101. dert wurde vgl vorherigen Ab schnitt Die Position dieser Symbole wird durch die automatische Ausrichtung bestimmt vgl Abschnitt 10 5 5 10 5 4 Einfache Editierfunktionen Das Teilement ist Ausgangspunkt f r einfache Manipulationen des Diagramms Dazu dient insbesondere das von hier zu ffnende Eigenschaftenfenster vgl nachfolgende Abbildung 10 8 n dem graphische Eigenschaften von Symbolen bestimmt werden k nnen wozu die Registrierkarte Symbol dient In der zweiten Karte Pfeile kann d e Sichtbarkeit von Pfeilen 79 Ein 3D Klassenbrowser f r Java 10 Benutzung des Systems bestimmt werden die mit den selektierten Symbolen verbunden sind Dies ist dann n tzlich wenn andere Akzentuierungen der Beziehungen gesetzt werden sollen als ber die Filtermechanismen erreichbar s nd Allerdings ist hiermit ein gewisser Aufwand verbunden Das Eigenschaftsfenster kann auch ber einen Doppelklick auf ein Symbol ge ffnet werden vgl aber Abschnitt 10 5 6 Zu den hier ver nderbaren Eigenschaften von Symbolen z hlen deren Position Gr e und Farbe Weiterhin kann deren Sichtbarkeit an oder abgeschaltet werden Auf die M glichkeit der Verankerung wird im Zusammenhang mit der automatischen Ausrichtung m nach folgenden Abschnitt eingegangen Die im Eigenschaftenfenster getroffenen Einstellungen gelten f r alle selektierten Symbole Die Positionsangabe im Fenster erfolgt f r das hauptselektierte Symbol Ver nderungen dieser Positi
102. des Ebenenabstandes dimensioniert Hier sind auch negative Werte zul ssig die zu einer Umkehrung der Ausrichtung f hren Es werden dann bspw benutzte Elemente oberhalb von benutzenden Elementen dargestellt Je nach St rke der Federn f r den Ebenenabstand im Verh ltnis zu anderen Feder ergibt sich eine mehr oder minder starke Auspr gung der Ebenenf rmigkeit wobei schwache Federn lediglich f r eine top down Darstellung sorgen k nnen Bei den einzelnen Werten f r Abst nde und Federkonstanten die in das Fenster eingegeben 81 Ein 3D Klassenbrowser f r Java 10 Benutzung des Systems werden mussen ist weniger der absolute Wert entscheidend als das Verhaltnis der Werte zueinander Die Felder des Fensters sind mit sinnvollen Werten zur Akzentuierung der Vererbungs und Implementierungsbeziehung vorbelegt Wahrend der temporaren Einblendung wird das Federmodell benutzt um Positionen fur eingeblendete Symbole zu bestimmen Der obere rechte Bereich tempordre Einblendung dient der Konfiguration dieser Benutzung Zun chst kann hier die Anzahl der Iterationen be der Simulation des Modells begrenzt werden Bei der Benutzung des Federmodells zur Ausrichtung ist dies nicht notwendig s u Die Iterationszahl sollte nach der Leistungs f higkeit der verwendeten Hardware dimensioniert werden da w hrend der Berechnung z B keine Ver nderung der Selektion erfolgen kann Es hat sich als n tzlich erwiesen eingeblendete Symbole n her an das s
103. die Ebene 2 eingeordnet Wenn beim Verschieben eines geschachtelten Symbols die Grenzen des bergeordneten Symbols berschritten werden liegt z B eine Manipulation der Ebene 2 vor Ebene 3 Man kann sich auch Manipulationen vorstellen die nicht die Darstellung betreffen sondern den dreidimensionalen Raum in dem sich die Darstellung befindet Ein einfaches Beispiel ware das Skalieren der Achsen des Raums Derartige Manipulationen bilden die Ebene 3 Im Rahmen dieser Arbeit konnten diesbeztigliche Untersuchungen nicht mehr weiter vertieft werden Es wurde daher vereinfachend festgelegt da keine Ver nderung der Darstellung einen Einflu auf die dargestellte Software hat Aus dem Verschieben eines Entitatssymbol in ein anderes Paketsymbol folgt bspw nicht dal die entsprechende Entitat das Paket wechselt Damit Betrachter die Darstellung m glichst flexibel manipulieren k nnen werden sie zudem nicht daran gehindert tempor r auch Darstellungen zu erzeugen die der visualisierten 67 Ein 3D Klassenbrowser f r Java 8 Visualisierungstechniken fur Java Software Software nicht entsprechen Diesen Umstand wieder zu beheben obliegt der Verantwortung des Betrachters Eine Erganzung um eine differenziertere Konzept zur Handhabung von Manipulationen etwa im Hinblick auf ein Modellierungswerkzeug ist aber sicher sinnvoll 8 8 Zusammenfassung und resultierende Anforderungen Die vorangegangenen Betrachtungen machen deutlich da es nicht m
104. e 1T 105 Fenster zur Sclekt1onser weer oere en 78 Ee KE 78 O A ET e 79 10 8 Bisensch ftentensir all eae as 80 10 9 Fenster muir Gic automatische Aust CHE Ee 81 10 10 Schaltfl chen zur Dokumentation ooooeeeenneeeeesessssssneeeeeeeessssssssssssssserrreeessssssssssssssrrrrereessssssssserrrrees 83 OST SS uk Kuren ee ee 83 10 12 Brzeusen eines one Tr es see E E E EN 84 10 133 Symb lEI emer ee eerie orto ee ee ee 86 10 14 Fenster tor Slobale E nstellineen nee 86 Konzeption und Implementierung eines dreidimensionalen Klassenbrowser fur Java 11 1 Skizze des Szenengraphs zum VRML Beispiel Ill 87 11 2 Aus VRML Beispiel 11 1 resultierende Darstellung cc ccccccccccccceceeeeeeeeeseeeeeeeeeeeseeeeeeeeeeees 87 12 12 Pakelstrukt r des EE 90 12 2 Doc Schnittstellenhierarchie der Javadoc Bibliothek nessseeeoeenseeeeeeeossssssssssesreeeesssssssssssssssereees 92 12 3 Aufbau des Paketes darstellung und dessen Einbettung ins System ssssssssssssnsnnnnnnnnnnn 94 12 4 Interne Repr sentation yon Diagsrammen sn ae 96 12 9 Spezialisierungen der Klasse Symbol une 96 12 6 Spezialisierungen der Klasse Piel nee le 96 122 7 Klasse Filterspezilikallon WEE 101 12 8 Ablauf der Entterningsbetechnune ae tude eg ZEgeeee Ee geeeen 104 12 9 Modellietuns EE 106 12 10 Erzeugen und Laden von Hierarchien ee EE EE 106 12 11 Interaktive Drehung von Anordnungen anna nn Eee 108 12 12 Ben tigte Drehspezif
105. e Darstellungsformen f r verschiedenartige Herarchten 38 1 22 ONE EE ee 38 E een EE 39 7 4 Visualisierung eines Dateisystem durch den ESN 40 7 5 Modelle im dreidimensionaler hyperbolischer Raum 4 1 6 Prinzip der Visualisierung mit Vogue Reel 43 71 Pinzipder V sual siembe ME EE eaten 43 7 8 Beispiel einer Visualisierung mit ArchView 000000nooooonoosnseseosenoonosnssssesreersrerrerererersrereeereereereeeeeee 44 7 9 Bildschifintensier E ee 45 7 10 Reduktion von Kanten durch das Schlie en von Knoten cccccsssccccccceeeeeeeeeesseeesssssneeeeeeeeeeeeees 46 8 1 Beispiel f r die Darstellung von Softwarestrukturen nenn 47 8 2 Gewohnliche Klassen san en ee ernennen een 49 EE A e EE 49 8 4 Echlerklasse u EE 49 Vii Konzeption und Implementierung eines dreidimensionalen Klassenbrowser fur Java E Ee 49 8 6 Eigenschaftsmarkierung bei ausf hrbaren Klassen 50 8 7 Verwendete Arten von Pfeilen und ihre Bedeutung 51 8 5 Anzeige der Details einer Benulzins au a ee es 51 8 9 Beispiel einer symmetrischen Behitzuns eu 5I 8 10 Gleichzeitige Erweiterungen mit Redefinition und Benutzung 52 8 11 Darstellung einer Klassenhierarchie als Cone Tree 53 8 12 Schrager Blick auf eine Klassenhierarchie als Baum 53 8 13 Kegelf rmige Darstellung bei vielen Beziehungen zwischen den Klassen SE MEET TEE 54 8 14 Kegelformige Darstellung mit Nutzung des Innenraum f r Hierarchiere MOSER slic een 54
106. e Liste von zu bearbeitenden Symbolen erwartet TODO Liste Beim ersten Aufruf wird eine nur aus dem hauptselektiertem Symbol bestehende Liste ubergeben Die Methode arbeitet wie folgt TODO forall ee TODO sentfernung get s if sentfernung lt maximale Entfernung forall effektiv sichtbaren Pfeile p von s in passender Richtung if get p gt sentfernung set p sentfernung neueSymbolEntfernung sentfernung pfeillange p if neueSymbolEntfernung lt get pfeil start set pfeil start neueSymbolEntfernung TODO TODO U pfeil start if neueSymbolEntfernung lt get pfeil end set pfeil end neueSymbolEntfernung TODO TODO U pfeil end if TODO lt gt entfernungenBerechnen TODO Abbildung 12 8 auf folgender Seite zeigt ein Beispiel fir den Ablauf einer Berechnung Im Beispiel gilt nur die Pfeilrichtung als passende Richtung Der Systembenutzer kann zusatzlich oder alternativ die Gegenrichtung zur passenden Richtung machen vgl Abschnitt 10 5 2 Vor dem ersten Schritt besteht die ganz links abgebildete Situation nur das als hauptselektiert geltende Symbol A besitzt eine Entfernungsangabe und es ist lediglich A zu bearbeiten Bei dieser Bearbeitung werden die Pfeile zu B und E sowie die beiden Symbole selbst mit 103 Ein 3D Klassenbrowser fiir Java 12 Realisierung des Systems Entfernungsangaben versehen Eine Pfeilentfernung ist immer gleich der kleineren Entfernungen der beiden verbundenen Symbole Symbolentfernu
107. e Metamodell wird kein Anspruch auf Vollst ndigkeit erhoben Bei spielsweise werden dynamische Aspekte von Software w e der Kontrollflu durch verschie dene Methoden bewu t au en vor gelassen um das Thema dieser Arbeit st rker zu fokussie ren Die Aufgabe eines Klassenbrowser wird in der Vermittlung eines berblicks ber stati sche Aspekte wie z B der deklarierten Klassenhierarchien oder der vorgenommen Ein teilungen in Subsysteme gesehen Diese Sicht wird um einige Details angereichert die f r das Verst ndnis des Sachverhalts als wichtig erachtet werden Aus Aufwandsgr nden wird sich dabei auf die Ber cksichtigung von Sprachkonzepten beschr nkt die typischerweise auch von herk mmlichen zweidimensionalen Klassenbrowsern unterst tzt werden An diver sen Stellen k nnten daher Erweiterungen die zu einer detaillierteren Modellierung einer Java Software f hren w rden durchaus noch m glich und s nnvoll sein als Basis f r diese Arbeit hat s ch der hier gezeigte Umfang des Metamodells aber bew hrt F r eine Einf hrungen in die Programmierung mit Java sei auf die umfangreiche Literatur zu diesem Thema verwiesen vgl z B K h96 Die Darstellung hier orientiert sich an der Sprachdefinition von Java GJS96 Abbildung 5 1 zeigt mittels der Unified Modeling Language UML BRJ99 Oes98 einen ersten berblick ber das Metamodell f r Strukturmodelle Ein Strukturmodell modelliert Java Software Diese besteht aus der An
108. e Randbedingung ist es dabei da jedes Symbol innerhalb seines Parents positioniert wird Verantwortlich f r die Positionierung ist die Klasse Random Layout Nach Abschlu der Initialisierung kann die Positionierung vom Benutzern des Systems mittels der automatischen Ausrichtung verbessert werden Erzeugen von Pfeilen Der n chste Schritt bei der Initialisierung besteht darin f r die Beziehungen des Strukturmodells Pfeile zu erzeugen Daf r st die Methode erzeugePfeile der Klasse PfeilErzeuger verantwortlich Hier werden alle im Strukturmodell gespeicherten Beziehungen durchlaufen F r diese werden Pfeile instanziiert und initialisiert Um fur eine Beziehung Instanzen der jeweils richtigen Subklasse von Pfeil zu erzeugen wird hnlich vorgegangen wie bei der Instanziierung von Symbol Subklassen Es gibt dazu eine Subklasse von GegebenheitsErwVisitor namens Pfeillnstanziierer von der eine Instanz der Methode accept von Beziehung bergeben wird Die Instanz f hrt dann die Instanziierung durch Nachdem ein Pfeil konstruiert wurde gilt es diesen mit der dargestellten Beziehung zu verbinden und ihn zu initialisieren Die Initialisierung eines Pfeils besteht darin ihn in das Diagramm aufzunehmen und ihn den verbundenen Symbolen sowie der zwischen diesen bestehenden Kante zuzuordnen Diese drei Dinge geschehen mittels der Methode init die als Parameter Start und Endsymbol eines Pfeils erwartet Beide k nnen anhand der Namen der in Beziehun
109. e Verkleinerung wird es m glich gleichzeitig mehr vom Kontext darzustellen wodurch z B die Orientierung in der Darstellung erleichtert wird In Abbildung 2 7 wird die Perspektive zur Darstellung von Datei in einem Dateisystem genutzt wobei im Fokus der Betrachtung liegende Dateien m Vordergrund sind Auch n diesem Zusammenhang kann wieder auf die Nat rlichkeit der sich ergebenden Darstellung verwiesen werden da ein Wechsel des aktuell fokussierten Darstellungsausschnitts durch eine Navigation auf den Hintergrund hin erfolgen kann gleichsam des n her Herantreten an einen interessanten Gegenstand in der realen Welt Vielleicht aufgrund dieser Nat rlichkeit kommt es dazu da dreidimensionale Darstellungen dem Betrachter attraktiver erscheinen als trockene zweidimensionale Diagramme Sie laden viel mehr zu einem explorartivem oder gar spielerischem Durchwandern ein was dazu f hren kann da sich motivierter und damit intensiver mit einem Sachverhalt besch ftigt wird und so ein tieferes Verst ndnis erlangt werden kann Oben wurden als zwei m gliche Probleme bei der Darstellung von Graphen sich berschneidende und zu lange Kanten genannt F r das erste Problem bietet der Einsatz dreidimensionaler Graphiken theoretisch eine vollst ndig L sung da nach Xiam und Milgram jeder Graph hier berschneidungsfrei darstellbar st XM92 Auch f r das Problem der 8 Ein 3D Klassenbrowser f r Java 2 Motivation langen Kanten kan
110. e analysierte Software als Ganzes Von hier aus kann zu weiteren Doc Instanzen navigiert werden die Eigenschaften von Paketen PackageDoc von einzelnen Klassen oder Schnittstellen ClassDoc sowie von Entit tselementen einzelner Entitaten MemberDoc und Subschnittstellen liefern lt lt interface gt gt Doc name String commentText String lt lt interface gt gt RootDoc lt lt interface gt gt lt lt interface gt gt a PackageDoc ProgramElementDoc classes Class Doch ClassDoc ExecutableMemberDoc El lt lt interface gt gt MemberDoc interfaces Class Doc lt lt interface gt gt methods MethodDoc FieldDoc d lt lt interface gt gt ConstructorDoc lt lt interface gt gt MethodDoc A superclass Class Doc Abbildung 12 2 Doc Schnittstellenhierarchie der Javadoc Bibliothek Der Aufbau eines Strukturmodells durch AnalyseDoclet erfolgt in zwei Schritten Zun chst werden aus den ClassDoc und PackageDoc Instanzen Instanzen der entsprechenden Sub klassen von Element gewonnen und deren Eigenschaften ermittelt anschlie end werden dann die Beziehungen zwischen den Elementen untersucht Der erste Schritt wird durch die Methode analysiereElemente von AnalyseDoclet gesteuert der zweite durch analysiere Beziehungen Der vollst ndig qualifizierende Name und der Quelltextkommentar von Elementen der Zugriffsmodus von Entit ten sowie die Instanziierbarkeit und Art von Klassen gew hnliche K
111. e wurde auf die semiotischen Prinzipien nach Franck und Ware zur ckgegriffen vgl Abschnitt 7 1 1 8 1 1 Symbole Abbildung 8 2 und Abbildung 8 3 auf nachfolgender Seite zeigen die f r gew hnliche Klassen und f r Schnittstellen verwendeten Symbole Als deren Vorbild dente die bekannte Unified Modeling Language UML BRJ99 Oes98 n der f r Klassen ein Rechteck und f r Schnittstellen ein Kreis verwendet wird Trotz ihrer einfachen Form sind die Symbole bei einer Vertrautheit mit der UML recht intuitiv Wie auch alle weiteren Symbole sind sie so gestaltet da f r den Betrachter ein Volumen erkennbar wird wodurch die Assoziation zu einem greifbarem Objekt geweckt wird Damit wird dem semiotischen Prinzip der k rper 48 Ein 3D Klassenbrowser f r Java 8 Visualisierungstechniken fiir Java Software formigen Darstellung von Elementen entsprochen Nrwentarfuhrpark 17 kerr lew 1 O Abbildung 8 2 Abbildung 8 3 Abbildung 8 4 Abbildung 8 5 Gewohnliche Klasse Schnittstelle Fehlerklasse Ausnahmeklasse Die Symbolfarbe in den Abbildungen blau kann bei der Diagrammgestaltung weitgehend frei gew hlt werden Beschriftungen befinden sich oberhalb der Symbole Eine eventuell notwendige Erg nzung um Teile des vollst ndig qualifizierenden Namens w e z B der Paketangabe erfolgt oberhalb der Angabe des Entitatsnamens in einer kleineren Schriftart Die Beschriftung ist wegen der wechselnden Betrachtungswinkel drehbar B
112. eceeeeeeeeeeeeeeeeeeeeeeeeees 5 2 4 Automatisch erzeugte Darstellung eines Telekommumnkatonsnetzwerkes 6 2 5 Zwei und dreidimensionale Darstellung von Funktionen cece ccccccccccccececceeeeeeeeeeeeeeeeeeeeeeeeeeeeees 7 2 6 Bildschirmfenster der dreidimensionalen CAD Software 3D Shop Expert 8 227 Beispiel tur die Nutzune der Perspektive Ran ee E 8 2 8 Plazierung von verbundenen Symbolen im Zwei und Dreidimensionalen nssssssssssssssrsrrresessss 9 2 9 Darstellung der Zugeh rigkeit eines Teils zu einem Ganzen 00000000oo0oooeeeeeeeeeseeseessssessesssssssssssse 9 2 10 Symbol f r Klassen in der Booch Notaton 000000onooonnnnennnnnensnnnnsnsssssssssssssssssssssssssssssssssssssssssseeeeene 10 2 11 Illustraton des Path Track ins Problems a aa ee 10 3 12 Beispielaur mangelnde Express mil seele 12 3 2 Zwei verschieden EE E E le ee 14 3 3 Merwendeles Koordinalensysiemassss ae 15 3 4 Unterst tzung des Tiefeneindrucks durch Schatten ccccccccccccccccccceeeeeeeeeeeeeeeeeeeeeeeeseeeeeeeeeeeeees 16 4 1 bersicht ber das Vorsehen ce eek 19 5 1 berblick ber das Metamodell f r Strukturmodelle 21 5 2 Modellierung von Klassen und Erweiterungen oo00onooooonnnnnneoononeneenrerersrrrererrerererrrerererrrerrrrrrrreeeens 26 Dd EELER 30 54 Spezialisierungenvon Klasse EE 31 Sos Modellierins vor DCMU OCI eeh deer eege 32 5 0 Metamodell tur Strukturmodelle aan 33 7 1 Einfach
113. ei Ver nderungen des Blickwinkels auf ein Symbol wird die Beschriftung so um die vertikale Achse des Symbols gedreht da sie dem Betrachter zugewandt bleibt und nicht etwa von hinten zu sehen st Dies hat sich gegen ber anderen Varianten w e z B einer Beschriftung auf allen Seitenwanden als zweckm iger erwiesen Neben einer verbesserten Lesbarkeit aus verschiedenen Blickwinkeln durch welche die Objektkonstanz unterst tzt wird mu die Gr e von Symbolen nicht aufgrund von u U langen Beschriftungen variiert werden Eine Ver nderung des Betrachtungsstandorts kann aber problematisch sein Ist dieser weit von einem Symbol entfernt kann die Beschriftung aufgrund der perspektivischen Verkleinerung nicht mehr entziffert werden so da eine Anzeige dann keinen Sinn macht Abbildung 8 4 und Abbildung 8 5 zeigen Symbole f r weitere Arten von Klassen Bereits n den Erl uterungen zu Java im f nften Kapitel dieser Arbeit wurden drei Arten von Klassen unterschieden n mlich die gew hnlichen Klassen sowie Ausnahme und Fehlerklassen Diese Unterscheidung wird auch in der Notation fortgef hrt Die konzeptionelle hnlichkeit die Fehler und Ausnahmeklassen zueinander besitzen wurde auf deren graphische Repr sentation bertragen Dabei wurde f r Fehlerklassen eine auff lligere Form gew hlt da diese als Versch rfung von Ausnahmen angesehen werden k nnen In der Mitte aller sechs Seiten der gezeigten Symbole f r Entit ten befinde
114. ei der Ikonifizierung und Deikonifizierung von Gruppen sinnvoll Weiterhin k nnte die M glichkeit geschaffen werden virtuelle Rundfl ge durch Diagramme in der Form gef hrter Touren zu entwerfen An bestimmten Stellen w rden dann z B vorgegebene Dokumente angezeigt So w rde die Eignung des J3Browser zur Dokumentation von Softwaresystemen weiter verbessert Unabh ngig vom J3Browser kann nach Ansicht des Autors abschlie end jedoch festgehalten werden da trotz der genannten Probleme ein gro es Potential f r die Anwendung dreidimensionaler Visualisierung von Softwarestrukturen besteht Fur die Zukunft ist infolgedessen mit einem umfassenden praktischen Einsatz zu rechnen zumal von einer gr eren Verbreitung unterst tzender Hardware ausgegangen werden kann Weitere Forschungs und Entwicklungsbem hungen n diesem Bereich d rften daher sehr lohnend sein Der Autor wird sie mit gro em Interesse verfolgen 120 Ein 3D Klassenbrowser f r Java 14 Literatur 14 Literatur AF00 AG98 A1f99 And95 ANM97 APW96 BET 94 BF96 B0094 BRJ99 Bro88 Bro92 K ALFERT A FRONK 3 Dimensional Visualization of Class Relations Beitrag zu 2000 IDPT Conference The Fifth World Conference on Integrated Design amp Process Technology Dallas URL http ls10 www informatik uni dortmund de alfert publications idpt2000 pdf 2000 K ARNOLD J GOSLING The Java Programming Language Addiso
115. eilen bestimmen wie bspw solche die mit dem Rechnen mit Relationen bei ArchView vergleichbar sind kann dies zweckm ig durch eine erweiterte Berechnung der effektiven Sichtbarkeit geschehen 12 5 5 Optische Zusammenfassung und Trennung von Pfeilen Wenn Pfeile ihre Sichtbarkeit andern kann es gleichzeitig erforderlich sein verschiedene Pfeile zwischen zwei Symbolen optisch zu trennen oder auch zusammenzufassen Gegen l ufige Pfeile derselben Art werden zusammengefa t so da z B aus zwei symmetrischen Pfeilen f r Benutzungen ein Pfeil mit zwei Spitzen entsteht Pfeile unterschiedlicher Art m ssen voneinander getrennt werden damit ein Betrachter sie auseinanderhalten kann F r beide Vorg nge ist die Klasse Kante verantwortlich Alle Pfeile zwischen zwei Symbolen werden richtungsunabhangig einer Kante zugeordnet Diese Pfeile informieren die Kante ber nderungen ihrer Sichtbarkeit Die Kante f hrt Zusammenfassung und Trennung durch indem die sogenannten Ansatzpunkte eines Pfeils ver ndert werden Diese bestimmen wo ein Pfeil die beiden verbundenen Symbole ber hrt Zun chst ist die jeweilige Subklasse von Symbol daf r zust ndig den Ansatzpunkt eines Pfeils zu bestimmen Dies geschieht in Abh ngigkeit von der Form des Symbols und nach M glichkeit so da der Ansatzpunkt auf der Symboloberfl che liegt da dies optisch ansprechender ist Erkennt nun eine Kante da mehr als einer ihrer Pfeile sichtbar ist werden deren Enden
116. eine Use Instanz umfa t Um die Performanz zu steigern ist die Liste als Hash Tabelle realisiert bei der der Name der benutzten Entit t als Schl ssel fur die entsprechende Use Instanz dient Die Liste ist initial leer Es werden zun chst die Variablen dann die Methoden und schlie lich ggf die Konstruk toren von user durchlaufen Anhand des Typs einer Variable des R ckgabetyps einer Methode sowie der Parametertypen und als Ausnahmen aufgeworfenen Typen einer Methode oder eines Konstruktors werden die durch user benutzen Entit ten ermittelt Wenn so eine durch user benutzte Entitat used gefunden wurde wird gepr ft ob m der Liste eine Use Instanz fur used existiert Wenn nicht wird eine solche erzeugt und sowohl in die Liste als auch in das Strukturmodell aufgenommen Alle in einer neuen Instanz gespeicherten Zugriffsmodi sind zunachst mit private initialisiert die entsprechenden Markierungen fur Benutzungen als Feld oder als Variable stehen auf false Anhand des aktuell durchlaufenen Entitatselements wird die zuvor gefundene Use Instanz verandert Wenn eine Benutzung als Feld oder als Variable vorliegt was relativ leicht anhand der jeweiligen MemberDoc Instanz festgestellt werden kann wird die entsprech ende Markierungen in der Use Instanz gesetzt Zudem wird der Zugriffsmodus des aktuellen Entitatselements mit den in der Use Instanz gespeicherten Modi verglichen Wenn fur die Benutzung insgesamt oder fur eine vorliegende Art der Be
117. eit entfernten Symbolen abgeschaltet Bei Manipulationen der Szene m ssen Attribute der Szenengraphknoten ge ndert werden Das EAT besitzt die Eigentumlichkeit da derartige Ver nderungen abh ngig vom Kontext mit stark unterschiedlicher Performanz durchgef hrt werden Erfolgt die Ver nderung bspw Aufgrund einer Aktion in der Benutzungsschnittstelle wird durch den VRML Browser mit jedem Aufruf einer EAI Methode die Darstellung aktualisiert Da meist sehr viele Aufrufe notwendig sind dauert die gesamte Manipulation inakzeptabel lange Erfolgt die Ver nderung jedoch als Reaktion auf ein durch das EAI gemeldetes Ereignis wird die Darstellung erst dann aktualisiert wenn die entsprechende Reaktion vollst ndig abgearbeitet wurde Dies f hrt dazu da die Dauer derselben Ver nderung kontextabh ngig im Bereich von einigen Minuten liegt kann oder auch so kurz sein kann da ste kaum wahrnehmbar ist Um Ver nderungen zu beschleunigen wurde deshalb die Singleton Klasse ActionManager zusammen mit deren innerer Schnittstelle Action geschaffen F r Ver nderungen wird ein Objekt einer Klasse erzeugt die Action implementiert Dieses Objekt wird dem Action Manager bergeben der daraufhin ein EAl Ereignis initiiert und als Reaktion darauf die im bergebenen Objekt gekapselten Ver nderung durchf hrt Aufgrund der beschriebenen Instabilit t mu dieser Ablauf variiert werden wenn bereits eine Ereignisbehandlung aktiv ist Dann wird die Ver nderu
118. el of Detail NV3D Nested Vision3D RCS Resource Control System UML Unified Modeling Language VQN Vollst ndig qualifizierender Name VRCS Visual Resource Control System VRML Virtual Reality Modeling Language VS Visualisierungssystem VT Visualisierungstechnik WWW World Wide Web Konzeption und Implementierung eines dreidimensionalen Klassenbrowser fur Java xi Teil I Einfuhrung Ein 3D Klassenbrowser f r Java 1 Einleitung 1 Einleitung Der Einsatz von Computertechnik ist heutzutage vielfach mit sehr hohen Erwartungen verbunden Es gilt den Gesch ftsbetrieb ganzer Konzerne zu unterst tzen oder komplizierte industrielle Anlagen zu steuern Immer gr ere Anforderungen insbesondere auch an die eingesetzte Software f hren dazu da deren Entwicklung zunehmend komplexer wird Eine Unterst tzung der Softwareproduktion durch Werkzeuge ist daher unabdingbar geworden W hrend der Implementierung und Wartung objektorientierter Software sind Klassenbrowser ein wichtiges Hilfsmittel Durch sie wird es Softwareentwicklern erleichtert Informationen ber die Gliederung der betrachteten Software zu gewinnen Zur Veranschaulichung dieser Informationen werden vielfach graphische Darstellungen sog Visualisierungen verwendet da davon ausgegangen wird da diese verglichen mit rein textuellen Beschreibungen f r einen Betrachter leichter und vor allem schneller verst ndlich sind Mit steigender Komplexit t der darzustellenden Informa
119. elbar zu sein schien 9 2 Einschr nkungen W hrend der Analyse wird ermittelt welche Elemente der zu visualisierenden Java Software existieren und welche Beziehungen zwischen diesen bestehen Mittels Javadoc k nnen fast 72 Ein 3D Klassenbrowser f r Java 9 Uberblick alle im Metamodell f r Strukturmodelle ber cksichtigte Arten von Elementen und Beziehungen m Quelltext gefunden werden Es gibt jedoch eine Ausnahme Es werden zwischen Entitaten keine Benutzungen zur Implementierung gefunden d h beispielsweise solche nicht die nur lokal innerhalb der Implementierung einer Methode erfolgen vgl Abschnitt 5 7 Nur Benutzungen zur Variablen Methoden und Konstruktordeklaration werden gefunden Diese Einschr nkungen scheint f r die vorliegende auch in anderer Hinsicht prototypische Implementierung akzeptabel hat aber die Konsequenz das Benutzungen nur eingeschrankt visualisiert werden Dies k nnte zun chst als schwerwiegend gesehen werden es ist aber anzunehmen da sich die fur ein Verst ndnis des visualisierten Quelltext notwendigen Benutzungen vielfach in Parameter bergaben und Variablendeklarationen niederschlagen Zudem besteht zumindest wenn die benutzte und die benutzende Entitat zu unterschiedlichen Paketen geh ren h ufig zus tzlich eine Importbeziehung zwischen diesen die dann dargestellt werden kann Die Darstellung der Dokumentation zu Elementen erfolgt primar im Vordergrund der dreidimensionalen Dar
120. elektierte Symbol zu plazieren als zu anderen Symbolen zu denen ebenfalls Pfeile existieren Hierdurch treten die Beziehungen des selektierten Symbols deutlicher hervor Um diesen Effekt zu erzielen kann eine verk rzte Kantenl nge eingegeben werden Damit diese auch von den entsprechenden Federn durchgesetzt werden kann k nnen sie gegen ber anderen Federn durch einen Multiplikationsfaktor verst rkt werden Einstellungen f r die tempor re Einblendung m ssen ber die Schaltfl che Setzen best tigt werden Bevor der letzte Bereich besprochen werden kann mu auf die Verankerung von Symbolen eingegangen werden Verankerte Symbole werden vom Federmodell zwar in die Berechnung eingeschlossen ihre Position wird aber nicht ver ndert Dadurch k nnen z B Symbole die ber die Editierfunktionen positioniert wurden vor Ver nderungen durch die automatische Ausrichtung gesch tzt werden Ob ein Symbol verankert st w rd im Eigenschaftenfenster bestimmt s o und kann ber dessen Beschriftung kenntlich gemacht werden vgl Anhang D Der Bereich Ausf hrung dient dem Vollzug der automatischen Ausrichtung Hier kann die Ausrichtung auch auf selektierte Symbole beschr nkt werden um unabh ngig von der Verankerung Tele der Darstellung vor Ver nderungen zu sch tzen Geschieht dies dann besteht die Option das hauptselektierte Symbol als verankert zu betrachten Dadurch gelingt es Z B Symbole in der Nebenselektion gem ihrer Pfeile schnel
121. elektionswechsel alle neuen Pfeilentfernungen berechnet wurden m s sen die Transparenzwerte der Pfeile ver ndert werden Wann immer die Einstellung der aktiven Arten gewechselt wird werden die Transparenzwerte f r Pfeile einer aktiven Art auf die im Filterfenster angegebene Transparenz bei maximaler Entfernung gesetzt Gleichzeitig werden bei einem solchen Einstellungswechsel Pfeile nicht aktiver Arten opaque gemacht Beim ersten Selektionswechsel nach einer Einstellungs nderung reicht es zun chst aus die Transparenz f r n here Pfeile zu wechseln d h nur die Pfeile der Pfeilentfernungstabelle m ssen ber cksichtigt werden Bei nachfolgenden Selektionswechseln m ssen aber Pfeile deren Transparenz zuvor ver ndert wurde die aber nicht mehr in der neuen Pfeilentfernungs tabelle enthalten sind wieder die maximale Transparenz erhalten Dazu ist es notwendig da nach einem Selektionswechsel auch die vormalig berechnete Pfeilentfernungstabelle noch zur Verf gung steht Die Transparenz der Pfeile wird durch die Methode transparenzSetzen des DOIManagers in zwei Schritten gesetzt Zun chst werden alle Eintr ge der neuen Entfernungstabelle durch laufen dann die der alten Tabelle Im ersten Schritt wird f r jeden Eintrag der entsprechende Pfeil gesucht Nur wenn dieser von einer aktiven Art ist wird aus der Pfeilentfernung ein Transparenzwert abgeleitet und gesetzt Die Ableitung geschieht derzeit durch lineare 104 Ein 3D Klassenbrows
122. ellungen bieten mehr Gestaltungsspielraum da zur Positionierung der Symbole einer Ebene eine Fl che zur Verf gung steht Somit k nnen Symbole unter Beibehaltung der Ebenenf rmigkeit n cht nur nebeneinander sondern auch hintereinander angeordnet werden wodurch lange Pfeile und berschneidungen vermindert werden k nnen Vergleichbares gilt auch f r B ume die mit verschiedenen Drehwinkeln zur Y Achse verwendet werden k nnen wobei die Eigenschaft da Superklassen oberhalb von Subklassen plaziert sind unabh ngig davon erhalten bleibt In zweidimensionalen Darstellungen ist mit einer Variation der Ausrichtung eines Baumes der Verlust dieser Eigenschaft verbunden was insbesondere dann das Verst ndnis erschweren kann wenn verschieden ausgerichtete B ume gleichzeitig verwendet werden 54 Ein 3D Klassenbrowser f r Java 8 Visualisierungstechniken fur Java Software 8 2 2 Erweiterungen zwischen Schnittstellen Im Gegensatz zu Erweiterungshierarchien von Klassen sind aus Schnittstellen bestehende Erweiterungshierarchien nicht immer baumf rmig Liegt aber eine Baumf rmigkeit vor so k nnen die im letzten Abschnitt aufgef hrten berlegungen bertragen werden Bei den betrachteten Softwarebeispielen fiel allerdings auf da umfangreiche Erweiterungs hierarchien bei Schnittstellen weit weniger zu erwarten sind als bei Klassen Somit ist der Einsatz spezieller Techniken hier 1 d R wenig sinnvoll und es kann f r nicht baumformige Hierar
123. els der Beziehungen des Strukturmodells mu aber eines beachtet werden es k nnen Beziehungen existieren bei denen die in Beziehung stehenden Elemente nicht oder nicht direkt symbolisiert werden Dies kann zwei Gr nde haben Zum einen kann eines der Elemente neu sein und der Benutzer hat auf das Erzeugen neuer Symbole verzichtet In diesem Fall wird die Beziehung ignoriert Zum zweiten kann die Beziehung ein Paket betref fen das in einer Paketzusammenfassung enthalten ist F r das Paket selbst existiert dann kein Symbol F r eine solche Beziehung wird ein Pfeil erzeugt der aber zum Symbol der Paket zusammenfassung umgeleitet wird Davon ausgeschlossen sind PP Beziehungen da eine Paketzusammenfassung keine Sub oder Superpakete hat Im Eigenschaftenfenster des J3Browser kann die Darstellung jedes Pfeils einzeln verhindert werden Auch hier ist eine Persistenz der getroffenen Einstellungen s nnvoll Pfeile werden aber n Darstellungsdateien nicht wie Symbole gespeichert Statt dessen umfa t jede Darstel lungsdatei einen Block mit einer Pfeilnegativliste Hier sind die Namen der Pfeile eines Dia gramms aufgelistet deren Darstellung zuvor verhindert wurde 100 Ein 3D Klassenbrowser fiir Java 12 Realisierung des Systems DiagrammEA besitzt neben den erw hnten Klassen DiagrammEALoad und DiagrammEANew noch zwei weitere Subklassen Das Speichern von Diagrammen wird durch die Subklasse DiagrammEASave gesteuert Die Klasse DiagrammEAExport is
124. en der Korrespondenz gut mit der Bedeutung abstrakt in Verbindung gebracht werden Der Balken am unteren Ende des 49 Ein 3D Klassenbrowser f r Java 8 Visualisierungstechniken fiir Java Software Dreiecks bei final kann leicht mit einer Sperrung genauer der Sperrung weiterer Spezialisierungen assoziiert werden Zugriffsmodus Farbe Beispiel Instanziierbarkeit Form Beispiel public Griin amp abstrakt Kreis protected Orange amp konkret Dreieck default Rot final Dioden V zeichen private Grau Tabelle 8 1 Farbkodierung der Zugriffsmodi Tabelle 8 2 Formkodierung der Instanziierbarkeit Ausf hrbare Klassen sind Einstiegspunkte in die Software und erhalten daher eine gesonderte Kennzeichnung ber eine weitere Variation der Form der Eigenschaftsmarkierung Bei Symbolen f r ausf hrbare Klassen wird die Eigenschaftsmarkierung durch zwei kleine Rechtecke umschlossen vgl Abbildung 8 6 Ebenso wie bei Beschriftungen gilt auch f r Eigenschafts markierungen da sie aus gro en Entfernungen nicht mehr erkennbar sind Da sie relativ detaillierte Informationen ber Elemente vermitteln ist dies nicht problematisch eine Anzeige kann daher f r weit entfernte Symbole unterbleiben Autovermietung Schlie lich k nnte man sich noch vorstellen ber die Gr e von I ine Symbolen quantitative Eigenschaften von Elementen zu verdeutlichen Eigenschaftsmarkierung so beispielsweise den unterschiedliche Umf
125. en gesprochen wird Auch einzelne Methoden k nnen als final gekennzeichnet werden um deren Redefinition im Einzelnen zu verhindern 5 1 4 Zugriffsmodi Im Sinne eines Information Hiding m chte man nicht alle Entitatselemente einer Klasse nach au en sichtbar machen Dazu werden in Java die Zugriffsmodifizierer public private und protected verwendet die bei der Deklaration eines Entit tselements angegeben werden k n nen und dessen Zugriffsmodus bestimmen Folgende Tabelle 5 1 zeigt die Semantik der ver schiedenen Zugriffsmodi wobei der Modus default vorliegt wenn kein Zugriffsmodifizierer angegeben wurde Zugriff Semantik private Entit tselement ist nur innerhalb der Entitat sichtbar default Entitatselement ist innerhalb des Paketes der Entitat sichtbar protected Entitatselement ist innerhalb des Paketes der Entitat und innerhalb aller erweiternden Entitaten sichtbar public Entit tselement ist uneingeschr nkt nach au en sichtbar Tabelle 5 1 Semantik der Zugriffmodi 25 Ein 3D Klassenbrowser f r Java 5 Strukturmodelle f r Java Software Man erkennt wie die Beschrankungen ausgehend von private immer weiter gelockert werden In diesem Sinne wird in vorliegender Arbeit von einer Rangordnung der Zugriffsmodi ge sprochen Fur diese gilt private lt default lt protected lt public Auch fur Klassen selbst kann ein Zugriffsmodus bestimmt werden Normalerweise sind hier nur die Modi public und default m gli
126. en gleichen Sachverhalt anzeigen W hrend in einem aber eine grobe bersicht ber den Gesamtzusammenhang gegeben wird erfolgt im anderem Fenster eine detaillierte Darstellung eines kleinen Ausschnittes Problematisch st da der Betrachter selbst den Zusammenhang zwischen beiden Fenstern immer wieder neu erkennen mu Hilfreich ist es hier wenn im bersichtsfenster markiert ist welcher Ausschnitt auch detailliert dargestellt wird 42 Ein 3D Klassenbrowser f r Java 7 Einige Visualisierungstechniken und systeme 7 2 Visualisierungssysteme Neben der Beschreibungen von Visualisierungstechniken finden sich n der Literatur auch Vorstellungen von implementierten dreidimensionalen Visualisierungssystemen Die Systeme basieren auf Visualisierungstechniken die haufig implizit mitbeschrieben werden Diese Techniken konnten teilweise fur diese Arbeit verwendet werden Daher werden 1m folgenden verschiedene Systeme und die dort umgesetzten Visualisierungstechniken beschrieben Zun chst werden Vogue und VRCS vorgestellt Mit ArchView wird danach ein System zur Darstellung von Software Schichtenarchitekturen charakterisiert vgl Abschnitt 7 2 2 SchlieBlich wird im Abschnitt 7 2 3 NestedVision3D beschrieben 7 2 1 Vogue und VRCS Eine spezielle Form der Nutzung des dreidimensionalen Raumes liegt im Vogue Framework vor das von Koike vorgestellt wurde Ko193 Hier werden mehrere zweidimensionale Darstellungen zu einer dreidimensionalen Dar
127. en k nnen Dazu wird der in Java integrierte Serialisierungsmechanismus f r Objektstrukturen genutzt Dieser ist beraus einfach zu benutzen Es reicht bereits aus dal die Klassen Strukturmodell und Gegebenheit die API Schnittstelle Serializable implementieren was trivial ist da die Schnittstelle keine Methoden deklariert 12 2 Paket analyse Dieses Paket implementiert die Analyse von Java Software Wie bereits erw hnt erfolgt dies unter der Verwendung eines Doclets mittels Javadoc Das Paket umfa t drei wesentliche Klassen Dazu z hlt die Klasse AnalyseFenster die den im Abschnitt 10 1 beschriebenen Konfigurationsdialog implementiert und als ausf hrbare Klasse den Startpunkt f r die Analyse darstellt Weiterhin gibt es die Klasse AnalyseAufrufFenster Von hier wird Javadoc 91 Ein 3D Klassenbrowser fiir Java 12 Realisierung des Systems aufgerufen Dort wird als Doclet eine Instanz der Klasse AnalyseDoclet verwendet in der uber die bereitgestellte Bibliothek Informationen uber den Quelltext gewonnen werden Auf diese Weise wird ein Strukturmodell aufgebaut Zentraler Bestandteil der zu Javadoc geh renden Bibliothek ist eine baumformige Erweiterungshierarchie von Schnittstellen mit der Wurzelschnittstelle Doc vgl Abbildung 12 2 Mit Hilfe dieser Schnittstellen k nnen Doclets Informationen ber die analysierte Soft ware abfragen Ein Doclet bekommt bei dessen Start eine Instanz von RootDoc bergeben RootDoc kapselt di
128. en k nnen soll werden mittels Fehlerklassen Abweichungen behandelt die so schwerwiegend sind da sie normalerweise zu Terminie rung eines Programmes f hren Neben Ausnahme und Fehlerklassen k nnen von einem Java Programmierer auch weitere Klassen als aufwerfbar deklariert werden wenn diese die Klasse Throwable erweitern Beispiel 5 12 Ausnahmebehandlung heet Buchung 3 1 2 void durchf hren Reservierung r 3 try Beleg b sucheBeleg 4 catch BelegException e System out println Fehler 3 6 Beleg sucheBeleg throws BelegException 7 Beleg b 8 if b istFehlerhaft throw new BelegException 9 return D 10 3 CELNI Ausnahmen und auch Fehler werden durch das Schl sselwort throw aufgeworfen Zeile 8 im obigen Beispiel Wenn Ausnahmen einer Klasse nicht innerhalb einer Methode behandelt werden mu die Klasse 1 d R 1m Kopf der Methoden als aufwerfbar deklariert werden Zeile 6 Bestimmte Ausnahmeklassen n mlich die die von der Klasse RuntimeException erben sowie auch die Fehlerklassen insgesamt m ssen nicht angegeben werden Die Zeilen 3 und 4 zeigen die Behandlung von Ausnahmen der Klasse BelegException durch die Ausgabe eines Textes Abbildung 5 4 Spezialisierungen von Klasse Im Metamodell werden die verschiedenen Arten von Klassen unterschieden um den ver schiedenen Einsatzgebieten Rechnung zu tragen Es werden drei Spezialisierungen vo
129. ende Darstellung l efert Tats chlich wurde dieser Ansatz auch in verschiedenen Systemen mit Erfolg implementiert FR91 BF96 RMS97 Ein Beispiel f r eine ber ein Federmodell erzeugte Darstellung wurde bereits in Abbildung 2 4 auf Seite 6 gegeben Bei einem Vorgehen mittels der Optimierung einer Kostenfunktion ist diese zun chst zu definieren wobei hier versucht werden mu quantifizierbare Eigenschaften von Darstellungen zu finden die deren Verst ndlichkeit bestimmen Beispiele hierf r k nnten die Anzahl der Kanten berschneidungen oder auch die durchschnittliche Entfernung zwischen den Knoten sein Zur Optimierung der Kostenfunktion wird relativ h ufig das S mulated Annealing Verfahren eingesetzt MRS95 CT96 DH96 7 1 8 Fish Eye Views Be der Darstellung von Strukturen ist es beraus wichtig dem Betrachter detaillierte Informationen zu liefern und gleichzeitig die Einbettung dieser Details in den Gesamtzusammenhang zu vermitteln Es wird dabei 1 d R nicht m glich sein alle Details der Struktur gleichzeitig und gleichberechtigt darzustellen da die Darstellung dann zu komplex 41 Ein 3D Klassenbrowser f r Java 7 Einige Visualisierungstechniken und systeme w rde Somit ist eine Auswahl zu treffen In diesem Zusammenhang wird vom Fokus und Kontextproblem gesprochen zu dessen L sung n der Literatur mehrere Ans tze vorgeschlagen werden Ein Ansatz stellen die Fish Eye Views FEV dar die auf Furnas zur ck gehen
130. enengraph f r das Applet verf gbar zu machen Weniger zeitintensiv ist das Laden wenn Prototypen fur Diagrammteile verwendet werden und so der bereits f r ein einzelnes Teil recht umfangreiche Teilgraph stark verkleinert werden kann Es wurden deshalb Prototypen f r die verschiedenen Diagrammteile sowie f r gr ere Ausschnitte aus den Teilen wie z B Eigenschaftsmarkierungen definiert Dies erfolgt in einer VRML Date Protos wrlI die dementsprechend zum graphik Paket zu z hlen ist Das gilt auch f r eine weitere VRML Datei mit Namen Leerszene wr welche die inital geladene und weitgehend leere Szene enth lt die sp ter dann mit dem Diagramm gef llt wird Diese Datei ist wie das Darstellungsapplet selbst in die HTML Datei Darstellung html eingebettet 112 Ein 3D Klassenbrowser fiir Java 12 Realisierung des Systems Man k nnte es bei der vorgestellten L sung problematisch finden da die Definition des Aussehens eines Teils nicht mehr Bestandteil der entsprechenden Teil Klasse ist Demgegen ber ergibt sich zus tzlich zum Performanzvorteil eine st rkere Trennung des diagramm Paketes vom EAl W hrend es beim zuerst beschriebenen Verfahren f r Teil Klassen notwendig war mit Abbildungen von VRML Knotentypen zu operieren wird von graphik Paket jetzt eine abstraktere Sicht angeboten es stellt Klassen zur Verf gung welche die Ausgabe von Diagrammteilen zusammen mit dem Erkennen von Manipulatione
131. enschaftsmarkierung Entit tssymbole linventartuh park ke rri kx 1 SS Aa o a Gewohnliche Klasse b Fehlerklasse c Ausnahmeklasse d Schnittstelle Abbildung D 1 Entit tssymbole Eigenschaftsmarkierung in der Mitte jeder Seite eines Entit tssymbols Zugriffsmodus Farbe Beispiel Instanziierbarkeit Form Beispiel public Gr n abstrakt Kreis protected Orange e konkret Dreieck D default Rot final Dioden i B zeichen Ki private Grau y Tabelle D 1 Farbkodierung der Zugriffsmodi Tabelle D 2 Formkodierung der Instanziierbarkeit Autovermietung Ausf hrbarkeit durch zwei Rechtecke Abbildung D 2 Eigenschaftsmarkierung bei ausf hrbaren Klassen 130 Ein 3D Klassenbrowser f r Java D Verwendete dreidimensionale Notation Paket und Paketzusammenfassungssymbol Abbildung D 3 Beispiel fur Paketzusammenfassungssymbol Paketsymbol analog Gruppensymbole g2 a Normal b fiir Hierarchien Abbildung D 4 Gruppensymbole Symbolbeschriftung Symbolbeschriftungen bestehen aus bis zu zwei Zeilen wobei die untere gr er geschriebene Zeile f r den Namen und die obere Zeile ggf f r Paketangaben genutzt wird Je nach Einstellung vgl Beschreibung Einstellungsfenster 1m Abschnitt 10 8 werden in der unteren Zeile einer Symbolbeschriftung anhand eines Pr fix und eines Postfix weitere Informationen angezeigt Pr fix Aufbau ai a A Symbol verankert i T Symbol teilweise isoli
132. ensional im Titel f hren vgl z B SMMOO Zur ckzuf hren ist dies auf die immer weiter steigende Leistungsf higkeit aktueller Computersysteme Insbesondere zu nennen st hier das Aufkommen sogenannter 3D Graphikbeschleunigerkarten f r die weit verbreiteten Personal Computer in den letzten Jahren Diese Karten erm glichen eine Verlagerung der teilweise sehr aufwendigen Berechnungen f r dreidimensionale Graphiken von der Software zur Hardware wodurch diese um ein vielfaches beschleunigt werden Aber das wachsende Interesse an dreidimensionalen Visualisierungen nur mit einer aktuellen Steigerung der verf gbaren Computerleistung zu begr nden greift zu kurz Bereits vor mehr als zehn Jahren wurde 1m SemNet Projekt versucht durch die Anwendung dreidimensionaler Computergraphik die Effektivit t von Visualisierungen gro er Wissensdatenbanken zu verbessern FPF88 Wodurch begr ndet sich dann aber das Interesse an dreidimensionalen Visualisierungen Wie kann der Einsatz dreidimensionaler Graphiken zur Milderung den oben genannten Problem beitragen bzw welche Vorteile k nnen erwartet werden Darauf soll m folgenden ausf hrlicher eingegangen werden Ein besonders augenf lliger Vorteil ergibt sich bei der Darstellung mathematischer Funktionen in Koordinatensystemen Hier steht eine Achse mehr zur Verf gung die mit einer Bedeutung versehen werden kann Abbildung 2 5 zeigt den durch eine Funktionen beschriebenen Zusammenhang zwischen e
133. ensionalen Visualisierungen allein nicht zwangsl ufig immer zu expressiven Darstellungen f hrt Die gleichzeitige Darstellung aller Gegebenheiten einer Software ist auch hier oft nicht moglich Die Gr e darstellbarer Sachverhalte bleibt begrenzt wenn die Grenze auch erweitert wird wie dies z B die Verwendung von Cone Trees f r Klassenhierarchien zeigt Durch die schiere Vielzahl der Elemente und Beziehungen in nicht trivialer Software bleiben weitere Mechanismen notwendig die auch im Zweidimensionalen m glich und n tzlich sind wie z B die Gruppenbildung oder die Verwendung von Filtermechanismen Zwei Nachteile dreidimensionaler Visualisierungen m ssen genannt werden Beide sind allerdings nicht prinzipieller Natur sondern beziehen sich auf mangelnde Hardwareunterst tzung Zum einen ist das Fehlen eines Tiefeneindrucks bei der Projektion der Szene auf dem Bildschirm ein Problem das alleine durch Schatten nicht ausger umt werden kann Zwar kann mit einer permanenten Bewegung der Szene gut ein Gef hl von Tiefe vermittelt werden die damit einhergehende st ndige Ver nderung der Anzeige erschwert es aber s ch auf ausgew hlte Bereiche der Darstellung zu konzentrieren da es oft 118 Ein 3D Klassenbrowser f r Java 13 Bewertung und Ausblick schon nicht einfach ist diese 1m Blick zu behalten Es ist aber zu erwarten da Eye Shutter Brillen oder dergleichen dieses Problem beheben Leider stand wahrend dieser Arbeit derartiges nic
134. er HTML Dokumentation zu einem Diggeramm 82 Konzeption und Implementierung eines dreidimensionalen Klassenbrowser fur Java 10 6 STRUKTURIEREN VON DIAGRAMMEN MENU STRUKTUR ccccccccceccecceeeseeeeeeeeeeeeeeeeeseeeeeeeeeeeeeeeeeeeeeeeees 83 10 6 1 IN OV UU ON CD ON nenn ee een ee ee 83 10 6 2 PGK CIZUSGININCT GSSUN CN u een ehe ee 83 10 6 3 E 83 10 6 4 ANORANUNZEN eege 84 10 7 SCHNELLZUGRIFF AUF FUNKTIONEN UBER DIE SYMBOLLEISTE ccccccesesssseceececeeeeessssaceeeeeeeessssaaeeeeeees 85 10 8 GLOBALE EINSTELLUNGEN MEN DIAGRAMM cccccccccccccccccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeseessseessseesseeeess 86 H YRMEALESBASISTECHNOLOGIE E 87 12 REALISIERUNG DESSYSTEMS sisirin E E ar E EE 90 12 1 EN EN RAR er BI EE E EEN 90 122 PAKET ANALYSE EE 9 12 3 PAKET DARSTELLUNG ars ansehe 94 12 4 PAKET DARSTELLUNG GUT ar en ee ee A 94 12 3 PAKET SD RSTBELUNG DIAGRAMM unse en einen 95 12 94 Diere keras ena ON eege ue seines ferne eich 95 12 932 Initialisierung der internen EE deed 97 12 33 Persistenz und Abgleich von reell 98 12 5 4 Sichtbarkeit VON Didgrammieilen 2 uni ahead R 101 12 5 5 Optische Zusammenfassung und Trennung von Pieilen 102 12 5 6 EE ee ak acct ch args ee an 102 123 7 DOIManager DokuManager und Einblendunge Mauger 102 12 5 8 GPUPDIEFUNDZ EE 105 12 5 9 Manipulationen ER 105 12 6 PAKET DARSTELLUNG DIAGRAMM ANORDNUNG cccccsccssccssccsccescesccesscescesscesccessesscesscessensc
135. er eingelesenen Visualisierung kann nun in Ansicht genommen werden d h sie wird uber eine Anzeigekomponente realisiert Allerdings werden vor allem die gerade erst initialisierten Diagramme 1 d R nicht hinreichend expressiv sein so da Benutzer des Systems aufgefordert sind deren Ausdruckskraft durch Manipulationen zu verbessern Unterst tzt werden sie dabei durch eine Bibliothek von Visualisierungstechniken in der Skizze angedeutet durch VT bis VT Ver nderte Diagramme k nnen gespeichert werden was mit Diagramm in der Skizze angedeutet werden soll Zudem kann ein Export im VRML Format erfolgen Beide verwendeten Programme das zur Analyse und das zur Darstellung sind n Java implementiert Das Analyseprogramm besteht aus einer Java Applikation die eine graphische Benutzungsoberfl che f r ein sog Doclet realisiert Doclets stehen im Zusammenhang mit dem Java Dokumentierungswerkzeug Javadoc welches zum Java Development Kit JDK JDK geh rt hnlich zu den bekannten Java Applets die in die Darstellung einer HTML Seite durch einen HTML Browser eingebunden werden k nnen Doclets n neueren Versionen von Javadoc ab Version 1 2 n den Vorgang der Dokumentationserzeugung eingebunden werden Der Vorteil dieses Ansatzes liegt darin da Doclets durch Javadoc bereits eine weitgehend aufbereitete Sicht auf den Quelltext haben Javadoc stellt Methoden zur Verf gung die es bspw erlauben auf einfachem Weg die in einer Klasse deklari
136. er fiir Java 12 Realisierung des Systems Interpolation aus den im Filterfenster angegeben Transparenzwerten fur nahe und maximal entfernte Pfeile Beim Durchlauf durch die alte Pfeilentfernungstabelle wird fur jeden Eintrag gepruft ob ein entsprechender Eintrag auch in der neuen Tabelle enthalten ist Durch die Realisierung als Hash Tabellen kann dies verh ltnism ig schnell festgestellt werden Ist in der neuen Tabelle kein Eintrag vorhanden so wird die Transparenz des entsprechenden Pfeils wieder auf den maximalen Wert gesetzt Nach diesem Durchlauf wurde allen Pfeilen ein korrekter Trans parenzwert zugeordnet und die Behandlung des Selektionswechsels durch den DOIManagers ist abgeschlossen 12 5 8 Gruppierung von Symbolen Symbole k nnen zu Gruppen zusammengefa t werden die ikonifiziert werden k nnen wobei f r ikonifizierte Gruppen Abh ngigkeiten darzustellen sind Ein Gruppe wird konstruiert indem die Klasse GruppenSymbol instanziiert wird Diese sowohl f r Gruppensymbole in Zylinder als auch in Kegelformen genutzte Klasse bietet die Methode selektionGruppierbar mit der gepr ft werden kann ob die aktuell selektierten Symbole eine Gruppe bilden k nnen Eine Menge von Symbolen kann gruppiert werden wenn alle enthaltenen Symbol denselben Parent besitzen kein Symbol ein Gruppensymbol st und kein Symbol bereits zu einer anderen Gruppe geh rt Nach der Pr fung wird mit gruppiereSelektion die Gruppierung durchgef hrt Dazu me
137. er vom formalem Typ Used erwartet haufig auch Metho den von Used aufgerufen so dal3 eine Benutzung zur Methodendeklaration und mindestens eine Benutzung zur Implementierung vorliegen Da es wenig Sinn macht alle diese Benut zungen zu visualisieren wird bereits im Strukturmodell einer darzustellenden Software eine Verdichtung vorgenommen Das Vorliegen einer oder mehrerer Benutzungen einer Entitat Used durch eine Entitat User wird daher durch eine Use Instanz use modelliert Bei dieser verweist use von auf die Modellierung von User und use nach auf die Modellierung von U sed Uber Instanzen der Klasse Use werden verschiedene Eigenschaften der vorhandenen Be nutzungen modelliert vgl auch Abbildung 5 5 Diese werden in Tabelle 5 2 auf nach folgender Seite fur use beschrieben 32 Ein 3D Klassenbrowser f r Java 5 Strukturmodelle f r Java Software Modellierung Semantik use zugriff H chster Zugriffsmodus der bei den Benutzungen von Used durch User auftritt use alsFeld Die Variable ist genau dann mit true belegt wenn mindestens eine Be nutzung als Feld vorliegt Welche der vier Formen diese Benutzung hat ist dabei unerheblich use als Var Die Variable ist genau dann mit true belegt wenn mindestens eine Be nutzung zur Variablendeklaration vorliegt Dies ist unabhangig davon ob es sich dabei um eine Benutzung als Feld handelt oder nicht use zugriffFeld H chster Zugriffsmodus der bei den Benutzungen von Used durch User al
138. erden In Java wird keine Mehrfacherbung unterstutzt d h eine Klasse kann maximal eine direkte Superklasse haben Genauer besitzen Klassen in Java exakt eine direkte Superklasse Zwar ist die Verwendung von extends bei der Deklaration einer Klasse optional wird aber keine direk te Superklasse angegeben so ist die besondere Klasse Object die direkte Superklasse Diese entstammt der zu Java geh renden Klassenbibliothek Sie ist die einzige Klasse in Java die keine direkte Superklasse besitzt Die Erweiterung ist transitiv d h Klassen sind nicht nur Erweiterungen ihrer jeweiligen di rekten Superklasse sondern auch von deren direkter Superklasse usw Dies druckt sich in der Definition der Begriffe Subklasse und Superklasse aus Eine Klasse A ist genau dann Subklas se von C wenn e A direkte Subklasse von C ist oder e eine Klasse B existiert mit A Subklasse von B und B Subklasse von C Weiterhin heiBt C genau dann Superklasse von A wenn A Subklasse von C ist Klassen bilden zusammen mit ihren Erweiterungsbeziehungen eine Hierarchie Dementspre chend wird nachfolgend auch von Klassen Erweiterungs oder auch Vererbungshierarchien gesprochen 5 1 2 Redefinitionen Eine Erweiterung kann mit Redefinitionen von Methoden einher gehen Eine Redefinition liegt vor wenn in einer Subklasse eine nicht statische Methode deklariert wird welche den selben Namen und dieselben formalen Parameter besitzt wie eine bereits n einer Superklasse
139. eren Visualisierungstechniken und systemen Diese bieten sich als Ausgangspunkt f r eigene berlegungen zur Antwort auf die zweite konzeptionelle Frage Wie sollen Softwarestrukturvisualisierungen aufgebaut sein an Einige interessante Arbei ten werden daher im folgenden vorgestellt Dies erfolgt zweigeteilt zun chst f r Visualisierungstechniken und dann f r Visualisierungssysteme F r eine ausf hrliche und auch andere Techniken und Systeme umfassende Vorstellung vgl You96 Eng95 oder W n97 7 1 Visualisierungstechniken 7 1 1 Semiotische Prinzipen nach Franck und Ware Franck und Ware untersuchten M glichkeiten wie Netzwerke aus Knoten und Kanten in drei Dimensionen geeignet dargestellt werden k nnen FW94 Dabe betrachteten s e konkret die Darstellung von C Programmen S e zeigen sechs sogenannte semiotische Prinzipen auf die im folgenden vorgestellt werden K rperf rmige Elementdarstellung Darzustellende Elemente wie z B die Klassen einer objektorientierten Programmes sollen als Objekte dargestellt werden Mit Objekten s nd dabei graphische K rper wie beispielsweise Quader Kugeln etc gemeint Obwohl in der Arbeit von Franck und Ware der Begriff Objekt statt K rper verwendet wird wird nachfolgend von K rpern oder auch dreidimensionalen Symbolen gesprochen da s ch dadurch eine klare Trennung zum eingef hrten allgemeinen Begriff des graphischen Objektes ergibt Durch die k rperhafte Form wird nach
140. ert keine Angabe f r a Symbol nicht i V Symbol vollstandig verankert isoliert keine Angabe f ri Symbol nicht isoliert Wenn ein Symbol weder verankert noch isoliert st entfallen die eckigen Klammern Postfix bei einem Paketsymbol In das Paketsymbol sind Symbole von direkten Subpaketen geschachtelt bei einem Entit tssymbol In das Entitatssymbol sind Symbole von direkten inneren Entit ten geschachtelt leer keine entsprechende Schachtelung Beispiele AT awt V datatranfer rmit 131 Ein 3D Klassenbrowser f r Java D Verwendete dreidimensionale Notation D 2 Pfeile Arten Be zer a Benutzer benutzt Benutzte b Importeur importiert Import Subklasse Superklasse Abhaengiger Unabhaengiger c Subklassel erweitert Superklasse d Abhaengiger ist abh ngig von Unabh ngiger Asussere Subklasse2 Superschnittstelle Innere Aeussere e Subklasse2 implementiert Superschnittstelle d Innere ist inneres Element von Aeussere Abbildung D 5 Verwendete Arten von Pfeilen und ihre Bedeutung Details von Benutzungen ba a a Variablenbenutzung b Feldbenutzung Die Zugriffsmodi einer Benutzungen werden ber die Farben der Tabelle D 1 dargestellt Abbildung D 6 Anzeige der Details einer Benutzung Details von Abh ngigkeiten Abh ngigkeitspfeile besitzen an der Spitze Farbmarkierungen die
141. erten Methoden und die dazugeh rigen Quelltextkommentare abzufragen Die Entwicklung eines eigenen Parsers w re bei weitem aufwendiger gewesen Die Darstellung wird in der Hauptsache implementiert durch ein Java Applet das in eine HTML Seite eingebettet ist Ebenfalls in diese Seite integriert ist eine VRML Szene Diese wird durch einen als Plugin fur einen HTML Browser vorliegenden und als Anzeige komponente verwendeten VRML Browser dargestellt VRML Plugin und Java Applet k nnen ber eine standardisierte Schnittstelle dem External Authoring Interface EAI Mar97 miteinander kommunizieren und so Diagramme erzeugen und an ihnen Ver n derungen vornehmen Entsprechende Steuerdaten die zwischen Applet und VRML Plugin ausgetauscht werden sind in der Abbildung 9 1 als EAI bezeichnet F r die Verwendung eines VRML Browser spricht insbesondere da dieser Navigations m glichkeiten zum Durchwandern der dreidimensionalen Szene bereitstellt die so nicht eigenst ndig entwickelt werden m ssen Weiterhin zeichnet sich insbesondere der verwendete VRML Browser Cosmo Player COSMO durch eine gute Darstellungsqualitat aus Zudem konnten mit VRML flexibler Ideen ausprobiert werden als bspw be der Benutzung einer Klassenbibliothek wie z B der Java 3D API da ein h herer Abstraktionsgrad geboten wird Schlie lich erheben die verwendeten Komponenten den Anspruch auf Plattform unabh ngigkeit womit diese auch f r das Visualisierungssystem erzi
142. ertung des Erreichten sowie einen Ausblick auf weitere Entwicklungsm glichkeiten liefert Ein 3D Klassenbrowser f r Java 2 Motivation 2 Motivation In diesem Kapitel werden vier Fragen betrachtet Zunachst wird aufgezeigt warum fur diese Arbeit Java als Grundlage gewahlt wurde Abschnitt 2 1 Dann wird kurz darauf eingegangen warum man Visualisierungen berhaupt verwendet 2 2 Danach werden etwas ausf hrlicher Probleme beschrieben die bei Visualisierungen auftreten k nnen 2 3 Vor allem wird in diesem Kap tel aber untersucht warum man hoffen darf da drei dimensionale Visualisierungen einige dieser Probleme lindern 2 4 2 1 Warum Java Die Vorstellung der Programmiersprache Java Im Jahr 1995 durch die Firma Sun war Aus gangspunkt einer Welle von verschiedenartigen publizierten Beitragen zur Sprache auf den Markt gebrachten Entwicklungsumgebungen und auch einer Reihe sonstiger Werkzeuge Innerhalb kurzer Zeit gelangte Java zu einem hohen Bekanntheitsgrad Die Sprache l t s ch durch die folgenden Eigenschaften charakterisieren K h96 objektorientiert einfach z B durch die Beschr nkung auf wenige Konstrukte robust z B durch eine strenge Typisierung und den Verzicht auf Zeigerarithmetik plattformunabh ngig durch einen interpretativen Ansatz und eine umfangreiche und standardisierte Klassenbibliothek sicher in dem Sinne als da die Handlungsm glichkeiten eines Java Programmes durch de
143. esseessensees 106 12 6 1 Modellierung VOW ANnoranunzen nn 106 1202 EE 107 12 7 PAKET DARSTELLUNG DIAGRAMM AUSRICHTUNG cssscssccssccssccscccsccesccscccsccssccscccsccnscesssescesscescessees 109 12 8 PAKET D ABSTEELUNG GRAPHIK ur Malte een nee een 112 12 8 1 Performante graphische Realisierung von Dioggrommen 112 12 8 2 e EE 113 12 8 3 Performante Aktualisierung der Darstellun2 2 22 3 114 12 8 4 ENEE A ASA AI A EEE ee 114 12 9 BERSICHT BER DIE REALISIERUNG DER VISUALISIERUNGSTECHNIKEN 115 Teil IV Abschlu IS BEWERTUNG UNDAUSBLICK 2 22 22 2 2 117 E LITERATUR cro EE seele 121 Anh nge ANHANG A INHALT DER BEILIEGENDEN CD ROM sssssssssccccccccccessessssscccccccccccecssesssssscococccessssssssso 127 ANHANG B DAS WERKZEUG JS MERGE ssocicsccciccivctecsscscisactsveciessesscasesacscxsussccesacsistcnsscauecaasversecsecsecectisevacs 128 ANHANG C MODIFIKATIONEN DER VRML PROTOTYPEN ssecssessssssscccccccccccessssesssssoccecccesssessssoo 129 ANHANG D VERWENDETE DREIDIMENSIONALE NOTATION oeeesesssssssscccccccssssssssssocoocccccccesssessssso 130 vi Konzeption und Implementierung eines dreidimensionalen Klassenbrowser fur Java Abbildungsverzeichnis 2 12 et zur N 1sual sieryne senken 4 2 2 Darstellung eines Sachverhalts mit und ohne berschneidungen s s ssssererererererererersrerererersrsrsrs 5 2 3 Strukturierte und unstrukturierte Darstellung eines Graphens ccc ccccccccccccccc
144. etet es sich an die Darstellung des Graphen ebenfalls gem des Ablaufs zu strukturieren vgl Abbildung 2 3 a verfehlte Anordnung b Strukturierung gem zeitlichem Ablauf Abbildung 2 3 Strukturierte und unstrukturierte Darstellung eines Graphens mit Aktivit ten als Knoten und der vorgeschriebenen Reihenfolge als Kanten Mit einer Unstrukturiertheit geht h ufig das Problem einher dal Pfeile zwischen Symbolen unverh ltnism ig lang werden Start und Endpunkt eines Pfeils k nnen dann nicht mehr auf einen Blick erfa t werden Dies ist besonders schwerwiegend wenn die Darstellung des Graphen mittels eines Computers erfolgt Hier wird es aufgrund der begrenzten Monitorgr e und aufl sung nicht immer m glich sein den gesamten Graphen gleichzeitig zu pr sentieren so dal dieser nur ausschnittsweise oder verkleinert dargestellt werden kann Bei langen Pfeilen ist die Wahrscheinlichkeit h her da einer der beiden Endpunkte nicht 1m momentan dargestellten Ausschnitt zu sehen ist und dieser somit gewechselt werden mu was f r den Betrachter einen zus tzlichen Aufwand beinhaltet Auch eine Verkleinerung der Darstellung Ein 3D Klassenbrowser f r Java 2 Motivation kann nicht immer Abhilfe schaffen da dann u U wichtige Details nicht mehr erkennbar sind und somit ein standiger Wechsel zwischen einer verkleinerten Sicht und einer detaillierten Sicht erforderlich wird Das Problem der Unstrukturiertheit verstarkt sich
145. ets Zweite kapselt Eigenheiten des verwendeten HTML Browsers Dies sind insbesondere ein ggf notwendiger spezifischer Verbindungsaufbau zum EAI und die Unterst tzung des Lesens und Schreibens von Dateien durch die Anforderung von Berechtigungen beim HTML Browser 12 4 Paket darstellung gui Dieses Paket implementiert die 1m Kapitel 10 beschriebene Benutzungsoberfl che der Darstellungskomponente des J3Browsers Dazu wird die Klassenbibliothek Swing verwendet vel bspw WC98 Das Paket umfa t eine Singleton Klasse f r jedes komplexere 94 Ein 3D Klassenbrowser fiir Java 12 Realisierung des Systems Bildschirmfenster des Darstellungsteils des J3Browsers Diese Klassen erben alle von der Klasse J3BFenster die selbst von der Swing Klasse JFrame erbt Fur sehr einfache Fenster die bspw nur aus einer Textmeldung mit einer Ja Nein Frage bestehen bietet Swing die Klasse JOptionPane Diese wird nach M glichkeit auch f r den J3Browser genutzt wobei die Verwendung durch die Klasse MessageFenster gekapselt wird die fur verschiedene Fragen Meldungen usw eigene Methoden bereitstellt Neben den Klassen f r Bildschirmfenster umfa t das Paket noch die Singleton Klasse Menu welche die Men zeile zusammen mit der Symbolleiste implementiert sowie die Singleton Klasse Statuszeile und eine Reihe von Hilfeklassen die entstanden sind weil einige Klassen so komplex wurden da ihre Funktionalit t weiter unterteilt werden mu te 12 5
146. eute Analyse ver ndert hat so da ein Abgleich erforderlich wird Ver n derungen in den Beziehungen zwischen den Elementen wie bspw Benutzungen und Importe sind dabei unproblematisch da die entsprechenden Pfeile immer neu erzeugt werden d h nicht Bestandteil der Darstellungsdatei sind Zu beachten ist aber da Elemente hinzugekommen oder auch weggefallen sein k nnen Sind Elemente hinzugekommen wird der Benutzer w hrend des Ladevorgangs gefragt ob entsprechende Symbole erzeugt werden sollen Symbole f r weggefallene Elemente werden automatisch gel scht wor ber der 76 Ein 3D Klassenbrowser f r Java 10 Benutzung des Systems Benutzer informiert wird Umbenennungen von Elementen zu denen auch Ver nderungen wie bspw das Wechseln der Paketzugehorigkeit von Klassen gez hlt werden da sich hierbei die vollst ndig qualifi zierenden Namen ndern werden als ein Wegfall des urspr nglichen Elements zusammen mit einem Hinzukommen eines neuen Elements interpretiert Diagramme k nnen nicht geschlossen werden Statt dessen ist ein Neustart des J3Browsers erforderlich Beim Netscape Communicator erfolgt dieser sinnvollerweise durch Bet tigung der Schaltfl che Neu laden des Communicators bei gedr ckter Umstelltaste Vor dem Laden oder Speichern k nnen einige Optionen festgelegt werden So kann beim Laden bestimmt werden ob bei Abhangigkeitspfeilen Farbmarkierungen f r die vorliegenden Beziehungen erzeugt werden sollen ob
147. fa t sich mit der Anordnung einzelner Elemente von Benutzungsschnittstellen Eine Visual sierungs technik sollte diese Gruppenbildung unterst tzen Abbildung 8 23 Gruppensymbole Hierdurch k nnten die Entit ten einer Gruppe die derzeit nicht Schwerpunkt der Betrachtung sind n einem Symbol zusammengefa t werden das im folgenden als Gruppensymbol bezeichnet wird Besonders h ufig k nnen Entitaten die eine Hierarchie w e z B eine Vererbungshierarchie bilden als eine Gruppe angesehen werden Zur Verdeutlichung bietet sich eine spezielle Variante des Gruppensymbols f r Hierarchien an vgl Abbildung 8 23 Beide Formen des Gruppensymbols verdecken die Symbole der n der jeweiligen Gruppe enthaltenen Entit ten vollst ndig Hier kann von einer ikonifizierten Ans cht gesprochen werden S nnvollerweise k nnen auch hier die gruppierten Symbole verkleinert n das Gruppensymbol geschachtelt werden damit ein Betrachter sich uber den Aufbau der Gruppe informieren kann ohne die Ikonifizierung aufheben zu m ssen In der offenen Ansicht s nd die Entit tssymbole deutlich sichtbar Die Gruppenzugeh rigkeit k nnte wieder durch Schachtelung kenntlich gemacht werden als flexibler hat es sich aber erwiesen in der offenen Ans cht auf die Darstellung des Gruppensymbols zu verzichten und alle Symbole f r Entit ten einer Gruppe tempor r hervorzuheben wenn eines der Symbol ausgew hlt wurde Dies kann z B durch die Ver nderung ihrer Farbe
148. ftware Der Rest dieses Kapitels ist wie folgt gegliedert In den Abschnitten 8 2 bis 8 6 werden Visualisierungstechniken f r verschiedenartige Elemente und Beziehungen besprochen Dabei wird eine Notation verwendet die zuvor im Abschnitt 8 1 vorgestellt wurde Im Abschnitt 8 2 wird auf die Darstellung von Entitaten und ihrer Beziehungen eingegangen Es werden Erweiterungen zwischen Klassen vgl Abschnitt 8 2 1 sowie zwischen Schnittstellen 8 2 2 betrachtet anschlie end Implementierungen von Schnittstellen durch Klassen 8 2 3 und Benutzungen zwischen Entitaten 8 2 4 Danach wird auf Pakete eingegangen 8 3 wobei die Darstellung der Paketzugehorigkeit von Entitaten 8 3 1 sowie die Prasentation von Pakethierarchien 8 3 2 zu klaren ist Werden mehrere Pakete auf der in Abbildung 8 1 gezeigten Art dargestellt so kann es zu u U langen Pfeilen zwischen den Symbolen fur Entitaten verschiedener Pakete kommen Dadurch sind Beziehungen nicht mehr leicht erkennbar Abschnitt 8 4 behandelt dieses Problem indem das Zusammenfassen von Paketen 8 4 1 ein temporares Einblenden von Entitatssymbolen in fremde Paketsymbole 8 4 2 und eine Anzeige von Pfeilbeschreibungen 8 4 3 vorgeschlagen wird Die gleichzeitige Anzeige aller Gegebenheiten einer Software kann auch im Dreidimen sionalen schnell zu einer Uberfrachtung der Darstellung f hren Im Abschnitt 8 5 werden Ma nahmen diskutiert um die Anzahl der dargestellten Pfeile 8 5 1 und
149. g stehenden Elemente ermittelt werden Die Aufnahme eines Pfeils in das Diagramm geschieht dadurch da der Pfeil dem in der Schachtelungshierarchie tiefsten Symbol welches die beiden verbundenen Symbole noch umschlie t als inneres Diagramm teil hinzugef gt wird Um die Kante f r einen Pfeil finden zu k nnen verwaltet die Klasse Kante eine statische Variable mit einer Tabelle durch die jedes Paar von Symbolen zwischen denen mindestens ein Pfeil existiert mit einer Kante verbunden ist Die Pfeilrichtung ist dabei unerheblich Diese Tabelle wird w hrend einer Pfeilinitialisierung f r ein aus dem Start und Endsymbol bestehendes Paar abgefragt Wird bei dieser Abfrage keine Kante gefunden weil vorher noch kein Pfeil zwischen dem Symbolpaar existierte so instanziiert die Abfragemethode eine neue Kante und nimmt sie in die Tabelle auf Erzeugen von Abhangigkeitspfeilen Die Klasse PfeilErzeuger ist ebenfalls fur das Erzeugen von Abhangigkeitspfeilen zust ndig Dies geschieht n der Methode erzeugeAbhaengigkeits pfeile auf der Grundlage der im ersten Initialisierungsschritt berechneten Schachtelung von Symbolen und der m dritten Schritt entstandenen Pfeile Graphische Realisierung W hrend der Realisierung werden von den Teilen des Diagramms Eigenschaften der dargestellten Gegebenheiten ausgelesen und graphisch umgesetzt Dieser Vorgang basiert auf den Entitaten des Pakets darstellung graphik und wird daher bei der Beschreibung dieses P
150. galt es Beispiele f r Java Software mit nicht trivialem Umfang zu finden anhand derer ein Konzept zur Visualisierung entwickelt werden konnte Dabei stellte sich heraus da der Quelltext derartiger Software kaum frei verf gbar ist Das Verwenden von Quelltexten bietet sich aber aus praktischen Gr nden als Basis f r das Erzeugen von Visualisierung gegen ber Alternativen w e z B das Benutzen des Bytekodes einer Software an So wurde als Softwarebeispiel vor allem die Java API in der Version 1 1 8 herangezogen Im Verlauf der Arbeit konnte auch zunehmend die bis dahin erstellte Implementierung verwendet werden Zus tzlich wurde ein am Lehrstuhl f r Software technologie des Fachbereich Informatik der Universitat Dortmund erstelltes System zur multimedialen Pr sentation des Altenberger Doms AD1300 vgl z B AIf99 als Beispiel genutzt Tabelle 6 1 nennt einige Daten ber die Gr e der Beispiele In der Tabelle findet sich die w hrend dieser Arbeit erstellte Implementierung unter dem Namen J3Browser Java API J3Browser AD1300 Quelltextgr e Quelltextdateien 679 190 82 Quelltextzeilen 150289 39797 14712 Elemente gesamt 767 260 98 Klassen Schnittstellen Pakete 609 134 24 232 17 11 80 9 9 Beziehungen gesamt 5278 1476 422 Zugehorigkeiten gesamt 762 289 99 PP EP EE 12 743 7 10 249 30 5 89 5 Verwendungen gesamt 4516 1187 330 Use Erw 2243 479 611 116 132 29 Impl Import 178 1616 40 420 10 159 Sonst
151. gl GHJ 96 S 127ff Abbildung 12 1 Paketstruktur des Systems Derartige Klassen werden deshalb auch als Singleton Klassen bezeichnet Eine Bezeichnung die zur Vereinfachung in diesem Text auch f r Klassen beibehalten wird welche das Singleton Muster nicht implementieren aber trotz dem nur einmal im System instanziiert werden Das System wurde unter Verwendung der Entwicklungsumgebung JBuilder Standard 2 0 implementiert JBuilder Diese Umgebung wurde vor allem deshalb gew hlt weil sie dem Autor bereits seit l ngerem vertraut ist 12 1 Paket strukturmodell Das Strukturmodell einer Java Software modelliert die 1m Quelltext deklarierten Elemente sowie deren Beziehungen Das Paket strukturmodell enth lt Entit ten mit denen Struktur modelle verwaltet werden Diese sind weitgehend so aufgebaut wie es bei der Vorstellung des Metamodells f r Strukturmodell im Kapitel 5 besprochen wurde Eine bersicht ber das Paket liefert daher die Abbildung 5 6 auf der Seite 33 dieser Arbeit Einige nderungen waren f r die praktische Umsetzung aber dennoch notwendig so z B die Einf hrung eindeutig identifizierender Namen auch f r Beziehungen Hierzu wurde die entsprechende Variable name von Element nach Gegebenheit verschoben Ein Beziehungs name wird durch eine Zusammensetzung der Namen der in Beziehung stehenden Elemente sowie einem K rzel f r die Art der Beziehung z B Erw f r Erweiterungen gebildet Die Klasse Stru
152. gl Abbildung 8 20 Die Paketzugeh rigkeit der Entitaten mu in Zusammenfassungssymbolen allerdings auf andere Art kenntlich gemacht werden z B durch die Farbgebung die Verwendung von Texturen oder eine erweiterte Beschriftung Die Darstellung von Importen zwischen den Entitaten kann sich an dem orientieren was m Abschnitt 8 2 4 f r Benutzungen gesagt wurde 59 Ein 3D Klassenbrowser f r Java 8 Visualisierungstechniken fur Java Software 8 4 2 Temporare Symboleinblendung Wegen u U langer Pfeile zwischen Symbolen fur Entit ten verschiedener Pakete kann es schwierig sein Beziehungen zwischen diesen zu erkennen Als Abhilfe hierf r wurden Paket zusammenfassungen eingef hrt Besch ftigt sich der Betrachter aber gerade mit einer speziel len Entit t so mag es hm bereits gen gen wenn er dargestellt bekommt zu welchen Entitaten aus anderen Paketen diese in Beziehung steht Bildet er hierzu eine Zusammen fassung so mu er zun chst selbst ermitteln welche Pakete berhaupt zusammenzufassen sind Zudem mu er sich in der erstellten Zusammenfassung erst neu orientieren Dabei wird die interessierende Entitat w hrend der Erforschung einer Software h ufig wechseln so da st ndig neue Zusammenfassungen gebildet und alte aufgel st werden m ten Es st daher n tzlich dem Betrachter ber die mit einer ausgew hlten Entit t in Beziehung stehenden Entit ten zu informieren ohne da extra eine Zusammenfassung erzeugt werde
153. gsdateien die gleichnamige Symbole enthalten ist nicht m glich Die verschiedenen Pfeilnegativlisten der Darstellungsdateien werden vereint 128 Ein 3D Klassenbrowser f r Java C Dokumentanzeige auf Symbolwanden Anhang C Dokumentanzeige auf Symbolwanden Die Darstellung von Dokumentation auf Symbolwanden ist wenig zweckm ig und ver gr ert den Szenengraph stark Deshalb ist sie in der auf der CD ROM enthaltenen Version der Datei Protos wrl welche die ben tigten VRML Prototypen definiert nicht vorgesehen Will man sich diese Moglichkeit jedoch einmal anschauen so ist die Datei zu ver ndern Dies geschieht auf einfache Weise dadurch da alle Vorkommen der Zeichenfolge WANDTEXT in der Datei gesucht werden Diese Vorkommen finden sich immer in einer eigenen Zeile In der jeweils darauffolgenden Zeile mu das Kommentarzeichen entfernt werden Beispiel ANDTEXT exposedField MFString wandtext wird zu ANDTEXT exposedField MFString wandtext Gleichzeitig ist beim Laden eines Diagramms die Option Dokumente auf Symbolw nden anzeigen zu aktivieren 129 Ein 3D Klassenbrowser f r Java D Verwendete dreidimensionale Notation Anhang D Verwendete dreidimensionale Notation Dieses Anhang liefert eine Ubersicht tiber die gesamte verwendete dreidimensionale Notation D 1 Symbole Die Farbe und Gr e von Symbolen kann frei bestimmt werden Entitatssymbole besitzen auf jeder Seite eine Eig
154. he ist das System in die Pakete analyse strukturmodell und darstellung gegliedert Das Paket util besitzt lediglich unterst tzende Funktion in dem es z B Klassen f r Dateiein und ausgabe oder mathematische Vektoren bereitstellt Das Paket merge realisiert das Werkzeug j3merge mit dem Darstellungsdateien zusammengef hrt werden k nnen vgl Anhang B Die Aufgaben der br gen Pakete lauten im einzelnen analyse Erzeugen von Strukturmodellen aus dem Quelltext zu visualisierender Java Software strukturmodell Speichern und Bereitstellen von Strukturmodellen darstellung Graphische Darstellung von Strukturmodellen und Manipulation der Darstellung In den n chsten acht Abschnitten wird etwas genauer auf diese drei Pakete eingegangen Der letzte Abschnitt dieses Kapitels bietet eine bersicht ber die Stellen der Implementierung die der Realisierung der im Kapitel 8 vorgestellten Visualisierungstechniken dienen Beim Entwurf des Systems wurden einige Entwurfs muster eingesetzt Dabei handelt es sich um be w hrte L sungsideen zu immer wiederkehrenden Entwurfsproblemen Oes98 S 63 Vielfach wurde das Observer Muster eingesetzt das es erlaubt alle von einem Objekt abh ngigen Objekte sog Ob server oder auch Listener des Objekts ber dessen Zustands nderungen zu informieren vgl GHJ 96 l S 293ff F r Klassen von denen zur Laufzeit genau eine Instanz existieren soll bietet sich das Singleton Muster an v
155. hen In der sich anschlie enden Konsolidierungsphase wurde der vorhandene Rahmen zusammen mit den eingebetteten Visualisierungstechniken berarbeitet Dabei wurde das Design in eini gen Punkten redigiert sowie eine verbesserte Benutzungsschnittstelle erstellt so da aus dem Rahmen ein noch immer prototypisches Visualisierungssystem entstand Das Testen die ses Systems war ebenfalls Bestandteil der Konsolidierungsphase Zudem hatte sich w hrend der Experimentierphase gezeigt da auch am Metamodell einige kleinere nderungen sinn voll sind Den Abschlu dieser Arbeit bildeten eine Bewertung des Erreichten und ein Ausblick auf wei tere Entwicklungsmoglichkeiten vgl Teil IV 20 Ein 3D Klassenbrowser f r Java 5 Strukturmodelle f r Java Software 5 Strukturmodelle fur Java Software Bevor die Frage untersucht werden kann wie Visualisierungen von Softwarestrukturen sinn voll aufzubauen sind mu zun chst gekl rt werden welche Aspekte n solchen Visualisierun gen berhaupt zu ber cksichtigen s nd Als Antwort auf d e Frage Welche Sprachkonzepte von Java sollen visualisiert werden wird in diesem Kapitel ein Metamodell f r sogenannte Strukturmodelle entwickelt Strukturmodelle beschreiben die Anwendung verschiedener in Java zur Verf gung stehender Konzepte zur Gliederung einer Software Das Metamodell wie derum legt fest welche Konzepte n Strukturmodellen ber cksichtigt werden F r das hier vorgestellt
156. hics Principles and Practice 2 Edition Addison Wesley Reading Massachusetts U S A 1990 L FENS R D JONG 3D Visualization of Software Architectures In Communication of the ACM Vol 41 No 12 S 73 78 1998 K M FAIRCHILD S E POLTROCK G W FURNAS SemNet Three Dimensional Graphic Representations of Large Knowledge Bases In Cognitive Science and its Applications for Human Computer Interaction Ed Raymond Guindon Lawrence Erlbaum 201 233 1988 T M J FRUCHTERMAN E M REINGOLD Graph Drawing by Force directed Placement In Software Practice amp Expierience 21 11 1129 1164 1991 G W FURNAS The fisheye view a new look at structured files Technical Report Bell Laboratories Technical Memorandum 81 11221 9 1981 G FRANCK C WARE Representing Nodes and Arcs in 3D Networks In A L Ambler T D Kimura Proceedings IEEE Symposium on Visual Languages October 4 7 1994 St Louis Missouri IEEE Computer Society Press S 189 190 1994 122 Ein 3D Klassenbrowser f r Java GHJ 96 GJS96 HC98 J3D JDK KC98 Koi93 K h96 KY93 Lea97 Lei99 LRP95 LS87 Mar97 14 Literatur E GAMMA R HELM R JOHNSON J VLISSIDES Design Patterns Elements of Reusable Object Oriented Software Addison Wesley Amsterdam 1996 J GOSLING B Joy G STEELE The Java Language Specification 1 Edition Addison Wesley Amsterdam 1996 J HU
157. hn befriedigenden Ergebnis gelangt Dazu mu ihm ein Satz von Techniken zur Verf gung gestellt werden aus denen er w hlen kann Es entsteht damit eine Art Baukasten f r V isualisierungen Der Baukasten sollte zweckm igerweise aus den hier vorgestellten Techniken gebildet werden wobei Erg nzungen sicher vorstellbar sind Es gilt aber auch als zweite wichtige Anforderung den Aufwand f r das Anfertigen von Visualisierungen nach M glichkeit gering zu halten Dies kann vor allem dadurch geschehen dal dem Benutzer nicht zugemutet wird Diagramme vom Grunde auf selbst anzufertigen Vielmehr sollte ihm anfanglich eine halbwegs geeignete Ansicht prasentiert werden die er dann nach seinen W nschen weiter verfeinern kann zumal auch ber cksichtigt werden mu dal der Benutzer am Anfang seiner Arbeit die zu visualisierende Software vielleicht nicht ausreichend kennt um bereits eine genaue Vorstellung ber hrer Darstellung zu haben Diese Vorstellung kann er sich durch das Experimentieren mit verschiedenen Techniken anhand der anf nglichen Pr sentation erarbeiten Da eine Darstellung die zumindest ann hernd top down oder auch ebenenf rmig strukturiert ist bereits eine gute bersicht liefern kann und hier zudem die kombinierte Darstellung verschiedener Sprachkonzepte leicht m glich st bieten sich diese beiden Techniken f r initiale Darstellungen an Im n chsten Teil dieser Arbeit w rd ein Visualisierungssyste
158. hrt dabei zu Problemen da der Innenraum von Cone Trees bereits so stark genutzt ist da es schnell zu berschneidungen kommt wenn bspw viele Benutzungsbeziehungen zwischen den enthaltenen Klassen bestehen Verst rkt wird dieses Problem noch durch die in der Cone Tree Technik integrierte interaktive Drehung der einzelnen Kegel da durch die Drehung immer neue Anordnungen der Symbole entstehen welche den Verlauf der weiteren Pfeile nicht ber cksichtigen Auch die Darstellung als Baum ist diesbez glich problematisch Beziehungen zu Klassen au erhalb des Baumes k nnen relativ gut gezeigt werden Existieren aber viele andersartige Beziehungen zwischen den Klassen der Erweiterungshierarchie 53 Ein 3D Klassenbrowser f r Java 8 Visualisierungstechniken fiir Java Software kommt es h ufig zu berschneidungen F r solche Situationen wird die nachfolgend vorgestellte Visualisierungstechnik vorgeschlagen die kegelf rmige Darstellung vgl Abbildung 8 13 Hier werden alle Symbole auf der Mantelseite eines Kegels hnlich zur Baumdarstellung angeordnet Der Innenraum bleibt frei um andersartige Beziehungen anzuzeigen Weiterhin kann er auch genutzt werden um Entit ten aufzunehmen die zur Hierarchie vergleichsweise vielen Beziehungen haben vgl Abbildung 8 14 Existieren solche Beziehungen oder Entit ten aber nicht so bleibt der Innenraum des Kegels ungenutzt Hier ist die kegelformige Darstellung somit weniger geeignet Abbild
159. ht indem ein Graph aus Modulen der Software und Beziehungen zwischen diesen Modulen angezeigt wird Die Module werden dabei in quidistante Ebenen die parallel der XZ Ebene verlaufen angeordnet Genauer betrachtet handelt es sich bei ArchView um einen Generator f r Visualisierungen Mit verschiedenen anderen Werkzeugen werden Informationen ber die darzustellende Software gewonnen Diese denen als Eingabe f r ArchView das daraus Quelltext in einer Beschreibungssprache f r dreidimensionale Szenen erzeugt Als Beschreibungssprache wird dabei VRML eingesetzt Die so erzeugte Szene kann mit Hilfe eines beliebigen Anzeigeprogramm f r VRML betrachtet werden Ein Beispiel f r eine mit ArchView erzeugte Darstellung zeigt Abbildung 7 8 Hier werden verschiedenartige Module einer Software dargestellt die ber Importe miteinander verbunden sind Die Software ist dabei in f nf Schichten eingeteilt worden Abbildung 7 8 Beispiel einer Visualisierung mit ArchView Bei der rechnergestutzten Visualisierung von Graphen stellt sich die Frage wie Knoten und Kanten anzuordnen sind d h welche Positionen sie im Darstellungsraum einnehmen Prinzipiell sind zwei Vorgehensweisen m glich die Anordnung wird berechnet oder sie wird manuell von einem Benutzer des Visualisierungssystems angegeben Auf dem ersten Blick hat eine automatische Erzeugung Vorteile insbesondere im Hinblick auf den zu betreibenden Aufwand f r das Erstellen einer Visualisie
160. ht zur Verf gung Ein weiteres Problem ist es da die Navigation im dreidimensionalen Raum f r die ja eigentlich eine Nat rlichkeit erwartet wurde mit herk mmlichen zweidimensionalen Eingabeger ten wie Maus oder Joystick anf nglich schwierig ist und so erst nach einer gewissen Einarbeitungszeit halbwegs vernunftig navigiert werden kann Es gibt aber auch hier Entwicklungen von denen zu erwarten ist da sie Abhilfe schaffen Ger te wie z B Datenhandschuhe etc sind derzeit aber noch vergleichsweise kostenintensiv Konkreter auf den J3Browser bezogen ist die Erkenntnis da das implementierte Federmodell vielfach Ergebnisse liefert deren weitere Bearbeitung sich auf wenige Korrekturen beschr nken oder auch ganz entfallen kann zumindest wenn man nur auf einen ersten berblick ber eine Software abzielt Dabei ist es auff llig da bei einer Begrenzung der Federmodellanwendung auf zwei Dimensionen wie sie mit dem J3Browser m glich ist Darstellungen entstehen die weniger ansprechend und bersichtlich erscheinen z B weil sie weit mehr berschneidungen von Pfeilen enthalten Das Federmodell bietet aufgrund seiner Flexibilit t eine Vielzahl von Erweiterungs m glichkeiten Man kann sich die Modellierung unterschiedlichster Federn vorstellen durch deren Anwendung auch Beziehungen zwischen Elementen hervorgehoben werden k nnen die in der derzeitigen Implementierung noch keine Ber cksichtigung finden Beispielsweise
161. i nderungen des Blickwinkels so bewegt werden da sie lesbar bleiben Besitzt der darzustellende Sachverhalt mehrere Zust nde die graphisch unterschieden werden so kann bei einem Zustandswechsel Objektkonstanz durch animierte berg nge bewahrt bleiben Rekursivit t Bei einem rekursiven Aufbau des darzustellendem Sachverhalt sollten auch dessen Darstellung in graphischer Hinsicht rekursiv sein Ein gutes Beispiel hierf r ist die Zusammensetzung von Java Software aus Paketen die neben Entit ten auch untergeordnete Pakete besitzen k nnen und so weiter Die Visualisierung dieses Aufbaus soll nach Franck und Ware ebenfalls eine rekursive Struktur besitzen die z B dadurch erzielt werden kann da Symbole f r untergeordnete Pakete n Symbole f r bergeordnete Pakete geschachtelt werden wie dies auch g ngige Praxis ist Weiterhin sollten dann gleiche Arten von Beziehun gen zwischen den inneren oder den u eren Paketen oder Entit ten mit den gleichen Mechanismen dargestellt werden also z B durch gleichartige gestaltet Pfeile 7 1 2 Einfache Darstellungsformen f r Hierarchien Die baumformige Darstellung hierarchischer Strukturen ist weit verbreitet und kann als allgemein bekannt vorausgesetzt werden Sie soll hier nur kurz im Beispiel gezeigt werden vgl Abbildung 7 la auf nachfolgender Seite Im folgenden wird von einer baumf rmigen Hierarchie gesprochen wenn diese sich durch einen Baum darstellen l t Dies st der Fall
162. ich eine Ver nderung der z Koordinate zu unterbinden wenn nur ein zweidimensionales Layout gew nscht wird Gegen ber der Originalversion ist die Bedingung fur die Terminierung des Algorithmus ver ndert Bei Ryall Marks und Shieber wird terminiert wenn die kinetische Energie des Systems einen Schwellenwert unterschreitet Beim J3Browser wird auf die Berechnung dieser Energie verzichtet Vielmehr existiert ein sogenannter Layoutlistenern Bei jeder Aktualisierung der Bildschirmanzeige die alle AT Zeiteinheiten erfolgt wird der Listener gefragt ob das Layout fortgefuhrt werden soll Derzeit sind zwei Listenertypen vorgesehen Listener die wahrend der automatischen Ausrichtung verwendetet werden fordern eine Terminierung wenn der Benutzer dies ber die Benutzungsschnittstelle verlangt wohingegen Listener fur die temporare Einblendung eine vorgegebene Anzahl von Iterationen durch fuhren Es bleibt noch zu kl ren wie die Kraft einer Feder s auf einen Knoten n mittels feder kraft n s t berechnet wird Aus der durch k bezeichneten Konstante der Feder ihrer durch 7 bezeichneten Ruhel nge und ihrer sich aus der vorherigen Knotenpositionierung ergebenen Ausdehnung l t Ar ergibt sich der Betrag der Federkraft nach dem physikalischem Federgesetz mit federkraft nj s t ki l t At r Die Richtung der Kraft ist abh ngig von der Art der Feder Bei einer Federn zur Durchsetzung der Kantenlange wirkt die Kraft bspw entlang eine
163. ichung von Algor thmen gesucht so da zun chst vor allem von Algorithm Visualization oder auch Algorithm Animation gesprochen wurde Bekannte Systeme hierzu sind der Brown University Algorithm Simulator and Animator BALSA und Balsa II BS84 und Bro88 Daneben entstand der Begriff Program Visualization der als das Visualisieren von Datenstrukturen sowie Quelltexten verstanden werden kann Auch die visuelle Program mierung visual programming d h die Spezifikation eines Programmes durch Graphiken wird zur Program Visualization gez hlt Unter Softwarevisualisierung werden diese Termini zusammengefa t wobei gleichzeitig eine L sung vom einzelnen Programm hin zu komplexen Softwaresystemen erfolgt Informationsvisualisierung Information Visualization Eine Charakterisierung liefert Robertson mit Information Visualization attempts to display structural relationships and context that would be more difficult to detect by individual retrieval requests RCM93 Eine weitere gute Beschreibung liefert Zielonka mit Information Visualization uses 3D computer graphics and interactive animation to stimulate recognition of patterns and structure in information Zie95 allem die Fixierung auf dreidimensionale Graphik erscheint unn tig einschrankend Da Software eine Vielzahl struktureller Beziehungen enthalten kann die es darzustellen gilt sind Erkenntnisse der Informationsvisualisierung f r die vorliegende Arbeit hilfreich Wissensch
164. iefe 80 Ein 3D Klassenbrowser f r Java 10 Benutzung des Systems N Automatische Ausrichtung o x Abst nde Federkonstanten f r Pfeile Tmp Einblendung KniKe Vererbung 80 0 160 0 terationen 100 Kantenlange Ebenenabstand 5 0 KnKe Implementierung 80 0 11160 0 Federverst rkung 35 0 0 0 Set Verteilung KniKe Benutzung 8 0 16 0 Kantenl nge Sel 3 0 Minimalabstand 3 0 Kn Ke Import 8 0 16 0 Setzen Kn Ke Abh ngigkeit 8 0 16 0 Allgemeine Federkonstanten Ausf hrung K Verteilung 10 0 Anordnen Kn Ke Pakethierarchie 80 0 160 0 Alle Sichtbare gt Selektierte K Minimalabstand 0 0 Kn Ke Entitatsschachtelung 8 0 16 0 _ Positionskontrolle _ 2D Bild Refresh alle 1000 ms iteration Iter sek K Zentral 0 1 Start E Unterzeichnet von Abbildung 10 9 Fenster f r die automatische Ausrichtung Das Fenster gliedert sich in die Bereiche Abst nde allgemeine Federkonstanten Federkonstanten f r Pfeile tempor re Einblendung und Ausf hrung Im ersten Bereich Abst nde geht es darum gew nschte Abst nde zwischen Symbolen festzulegen Die Kantenl nge bestimmt dabei welchen Abstand durch Pfeile verbundene Symbole gew nschterma en haben sollen Der Ebenenabstand legt den gewollten Abstand der Y Koordinaten von Symbolen bei ebenenf rmiger Darstellung bzw bei
165. iefeneindruck gut unterst tzt werden 15 Ein 3D Klassenbrowser f r Java 3 Grundlagen kann vgl Abbildung 3 4 Deren Simulation ist vergleichsweise unaufwendig a Ohne Schatten b mit Schatten Abbildung 3 4 Unterst tzung des Tiefeneindrucks durch Schatten Nachdem nun die Motivation f r diese Arbeit beschrieben wurde und einige Grundlagen ein gef hrt wurden kann m nachfolgenden Kapitel als erster Schritt der Konzeption das Ziel der Arbeit pr zisiert werden 16 Teil II Konzeption Ein 3D Klassenbrowser f r Java 4 Ziel und Vorgehen 4 Ziel und Vorgehen 4 1 Ziel Ziel dieser Arbeit ist es ein Konzept f r einen Klassenbrowser f r Java Software aufzuzei gen der das Anfertigen und Betrachten von dreidimensionalen und expressiven Software strukturvisualisierungen erm glicht Zudem soll die Realisierbarkeit dieses Konzepts gezeigt werden Da Visualisierungen vor allem bei komplexen Sachverhalten s nnvoll sind mu der Klassen browser auch bei Software einsetzbar sein deren Umfang ber triviale Beispiele hinausgeht Daraus ergeben s ch zwei grundlegende Notwendigkeiten a Es m ssen Wege gefunden werden die Darstellung sinnvoll zu strukturieren und ggf zu filtern um einer Uberfrachtung entgegenzuwirken Dabei gilt es erwartete Vorteile der dreidimensionalen Visualisierung wie Nat rlichkeit etc vgl Kapitel 2 4 nach M glichkeit auszun tzen um expressive Visualisierungen zu erhalten
166. ige Daten max Klassenhierarchiegr e 144 21 22 max Schnittstellenhierarchiegr e 19 l l max Tiefe Entit tsschachtelungen l l l Tiefe Pakethierarchie 3 4 4 Tabelle 6 1 Daten zu den verwendeten Softwarebeispielen 1 Gez hlt inklusive aller Kommentare und Leerzeilen 2 Eine Menge durch Erweiterungsbeziehungen zusammenh ngender Entit ten bildet eine Hierarchie Angegeben ist die Anzahl der Entit ten in der Hierarchie welche die meisten Entit ten umfa t Implizite Erweiterungen der Klasse java lang Object wurden dabei nicht ber cksichtigt 34 Ein 3D Klassenbrowser f r Java 6 Verwendete Softwarebeispiele 3 Inden Softwarebeispielen J3Browser und AD1300 existieren keine Erweiterungs beziehungen zwischen Schnittstellen so da alle Schnittstellenhierarchien hier nur aus jeweils einer Schnittstelle bestehen 4 In keinem der Beispiele hat eine innere Klasse selbst innere Entit ten 5 Anzahl der spezifischen Bestanteile des vollst ndig qualifizierenden Namens des tiefsten Pakets in der Hierarchie Beispiel java awt event gt 3 Bestandteile de j3browser darstellung diagramm ausrichtung gt 4 Bestandteile da de nicht spezifisch f r den J3Browser ist 35 Ein 3D Klassenbrowser f r Java 7 Einige Visualisierungstechniken und systeme 7 Einige Visualisierungstechniken und systeme Im ersten Teil dieser Arbeit wurde bereits das SemNet Projekt angesprochen Es existieren eine Reihe von weit
167. ik geschachtelt erfolgen wobei Entit tssymbole in das entsprechende Paketsymbol eingebettet werden vgl Abbildung 8 18 Abbildung 8 18 Darstellung der Paketzugeh rigkeit mit Hilfe von Schachtelung Schachtelungen von Symbolen sind auch bei zweidimensionalen Darstellungen m glich Bei einer dreidimensionalen Darstellung ergibt sich aber neben der bereits einleitend erw hnten gr eren Deutlichkeit der Vorteil da der Betrachter seinen Standort wechseln und n das Paket eintauchen kann um sich so in diesem umzusehen und sich ber Details zu informieren Er kann nahtlos von einer Darstellung die einen berblick ber mehrerer Pakete liefert zu den Details eines Pakets wechseln Diese Nahtlosigkeit des bergangs fehlt bei herk mmlichen zweidimensionalen Visualisierungssystemen h ufig bei denen es wenn eine Umsetzung der Rapid Zooming Technik fehlt nur m glich ist aus vorgegebenen Skalierungsfaktoren auszuw hlen Die Ver nderung eines Skalierungsfaktors kann zu einer sprunghaften Ver nderung der Anzeige f hren nach der sich der Betrachter erst erneut orientieren mu Wird eine zweidimensionale Darstellung stark vergr ert so da auch Details von Symbolen tieferer Schachtelungsebenen sichtbar werden kann die Gesamt bersicht schnell verloren 57 Ein 3D Klassenbrowser f r Java 8 Visualisierungstechniken fur Java Software gehen Die vorangegangene Abbildung 8 18 macht deutlich wie die perspektivische Verzer
168. ikationselemente bei Cone rees 108 12 13 Berechnung der Drehspezifikationselemente bei Cone Trees cccecccccccccececeeceeceeeeeeeeeseeeeeeeeeeees 109 1244 Auban eines EE 110 Dr Enta VN OL sd nee een E 130 D 2 Eigenschaftsmarkierung bei ausf hrbaren Klassen 130 D 3 Beispiel f r Paketzusammenfassungssymbol ned Eegen 131 D4 ae e ie ee E 131 D 5 Verwendete Arten von Pfeilen und ihre Bedeutung 132 D6 Anzeige der Details einer THE eege edel deet ee deele 132 IX Konzeption und Implementierung eines dreidimensionalen Klassenbrowser fur Java Tabellenverzeichnis 3 12 Semantir der Z MOR M INO Ee 25 5 2 Eigenschaften von Benutzung CM a 33 6 1 Daten zu den verwendeten Softwarebeispielen ccccccccccccccceeeeceeeeeeeeeeeeeeeeeeeeeeeeesseeeeeeseeeeeeeeeeeees 34 BL Farbkodierone der ZU Cri SIMO Ct rennir a E a a a e oN 50 8 2 F rmkodierung d r Instanziierbarkeil ann u A A OEE 50 D 1 Farbkodierung der Zugriffsmodi see 130 D2 Formkodierane der Instanziierbarkett une 130 Abkurzungsverzeichnis 3D dreidimensional API Application Programming Interface AWT Abstract Window Toolkit BALSA Brown University Algorithm Simulator and Animator CAD Computer Aided Design DOI Degree of Interest EAI External Authoring Interface FAQ Frequently Asked Questions FEV Fish Eye View FSN File System Navigator GV3D GraphVision3D HCI Human Computer Interaction HTML Hypertext Markup Language JDK Java Development Kit LOD Lev
169. iner Kraft und einem Ort In der dreidimensionalen Darstellung kann zus tzlich noch der zeitliche Verlauf aufgetragen werden F r den Betrachter ergibt sich so ein Gesamtbild das er sonst erst durch die m hsamere Betrachtung und mentaler Integration mehrerer Graphiken die den Kraft Ort Zusammenhang zu verschiedenen Zeitpunkten angeben erlangt h tte Urtzabh ngige Cesarka nach D s ho fa i ha BE E Si Ee d d A Se GG 55560 b DO Ze _ D 1 d 3 4 5 G Ernierung rj Abbildung 2 5 Zwei und dreidimensionale Darstellung von Funktionen Werden Erwartungen die mit dem Einsatz der dreidimensionaler Visualisierung verbunden sind genannt so wird h ufig auf deren Nat rlichkeit verwiesen vgl z B W n97 S 58 f r Menschen ist das Leben in dreidimensionalen R umen t gliche Erfahrung Somit f llt es ihnen leicht sich im Raum zu lokalisieren Bei dreidimensionalen Graphiken kommt es schnell zu dem Effekt da sich der Betrachter in die dargestellte Szene hineinversetzt f hlt und sich in dieser wie in einem nat rlichen Raum lokalisieren kann wodurch die Navigation Ein 3D Klassenbrowser f r Java 2 Motivation in der Szene beg nstigt wird Bei einer zweidimensionalen Abbildungen ist ein solches gedankliches Hineingehen nicht zu erwarten Zudem hilft bei der Navigation in dreidimensionalen Darstellungen das r umliche Erinnerungsverm gen des Menschen Geeignete
170. inzipskizze n Abbildung 7 7 Die Z Achse repr sentiert dabei die Zeit Zus tzlich werden in der Mitte dieser Ebenen Symbole f r Versionen des Gesamtsystems dargestellt die mit den jeweiligen Dateiversionen verbunden sind Koike und Chu haben hr Versionsmanagementwerkzeug n der genannten Arbeit durch eine empirische Studie mit dem bekannten Werkzeug RCS verglichen Dabei stellen sie fest da mit RCS der Zeitbedarf f r eine typische Aufgabe das Auffinden und Auschecken der aktuellen Version einer Datei bis zu 4 6 mal l nger dauert als mit VRCS Sie r umen aber selbst kritisch ein da dies nicht alle n auf die dreidimensionale Visualisierung zur ck 43 Ein 3D Klassenbrowser f r Java 7 Einige Visualisierungstechniken und systeme zuf hren ist sondern auch darauf da bei VRCS eine graphische Benutzungsoberflache zur Verf gung steht w hrend bei RCS mit einer Kommandozeile gearbeitet werden mu Meiner Ansicht nach ist dieser Unterschied so schwerwiegend da die Zeitdifferenz vor allem darauf zur ckzuf hren ist Demnach w rde die Studie keinerlei R ckschl sse auf die N tzlichkeit dreidimensionaler Darstellungen erlauben 7 2 2 ArchView Ein weiteres Beispiel f r ein dreidimensionales Visualisierungssystem ist ArchView vorgestellt von Feijs und de Jong FJ98 Dabei handelt es sich um ein prototypisches System da vornehmlich der Visualisierung von Software mit Schichtenarchitekturen dient Dies geschie
171. ionsrestriktionen schwer durchzuhalten ist H ufig kommt es zu einem Wechsel des Blickwinkels vergleichbar einem Blick nach rechts oder links Dies kann als ein Hinweis auf die N tzlichkeit der zus tzlichen Navigationsmoglichkeiten im dreidimensionalen Raum und insbesondere der perspek tivischen Verkleinerung gewertet werden denn durch den Seitenblick wird diese auf die Ebene mit dem Diagramm angewendet und mehr vom Gesamtzusammenhang kommt ins Blickfeld Eine weitere Erfahrung ist es da es 1m Dreidimensionalen tats chlich schnell zu einem Gef hl des in die Szene hinein versetzt sein kommt ein Eindruck der bei der fl chigen Darstellung vollstandig entfallt Wahrend der Wanderungen durch die visualisierte Software verdichten sich die dargestellten Vererbungshierarchien Paketeinteilungen usw zu einem Gesamtbild Dabe hilft das r umliche Erinnerungsverm gen und die perspektivische Verzerrung die Orientierung zu bewahren Man wird zu ausgiebigen Rundg ngen motiviert die zu einer intensiven Besch ftigung mit der Software f hren So wurden dadurch z B w hrend dieser Arbeit eine Reihe von Zusammenh ngen in der komplexen Java Klassenbibliothek aufgedeckt die dem Autor trotz einiger Jahre praktischer Arbeit mit der Bibliothek noch unbekannt waren Dabei hat sich vor allem auch die Integration der Doku mentation in die dreidimensionale Darstellung bew hrt Es zeigt sich jedoch auch da der bergang von zwei zu dreidim
172. it eines Einsatzes beeinflussen vgl Kapitel 8 Dabei wird sich herausstellen da Ab nderungen und Erg nzungen zu den Techniken aus der Lite ratur notwendig sind Diese werden gleicherma en m Kapitel 8 erl utert Dort wird s ch e benfalls zeigen da es sinnvoll ist verschiedene Techniken zu kombinieren Im dritten Teil dieser Arbeit wird durch eine prototypische Implementierung die Realisierbar keit des Konzeptes gezeigt Dabei wird anhand der Vorstellung einer Benutzungsoberflache f r den Klassenbrowsers auch eine Anwort auf die letzte konzeptionelle Frage gegeben 4 2 Vorgehen Um das genannte Ziel zu erreichen wurden vier Phasen durchlaufen vgl bersicht in Abbil dung 4 1 In der ersten Phase der Vorbereitung galt es zun chst festzulegen welche Sprachkonzepte von Java visualisiert werden sollen Diese Festlegung f hrte zur Definition des Metamodells f r Strukturmodelle Anschlie end wurden dann Beispiele f r Java Software gesucht anhand derer ein Konzept zur Visualisierung entwickelt werden konnte Diese Bei spiele werden im Kapitel 6 nach der Vorstellung der Metamodells charakterisiert da hierzu einige der mit dem Metamodell eingef hrten Begriffe notwendig sind Vorbereitung Experimente Konsolidierung Abschlu Metamodell definieren VT Umsetzung Beispielsuche berarbeitung Bewertung Literaturrecherche Systemtest Ausblick _ Rahmen erstellen U Mie Abbildung 4 1 Ubersicht tiber das V
173. ius 1 5 0 Abh ngigkeit _ Pakethierarchie ee 195 Entitatsschachtelung Farben ok Abbruch E Unterzeichnet von Abbildung 10 12 Erzeugen eines Cone Trees Zuoberst kann ein Name fur die Anordnung vergeben werden Das entsprechende Feld ist mit dem Namen des Wurzelsymbols d h bei neuen Anordnungen dem des hauptselektierten Symbols vorbelegt Weiterhin kann der Abstand zwischen den Ebenen zweier Hierarchiestufen festlegt werden Auch besteht die M glichkeit zu entscheiden ob Dekorationen erzeugt werden sollen oder nicht Bei Dekorationen handelt es sich beispielsweise um die halbtransparenten Kegel der Cone Trees In der v erten Zeile ist fur neue Anordnungen nur die Option Neue Hierarchie anw hlbar Dies bedeutet da der Aufbau der darzustellenden Hierarchie anhand der zwischen den Symbolen verlaufenden Pfeile ermittelt werden soll Die Art der dabei aktiven Pfeile wird im rechten Bereich des Fensters festgelegt Wird hier bspw nur Erweiterung gew hlt besteht die erste Hierarchiestufe aus den Symbolen von denen aus mit einem Erweiterungspfeil auf das Wurzelsymbol gezeigt w rd Es k nnen auch Arten von Pfeilen als relevant erkl rt werden die f r Beziehungen verwendet werden die 1 d R nicht baumf rmig sind Hier wird durch einen Breitendurchlauf ab der Wurzel k nstlich eine Baumf rmigkeit erzeugt Weiterhin k nnen auch mehrere Arten gleichzeitig aktiviert werden um so z B aus Erweiterungen und Implemen
174. k nnen 10 3 Handhabung von Diagrammen Menu Diagramm Der erste Schritt bei der Arbeit mit dem Darstellungsteil des J3Browser ist es aus einem Strukturmodell ein neues Diagramm zu erzeugen oder ein bereits vorhandenes Diagramm zu laden Beide Funktionen werden m Men Diagramm aufgerufen vgl Abbildung 10 3 Weiterhin finden sich hier Funktionen um ver nderte Diagramme unter gleichem oder anderem Dateiname zu speichern Speichern und Speichern unter Zudem wird die M glichkeit geboten ein nn Diagramm als VRML Datei zu exportieren was deren See Betrachtung unabh ngig vom J3Browser erlaubt Es wird aber nur a ein statisches Abbild des Diagramms exportiert d h Interaktion wie z B Filtrierung ist mit dem Exportergebnis nicht m glich SchlieBlich kann die bereits aus der Analyse bekannte Statistik erneut abgerufen oder ein Bildschirmfenster f r allgemeine Ein stellungen ge ffnet werden vgl Abschnitt 10 8 Abbildung 10 3 Men Diagramm Strukturmodelle und Diagramme werden in verschiedenen Dateien gespeichert Diese werden als Strukturmodell bzw Darstellungsdateien bezeichnet Jede Darstellungsdate umfa t ein Diagramm und enth lt einen Verweis auf die zugrundeliegende Strukturmodelldatei die sich im selben Verzeichnis befinden mu Bei einem erneuten Einladen einer Darstellungsdatei kann der Umstand eintreten da sich das assoziierte Strukturmodell in der Zwischenzeit durch eine ern
175. k nnte man nach einer Erweiterung der Analyse und des Metamodells fur Strukturmodelle Federn zwischen den Entitaten einer Quelltextdate1 vorsehen und so diesen Zusammenhang betonen da es wie die Softwarebeispiele zeigen zu erwarten ist dal Entitaten zwischen denen ein besonders starker Bezug besteht in einer Datei deklariert werden Allerdings kann die gemeinsame Nutzung einer Datei nicht ber Doclets festgestellt werden Als Fernziel ist eine Abfragesprache denkbar mit der Elemente der visualisierten Software selektiert werden k nnen zwischen denen dann Federn gespannt werden Dem Betrachter wurde so die M glichkeit gegeben die Darstellung schnell auf sein gegenw rtiges Infor mationsbed rfnis anzupassen ohne auf vorgegebene Auswertungsm glichkeiten beschr nkt zu sein Beispielsweise k nne man wiederum bei erweiterter Analyse und erweitertem Metamodell Abfragen erm glichen bei denen alle Entit ten selektiert werden die eine speziellen Methode einer ausgew hlten Klasse aufrufen So k nnen Erkenntnisse dar ber gewonnen werden wo ein Ab ndern von Methoden besonders zu ber cksichtigen ist Trotz der guten Eignung des Federmodells st der Einsatz von B umen Cone Trees und Kegeln zur Akzentuierung von wichtigen Hierarchien aber weiterhin sinnvoll Es entstehen so pr gnante Bereiche n der Darstellung die mit Landmarken m nat rlichen Gel nde vergleichbar sind und damit die Wiedererkennung und Orientierung unterst tzen Zu
176. k Spektrum 22 2 S 88 98 1999 R L SOLLENBERGER P MILGRAM The effects of Stereoscopic and Rotational Displays in a Three Dimensional Path Tracing Task Human Factors 35 3 483 500 1993 SMM News Kundenzeitschrift und Katalog der Firma SMM Software GmbH Hechtenkaute 5 55257 Budenheim 5 Ausgabe M rz 2000 R TENNANT The 5th Wave In Computer Zeitung Vol 25 No 39 Konradin V Leinfelden Echterdingen S 2 September 1994 I G TOLLIS Graph Drawing and Information Visualization In ACM Computing Surveys 28 4es URL http www acm org pubs citations journals surveys 1996 28 4es al19 tollis December 1996 J TESLER S STRASNICK FSN The 3D File System Navigator Silicon Graphics Inc Mountain View CA 1992 Frequently Asked Questions FAQ der UseNet Gruppe comp graphics visualization Wird in der Version vom 6 2 1998 regelm ig gesendet von Eugene N Miya eugene marcy nas nasa gov 1998 auch auf beigliegender CD ROM enthalten K WALRATH M CAMPIONE The JFC Swing tutorial A Guide to Constructing GUIs Addison Wesley Reading Massachusetts u a 1998 C WARE G FRANCK Evaluation stereo and motion cues for visualizing information nets in three dimensions In ACM Transaction on Graphics 15 2 S 121 139 1996 C WARE D HUI G FRANCK Visualizing Object Oriented Software in Three Dimensions CASCON 93 IBM Centre for Advanced Studies Conference Proceedings S 612 620 1993 V W NSCHE
177. kann w hrend bei zweidimensionalen Darstellungen nur eine Ebene zur Verf gung steht Dabei ist es entscheidend dem Betrachter einen Eindruck von der Tiefe zu verschaffen in der ein bestimmter Bestandteil einer Darstellung plaziert ist Dieser kann bei der Projektion des dreidimensionalen Diagramms in eine Ebene wie z B einen Bildschirm teilweise verloren gehen Deshalb sind verschiedene Techniken entwickelt worden welche das Vermitteln eines Tiefeneindrucks unterst tzen sollen Eine umfassende Betrachtung dieser Unterst tzungs techniken findet sich beispielsweise in XM92 Die Techniken basieren teilweise auf spezieller Hardware wie z B Head Mounted Displays und Eye Shutter Brillen Es existieren aber auch Methoden die ohne Hardwareunterst tzung verwendet werden k nnen Hier sind z B eine Beleuchtung der Szene aus simulierten Lichtquellen oder ein simulierter Nebel der quasi ber die Darstellung gelegt wird zu nennen Ein gute Unterst tzung des Tiefeneindrucks ergibt sich auch durch eine permanente Bewegung der Darstellung Die Eignung einer permanenten Drehung wurde in einer Studie erwiesen WF96 Weiterhin hilft eine Schattierung der Szene Schatten die durch Objekte auf andere Objekte geworfen werden erfordern viel Rechenzeit und werden zudem durch g ngige Hilfen f r die Anwendungsentwicklung nicht unterst tzt Es hat sich aber gezeigt da insbesondere mittels der Verwendung von Schatten auf einem Boden der T
178. ket java awt der Java API das zur Realisierung graphischer Benutzungsoberfl chen dient 61 Entit ten Nicht immer wird eine gleichzeitige Anzeige aller Entit ten gew nscht sein Wie auch bei Benutzungen bietet sich zun chst eine Filtrierung der Entitatssymbole anhand ihrer Zugriffsmodi an Die Schachtelung von inneren Entitaten in u eren Klassen kann ebenfalls zur Reduktion genutzt werden Aufgrund der 62 Ein 3D Klassenbrowser f r Java 8 Visualisierungstechniken fur Java Software Tatsache da es sich hier um Zugehorigkeiten handelt bietet sich eine Darstellung mittels der Information Cubes Technik an die dazu f hrt da innere Entit ten optisch zur cktreten Dabe st es aber w e schon be der Paketzugeh rigkeit problematisch da die inneren Entit ten z B zu Erweiterungshierarchien geh ren k nnen eine Verwendung von Cone Trees etc aber durch die Schachtelung nicht mehr m glich ist Gerade der Einsatz von Cone Trees und dergleichen bietet aber einen weiteren Ansatz zu einer Reduktion bei der es dem Betrachter erm glicht wird tief n einer Hierarchie liegende und damit sehr spezielle Entit ten tempor r auszublenden Vielfach k nnen die Entit ten eines Pakets weiter unterteilt werden So l t s ch beispielsweise unter den Entit ten aus java awt u a eine Gruppe von Entitaten zur Realisierung allgemeiner Elemente einer Benutzungsschnittstelle wie Schaltkn pfe etc dentifizieren Eine weitere Gruppe be
179. kturmodell bietet Methoden an mit denen Gegebenheiten anhand hres Namens 90 Ein 3D Klassenbrowser fiir Java 12 Realisierung des Systems abgefragt werden k nnen Des weiteren werden die 1m Kapitel 5 identifizierten Eigenschaften von Gegebenheiten die dort als Attr bute oder auch Assoziationen modelliert sind n der Implementierung durch Variablen mit dem Zugriffsmodus private realisiert so da nur durch spezielle Methoden auf diese zugegriffen werden kann Hierdurch wird eine st rkere Kapselung erzielt Eine Variable kommentar vom Typ String ist mit entsprechenden Zugriffsmethoden zus tzlich vorhanden um den Quelltextkommentar von Elementen aufzunehmen Weiterhin existiert die Klasse Statistik deren Aufgabe es ist die nach der Analyse angezeigte und auch w hrend der Darstellung eines Diagramms abrufbare Statistik ber die n einem Strukturmodell enthaltenen Gegebenheiten zu berechnen F r die Klasse Gegebenheit und hre Subklassen wurde ferner eine Variante des Visitor Entwurfsmusters implementiert GHJ 96 S331ff Dazu existiert die Schnittstelle GegebenheitsVisitor die f r jede konkrete Subklasse X von Gegebenheit eine Methode der Form visitX X g deklariert In Gegebenheit wiederum gibt es eine abstrakte Methode accept GegebenheitsVisitor v welche n jeder konkreten Subklasse X so implementiert wird da die Methode visitX in v aufgerufen wird So kann ohne da die Klasse Gegebenheit oder eine ihrer Subklasse
180. kzeugs auch hier ist der Wechsel mit einem Orientierungsaufwand verbunden Bei h ufigen Wechseln die beim Erkunden eines Programmes durchaus zu erwarten sind kann dieser Aufwand schnell als sehr st rend empfunden werden Eine geeignete Darstellung von Dokumenten mu daher als integraler Bestandteil der Visualisierung gesehen werden 65 Ein 3D Klassenbrowser f r Java 8 Visualisierungstechniken fiir Java Software Die dreidimensionale Darstellung erm glicht es die Dokumente auf den Seitenwanden der Symbole darzustellen vgl Abbildung 8 27 Daraus ergibt sich eine nat rliche Integration mit der Navigation Um Details ber ein Element zu erfahren bewegt der Betrachter seinen Betrachtungsstandort auf das entsprechende Symbol zu so da der Text lesbar wird A EURER is an object having a graphical representation N that can be displayed on the screen and that can interact with the _ user Examples of components Abbildung 8 28 Darstellung von Dokumenten vor einem semitransparenten Hintergrund Daneben hat sich die Anzeige der Dokumentation 1m Vordergrund der dreidimensionalen Darstellung als geeignet erwiesen S e erfolgt vor einem semitransparenten Hintergrund so da das br ge Diagramm weiterhin wenn auch eingeschr nkt sichtbar bleibt vgl obige Abbildung 8 28 Gegen ber der Darstellung auf den Symbolw nden ergibt sich der Vorteil da der Text auch dann lesbar bleibt wenn der Betrachtungsstandort gegen
181. l an die Hauptselektion heranzuf hren was w hrend der Gestaltung h ufig sinnvoll einsetzbar ist Das Federmodell kann weiterhin auf die Ber cksichtigung der derzeit sichtbaren Symbole begrenzt werden Das Kontrollk stchen 2D schr nkt die Berechnung auf die X und Y Koordinaten von Symbolen ein Es dient der Verwendung des Federmodells in einer Ebene Mittels aktivierter Positionskontrolle kann verhindert werden da Symbole w hrend der Ausrichtung das umschlie ende Symbol verlassen Die Ausrichtung wird durch Anklicken der Schaltfl che Start begonnen deren Beschriftung dann auf Stop wechselt W hrend der Berechnung wird die Darstellung hin und wieder aktualisiert Wie h ufig dies geschieht kann eingestellt werden wobei wiederum die Hardwareleistungsf higkeit zu ber cksichtigen ist Ist man mit dem Ergebnis der Ausrichtung zufrieden oder w nscht man sich andere Parameter kann man die Berechnung ber die Schaltfl che Stop anhalten W hrend die Ausrichtung l uft wird die Anzahl der bereits durchgef hrten Iterationen angegeben Zudem wird angezeigt wieviel Iterationen pro Sekunden abgearbeitet werden 10 5 6 Darstellen der HTML Dokumentation zu einem Diagramm Die Anzeige der HTML Dokumentation die aus einem Quelltext gewonnen wurde erfolgt m Vordergrund des Darstellungsbereichs Es wird jeweils die Dokumentation zum hauptselektierten Symbol angeboten Mit der Anzeige w rd begonnen sobald der Befehl 82 Ein 3D
182. lasse Ausnahmeklasse oder Fehlerklasse k nnen direkt ber entsprechende Methoden von ClassDoc bzw PackageDoc abgefragt werden Etwas schwieriger ist es festzustellen ob eine Klasse ausfuhrbar ist Hier mu sowohl gepr ft werden ob die Klasse von Applet erbt und auch ob eine main Methode vorhanden ist ClassDoc bietet die Methode superclass an mit genauer eine Instanz einer Klasse die RootDoc implementiert Die Klassen welche die Schnittstellen der Bibliothek implementieren sind f r Doclets aber nicht sichtbar Im Folgenden wird daher vereinfachend von Instanzen einer Schnittstelle gesprochen Ein 3D Klassenbrowser fiir Java 12 Realisierung des Systems der die ClassDoc Instanz fur die direkte Superklasse einer Klasse abgerufen werden kann Um festzustellen ob eine Klasse von Applet erbt werden so die Superklassen dieser Klasse rekursiv durchlaufen und dabei nach einem ClassDoc f r Applet gesucht Um zu pr fen ob in einer Klasse eine main Methode vorhanden ist werden anhand der Methode methods von ClassDoc MethodDoc Instanzen fur alle Methoden der Klasse abgefragt Diese werden nach einer Methode mit dem Namen main durchsucht die auch den weiteren Anforderungen an eine main Methode gen gt es mu sich um eine statische Methode mit dem Zugriffsmodus public handeln die als Parameter ausschlie lich ein Feld von Strings erwartet Als zweiten Schritt der Analyse werden durch die Methode analysiereBeziehungen die Be ziehungen
183. lektiert das f r ein Element mit inneren Elementen steht d h also e n Paket mit Subpaketen oder eine Klasse mit inneren Entit ten so k nnen mit diesem Befehl deren Symbole in das selektierte Symbol geschachtelt werden Wird die Information Cube Technik f r ein selektiertes Symbol bereits angewendet st der Befehl mit einen H kchen versehen Seine erneute Anwahl f hrt dann dazu da die Schachtelung aufgehoben wird und bei entsprechender Filtereinstellung die Pakethierarchie bzw die Entitatsschachtelung wieder uber Pfeile angezeigt wird Symbole bei denen die Information Cube Technik angewendet wird werden auf Wunsch durch ein der Beschriftung nachgestellten Pluszeichen kenntlich gemacht da u ere Symbol optional auch so angezeigt werden k nnen da nicht in sie hinein geblickt werden kann 10 6 2 Paketzusammenfassungen Paketzusammenfassungen konnen uber den zweiten Befehl des Strukturments bearbeitet werden Besteht eine Selektion ausschlie lich aus Paketen k nnen diese zusammengefa t werden Ist eine bereits existierende Zusammenfassung selektiert kann diese w eder aufgel st werden 10 6 3 Gruppen Aus selektierten Symbolen kann eine Gruppe gebildet werden Gruppen m ssen benannt werden zudem ist das zu verwendende Symbol auszuw hlen Diese Auswahl sollte abh ngig davon erfolgen ob die selektierten Symbole eine baumf rmige Hierarchie bilden dann ist das Kegelsymbol zu verwenden oder nicht Im letztere
184. lgemeinen existieren z B durch die Verwendung von Klassenbibliotheken mehrere Hierarchien n einer Software F r jede einzelne Hierarchie stehen aufgrund der Baumf rmigkeit die m Abschnitt 8 2 1 genannten Visualisierungstechniken f r Klassenhierarchien zur Verf gung Allerdings mu deren Bewertung hier anders ausfallen So st die Verwendung einer Schachtelung von Symbolen d h der Information Cubes Technik an dieser Stelle eing ngiger als z B f r Vererbungs hierarchien Sie ist insbesondere dann angebracht wenn Subpakete als Details ihres Superpaketes gesehen werden sollen die in der Gesamtsicht weitgehend unwichtig und deshalb zu verdecken sind Bei der Schachtelung werden erst bei n herer Betrachtung eines Paketes dessen Subpakete deutlich sichtbar Will man jedoch die Pakethierarchien als Ganzes bersichtlich darstellen st die Verwendung von Cone Trees oder dergleichen besser ge eignet da zur Betrachtung tief in der Hierarchie liegender Subpakete bei der Information Cubes Technik erst ein Eintauchen in eine ganze Reihe von Symbolen erforderlich ist 8 4 Beziehungen zwischen Entit ten verschiedener Pakete Zwischen Entit ten verschiedener Pakete k nnen alle m Abschnitt 8 2 erw hnten Formen von Beziehungen bestehen zudem sind hier Importe zu erwarten Durch die Einteilung des dreidimensionalen Raumes in ausschlie lich f r ein Paket genutzte Bereiche kann es dazu kommen da zur Anzeige paket bergreifender Beziehu
185. m Paket ber Zugeh rigkeiten modelliert d h Entit ten geh ren zu jeweils einem Paket Von einer Verwendung wird n diesem Text gesprochen wenn bei der Deklaration eines Elements auf ein anderes Element verwiesen wird Beispiels weise k nnen wie in objektorientierten Programmiersprachen blich Klassen voneinander erben Weitere Beispiele werden nachfolgend noch gegeben Im folgenden werden zun chst Klassen n her betrachtet daran anschlie end Schnittstellen Abschnitte 5 1 und 5 2 Dabei werden auch zwei Beziehungsarten vorgestellt Erweiterun gen und Implementierungen ber die Deklaration von Klassen und Schnittstellen k nnen Typen geschaffen werden Auf weitere m gliche Typen wird m Abschnitt 5 3 eingegangen Im Abschnitt 5 4 werden Pakete sowie Importe zwischen Paketen erl utert Eine Besonderheit von Java ist die M glichkeit Deklarationen von Entitaten ineinander zu schachteln Dies wird im Abschnitt 5 5 gezeigt Abschnitt 5 6 geht auf sogenannte Ausnahmen Exceptions ein Abschnitt 5 7 kl rt wann von einer Benutzung einer Entitat durch eine andere gesprochen wird Abschlie end wird in Abschnitt 5 8 das entwickelte Metamodell noch einmal als Gan zes gezeigt 5 1 Klassen Wie z B auch bei Smalltalk oder Eiffel besteht Java Software in der Hauptsache aus Deklara tionen von Klassen die Schablonen f r gleichartige Objekte darstellen Objekte sind Instan zen von Klassen Innerhalb der Deklaration einer Klasse k nnen u
186. m vorgestellt in dem v ele der hier gezeigten Techniken prototypisch umgesetzt wurden 69 Teil III Ein Visualisierungssystem fur Java Software Ein 3D Klassenbrowser f r Java 9 Uberblick 9 berblick Dieser Teil der Arbeit beschreibt das entwickelte Visualisierungssystem f r Java Software dem der Name J3Browser f r Java 3D Klassenbrowser gegeben worden ist Zun chst wird in diesem Kapitel das System n seinem Aufbau und seiner Arbeitsweise um rissen wobei auch bestehende Einschr nkungen genannt werden Das Kapitel 10 beschreibt die Benutzung des System und gibt somit eine Antwort auf die dritte konzeptionelle Frage nach der Gestaltung einer Benutzungsoberfl che f r ein dreidimensionales Visualisierungs system Die beiden letzten Kapitel dieses Teils gehen auf die prototypische Implementierung ein Zunachst wird dabei kurz die Virtual Reality Modeling Language VRML charakterisiert die als Basistechnologie eingesetzt wurde AbschlieBend werden dann einige Entwurfsaspekte besprochen Die Installation des Systems wird hier nicht erl utert Hinweise hierzu sind auf der bei liegenden CD ROM zu finden vgl Anhang A Es wird ebenfalls nicht weiter auf das Werk zeug j3merge eingegangen das dazu dient verschiedene Diagramme zu vereinen vgl hierzu Anhang B 9 1 Aufbau und Arbeitsweise In Bro92 wird ein dreistufiges Verfahren f r die Arbeit von Visualisierungssystemen beschrieben das sich zusammenfassen l t z
187. menfassungen die temporare Symboleinblen dung sowie die Anzeige von Pfeilbeschreibungen umgesetzt Fur Paketzusammenfassungen ist die Klasse ZusammenfassungsSymbol verantwortlich Die Symboleinblendung erfolgt durch die Klasse EinblendungsManager Die Anzeige von Pfeilbeschreibungen geschieht in der Statuszeile welche dazu vom Ber hrungsmanager ber Pfeilber hrungen unterrichtet wird Klassen Statuszeile und BeruehrungsManager Die Pfeile zur Darstellung von Abh ngigkeiten zwischen verschiedenen Elementen werden ber die Klasse PfeilErzeuger erzeugt Fur die Degree of Interest Darstellung von Pfeilen ist die Klasse DO Manager verantwortlich Ein letzter Manager der DokuManager sorgt f r die Darstellung von Quelltextkommentaren in der dreidimensionalen Szene Fur die Ausrichtung von Symbolen ist das Paket darstellung diagramm ausrichtung verantwortlich wobei die Klasse GeometrieAusrichter f r geometrische Ausrichtungen auf Kreisen oder hnliches zust ndig ist w hrend die Klasse Federsystem die automatische Aus richtung mittels Federsystemsimulationen realisiert Hierdurch kann auch eine ebenenf rmige oder top down Darstellung erreicht werden Gleichzeitig ist die Klasse Federsystem fur die Aufwandsbegrenzung beim Anfertigen von Visualisierungen zentral da es durch s e m glich wird unaufwendig halbwegs geeignete Ansichten zu erstellen Das Filtern von Symbolen und Pfeilen eines Diagramms wird ber das Konzept der effektiven Sicht
188. mm ausrichtung Das Paket umfa t die manuelle und automatische Ausrichtung Die manuelle Ausrichtung umfa t z B die Ausrichtung von Symbolen auf Kreisen oder n Ebenen Hierf r st die Klasse GeometrieAusrichter verantwortlich Die automatische Ausrichtung erfolgt ber simulierte Federsysteme Fur die Simulation ist die Klasse Federsystem zust ndig Auf Federsysteme soll im folgenden etwas naher eingegangen werden Ein Federsystem f r die inneren Symbole eines u eren Symbols umfa t die folgenden Arten von Federn vgl auch Abbildung 12 14 auf nachfolgender Seite deren Dimensionierung s ch nach den Benutzereingaben im Fenster zur automatischen Ausrichtung richtet vgl Abschnitt 10 5 5 1 Zwei Federn f r jede Kante zwischen zwei inneren Symbolen dienen der Durchsetzung der gew nschten Kantenlange Art la bzw des gewollten Ebenenabstandes 1b Im letzten Fall geht nur die Differenz der Y Koordinaten der verbundenen Symbole in die Berechnung ein 2 Eine Feder von jedem inneren Symbol zum Mittelpunkt des u eren Symbols dient dazu das innere Symbol nahe am Mittelpunkt zu halten so da kompakte Darstellungen erzeugt 109 Ein 3D Klassenbrowser fiir Java 12 Realisierung des Systems werden k nnen 3 Eine Feder zwischen jedem Paar innerer Symbole sorgt daf r da Symbole voneinander weg streben Abh ngig von der aktuellen Entfernung zweier Symbole wird die entsprech ende Feder unterschiedlich dimensioniert un
189. n ber die in Darstellungsdateien gespeicherten Namen von Symbolen kann jedes Symbol mit dem gleichnamigen Element aus dem aktuellen Strukturmodell verbunden werden Dabei bekommen Elemente f r die ein Symbol gefunden wird eine Markierung Nachdem alle Symbole eingeladen wurden wird m Rahmen des Abgleichs gepr ft ob alle Elemente eine Markierung haben d h symbolisiert werden Die Namen der Elemente ohne Symbol werden gesammelt Der Benutzer des Systems kann entscheiden ob f r diese Elemente neue Symbole erzeugt werden sollen Dazu wurde von der Realisierung der Benutzungsoberfl che beim Initiieren des Ladevorgangs eine Instanz einer Implementierung der Schnittstelle AbgleichAsker bergeben Deren Methode frageAbgleich bekommt die gesammelten Namen der nicht symbolisierten Elemente sowie auch die der Symbole ohne Element bergeben Die derzeitige Implementierung pr ft lediglich ob berhaupt Namen vorhanden sind und gibt daraufhin eine entsprechende Meldung aus ggf zusammen mit einer R ckfrage nach der Instanziierung neuer Symbole Erweiterte Implementierungen k nnten diese Namen z B als Listen ausgeben um den Benutzer umfassender zu informieren Das Erzeugen neuer Symbole geschieht auf dieselbe Weise wie bei der In tialisierung eines Diagramms Auch das weitere Vorgehen gleicht der Initialisierung dem Erzeugen der Pfeile inkl der Abhangigkeitspfeile schlie t sich die graphische Realisierung an Bei der Pfeil erzeugung mitt
190. n Fur gewohnlich beschreibt man den Szenengraph allein anhand einer oder mehrerer Textdateien Um die Szene programmgesteuert zu ver ndern k nnen zwar spezielle Script Knoten verwendet werden deren M glichkeiten sind allerdings begrenzt Mehr Optionen bietet das External Authoring Interface EAI Mar97 Hier k nnen Java Applets zur Steuerung eingesetzt werden Dabei ist es Voraussetzung da als VRML Browser ein Plugin f r einen HTML Browser verwendet wird und die darzustellende Szene gemeinsam mit dem steuernden Applet in einer HTML Seite eingebettet ist Nachdem eine Verbindung zwischen Applet und dem VRML Browser hergestellt wurde kann durch den Szenengraph navigiert und Attribute k nnen ver ndert werden Das Applet kann zudem als Ziel fur Ereignisse fungieren Schlie lich ist es m glich weiteren VRML Quelltext zu erzeugen um den die dargestellte Szene erg nzt werden kann Gerade letzter Punkt wird f r den J3Browser ausgiebig genutzt Da bei der Verwendung des EAI zudem alle M glichkeiten von Java zur Verf gung stehen z B k nnen komplexe ar thmetische Berechnungen durchgef hrt und es k nnen graphische Benutzungsschnittstellen verwendet werden wurde f r den J3Browser das EAI anstatt Script Knoten benutzt 89 Ein 3D Klassenbrowser fiir Java 12 Realisierung des Systems 12 Realisierung des Systems Abbildung 12 1 zeigt den Aufbau des Systems anhand der vorhandenen Paketstruktur in UML Notation In der Hauptsac
191. n Anwender des Programmes beschr nkt werden k nnen und dieser es so z B verhindern kann da Programme unbekannten Ursprungs auf die Festplatte seines Rechners zugreifen Dagegen sprechen kritische Stimmen h ufig vom Performanzproblemen die mit der Plattformunabh ngigkeit einher gehen Ein weiterer Kritikpunkt ist z B das Fehlen generischer Klassen Nichtsdestoweniger scheint sich Java nachdem die Sprache l ngere Zeit in dem Ruf stand nur f r kleine Applikationen geeignet zu sein und hier insbesondere f r solche die im Zusammenhang zum bekanntem World Wide Web WWW stehen zunehmend auch in Bereichen vorzudringen die bis dato traditionellen Programmiersprachen vorbehalten waren wie z B das Hochleistungsrechnen Phi00 Mit immer weiter gefa ten Einsatzgebieten wird sich auch hier der Wunsch nach einer Werkzeugunterstitzung verst rken die ber das bis dato gebotene hinausgeht Insbesondere sind umfangreichere Java Programme zu erwarten zu deren Visualisierung neue Wege gefunden werden mussen Aber nicht nur die Popularit t spricht f r die Wahl von Java als Grundlage dieser Arbeit Java bietet zudem eine Vielzahl von Konzepten wie z B Klassen Schnittstellen Pakete Vererbung Implementierung usw vgl Kapitel 5 deren Visualisierung lohnend erscheint da durch ihre Anwendung der Aufbau eines Softwaresystems gepragt wird Einige dieser Konzepte finden sich auch in anderen objektorientierten Programmiersprachen wie z B C
192. n mu Dies kann dadurch geschehen da Symbole die mit einem ausgew hlten Entit ts symbol durch Pfeile verbunden s nd tempor r n die N he des ausgew hlten Symbols verschoben werden so da Beziehungen leichter ablesbar werden Bei einem Wechsel der Auswahl wird die alte Verschiebung r ckg ngig gemacht und eine neue erzeugt so da h ufige nderungen des Interessenschwerpunkts ber cksichtigt werden Da bei Einblendungen Entitatssymbole in den Bereich eines Paket oder Zusammenfassungs symbols gelangen zu dem sie eigentlich nicht geh ren m ssen sie von den zugeh rigen Symbolen unterschieden werden um Fehlinterpretationen zu vermeiden Dies kann z B durch leichte Transparenz oder ein Ausgrauen der eingeblendeten Symbole erfolgen 8 4 3 Anzeige von Pfeilbeschreibungen Eine weitere sehr einfache M glichkeit gegen das Problem der langen Pfeile vorzugehen ist es dem Betrachter zu gestatten jeweils einen Pfeil auszuw hlen und zu diesem dann an exponierter Stelle eine Beschreibung anzuzeigen aus der ersichtlich wird was f r eine Beziehung der Pfeil darstellt Dieses Vorgehen ist allerdings nur geeignet um eine spezielle Frage nach einem Pfeil zu kl ren Es wird kein berblick ber den gesamten Sachverhalt gezeigt 8 5 Reduktion der Darstellungskomplexitat Die gleichzeitige Anzeige alle Gegebenheiten einer Software f hrt aufgrund der Vielzahl von Pfeilen und Symbolen schnell zu einer berfrachtung der Darstellung
193. n und weitere Pfeile durch starke Transparenz in den Hintergrund zu stellen Um die Anzahl der dargestellten Symbole zu reduzieren ist die Visualisierung von inneren Entitaten durch Schachtelung sowie die Gruppierung von Symbolen zweckdienlich Bei der Darstellung von Hierarchien kann man es erlauben da Symbole f r tief in der Hierarchie liegende und damit sehr spezielle Elemente tempor r ausgeblendet werden Die Darstellung von Abh ngigkeiten zwischen Elementen Gruppen und Paketzusammen fassungen erlaubt die Betrachtung einer Softwarestruktur auf einem hohen Abstraktions 68 Ein 3D Klassenbrowser f r Java 8 Visualisierungstechniken fur Java Software niveau Um allerdings die Details einer Software zu verstehen ist die Anzeige zus tzlicher Dokumente wie z B der Quelltextkommentare der Elemente unabdingbar Hier hat sich die Integration der Anzeige in die dreidimensionale Szene und insbesondere die Darstellung vor einem semitransparenten Hintergrund bew hrt Die Auswahl der richtigen Visualisierungstechnik anhand der Rahmenbedingungen und der gew nschten Betonung erfordert stets auch ein gewisses Ma an Kreativit t Eine vollstan dige Automatisierung dieser Auswahl scheint deshalb kaum m glich Daher ist es eine grund legende Anforderung an ein Visualisierungssystem f r Softwarestrukturen ein gro es Ma an Flexibilit t zu bieten so da ein Benutzer mit verschiedenen Techniken experimentieren kann bis er zu einem fur i
194. n Fall wird das Zylindersymbol eingesetzt Das Gruppensymbol st ausschlie lich f r konifizierte Gruppen relevant Die 83 Ein 3D Klassenbrowser f r Java 10 Benutzung des Systems Ikonifizierung wird ber das Teilemen gesteuert Bei nicht ikonifizierten Gruppen kann die Zugeh rigkeit von Symbolen ber die Statuszeile ermittelt werden da hinter dem Namen des Symbols ggf der Name der Gruppe gezeigt wird Weiterhin kann ber Gruppen hervorheben veranla t werden da d e Ber hrung eines Symbols stets dazu f hrt da alle zur selben Gruppe geh renden Symbole hervorgehoben werden Vorhandene Gruppen k nnen ber das Strukturmen aufgel st werden 10 6 4 Anordnungen Cone Trees Kegel und B ume werden unter dem Begriff der Anordnung zusammengefa t Anordnungen werden gebildet indem das Symbol f r die Wurzel der darzustellenden Hierarchie selektiert und der Befehl Anordnung erzeugen m Strukturmen gew hlt wird Daraufhin erscheint ein Untermen und der Typ der Anordnung Cone Tree Kegel oder Baum kann bestimmt werden Es erscheint ein vom Typ abh ngiges Fenster die verschiedenen Masken sind jedoch sehr hnlich aufgebaut Abbildung 10 12 zeigt als Beispiel die Maske f r einen Cone Tree Name java awt Component Aktive Arten von Pfeilen Ebenenabstand 3 0 _ Benutzung vi Erweiterung OEO EE M _ Implementierung Neue Hierarchie _ nur Selektierte _ Import Startrad
195. n Klas se gebildet NKlasse f r normale Klassen AK asse fur Ausnahmeklassen und F Klasse f r Fehlerklassen Hierdurch erklart sich warum Klasse abstrakt ist vgl Abbildung 5 4 5 7 Benutzungen zwischen Entit ten Java Software wird insbesondere auch dadurch strukturiert da Entitaten andere Entitaten benutzten um eine Aufgabe zu erf llen So kann eine Entitat beispielsweise Klassen oder Instanzvariablen vom Typ einer anderen Entitat deklarieren oder Methoden deklarieren die einen Wert vom Typ einer anderen Entitat als Argument erwarten Im folgenden wird die Frage gekl rt wann 1m Rahmen dieser Arbeit davon gesprochen wird da eine Entitat eine andere Entitat benutzt Zudem werden verschiedene Eigenschaften von Benutzungen identifi ziert 31 Ein 3D Klassenbrowser f r Java 5 Strukturmodelle f r Java Software Es k nnen zun chst die folgenden Formen von Benutzungen einer Entitat Used durch eine Entit t User unterschieden werden 1 Benutzung zur Variablendeklaration In User wird eine Variable vom Typ Used oder ei nes Feldtyps ber Used deklariert 2 Benutzung zur Konstruktordeklaration Im Kopfbereich eines Konstruktors wird Used oder ein Feldtyp uber Used aufgef hrt M glich ist die Nennung als ein formaler Parame tertyp oder als aufwerfbarer Typ 3 Benutzung zur Methodendeklaration Im Kopfbereich einer Methode wird Used oder ein Feldtyp ber Used aufgef hrt Hier ist die Nennung als R ckgabetyp als ein f
196. n Wesley Amsterdam 1998 K ALFERT Developing the Altenberger Dom Presentation Integrating Content Providers and Software Developers In W Hahn E Walter Klaus J Knoop eds Euromedia 99 S 70 77 Munich Germany URL http ls10 www informatik uni dortmund de alfert publications euromedia99 pdf 1999 K ANDREWS Visualising cyberspace Information visualization in the harmony internet browser In Proc of First IEEE Symposium on Information Visualization Atlanta GA S 97 104 Okt 1995 A L AMES D R NADEAU J L MORELAND VRML 2 0 Sourcebook 2 Edition John Wiley amp Sons Inc New York u a 1997 K ANDREWS M PICHLER P WOLF Towards rich information landscapes for visualising structured web space In Proc of 2 IEEE Symposium on Information Visualization Info Vis 96 San Francisco CA Oct 1996 G D BATTISTA P EADES R TAMASSIA IOANNIS G TOLLS Algorithms for drawing graphs an annotated bibliography In Computational Geometry Theory and Applications vol 4 no 5 S 235 282 1994 I BRUB A FRICK Fast interactive 3 d graph visualization Graph Drawing Proc GD 95 LNCS 1027 99 110 Springer Verlag 1996 G BOOCH Objektorientierte Analyse und Design Addison Wesley Bonn u a 1994 G BOOCH J RUMBAUGH I JACOBSON Das UML Benutzerhandbuch Addison Wesley Bonn 1999 M H BROWN Exploring Algorithms Using Balsa II In IEEE Computer 21 5 14 36 1988 K W BRODILIE
197. n angeboten vgl Abschnitt 10 5 2 73 Ein 3D Klassenbrowser f r Java 10 Benutzung des Systems 10 Benutzung des Systems 10 1 Die Analyse Das Analyseprogramm wird mittels des in Abbildung 10 1 gezeigten Bildschirmfensters gesteuert Das Fenster besteht aus zwei Registerkarten mit den Uberschriften Aktuell und Pfade Auf der Registrierkarte Aktuell werden Einstellungen f r den derzeit durchzuf hrenden Analysedurchlauf vorgenommen wohingegen auf der zweiten Karte d e Einstellung von Dateipfaden global f r alle Analysen erfolgt Hauptbestandteil der Karte Aktuell ist eine Auflistung zu analys erender Pakete anhand ihrer vollst ndig qualifizierenden Namen Dieses Auflistung kann mittels der Schaltfl chen rechts bearbeitet werden Dabe st anzumerken da es wegen einer Einschr nkung von Javadoc notwendig ist Subpakete eines Pakets einzeln aufzuf hren wenn diese analysiert werden sollen Die Nennung des bergeordneten Pakets ist allein nicht ausreichend fe4 J3Browser Analyse IOl x Aktuell Pfade Projekt ad1300 j3p ad1300 adml rel1_2 Hinzuf gen ad1300 adml rell_2 code ad1300 adml rel1_2 consistency ad1300 adml rell_2 facade ad1300 adml rel1_2 test ad1300 applications converter ad1300 applications converter ui ad1300 util ad1300 xml 7 Modus private x Ausgabedatei ad1300 sm u Laden Speichern Abbruch Abbildung 10 1 Das Konfiguration
198. n dann nicht mehr angezeigt und die Knoten sind isoliert Ein solcher Mechanismus kann auch hier sinnvoll eingesetzt werden z B dann wenn eine Entitat zu sehr vielen Entitaten in Beziehung steht Ist dieser Umstand einmal vom Betrachter verstanden worden tr gt eine entsprechende Isolierung der Entit t zur bersichtlichkeit der Darstellung bei In Anbetracht der Schachtelung von Symbolen kann man die Isolierung noch weiter verfeinern Ein Symbol kann vollst ndig oder teilweise isoliert sein Bei einer vollst ndigen Isolierung werden sowohl Pfeile die mit dem Symbol verbunden sind als auch nach au en dringende Pfeile innerer Symbole unterdr ckt Bei einer Teilisolierung werden nur letztere Pfeile unsichtbar gemacht Bei Paketsymbolen bleiben dadurch bspw die Beziehungen des Pakets sichtbar die Anzeige der durch ihre Vielzahl u U st renden Beziehungen der Entitaten des Pakets wird aber unterlassen Schlie lich schien es zun chst auch n tzlich zu sein eine Kombination der Filter Fish Eye View Technik vgl Abschnitt 7 1 8 mit dem aus NV3D bekanntem Fading zu verwenden Der Betrachter kann dabei durch die Auswahl einer Entitat einen Brennpunkt setzen Die globale Relevanz einer Beziehung kann sich aus deren Art und ggf aus weiteren Eigen schaften ableiten Bei Benutzungsbeziehung kann insbesondere auf deren Zugriffsmodus zur ckgegriffen werden Zusammen mit der Entfernung zum Brennpunkt ergibt sich so der Degree of Interest DOI einer Be
199. n der Symbole s s2 und s3 je ein Spezifikationselement erzeugt s4 Hauptselektiertes Symbol Symbol f r das em Drehspezifikationelement erzeugt werden mu Weiteres Symbol Abbildung 12 12 Ben tigte Drehspezifikationselemente bei Cone Trees Der Winkel f r die Drehung um ein Symbol s befindet sich zwischen der Strecke von s zur Betrachterposition und der Strecke von s zum n chsten Symbol auf dem Selektionspfad bzw wenn s das letzte Symbol des Pfads ist von s zum hauptselektierten Symbol vgl Abbildung 12 13 auf nachfolgender Seite Da bei Anordnungen ausschlie lich Drehungen um Achsen m gl ch sind die parallel der Y Achse verlaufen brauchen bei der Berechnung der Winkel die Y Koordinaten nicht ber cksichtigt werden Ist so der erste Winkel berechnet wird sozusagen virtuell eine Drehung des ganzen Cone Trees um die Wurzel durchgef hrt Dies bedeutet da die neuen Koordinaten in die weiteren Berechnungen eingehen eine nderung der Symbolposition n der Darstellung aber zun chst n cht erfolgt An diese virtuelle Drehung schlie t sich die Berechnung des Winkels f r das n chste Symbol auf dem Selektionspfad inklusive einer weiteren virtuellen Drehung an usw Abbildung 12 13 zeigt den Vorgang f r 108 Ein 3D Klassenbrowser fiir Java 12 Realisierung des Systems obiges Beispiel Dabei ist zu beachten da in diesem konkreten Fall keine Drehung um s erforderlich ist Bei Kegeln ist die Berechn
200. n des Benutzers an diesen kapseln Gemeinsame Superklasse dieser Entit ten ist GraObj Bei einem Wechsel der Anzeigekomponente brauchen nur hier Ver nderungen vorgenommen werden wohingegen Teil Klassen unver ndert bleiben k nnen Zusammen mit der weiter unten beschriebenen Ma nahme zur Beschleunigung der Szenen manipulation wurde so erreicht da z B die AWT Visualisierung nun weitaus schneller eingeladen werden kann Auch nach dem Erzeugen der VRML Szene werden aber gelegentlich noch weitere graphische Objekte ben tigt bspw dann wenn neue Gruppen definiert werden Um hier zu beschleunigen werden initial mehr Objekte erzeugt als gebraucht werden Ansonsten m te der VRML Browser zu h ufig die Datei Protos wr verarbeitet werden Alle Objekte werden durch die Singleton Klasse GraObjPool zwischen gespeichert Bei Bedarf werden sie diesem Objektpool dann entnommen Es kann auch dazu kommen da graphische Objekte nicht mehr weiter ben tigt werden Dann werden sie erneut in den Pool eingef gt und k nnen so wiederverwendet werden Die graphische Realisierung eines Diagramms l uft unter diesen Voraussetzungen wie folgt ab Nachdem die interne Repr sentation des Diagramms aufgebaut wurde vgl Abschnitte 12 5 2 und 12 5 3 erfolgt zun chst eine Reservierung der ben tigten graphischen Objekte beim Objektpool Dazu wird f r jedes Diagrammteil die Methode reserviereGraObj aufgerufen Die verschiedenen Subklassen von Teil redefinie
201. n man eine Milderung erwarten denn es ist um jedes Symbol herum mehr Platz vorhanden um verbundene Symbole in dessen Nahe zu plazieren Abbildung 2 8 zeigt wie bei gleicher gew nschter Entfernung zwischen den Symbolen mehr Symbole um einen Mittelpunkt plaziert werden k nnen RS Abbildung 2 8 Plazierung von verbundenen Symbolen im Zwei und Dreidimensionalen Af a Strichzeichnung b Farbige Zeichnung c Mit Transparenz d Dreidimensional Abbildung 2 9 Darstellung der Zugeh rigkeit eines Teils zu einem Ganzen erweitert nach AF00 H ufig w ll man die Zugeh rigkeit eines Teils zu einem Ganzen darstellen n der Softwaretechnologie bspw die Zugeh rigkeit eines Subsystems zum Gesamtsystem Oft wird dazu die Schachtelung von Symbolen verwendet vgl Abbildung 2 9 Dies ist be zweidimensionalen Zeichnungen insbesondere bei gleichzeitiger Verwendung von Farben problematisch vgl auch AF00 wo sich eine vergleichbare Betrachtung f r unkolorierte Darstellungen finden l t Der Einsatz von Farben kann aber zur Visualisierung weiterer Eigenschaften sinnvoll sein W hrend bei zweidimensionalen Strichzeichnungen wie in Abbildung 2 9a vielleicht aus Gew hnung an derartige Darstellungen die Zugeh rigkeit noch recht gut hervortritt wirft Abbildung 2 9b die Frage auf ob das Dreieck nicht zum Rechteck geh rt sondern vor diesem liegt Durch die Verwendung semitransparenter Farben Ein 3D Klassenbrowser f r Ja
202. n ver ndert werden mu neue klassenabh ngige Funktionalitat hinzugefugt werden indem eine neue Implementierung von GegebenheitsVisitor erzeugt wird Bei J3Browser wird dies beim Erzeugen der internen Reprasentation eines Diagramms genutzt vgl fur Beispiele die Abschnitte 12 5 2 und 12 5 3 Die Umsetzung der Musters besitzt drei Besonderheiten Die visit Methoden k nnen ein beliebiges Objekt als Ergebnis liefern Die accept Methoden reichen diese Objekte weiter Die accept Methoden erwarten neben dem Visitor zus tzlich einen boolschen Parameter rekursiv Dieser ist nur bei Elementen von Belang Dort gibt er an ob nach dem Aufruf einer visit Methode zus tzlich die accept Methoden innerer Elemente aufgerufen werden sollen Beispielsweise kann so ein Paket die accept Methoden seiner Subpakete und seiner Entitaten aufrufen Auf diese Weise konnen die Gegebenheiten eines Strukturmodells rekursiv durchwandert werden Es existiert eine Klasse GegebenheitsErwVisitor die Gegebenheits Visitor implementiert Die Klasse besitzt auch fur die abstrakten Subklassen von Gegebenheit visit Methoden Die visit Methode fur jede Klasse besitzt eine Vorgabeimplementierung die darin besteht die visit Methode fur die entsprechende Superklasse aufzurufen Dadurch braucht man z B nur visitElement zu redefinieren wenn man Funktionalit t hinzuf gen will die f r alle Arten von Elementen gleich ist Schlie lich m ssen Strukturmodelle gespeichert werd
203. n werden bei der Definition der Benutzungsbeziehung siehe Abschnitt 5 7 ber cksichtigt 9 4 Pakete und Importe Zum Strukturieren von Java Software k nnen Entit ten in sogenannte Pakete eingeteilt wer den Die Angabe zu welchem Paket eine Entitat geh rt erfolgt am Anfang der Quelltextdate1 in der die Entit t deklariert ist Da in einer Quelltextdate mehrere Entit ten deklariert werden k nnen geh ren alle Entitaten einer Datei zum selben Paket 28 Ein 3D Klassenbrowser f r Java 5 Strukturmodelle fiir Java Software W hrend einer Entit t implizit alle Entitaten zur Verf gung stehen die zum selben Paket ge h ren sollten Entit ten anderer Pakete zun chst explizit importiert werden Dies geschieht f r einzelne Entitaten oder f r ein gesamtes Paket ber das Schl sselwort import Alle Entit ten einer Quelltextdatei importieren dieselben Entit ten und Pakete Nachfolgendes Beispiel zeigt einen Ausschnitt einer Quelltextdatei deren Entitaten Autover mierung und Tools dem Paket de autoverm zugeordnet werden In den Entit ten der Date stehen standardm ig alle weiteren Entit ten des Paketes de autoverm und aufgrund der bei den expliziten Importe alle Entit ten des Paketes de autoverm reservierung und die Entitat Fahrzeug aus dem Paket de autoverm inventar fuhrpark zur Verf gung Weiterhin k nnen auch ohne expliziten Import allen Entit ten des zu Java geh renden Paketes java lang ver wendet werden welches beis
204. nachfolgenden Beispiel wird eine Schnittstelle Ausdruckbar deklariert die durch die Klas se Rechnung implementiert wird Die Deklaration der Klasse Druckerwarteschlange zeigt die Verwendung einer Schnittstelle Beispiel 5 8 Implementierung und Verwendung von Schnittstellen class Rechnung implements Ausdruckbar void drucken class Druckerwarteschlange void einfuegen Ausdruckbar a Implementierungen von Schnittstellen werden im Metamodell durch eine weitere Spezialisie rung von Verwendung mit Namen Impi modelliert die keine zus tzlichen Attribute oder As soziationen besitzt F r eine Instanz impl von Impl gilt impl von verweist auf die direkte Sub klasse und impl nach auf die direkte Superschnittstelle 9 3 Typen In vorangegangenen Abschnitten wurde bereits mehrfach von Typen gesprochen In Java ist jedem Wert ein Typ zugewiesen Dabei wird zwischen primitiven Typen und Referenztypen unterschieden Ein Beispiel f r einen primitiven Typ ist int der f r ganze Zahlen vorgesehen ist Die Menge der primitiven Typen ist im Sprachumfang von Java definiert und nicht erwei terbar Dabe sind verschiedene primitive Typen f r numerische und boolsche Werte sowie f r Zeichen vorgesehen Bei Referenztypen wird zwischen Klassen Schnittstellen und Feld typen unterschieden Durch die Deklaration von Klassen k nnen Klassentypen geschaffen werden Im obigem Bei spiel 5 1 vgl Seite 22 wurde der Typ Fahrzeug geschaffen
205. nal Authoring Interface EAI f r Java Applets verwendet Die Vorteile dieser L sung wurden schon verschiedentlich genannt So konnte insbesondere auf die Implementierung eigener Navigationsfunktionalit t verzichtet werden und es war wegen der textuellen Beschreibung von Szenen leicht Ideen auszuprobieren Die Verwendung von Java erlaubte es eine graphische Benutzungsschnittstelle n den J3Browser zu integrieren was nur mit VRML und ohne das EAI nicht m glich gewesen ware Im Verlauf der Arbeit erwies sich die Softwarebasis aber als problematisch Die Umsetzung wurde durch eine gro e Unzuverlassigkeit des EAI mit gepr gt Viel Arbeitsaufwand mu te betrieben werden um dieser zu begegnen Eine Reihe von Ma nahmen wurden be der Besprechung des Entwurfs vorgestellt So wurde mit der Verarbeitung der ber das EAI gemeldeten Ereignisse in einem eigenst ndigen Thread versucht der gro en Instabilit t des EAI bei der Ereignisverwaltung zu begegnen ber die Verwendung von VRML Prototypen mu te die ansonsten nicht ausreichende Performanz der graphischen Realisierung von Dia grammen verbessert werden Auch die Manipulation der entstehenden dreidimensionalen Szenen galt es zu beschleunigen Dadurch da nun immer alle zu einer Ver nderung geh renden Aktionen in einem Objekt zusammengefa t werden wurde es m glich diese Aktionen in einem Zug und ohne zwischenzeitliche Bildschirmaktualisierung durchzuf hren was zu einer starken Beschleunigu
206. ng f hrte Einige Probleme blieben aber bestehen so z B der hohe Speicherbedarf fur Szenengraphen und auch eine Unzul nglichkeit des HTML Browsers bei nderungen der Bildschirmfenster gr e die dazu f hrt da die Darstellung nicht immer vollst ndig aktualisiert wird Schwer wiegender ist es da auch durch den eigenst ndigen Thread die Ereignisverwaltung nicht vollst ndig stabilisiert werden konnte Wenn gleichzeitig mit der Durchf hrung l ngerer Manipulationen Ereignisse auftreten kann es ab und an immer noch zu Abst rzen kommen Die Frage inwieweit diese Probleme durch die Verwendung einer anderen Implementierung des EAI d h also eines anderen VRML und oder eines anderen HTML Browser h tten beseitigt werden k nnen mu te offen bleiben da es trotz der f r das EAI postulierten Plattformunabhangigkeit nicht gelang den J3Browser ohne weiteres mit anderen Browser Kombinationen als dem Netscape Communicator 4 6 und den Cosmo VRML Browser 2 1 laufen zu lassen Ein Umstieg auf eine andere Technologie zur Anzeige von dreidimensionalen Szenen wie z B auf die Java3D API auf OpenGL oder Direct3D d rfte somit langfristig vielleicht im Hinblick auf ein System mit Produktreife erforderlich sein Durch das weitgehende Kapseln der Anzeigetechnologie erscheint dies allerdings relativ leicht m glich Obwohl die verwendete Softwareplattform mit einigen Fallstricken versehen ist eignet sich 117 Ein 3D Klassenbrowser f
207. ng ohne neues EAI Ereignis direkt durchgef hrt 12 8 4 Speichereffiziente Szenengraphen Ein weiteres Problem wurde bei der vorliegenden prototypischen Implementierung nicht 1m vollen Umfang gel st bei der Verarbeitung des Szenengraphen durch den VRML Browser besteht ein immenser Speicherbedarf Bei der angesprochenen AWT Visualisierung werden ber 100 Megabytes ben tigt Hier wird somit der derzeit m gliche Visualisierungsumfang begrenzt Eine Abhilfe k nnte in der h ufigeren Mehrfachverwendung von Knoten ber den DEF USE Mechan smus liegen Da Diagrammteile aber unabh ngig voneinander editiert werden k nnen w re eine relativ komplexe Verwaltung von Knoten notwendig Um Speicherplatz zu sparen w re es z B sinnvoll da alle gleich aussehenden Diagrammteile gemeinsam einen Knoten vom VRML Typ Shape verwenden der das Aussehen bestimmt Dieser Knoten w re mehreren Transform Knoten untergeordnet um den Knoten f r verschiedene Diagrammteile an verschiedenen Positionen zeigen zu k nnen Es ist jetzt aber zu beachten da wenn eines der Diagrammteile z B die Farbe wechseln soll der Szenengraph umorganisiert werden m te Es m te dann ein neuer Shape Knoten erzeugt und dem Transform Knoten des ver nderten Diagrammteils untergeordnet werden nachdem der dort zuvor vorhandene gemeinsame Shape Knoten entfernt wurde 114 Ein 3D Klassenbrowser fiir Java 12 Realisierung des Systems Erschwerend kommt hinzu da innerhalb der
208. ngen kommen wenn versucht wird zu viele und vielleicht sogar vom Typ her unterschiedliche Dinge in ein Bild zu fassen Dieses erscheint dann mit lauter Details berfrachtet und ein Gesamtverst ndnis f r den Sachverhalt st nur schwer zu erlangen Eine psychologische Studie hat gezeigt dal es einem Menschen nur m glich ist bis zu sieben plus minus zwei Informationseinheiten gleichzeitig zu verarbeiten MM56 Daraus zu folgern da die Darstellung eines Graphen nur aus maximal neun f r Informationseinheiten stehende Knoten und Kanten bestehen darf erscheint aber zu pessimistisch da n cht alle Bestandteile eines Graphens gleichzeitig betrachtet werden m ssen Ein Schwierigkeit ergibt sich aber z B dann wenn ein Knoten ber Kanten mit zu vielen anderen Knoten verbunden ist Der Zusammenhang zwischen diesen Knoten kann dann nicht mehr auf einen Blick erfa t werden Ein 3D Klassenbrowser f r Java 2 Motivation 2 4 Warum dreidimensionale Visualisierung Die genannten Probleme mit herk mmlichen zweidimensionalen Visualisierungen haben dazu gef hrt da verst rkt M glichkeiten gesucht werden dreidimensionale Computer graphik zur Qualit tsverbesserung zu nutzen Genau wie Java erlebt auch die drei dimensionale Computergraphik zur Zeit einen Boom Betrachtet man s ch z B den aktuellen Katalog eines popul ren Softwarevertriebs so stellt man fest da eine Vielzahl an Produkten die Bezeichnung 3D f r dreidim
209. ngen verh ltnism ig lange Pfeile notwendig werden die einer leichten Erkennbarkeit sehr entgegen stehen In einer Ansicht die einen berblick ber die vorhandenen Pakete bieten soll kann eine Anzeige derartiger Beziehungen trotzdem von Vorteil sein da sie eine Tendenz erkennen l t welche und wie viele Beziehungen zwischen den Paketen bestehen vgl Abbildung 8 19 auf nachfolgender Seite Importe zwischen Entit ten eines Pakets werden durch die Java Sprachdefinition nicht verboten sie sind aber nicht sinnvoll da auch ohne Import einer Entit t alle anderen Entit ten desselben Pakets zur Verf gung stehen 58 Ein 3D Klassenbrowser f r Java 8 Visualisierungstechniken fur Java Software acd 1500 xml adi 300 applications Converter ui Abbildung 8 19 Beziehungen zwischen Entit ten verschiedener Pakete Abbildung 8 20 Zusammenfassung zweier Pakete bei Unterscheidung ihrer Entit ten durch die Symbolfarbe 8 4 1 Paketzusammenfassungen Neben dem Problem der langen Pfeile wird durch die abgegrenzten Bereiche f r verschiedene Pakete weiterhin die Verwendung z B von Cone Trees f r Entitaten aus unterschiedlichen Paketen verhindert Um diesen beiden Umst nden zu begegnen kann das Zusammenfassen mehrerer Pakete deren Zusammenspiel m Detail betrachtet werden soll erm glicht werden Das so entstehende Symbol wird m folgenden als Zusammenfassungssymbol bezeichnet und gleicht dem bekannten Paketsymbolen v
210. ngen werden mit Hilfe der Methode pfeill nge ermittelt Diese liefert eine rechnerische Lange des bergebenen Pfeils Derzeit wird hier immer 1 geliefert erweiterte Implementierungen k nnten aber z B die Art des Pfeil ber cksichtigen so da etwa Erweiterungspfeile st rker verbindend wirken als Benutzungspfeile Ergibt sich ber den betrachteten Pfeil ein k rzerer Weg zum verbundenen Symbol so wird dessen Entfernung aktualisiert und das Symbol in eine neue TODO Liste aufgenommen Solange eine nicht leere neue TODO Liste vorliegt wird f r diese am Ende eines Schrittes entfernungenBerechnen aufgerufen Abbildung 12 8 zeigt von links nach rechts die weiteren Situationen vor dem ersten zweiten und dritten Schritt sowie nach dem dritten Schritt 0 D 40 0 0 TODO A TODO B E TODO C D TODO blau Symbolentfernungen rot Pfeilentfernungen Abbildung 12 8 Ablauf der Entfernungsberechnung Die Entfernungsberechnung wird nur bis zu einer maximalen Entfernung durchgef hrt allen nicht betrachteten Pfeilen wird durch die get Methode ebenfalls der Entfernungsmaximalwert zugeordnet Gleichzeitig wird bei der Berechnung nicht unterschieden ob ein betrachteter Pfeil von einer Art ist f r die die DOI Anzeige aktiviert ist Dies erfolgt erst bei der Trans parenzberechnung So wird es m glich da bspw Pfeile f r Erweiterungsbeziehungen ver bindend wirken sie selbst aber nicht der DOI Anzeige unterliegen Nachdem bei einem S
211. nn Da die Reihenfolge der Auflistung z B beim Vorliegen mehrerer Versionen des gleichen Pakets unter verschiedenen Pfaden relevant ist kann diese ver ndert werden Die Pfade werden in einer 74 Ein 3D Klassenbrowser f r Java 10 Benutzung des Systems globalen Einstellungsdatei abgespeichert Mit der Anwahl der Schaltfl che Start beginnt der Analysevorgang Es ffnet sich ein weiteres Fenster in dem der Aufruf von Javadoc und die Ausgaben des Doclets angezeigt werden Dazu ist anzumerken da Javadoc h ufig Warnungen oder sogar internal errors meldet insbesondere dann wenn Quelltext f r Java Versionen vor 1 2 analysiert wird Wenn es sich dabei nicht um Fehler wegen falscher Dateipfade handelt die an einem sofortigen Abbruch der Analyse zu erkennen s nd k nnen diese Meldungen aller Erfahrung nach ignoriert werden Der Analysevorgang endet mit der Ausgabe einer Statistik ber die Anzahl gefundener Elemente und Beziehungen Erw hnt sei noch da die Analyse auch ber die Kommandozeile gesteuert werden kann Um Informationen dar ber zu erhalten sollte die Analyse mit der Option help aufgerufen werden 10 2 Das Hauptfenster der Darstellung Abbildung 10 2 zeigt das Hauptfenster der Darstellung das n ein Fenster des Netscape Communicators NETSCAPE eingebettet ist Es ist unterteilt in eine Menuzeile eine Symbolleiste eine Statuszeile dem Darstellungsbereich als Hauptteil und der Benutzungsoberfl che des
212. nnbar sein sollen oder nur solche d e von diesem wegweisen Dadurch kann insbesondere die Realisierung einer symbolisierten Entit t getrennt von deren Benutzung betrachtet werden Will man die Realisierung betrachten wird man nur die Pfeile deutlich sichtbar machen die vom Brennpunkt abgehen wodurch hervorgehoben wird welche Entitaten die durch ein selektiertes Symbol gemeinte Entitat benutzt um ihre Aufgaben zu erf llen Umgekehrt wird sichtbar welche Entitaten eine bestimmte Entitat benutzen Bei der DOI Technik ist weiterhin zu beachten da es bei einem gleichzeitigen Einsatz f r mehrere Arten von Beziehungen dazu kommt dal die verschiedenen Pfeile aufgrund der Transparenz schwerer zu unterscheiden s nd Die Anwendung der Technik mu daher oft auf eine Arten beschr nkt bleiben Aufgrund der besonderen Vielzahl zu erwartender Benutzungsbeziehungen bietet sich diese f r die DOI Technik an 61 Ein 3D Klassenbrowser fiir Java 8 Visualisierungstechniken fur Java Software Taxtvis lor a Darstellung ohne Ber cksichtigung des DOI b Darstellung mit Ber cksichtigung des DOI Abbildung 8 21 Darstellung viele Benutzungen anhand der Filter FEV Technik mit LinkArea als Brennpunkt TextVistor Abbildung 8 22 Darstellung viele Benutzungen durch Transparenz 8 5 2 Reduktion von Symbolen Bereits in einem einzelnen Paket kann es zu einer Vielzahl von zugeh rigen Entit ten kommen Beispielsweise umfa t das Pa
213. nutzung ein im Sinne der Rangordnung aus Kapitel 5 kleiner Zugriffsmodus gespeichert ist wird dieser durch den Zugriffsmodus des aktuellen Entitatselements ersetzt 93 Ein 3D Klassenbrowser fiir Java 12 Realisierung des Systems Nachdem beide Analyseschritte durchgef hrt wurden und auf diese Art das Strukturmodell zu einer Software aufgebaut wurde wird das Modell gespeichert eine Statistik erzeugt und schlieBlich das Doclet beendet 12 3 Paket darstellung Die Darstellungskomponente des J3Browsers wird durch das Paket darstellung und dessen Subpakete implementiert die in Abbildung 12 3 gezeigt werden VRML Plugin Abbildung 12 3 Aufbau des Paketes darstellung und dessen Einbettung ins System Auf die verschiedenen Subpakete wird in den nachfolgenden Abschnitten naher eingegangen zun chst sei ein berblick ber ihre Aufgaben gegeben gui Realisierung der graphischen Benutzungsoberfl che diagramm Interne Repr sentation von Visualisierungen sowie deren Manipu lation diagramm anordnung Implementierung der Visualisierungstechniken Baum Kegel und Cone Tree diagramm ausrichtung Enth lt Ausrichtungsfunktionen vor allem die automatischen Aus richtung graphik Realisiert die graphischen Ausgabe Das Paket darstellung selbst enthalt lediglich die Singleton Klassen DarstellungsApplet und HTMLBrowser Erste ist die vom HTML Browser instanziierte Startklasse des Appl
214. oftware handelt werden sie n nachfolgender Definition als solche aufgefa t Damit gilt f r zwei Element a und b 1 Wenn a b verwendet dann ist a abh ngig von b 2 Wenn a abh ngig von b ist und a zu einem Element A geh rt dann ist A abh ngig von b 3 Wenn a abh ngig von b ist und b zu einem Element B geh rt dann ist a abh ngig von B Ist ein Element a von einem Element b abh ngig so wird dies durch einen orangen Pfeil vom Symbol von a zum Symbol von b dargestellt Es ist aber unsinnig alle durch obige Definition entstehende Abh ngigkeiten anzuzeigen E n Pfeil f r eine aus dem ersten Satz folgende Abh ngigkeit kann entfallen da bereits der entsprechende Verwendungspfeil dargestellt werden kann Weiterhin kann die Schachtelung von Symbolen ber cksichtigt werden so da die Zugeh rigkeit von a oder b zu Elementen A oder B im zweiten oder dritten Fall nur ber cksichtigt wird wenn diese Zugeh rigkeit auch durch eine Symbolschachtelung ausgedr ckt wird Um zu zeigen welche Art von Beziehungen zwischen zwei in Abh ngigkeit stehenden Elementen vorliegen kann eine Erweiterung der Pfeilspitze vorgenommen werden bei der f r jede vorliegende Art der Verwendung eine Markierung am entsprechenden Abh ngiskeits pfeil vorgenommen wird vgl Abbildung 8 24 und Abbildung 8 25 Wie bei Pfeilen wird ber die Farbe einer Markierung die Art der Verwendung kodiert wobei dieselben Entsprechungen gelten vgl Abbildung 8 7 auf Seite 51
215. oftware repr sentieren w hrend innere Graphen den Aufbau dieser Teilsysteme beschreiben Dem Benutzer wird eine einfache M glichkeit geboten die Knoten zu ffnen d h innere Graphen sichtbar zu machen und sie wieder zu schlie en So kann er schnell zwischen einer globalen Betrachtung des Gesamtsystems und der detaillierten Untersuchung bestimmter Teilsysteme wechseln Wird ein Knoten geschlossen so verringert sich auch die Anzahl der Kanten in der Darstellung da Kanten die von au en n Knoten des den nun nicht mehr sichtbaren Teilgraphen einlaufen nach M glichkeit zusammengefa t werden vgl nachfolgende 45 Ein 3D Klassenbrowser f r Java 7 Einige Visualisierungstechniken und systeme Abbildung 7 10 Weitere M glichkeiten die Anzahl der darzustellenden Kanten zu begrenzen bestehen darin bestimmte Arten von Kanten z B solche f r Importe nur f r selektierte Knoten darzustellen oder Knoten als tot zu markieren Nur Kanten lebendiger Knoten werden dargestellt Weiterhin bietet das Programm eine als Fading bezeichnete Option bei der alle nicht selektierten Knoten ausgegraut dargestellt werden a Offener Knoten b geschlossener Knoten Abbildung 7 10 Reduktion von Kanten durch das Schlie en von Knoten Die Entwickler von NV3D betonen ebenso wie die von ArchView die Vorteile des manuellen Anordnen von Darstellungen Allerdings ist in einer neueren Version die Option enthalten als ersten Schritt verbun
216. on werden f r nebenselektierte Symbole in gleicher Richtung und mit gleichem Betrag nachvollzogen Auch die Position innerer Symbole wird entsprechend angepa t Durch die freie Wahlbarkeit des Betrachtungsstandortes und winkels ist es f r den Benutzer nicht immer klar ersichtlich in welche Richtung z B die X Achse in der Darstellung verl uft Ohne weitere Unterst tzung w ren Positionierungen und auch Gr enangaben f r hn somit schwierig Deshalb wird wenn das E genschaftenfenster aktiv ist innerhalb der dreidimensionalen Darstellung eine Markierung an der gew hlten Position und mit der gew hlten Gr e angezeigt die bei Ver nderungen sofort aktualisiert wird F r die selektierten Symbole werden nderungen erst dann g ltig wenn die Schaltfl che Setzen bet tigt wird Bis dahin k nnen sie ber Zur cksetzen r ckg ngig gemacht werden oo java awt Dialog Im Teilemen werden weiterhin Befehle zum Ausrichten Fest Grote angeboten Neben der komplexen automatischen Ausrichtung J 3 20173 Gul stehen Funktionen bereit wie sie auch bei vielen y herk mmlichen graphischen Editoren Verwendung finden Symbole k nnen in eine Ebene gebracht auf spezifizierbaren 3 0 0 35599432 Ce andert um Kreisb gen oder Strecken gleichm ig verteilt oder um coon Ooo oon w hlbare Achsen gedreht werden Auch hier erfolgt eine I
217. orgehen Als dritten Schritt wahrend der Vorbereitung wurde eine Literaturrecherche betrieben bei der es vor allem darum ging vorhandene Ans tze zur Visualisierung aufzuarbeiten Hierbei wur de die bereits erw hnte Idee gewonnen verschiedene Techniken kombiniert einzusetzen Es galt somit zu ermitteln welche Technik unter welchen Umst nden besonders geeignet ist Dies war Aufgabe der zweite Phase der Experimentierphase Die Eignungspr fungen konn ten letztlich nur erfolgen indem eine Auswahl der Techniken f r die eine besondere Aussicht auf Brauchbarkeit bestand probeweise implementiert wurde Um dies zu erleichtern ist als letzter Schritt der Vorbereitung ein einfacher Rahmen geschaffen worden der stets wieder kehrende Aufgaben wie z B das Anzeigen einer dreidimensionalen Szene bernimmt In den Rahmen konnten die Implementierungen der verschiedenen Techniken eingebettet werden In der Experimentierphase selbst wurde zwischen zwei T tigkeiten iteriert Zun chst wurde die Zweckm igkeit von Visualisierungstechniken gepr ft Dabei ergaben sich einige Ans tze f r Verbesserungen sowie Ideen f r weitere Techniken nach deren Umsetzung ein erneuter Beurteilungsbedarf bestand Die Iteration wurde durchgef hrt bis ein Stand erreicht war der eine expressive Visualisierung zumindest gr erer Ausschnitte der Beispiele erm glichte allerdings bei subjektiver Bewertung 19 Ein 3D Klassenbrowser f r Java 4 Ziel und Vorge
218. ormaler Pa rametertyp oder als aufwerfbarer Typ m glich 4 Benutzung zur Implementierung Im Codeblock einer Methode eines Konstruktors oder eines Initialisieres oder innerhalb eines Initialisierungsausdrucks f r eine Variable wird eine Instanz von Used erzeugt eine lokale Variable vom Typ Used deklariert oder auf e1 ne Methode oder eine Variable vom Typ Used zugegriffen bzw dies geschieht mit einem Feldtyp tber Used Gilt eine diese vier Bedingung fur einen Feldtyp uber Used wird von einer Benutzung zur Variablendeklaration zur Konstruktordeklaration als Feld gesprochen F r die ersten drei Falle kann festgehalten werden welchen Zugriffsmodus die deklarierte Variable der dekla rierte Konstruktor oder die deklarierte Methode besitzt Hierdurch wird erkennbar inwieweit die Benutzung au erhalb von Used f r Entitaten die selbst wiederum User benutzen sichtbar ist Dementsprechend kann allen Benutzungen zur Implementierung der Zugriffsmodus priva te zugeordnet werden da sie von au en nicht sichtbar sind von en a r A nach A zugriffFeld istPublic boolean istProtected boolean istDefault boolean istPrivate boolean alsFeld boolean als Var boolean Abbildung 5 5 Modellierung von Benutzungen Vielfach werden zwischen zwei Entitaten User und Used mehrere und auch verschiedenartige Benutzungen gleichzeitig vorliegen Beispielsweise werden innerhalb des Rumpfes einer Me thode von User die einen Paramet
219. ors erzeugt werden der als Parameter einen initialen Standort erwartet Weiterhin k nnen innerhalb von Klassen deklariert werden e Innere Entit ten vgl Abschnitt 5 5 e Statische Methoden und Variablen Neben Variablen und Methoden welche den Instan zen einer Klasse zugeordnet werden k nnen auch Klassen selbst ber Variablen und Me thoden verf gen Diese werden durch das Schl sselwort static gekennzeichnet und k n nen verwendet werden ohne da eine Instanz der entsprechenden Klasse vorliegt Bei spielsweise kann der Aufruf der Methode t von Test aus dem Beispiel 5 1 durch Test erfolgen e Unver nderliche Variablen Konstanten Diese werden durch das Schl sselwort final von ver nderlichen Variablen unterschieden Ein Initialisierungsausdruck der bei Variablen deklarationen optional ist ist hier zwingend erforderlich vgl Beispiel 5 2 Im Regelfall sind Konstanten gleichzeitig statisch e Instanzinitialisierer Diese bestehen aus einem einzelnen Codeblock der immer dann aus gef hrt wird wenn eine neue Instanz einer Klasse erzeugt wird vgl Beispiel 5 2 e Klasseninitialisierer Diese bestehen ebenfalls aus einem einzelnem Codeblock dem das Schl sselwort static vorangestellt wird Sie werden ausgef hrt wenn erstmals nach dem Start eine Software auf eine Klasse zugegriffen wird vgl Beispiel 5 2 Beispiel 5 2 Kostanten Klassen und Instanzinitialisierer class EineKlasse statie final ont KONSTANTE
220. ort package erfolgende Paketangabe in einer Quelltextdatei ist optio nal Erfolgt sie nicht so werden die darin deklarierten Entit ten einem sogenannten anonymen Paket zugeordnet Der VQN einer Entitat aus dem anonymen Paket besteht einzig aus ihrem Entit tsnamen In das Metamodell werden Pakete ber Paket integriert Diese Spezialisierung von Element besitzt keine weiteren Attribute oder Assoziationen Das von Element geerbte Attribut name beschreibt den Namen des Paket beim anonymen Paket ist das Attribut mit dem leeren String belegt Wie zuvor festgestellt wurde besitzen alle Elemente egal welcher Art einen VON Die Bedeutung von name wird daher dahingehend pr zisiert da das Attr but immer den VQN eines Elements angibt 29 Ein 3D Klassenbrowser f r Java 5 Strukturmodelle fiir Java Software Die Zugeh rigkeit einer Entitat zu einem Paket wird ber EP modelliert vgl Abbildung 5 3 Dabei wird auf eine enthaltene Entit t ber die Assoziation von und auf das enthaltende Paket ber die Assoziation nach verwiesen Beide Assoziationen wer den von Beziehung geerbt und sind nicht in der Abbildung ent halten ber PP wird eine Hierarchisierung von Paketen abge bildet von zeigt auf ein direktes Subpaket und nach auf das ent Ce Ce sprechende direkte Superpaket Auf EE wird im nachfolgenden e Abschnitt eingegangen N Zugeh rigkeit Abbildung 5 3 Arten von Importe werden n Strukturmodellen w ede
221. pielsweise auch die bereits erw hnten Klassen String und Object umfa t Beispiel 5 9 Pakete und Importe package de autoverm import de autoverm reservierung import de autoverm inventar fuhrpark Fahrzeug class Autovermietung Fahrzeug fahrzeuge class Tools Pakete k nnen untergeordnete Pakete besitzen Hier wird von direkten und indirekten Sub und Superpaketen gesprochen hnlich zu Dateipfaden bei UNIX besteht der Name eines direkten Subpaketes aus dem des direkten Superpaketes gefolgt von einem Trennzeichen und einem weiteren Bezeichner Als Trennzeichen wird hier ein Punkt verwendet Im obigem Bei spiel ist das Paket de autoverm reservierung direktes Subpaket von de autoverm Das Paket de autoverm inventar fuhrpark ist ebenfalls Subpaket von de autoverm aber kein direktes Der vollst ndig qualifizierende Name VQN einer Entitat ist die Zusammensetzung ihres Entitatsnamens und des Namens ihres Paketes F r die Entitat Fahrzeug aus obigem Beispiel lautet er de autoverm inventar fuhrpark Fahrzeug Mit Hilfe von voll qualifizierenden Namen kann der Import von Entit ten umgangen werden Beispielsweise k nnte die Variable fahr zeuge in Autovermietung aus Beispiel 5 9 auch wie folgt deklariert werden wodurch der Im port der Entit t Fahrzeug entfallen k nnte Beispiel 5 10 Vewendung eines VONs class Autovermietung de autoverm inventar fuhrpark Fahrzeug fahrzeuge Die ber das Schl sselw
222. prochen Die Verallgemeinerung von den Begriffen direkte Super und direkter Subschnitt stelle zu Super und Subschnittstelle erfolgt analog der bei Klassen gezeigten Definition Al lerdings kann eine Schnittstelle mehrere Schnittstellen erweitern Auch bei der Erweiterung zwischen zwei Schnittstellen kann es zu Redefinitionen kommen Die Modellierung von Erweiterungen zwischen Schnittstellen erfolgt wie bei der von Erweite rungen zwischen Klassen ber Erw vgl Abbildung 5 2 auf vorheriger Seite Analog zu Klassen wird gleichfalls bei Schnittstellen im folgenden von Erweiterungs Verer bungs oder auch Schnittstellenhierarchien gesprochen 5 2 2 Implementierung von Schnittstellen Eine Klasse kann mehrere Schnittstellen implementieren Dies w rd ber das Schl sselwort implements bei der Klassendeklaration angegeben Die bei der Deklaration einer Klasse ange gebenen Schnittstellen werden als direkte Superschnittstellen der Klasse bezeichnet Wenn eine Schnittstelle X direkte Superschnittstelle einer Klasse A st und Y Superschnittstelle von X dann ist Y Superschnittstelle von A Um eine Schnittstelle zu implementieren m ssen ihre Methoden durch die jeweilige Klasse implementiert werden Geschieht dies n cht vollst ndig so 1st die Klasse abstrakt Implementiert eine Klasse eine Schnittstelle dann implementierte sie auch alle deren Superschnittstellen 27 Ein 3D Klassenbrowser f r Java 5 Strukturmodelle f r Java Software Im
223. ptselektion Zwischen den beiden Modi kann mittels des Selektionsmen s vgl Abbildung 10 4 oder der Symbolleiste vgl Abschnitt 10 7 umgeschaltet werden Ein Umschalten mittels der Tasta tur wie es in anderen Programmen h ufig zu finden ist ist nicht Suchen Selektion erweitern m glich da das Dr cken von Tasten technisch bedingt nicht Abbildung 10 4 Selektionsmen abgefragt werden kann w hrend der Mauszeiger im Darstel lungsbereich ist Eine Vielzahl selektierbarer Symbole erschwert die Navigation die ebenfalls u a mit den Maustasten gesteuert wird Bereits die Abfrage ob eine Ber hrung eines graphischen Objekts vorliegt steht mit der Navigation im Konflikt Deshalb kann ber das Selektionsmen und die Symbolleiste festgelegt werden welche Arten von Symbolen selektierbar bzw allgemeiner welche Art von Objekten ber hrbar sind ber das Selektionsmen k nnen zwei untergeordnete Bildschirmfenster ge ffnet werden ein Fenster zum Suchen von Elementen und das Selektionserweiterungsfenster Im Suchfenster kann ein vollst ndig qualifizierender Name eingegeben werden Ein entsprechendes Element wird dann gesucht und dessen Symbol ggf selektiert Zus tzlich wird der Weg von der aktuellen Betrachterposition zum Symbol markiert 77 Ein 3D Klassenbrowser f r Java 10 Benutzung des Systems N Selektionserweiterung _ O x Ausgehend von lt de j3browser demo abh event gt Selektion erweitern
224. r zunahme n ergibt Die vorgegebenen Werte haben sich fur viele Hierarchien als geeignet erwiesen m ssen allerdings f r besonders umfangreiche Anordnungen angepa t werden Die Schaltfl che Farben f hrt zu den globalen Einstellungen Hier k nnen die Farben fur Dekorationen global f r alle vorhandenen Anordnungen getrennt nach Hierarchiestufen bestimmt werden Die Position der Anordnung wird durch die schon vorher gegebene Position des Wurzel symbols bestimmt die beibehalten wird Wenn zwei Symbole derselben Hierarchiestufe einer Anordnung selektiert werden k nnen die Positionen der beiden Teilbaume durch den Befehl Teilhierarchien vertauschen des Strukturmen s ausgetauscht werden Die beschriebenen Parameter k nnen nachtr glich ver ndert werden Dazu dient der Befehl Anordnung ver ndern der wieder zu obigen Bildschirmmasken f hrt Jetzt kann auch die Option Hierarchie beibehalten angew hlt werden deren Vorteil es ist da vorgenommene Vertauschungen erhalten bleiben Demgegen ber kann Neue Hierarchie genutzt werden um Anordnungen nach einer erneuten Analyse auf ge nderte Beziehungen anzupassen Die Position von Symbolen n Anordnungen kann weiterhin ver ndert werden so da bspw ber den Befehl Drehen des Teilemen s B ume mit anderen Ausrichtungen erzeugt werden k nnen Dies sollte allerdings mit Bedacht geschehen da der optische Eindruck von Anordnungen so auch zerst rt werden kann Geschieht dies k
225. r einer Software zeigen sollen Diesbez glich wird nachfolgend auch von Softwarestrukturvisualisierungen ge sprochen Unter Visualisierungstechniken werden im weiteren Text Techniken subsumiert die Vorgaben f r die Gestaltung einer Visualisierung machen Ein einfaches Beispiel f r eine Visualisierungstechnik lieferte bereits Abbildung 3 1 s Seite 12 anhand der baumf rmigen Darstellung wenn man den Knoten Interior Design und dessen Kanten nicht hinzuz hlt Unter einem Visualisierungssystem wird eine Software verstanden die eine oder mehrere Visualisierungstechniken implementiert um den Anwender dabei zu unterst tzen Visualisierungen zu erstellen oder zu rezipieren In diesem Sinne gelten Klassenbrowser als Visualisierungssysteme 3 3 Dreidimensionale Computergraphik Wie einleitend erw hnt wird die dreidimensionale Computergraphik derzeit zunehmend popul rer u a aufgrund gesteigerter Hardwareleistungsf higkeit War es vor einigen Jahren noch ausschlie lich m glich dreidimensionale Darstellungen aus Linienz gen zu bilden die an Drahtmodelle erinnerten so ist heutzutage die Darstellung komplexer Szenen mit simulierter Beleuchtung und dergleichen machbar Trotzdem stellen Algorithmen zur dreidimensionale Graphik immer noch hohe Anforderungen an die verf gbare Leistung Derartige Algorithmen entstammen dem Bereich der graphischen Datenverarbeitung zu dem im groben Umfang Literatur publiziert ist F r Einf hrungen vgl z B
226. rch Klassen ooooeeeeeeneneneneeeeeeeneeesenssssssssessssssssssssssssssens JI 8 2 4 PCM EZ UN SON ars see east ls es and 56 8 3 Se NC 57 8 3 1 EE deen deeg 97 8 3 2 EE 58 8 4 BEZIEHUNGEN ZWISCHEN ENTIT TEN VERSCHIEDENER PAKETE sssssssesesereerrererrrrrererreeeeeeeeeeeeeeeeeeereeeee 58 8 4 1 Fakeizusammenjassunsen euere 59 8 4 2 Temporare Symboleinblendunz a 2 2 u u nase ee eels 60 8 4 3 Anzeige von Pfeilbesehreib ngen zn aka 60 8 5 REDUKTION DER DARSTEEEUNGSKOMPLEXTT T ua een sense 60 8 5 1 REAUKHON VOW Bellen anlegen ee ee 60 8 5 2 Reduktion VORSYMDOLEN eege 62 6 5 3 Eder 63 8 6 ASSOZTERTE DOKUMEN TE zei tatai Eeer 65 8 7 M GLICHE PROBLEME BELMANIPULA TIONEN Ge ee ee a a a sen e a aS 67 8 8 ZUSAMMENFASSUNG UND RESULTIERENDE ANFORDERUNGEN s sssssssssssesssesssesssesserssersscsseseesseesseesserese 68 Teil III Ein Visualisierungssystem fur Java Software 9 Ae te E 71 6 1 AUFBAU OND ARBES WEDE iti iea hae eh ol ech a Nahas ee Be a ee Serpe ea 71 6 2 EINSCHRANKUNGEN ns ee ee eet 72 DIE BENUTZUNG DES SYSTEMS ee 74 10 1 E EE E 74 10 2 DAS HAUPTEENS TER DER DARSTELLUNG Einstein At ie et ante een 75 10 3 HANDHABUNG VON DIAGRAMMEN MENU DLAORAMML 76 10 4 AUSWAHEEN VON SYMBOLEN MENU SELEKTION na a a 1 10 5 ARBEITEN MIT DIAGRAMMTEILEN MEN TELE 78 10 5 1 Darstell ungs tormen Jur Elemente an nase nisse 78 10 5 2 Ee 79 10 5 3 Eege 79 10 5 4 Enache TELL CT UII ON CI eegene 79 10 5 5 SEET 80 10 5 6 Darstellen d
227. rden Eine darzustellende Szene wird in VRML durch einen hierarchischen Szenengraph beschrieben der textuell spezifiziert wird Dazu stehen verschiedene Typen fur attributierbare Knoten zur Verf gung bspw f r Geometrie oder Positionsangaben Kanten werden meist implizit durch die Schachtelung von Knotendefinitionen angegeben Folgendes Beispiel erzeugt eine Szene mit zwei roten Zylindern Abbildung 11 1 skizziert den spezifizierten Szenengraph und Abbildung 11 2 zeigt d e resultierende Darstellung VRML Beispiel 11 1 Spezifikation einer Szene WRML V2 0 utf8 oup i children erster Zylinder Transform 1 children DEF ZylinderObjekt Shape geometry Cylinder height 0 7 radius 1 appearance Appearance material Material diffuseColor 1 0 0 translation 0 1 0 zweiter Zylinder Transform children WE ZylinderObjekt translation 3 1 0 Abbildung 11 1 Skizze des Szenengraphs zum VRML Beispiel 11 1 Abbildung 11 2 Aus VRML Beispiel 11 1 resultierende Darstellung Knoten vom Typ Group dienen der Gruppierung von untergeordneten Knoten Transform 87 Ein 3D Klassenbrowser fiir Java 11 VRML als Basistechnologie Knoten k nnen au er zur Positionsangabe ebenso zur Gruppierung Skalierung und Rotation eingesetzt werden Graphische Objekte werden durch Shape Knoten beschrieben die sich aus der Angabe einer geometrischen Form hier Cylinder und der Beschreibung des Erscheinungsbildes zusammensetzt
228. ren diese Methode so da der Objektpool dar ber informiert wird welcher Art die jeweils vom Teil ben tigten graphischen Objekte sind Der Objektpool sammelt diese Informationen und wei daher am Ende wie oft jede Art gebraucht wird Er erzeugt dann einige Objekte mehr als ben tigt In einem zweiten Durchlauf durch das Diagramm wird f r alle Diagrammteile realisiere aufgerufen Jedes Diagrammteil besorgt sich jetzt die notwendigen graphischen Objekte vom Objektpool und konfiguriert diese entsprechend der darzustellenden Gegebenheit Das hei t bspw da Symbole die Beschriftungen entsprechend dem Namen des symbolisierten Elements setzen oder da je nachdem welcher Sonderfall bei einer Benutzungsbeziehung vorliegt eine passende Pfeilspitze ausgew hlt wird 12 8 2 Stabile Ereignisbehandlung ber das EAI ist es m glich da ein Applet ber Aktionen des Benutzers in der Szene informiert wird Insbesondere die Benachrichtigung ber Ereignisse die durch TouchSensor Knoten ermittelt werden d h also Mausereignisse hat sich als instabil erwiesen Es kam h ufig zu Systemabst rzen wenn w hrend der Reaktion auf ein Ereignis bereits ein neues Ereignis auftrat F r diesen beim J3Browser h ufigen Fall mu te eine Ma nahme zur Stabilisierung gefunden werden Es wurde mit der Singleton Klasse EventQueue eine Entkopplung der Benachrichtigung durch das EAI und der Reaktion auf die Nachricht vorgenommen Bei einer Nachricht wird lediglich ein
229. rkonstanten sind eine Addition der sich aus den verschiedenen Pfeilen der Kante ergebenen Konstanten 111 Ein 3D Klassenbrowser fiir Java 12 Realisierung des Systems 12 8 Paket darstellung graphik Aus der Sicht des J3Browsers realisiert dieses Paket die dritte Stufe des Dreistufenmodells da es den VRML Browser und das EAI kapselt Damit steuert dieses Paket zwar kein physisches Ausgabeger t an hardwaren here Aspekte liegen aber nicht mehr n der Verantwortung des J3Browsers Ein wichtiges Ziel beim Entwurf des Systems war es die Realisierung der graphischen Ausgabe m glichst vollst ndig zu kapseln da w hrend der Experimentierphase erkannt werden mu te dal die verwendete Kombination aus VRML Szenen und einem Java Applet zwar f r prototypische Entwicklungen taugt f r eine Produktreife aber ein Umstieg angebracht w re Bei der Verwendung von VRML und dem EAI mu ten folgende Probleme ber cksichtigt werden auf die hier n her eingegangen werden soll Performante graphische Realisierung von Diagrammen Stabile Ereignisbehandlung Performate Aktualisierung der Darstellung Speichereffiziente Szenengraphen 12 8 1 Performante graphische Realisierung von Diagrammen Beim initialem Erzeugen und bei jedem Einladen eines Diagrammes mu eine VRML Szene erstellt werden die zur Anzeige des Diagrammes dient Dies mu gen gend performant geschehen um den Betrachter nicht durch lange Wartezeiten abzuschrecken Das EAI
230. rkt sich das Gruppensymbol die gruppierten Symbole Zudem erhalten die gruppierten Symbole einen Verweis auf das Gruppensymbol Am Ende dieses durch die Klasse GruppierungsFenster des gui Paketes gesteuerten Vorgangs w rd das Gruppensymbol in das Diagramm aufgenommen Da neue Gruppen nicht ikonifiziert sind d rfen neue Gruppensymbole zun chst noch nicht sichtbar sein Deswegen ist die Berechnung der effektiven Sichtbarkeit von Gruppensymbolen um einen Test auf Ikonifizierung erweitert Wird eine Ikonifizierung mittels der Methode ikonifiziere gefordert so w rd das entsprechende Gruppensymbol zum Parent der gruppierten Symbole gemacht An dieser Stelle k nnten Position und Gr e der gruppierten Symbole so ver ndert werden da sie innerhalb des Gruppensymbols erscheinen Derzeitig werden sie aber einfach unsichtbar gemacht Dazu umfa t d e Berechnung der effektiven Sichtbarkeit von Symbolen auch ein Pr fen ob das Symbol Bestandteil einer ikonifizierten Gruppe ist Das Gruppensymbol selbst wird in der Mitte aller gruppierten Symbole plaziert Durch die Methode deikonifiziere werden die gruppierten Symbole w eder hrem urspr ng lichem Parent zugeordnet Wie auch bei ikonfiiziere wird eine Neuberechnung der Abh ngig keiten initiieren Die Singleton Klasse GruppenHervorheber hebt alle zu einer Gruppe gehorenden Symbole hervor wenn eines der Symbol ber hrt wird Dazu implementiert die Klasse Beruehrungs Manager Listener Zur Hervorheb
231. rum durch eine Spe Zugeh rigkeiten Zialisierung von Verwendung erfa t Diese hei t Import und besitzt keine weiteren Attribute oder Assoziationen F r eine Instanz imp von Import gilt imp von verweist auf die importie rende Entitat und imp nach auf das importiere Element 9 5 Entitatsschachtelungen Seit dem Vorliegen der Version 1 1 von Java k nnen innerhalb der Deklaration von Klassen weitere Entit ten deklariert werden Entit ten d e innerhalb einer Klasse deklariert sind wer den in der Sprachdefinition auch wenn es sich um Schnittstellen handelt als nner Classes bezeichnet In dieser Arbeit wird zwischen inneren Klassen und inneren Schnittstellen unter schieden bzw wird wo dies nicht notwendig ist von inneren Entit ten gesprochen Das Bei spiel zeigt daneben weiterhin eine Sonderform innerer Entit ten n mlich die sogenannten anonymen Klassen Diese werden direkt bei der Instanziierung eines Objektes als Erweiterung einer bestehenden Klasse oder als Implementierung einer Schnittstelle deklariert Im Beispiel wird die Klasse Object erweitert und deren Methode hashCode redefiniert Beispiel 5 11 Innere Entit ten und anonyme Klassen package de beispiele public class Au en private class Innen Object h new Object int hashCode return 0 Der VON einer inneren Entitat ist die Zusammensetzung aus dem VON der umschlie enden Klasse und durch einem Punkt abgetrennte Name der inneren Entit t
232. rung Feijs und de Jung betonen demgegen ber einen wichtigen Vorteil den die manuelle Angabe hat durch sie k nnen Visualisierungen so gestaltet werden da sie mit der Intuition die der Entwickler der Software ber s e hatte korrespondieren Die manuelle Anordnung wird durch einen Editor TEDDY unterst tzt der es auch erlaubt Knoten nach geometrischen Formen auszurichten Ein weiterer Punkt auf den Feijs und de Jong Wert legen ist die M glichkeit Berechnungen mit Relationen durchzuf hren wobei Beziehungen zwischen Elementen des dargestellten Programmes durch Relationen modelliert werden Beispielsweise werden sich in einem 44 Ein 3D Klassenbrowser f r Java 7 Einige Visualisierungstechniken und systeme Programm viele Module gegenseitig benutzen Eine Darstellung aller Benutzungen konnte zu einem undurchschaubaren Gewirr von Pfeilen fuhren Als eine Moglichkeit die Zahl der darzustellenden Benutzungen zu verringern nennen Fejis und de Jong die Durchf hrung der Hasse Operation auf die entsprechende Relation Beim Vorliegen einer zyklenfreien Relation entfernt diese Operation die auch als transitive reduction bezeichnet wird Tupel aus der Relation die wenn die Relation als Beschreibung eines Graphen aufgefa t wird zu Abk rzungen f hren Zum Beispiel w rde aus einer Relation x V v z x z das Tupel x z entfernt 7 2 3 GraphVision3D und NestedVision3D Ein weiterer interessanter Ansatzpunkt f r diese
233. s Feld auftritt Nur definiert wenn use e alsFeld mit true belegt ist use zugriffVar H chster Zugriffsmodus der bei den Benutzungen von Used durch User zur Variablendeklaration auftritt Nur definiert wenn use e alsVar mit true belegt st Tabelle 5 2 Eigenschaften von Benutzungen Die besondere Kennzeichnung von Benutzungen als Feld und Benutzungen zur Variablen deklaration erfolgt in Anlehnung an viele Modellierungsprachen wie z B der UML bei de nen Assoziationen mit einer Multiplizitat von n im Gegensatz zu einer Multiplizitat von 1 und Aggregationen gesondert markiert werden k nnen 5 8 Zusammenfassung Abbildung 5 6 zeigt das in diesem Kapitel entwickelte Metamodell f r Strukturmodelle Um die Abbildung etwas bersichtlicher zu gestalten ist Entitat zweifach aufgef hrt Gegebenheit N von Zugeh rigkeit W Element name String A ees zeg De s zl mitRedef boolean alsFeld boolean als Var boolean zugriff zugriffFeld zugriffVar ausfuehrbar boolean N Instanziierbarkeit istA bstrakt boolean istKonkret boolean istFinal boolean istPublic boolean Entit t istProtected boolean istDefault boolean istPrivate boolean Abbildung 5 6 Metamodell fiir Strukturmodelle 33 Ein 3D Klassenbrowser f r Java 6 Verwendete Softwarebeispiele 6 Verwendete Softwarebeispiele Als ein Schritt der Konzeption
234. s Vektors vom Knoten n zum Knoten der durch die Feder mit n verbunden ist Allgemein sei die Richtung durch federrichtung n s t bezeichnet so da sich ergibt federkraft n s t federrichtung n s t federkraft n s t In der implementierten Version bekommt der Algorithmus die Mengen S und N nicht als Eingabe Statt dessen bildet er diese implizit aus den mm Diagramm enthaltenen Symbolen und Kanten Zur Steigerung der Performanz konnte dabei nicht wie zun chst vorgesehen fur jede Feder eine Instanz einer entsprechenden Java Klasse Feder verwendet werden sondern die Berechnung mu te in der Methode layout der Klasse Federsystem zusammengefa t werden die daher recht komplex wurde Damit die Aktualisierung der Position eines Symbols zun chst unabh ngig von der Bildschirmanzeige erfolgen kann ist jedem Symbol eine LayoutInfo Instanz assoziiert in der die Position zwischen gespeichert wird Weiterhin umfa t diese Instanz die auf das Symbol wirkende Kraft und den Impuls sowie zwei Kennzeichen die angeben ob die Position des Symbols ver nderbar und ob das Symbol sichtbar ist Um die Performanz weiter zu steigern sind all diese Informationen direkt d h ohne Methodenaufruf les und schreibbar Gleiches gilt fur die layoutspezifischen Entitatselemente von Kanten Jede Kante beinhalten dies bez glich insbesondere Variablen fur die Federkonstanten von Federn zur Durchsetzung der Kantenlange und des Ebenenabstands Diese Fede
235. schten Ansicht durchgef hrt so w rde aus dieser Verletzung des Prinzip der Objektkonstanz folgen da ein Betrachter jedesmal eine gewisse Zeit ben tigt sich wieder in der Darstellung zurecht zu finden Durch die animierte Darstellung wird diese Zeit minimiert Ein Nachteil der Cone Trees ist es da ihre Gesamtgr e exponentiell mit der Tiefe der Struktur d h dem maximalen Abstand zwischen ihrer Wurzel und den Bl tter w chst Zu diesem exponentiellen Gr enwachstum kommt es auch bei der zuvor betrachteten baumf rmigen Darstellung Dort kann dieses Wachstum aber als st render empfunden werden da es n cht auf drei sondern nur auf zwei Dimensionen verteilt erfolgt Als eine Abhilfe werden neben den sog Information Cubes vgl nachfolgender Abschnitt sogenannte Fractal Views von Koike und Yoshihara vorgeschlagen KY93 Auf die Vorstellung derartiger Verfahren wird aber verzichtet da die Softwarebeispiele gezeigt haben da Cone Trees ggf zusammen mit Information Cubes 1 d R ausreichend sind GroBere Hierarchien deren Visualisierung lohnt und die dazu nicht geeignet aufgespaltet werden k nnen d rften nur bei au ergew hnlich gro en Softwareprojekten zu erwarten sein 7 1 4 Information Cubes Information Cubes werden ebenfalls f r baumf rmige Hierarchien verwendet Sie wurden von Rekimoto vorgestellt Rek93 Mit Hilfe einer geschachtelten Darstellung von Knoten k nnen umfangreiche Hierarchien mit ber tausend Knoten
236. sen insgesamt beispielsweise stehen den ca 600 Klassen der Java API lediglich ca 135 Schnittstellen gegen ber wird es oft auch ausreichend sein lediglich eine ebenenf rmige oder top down Darstellung zu benutzen wobei die implementierten Schnittstellen oberhalb der 55 Ein 3D Klassenbrowser f r Java 8 Visualisierungstechniken fiir Java Software implementierenden Klassen angeordnet werden Somit ergibt sich ein Bild bei dem durchg ngige Superentit ten oberhalb von Subentit ten angeordnet sind vgl Abbildung 8 17 Diese Einheitlichkeit tr gt zum schnelleren Erfassen der Darstellung bei ei 1 d Abbildung 8 16 Orthogonale Darstellung der Implementierung Menu onent WenuContainer Abbildung 8 17 Top Down Darstellung von Implementierungen zusammen mit Erweiterungen 8 2 4 Benutzungen Im Gegensatz zu den zuvor betrachteten Beziehungen k nnen Benutzungen zyklisch sein so da keine Hierarchie vorliegt Damit ist die ebenenf rmige bzw die top down Darstellung nicht vollst ndig umsetzbar Trotzdem ist es erstrebenswert zumindest d e Anzahl der gegen das top down Prinzip versto enden Pfeile zu minimieren um den Aufbau der Darstellung strukturiert zu halten W hrend es bei den verschiedenen Hierarchien allerdings leicht ersichtlich war welches Symbol oberhalb eines anderen Symbols anzuordnen ist n mlich das der Superentit t ber dem der Subentit t mu dies bei der Benutzung genauer untersucht werden
237. sfenster fur die Analyse Die aufgelisteten Pakete bilden ein sogenanntes Projekt Projekte k nnen abgespeichert und wieder eingeladen werden Dabei f hrt das Laden nicht zum L schen vorheriger Eintr ge sondern neu geladene Eintr ge werden hinzugef gt Dadurch k nnen einzelne Projekte f r Mengen von Paketen verwendet werden die h ufiger ben tigt werden wie z B f r Klassen bibliotheken Weiterhin ist ein Kombinationsfeld vorhanden in dem ein Zugriffsmodus gew hlt werden kann Der hier gew hlte Zugriffsmodus bestimmt wie intensiv der Quelltext durch Javadoc untersucht wird Im Modus public werden z B nur ffentliche Entit ten und darin nur ffentliche Entit tselemente betrachtet wohingegen private dazu f hrt daB alle Entit ten und auch alle deren Entit tselemente untersucht werden Dies dauert l nger und das entstehende Strukturmodell ist weitaus umfangreicher Trotzdem sollte normalerweise private gew hlt werden und eine Filtrierung innerhalb der Darstellung erfolgen Nur in Ausnahmef llen z B bei fehlendem Speicherplatz w hrend der Darstellungsinitialisierung bietet sich die Verwendung anderer Modi an In der Zeile Ausgabedatei kann die Datei festgelegt werden in der das Strukturmodell gespeichert wird Der Knopf am rechten Rand ffnet einen Dateiauswahldialog In der Karte Pfade werden Dateipfade aufgelistet unter denen Pakete gesucht werden Wiederum finden sich rechts Schaltflachen uber die editiert werden ka
238. sierung der Darstellung Diese geschieht in zwei Schritten durch die Methode brennpunkt zunachst wird fur jeden Pfeil dessen Entfernung von der Hauptselektion berechnet Im zweiten Schritt werden aus diesen Entfernungen die DOI Werte der Pfeile aktiver Arten abgeleitet Die Werte geben direkt den Grad der Transparenz der Pfeile an W hrend der Entfernungsberechnung werden zwei Tabellen aufgebaut eine die den Namen von Pfeilen auf Entfernungswerte abbildet und eine die gleiches f r die Namen von Symbolen tut W hrend die erste Tabelle das Ergebnis der Entfernungsberechnung bildet wird die zweite Tabelle ausschlie lich w hrend der Berechnung genutzt Da der DOIManager bei jedem Selektionswechsel aktiv wird mu dessen Arbeit performant geschehen Dazu umfassen die Tabellen nicht alle Symbole und Pfeile des Diagramms sondern reichen nur bis zu einer maximalen Entfernung Weiterhin sind sie als Hash Tabellen realisiert F r beide Tabellen existiert jeweils eine Zugriffsmethode get die f r ein Symbol oder einen Pfeil die Entfernung aus der Tabellen liefert oder wenn kein entsprechender Tabelleneintrag existiert einen Maximalwert liefert Analog gibt es zwei set Methoden die die in der jeweiligen Tabelle gespeicherte Entfernung setzen Anfanglich befindet sich in der Tabelle fur die Symbolenfernungen nur ein Eintrag der fur das hauptselektierte Symbol die Entfernung 0 festlegt Es wird die Methode entfernungen Berechnen aufgerufen die ein
239. stellende Hierarchie repr sentiert Sie umfa t f r jedes in der Anordnung enthaltene Symbol eine Instanz von Hierarchie Die Hierarchie Instanz jedes Symbols ist ber die Assoziation subs mit den Hierarchie Instanzen der in der Anordnung direkt untergeordneten Symbole verbunden Mit parent existieren auch Verweise in Gegenrichtung Durch diese gesonderte Repr sentation ist die Arbeit der 106 Ein 3D Klassenbrowser fiir Java 12 Realisierung des Systems Subklassen von Anordnung unabh ngig von der Art der dargestellten Beziehung Es ist somit nicht notwendig eigene Spezialisierungen f r Vererbungshierarchien fur Zugeh rigkeiten usw zu bilden Es k nnen sogar mehrere Beziehungsarten gleichzeitig behandelt werden ohne da dies in Subklassen von Anordnung ber cksichtigt werden mu Zudem werden manuelle Ver nderungen in Hierarchien wie insbesondere das Vertauschen von Teilb umen m glich Ein wichtiger Bestandteil von Cone Trees sind die semitransparenten Kegel Diese werden hier als Dekorationen durch die Klasse Deko modelliert bei der es sich um eine weitere Spezialisierung der Klasse Teil des Pakets diagramm handelt Da es neben kegelf rmigen Dekorationen f r die anderen Arten von Anordnungen auch dreieckige Dekorationen gibt existieren die zwei Spezialisierungen KegelDeko und DreieckDeko Die Dekorationen verbinden immer das Symbol einer Hierarchie Instanz mit den direkt untergeordneten Symbolen Sie werden daher mit Hierarchie
240. stellung wie sie im Kapitel 8 6 beschrieben wurde Eine Darstellung auf den Symbolen l t sich nur durch eine Manipulation an einer zur Implementierung geh renden VRML Datei erreichen die im Anhang C beschrieben wird Der Grund hierf r ist neben der besprochenen geringen Zweckm igkeit ein erh hter Ressourcenbedarf den ein Vorhalten dieser Option mit sich bringt Als weitere Einschr nkung werden die Symbole einer ikonifizierten Gruppe nicht in das Gruppensymbol geschachtelt Zudem wird das Vorhandensein von Redefinitionen bei Erweiterungen w hrend der Analyse nicht ber ck sichtigt und daher auch nicht dargestellt Javadoc kann in der vorliegenden Version Pakete nicht verarbeiten die keine Entitaten enthalten Dies gilt auch wenn diese Pakete Subpakete umfassen Dementsprechend k nnen solche Pakete nicht mit dem J3Browser analysiert werden Als Abhilfe bietet es sich z B an derartigen Paketen Dummy Klassen hinzuzuf gen Die Initialisierung von Diagrammen ist in der derzeitigen Implementierung sehr einfach gehalten und gen gt meist n cht dem m Kap tel 8 erhobenen Anspruch einen ersten berblick zu liefern Mittels einer Programmfunktion die ein automatisches Ausrichten von Symbolen erlaubt kann aber nach der Initialisierung unaufwendig eine starke Verbesserung erlangt werden Das System enth lt derzeit keine Filter die dem Rechnen mit Relationen bei ArchView vergleichbaren s nd Es werden aber verschiedene andere Mechanisme
241. stellung integriert Ein Beispiel liefert die Darstellung von Klassenhierarchien Sowohl die XY als auch die YZ Ebene werden genutzt um jeweils ein zweidimensionales Diagramm darzustellen konkret die jeweilige Klassenhierarchie sowie eine Liste von deklar erten Methoden Der entstehende Zwischenraum wird genutzt um beide Diagramme zu verbinden vgl Prinzipskizze n Abbildung 7 6 Als zus tzlich Information bietet die Darstellung somit gleichzeitig Aufschlu dar ber welche Klassen welche Methoden deklarieren und insbesondere wo Redefinitionen vorliegen Die gleichzeitige Darstellung verschiedener Aspekte macht diesen Ansatz mit der dreidimensionalen Darstellung von Funktionen vergleichbar Wie dort bekommt der Betrachter ein Gesamtbild pr sentiert da er sich sonst erst durch mentale Integration mehrerer Bilder erarbeiten m te __ class node File B a C 3 method node File ef Rlease 1 wu are FREE Ceres Pete eee eee rae eat a a Aaa re frat at td EEE ee Class Hierarchy View Method List View Abbildung 7 6 Prinzip der Abbildung 7 7 Prinzip der Visualisierung mit Vogue Ouelle Koi93 Visualisierung mit VRCS Quelle KC98 Ein weiterer Ansatzes findet sich in dem von Koike und Chu vorgestellten Versions managementwerkzeug VRCS KC98 Hier werden mehrere parallele Ebenen des drei dimensionalen Raumes dazu genutzt jeweils die Versionsgeschichte einer Datei in der Form eines Baumes darzustellen vgl Pr
242. steuerte Vergr erung bzw Verkleinerung des Darstellungsma stabes Wichtig hierbei ist ein flieBen der bergang zwischen den Ma st ben so da die Darstellung vom Benutzer in einen Ge samtzusammenhang integriert werden kann Sowohl die Rapid Zooming Technik als auch die im letzten Abschnitt besprochene Verzer rungstechnik sind bei einer dreidimensionalen Darstellung auf nat rliche Weise integriert eine Verzerrung ergibt sich durch eine perspektivische Darstellung durch welche die Objekte im Vordergrund gegen ber denen im Hintergrund vergr ert erscheinen Bei der Ann herung an Objekte ergibt sich zudem deren Vergr erung und somit ein Rapid Zooming Problematisch ist es allerdings da Objekte 1m Hintergrund nicht notwendigerweise zu denen im Vordergrund im Zusammenhang stehen F r die Plazierung von graphischen Objekten wird zwar 1 a gefordert da zusammenh ngende Objekte nahe beieinander liegen trotzdem kann es in gewisser Weise willk rlich sein welche Objekte im Hintergrund erscheinen Dies ist insbesondere auch deshalb so weil eine Betrachtung aus unterschiedlichen Winkeln erfolgen kann wobei s ch der sichtbare Hintergrund ver ndert Elisionstechnik Bei der Elisions oder Auslassungstechnik werden Elemente der Darstellung im Kontext vereinfacht dargestellt w hrend im Fokus eine detaillierte Darstellung erfolgt Multiple Bildschirmfenster H ufig findet man die Verwendung zweier Bildschirmfenster die praktisch d
243. t fur den VRML Export von Diagrammen verantwortlich Diese Klassen nutzen die Methoden save von Symbol und export von Teil um Symbole zu speichern bzw Diagrammteile zu exportieren 12 5 4 Sichtbarkeit von Diagrammteilen Die Sichtbarkeit eines Diagrammteils innerhalb eines Diagramms wird durch verschiedene Faktoren bestimmt So kann der Benutzer die Darstellung jedes Symbols und jedes Pfeils einzeln unterbinden Zudem kann er Entit tssymbole und Pfeile filtern sowie die Isolierung von Symbolen fordern Durch die Isolierung sowie der unterbundenen Darstellung von Symbolen k nnen auch zugeh rige Pfeile unsichtbar werden All dies wird durch die Metho de effektiveSichtbarkeit von Teil modelliert Diese liefert als Ergebnis eine Konjunktion der verschiedenen die S chtbarkeit bestimmenden Faktoren Da be den unterschiedlichen Arten von Diagrammteilen verschiedene Faktoren relevant sind wird die Methode von Subklassen redefiniert Die effektive Sichtbarkeit eines Pfeils bestimmt sich bspw wie folgt public boolean effektiveSichtbarkeit boolean neuekffektiveSichtbarkeit super effektiveSichtbarkeit amp verbindung eltig amp Izulnneren start end amp zulnneren end start amp StartEndOk amp inFiltermenge Damit ein Pfeil sichtbar ist mu zun chst die Implementierung aus Teil die Sichtbarkeit best tigen Sie tut dies wenn die Darstellung des einzelnen Teils nicht manuell durch den Benutzer unterbunden wurde
244. t s ch die sogenannte Eigenschaftsmarkierung in den vorangegangenen Abbildungen stets gr n ber die als relevant betrachtete Eigenschaften der Entitat dargestellt werden Dazu wird die Markierung in den Dimensionen Form und Farbe variiert Dies geschieht unabh ngig voneinander so da dem semiotischen Prinzip der Orthogonalitat nachgekommen wird Die Wiederholung auf allen sechs Seiten verbessert die Erkennbarkeit ber die Farbe der Eigenschaftsmarkierung wird der Zugriffsmodus einer Entit t angegeben Es gelten die in Tabelle 8 1 auf nachfolgender Seite angegebenen Entsprechungen zwischen den Zugriffsmodi und der Farbe der Eigenschaftsmarkierung Diese Korrespondenzen sind an die Farben einer Ampel angelehnt wobei zus tzlich grau f r den Modus private verwendet wird was dazu f hren soll da f r das globale Verst ndnis potentiell weniger wichtige Entit ten optisch etwas zur cktreten Die Vergabe der Ampelfarben erfolgt aus einer Sicht von au erhalb des Paketes zu dem eine Entitat geh rt So ist ein externer Zugriff auf Entit ten mit dem Zugriffsmodus default gesperrt weswegen hier rot verwendet wird Die Instanziierbarkeit einer Entitat wird durch die Form der Markierung angezeigt vgl Ta belle 8 2 auf nachfolgender Seite Kreis und Dreieck sind bei mittleren Entfernungen noch recht gut unterscheidbar zudem korrespondiert der Kreis zu den Kugeln fur Schnittstellen Da Schnittstellen stets abstrakt sind kann der Kreis weg
245. tierungen gemischte Anordnungen zu erzeugen Bei Benutzungen Importen und Abh ngigkeiten wird in Pfeilrichtung durchlaufen ansonsten in Gegenrichtung so da z B benutzte Elemente unterhalb von benutzenden Elementen dar gestellt werden Dies entspricht den im Kapitel 8 diesbez glich gemachten Bemerkungen Die Hierarchiebildung ist begrenzt auf Symbole mit dem gleichen bergeordnetem Symbol bzw auf Symbole ohne bergeordnetem Symbol und von einer Schachtelungstiefe Optional kann s e weiter auf selektierte Symbole eingegrenzt werden Die zwei folgenden Zeilen der Maske sind f r B ume nicht vorhanden F r Cone Trees und 84 Ein 3D Klassenbrowser f r Java 10 Benutzung des Systems Kegel kann in der oberen Zeile der Startradius bestimmt werden Dies ist der Radius eines Kreises unterhalb des Wurzelsymbols auf dem die Symbole der ersten Hierarchiestufe plaziert werden Die n chste Zeile ist f r Cone Trees und Kegel verschieden In beiden Fallen besteht ihr Zweck darin die Radien f r weitere Hierarchiestufen zu bestimmen Bei Cone Trees hat man es mit einer Radiusabnahme und bei Kegeln mit einer Zunahme zutun Im Falle eines Cone Trees wird die Basis einer Potenzberechnung eingegeben Diese lautet ran r basis wobei n fur die Hierarchiestufe steht und r f r den f r diese Stufe verwendeten Radius mit r als Startradius Fur Kegel wird die Radiuszunahme von Stufe zu Stufe angegeben so das sich die Formel Fn
246. tion kommt es dazu da auch ihre graphische Darstellung nicht mehr als Ganzes berblickt werden kann und somit die erwartete Verst ndlichkeit u U verloren geht Verschiedene Studien haben gezeigt da sich durch dreidimensionale Graphiken umfangreiche Sachverhalte besser verdeutlichen lassen WF96 SM93 Ziel diese Arbeit ist es deshalb ein Konzept aufzuzeigen mit dem sich die Struktur objektorientierter Software geeignet dreidimensional visualisieren l t Dies erfolgt am Beispiel von Software die in der Programmiersprache Java implementierter ist im folgenden kurz Java Software AG98 Das gezeigte Konzept wird in einem dreidimensionalen Klassenbrowser prototypisch umgesetzt Die Arbeit ist in vier Teile gegliedert Der Rest des ersten Teils befa t sich zun chst m Kapitel 2 mit der Motivation f r diese Arbeit wobei besonders auf m gliche Vorteile drei dimensionaler Darstellungen eingegangen wird Im dritten Kapitel werden dann einige Grundlagen zu dieser Arbeit vermittelt Dazu geh ren Begriffe der dreidimensionalen Computergraphik sowie eine n here Betrachtung des Visualisierungsbegriffs Der s ch anschlie ende zweite Teil besch ftigt sich mit der Konzeption einer drei dimensionalen Darstellungsform fur den Aufbau von Java Software Der dritte Teil beschreibt die prototypische Implementierung eines auf der konzipierten Darstellungsform basierenden Klassenbrowsers Die Arbeit schlie t mit einem vierten Teil der eine Bew
247. to gegen dieses Prinzip ware es beispielsweise wenn man die Helligkeit der F rbung eines graphischen Objektes zur Darstellung einer Eigenschaft verwendet und gleichzeitig eine Simulation von wechselnder Beleuchtung erfolgt Da sich durch die wechselnde Beleuchtung die Helligkeit der F rbung ebenfalls ver ndert ist die zweifelsfreie Erkennbarkeit der Eigenschaft nicht gegeben Eine andere Form des Versto es gegen das Orthogonalit tsprinzip kann auftreten wenn beispielsweise eine Eigenschaft eines Elementes dadurch dargestellt w rde da das entsprechende Objekt entweder als Drahtmodell eines K rper oder als kompletter K rper dargestellt w rde W rde dann eine andere Eigenschaft durch die Farbe des K rpers dargestellt so w rde sich die Situation ergeben da bei der Darstellung des K rpers als Drahtmodell d e Farbe kaum zu erkennen w re Objektkonstanz Wenn sich die Darstellung eines grafischen Objektes w hrend der Betrachtung eines Diagramms ver ndern kann z B weil sich der Blickwinkel des Betrachters auf das Objekt ver ndert so sollte diese Ver nderung so gestaltet werden da es erkennbar bleibt da es sich weiterhin um dasselbe Objekt handelt Diese Eigenschaft wird als Objektkonstanz bezeichnet Um die Objektkonstanz bei Ver nderungen des Blickwinkels zu erhalten kann das Objekt z B so entworfen werden da es symmetrisch bez glich einer vertikalen Achse ist Ist es mit Beschriftungen versehen so k nnen diese be
248. u 1 Bilden eines empirischen Modells des zu visualisierenden Sachverhaltes 2 Aufbau einer internen Repr sentation der Visualisierung 3 Realisierung der Visualisierung durch Ausgabe auf ein graphisches Ger t Auch das vorliegende Visualisierungssystem orientiert sich an diese Dreiteilung Besonders deutlich wird dies beim Ubergang von der ersten zur zweiten Stufe da zwei verschiedene Programme eingesetzt werden Abbildung 9 1 zeigt den groben Systemaufbau J3Browser d jo D d e e CH a Java Quelltext Die gramm a Daten EC Systemgrenze IT Modul gt relevanter Datenflu Abbildung 9 1 Grober Systemaufbau Im ersten Schritt der Analyse wird aus einer Menge von Java Quelltextdateien ein Struktur 71 Ein 3D Klassenbrowser f r Java 9 Uberblick modell gewonnen das die im Quelltext deklarierten Entitaten und Pakete sowie ihre Beziehungen beschreibt Dieses Strukturmodell dient als Eingabe f r die Darstellung in der die eigentliche Visualisierung stattfindet Ist noch kein Diagramm f r ein Strukturmodell vorhanden erfolgt nun zun chst eine Initialisierung bei der die interne Repr sentation einer Visualisierung aus dem Struktur modell abgeleitet wird Alternativ k nnen bereits existierende Diagramme in die Darstellung eingeladen werden Dabei erfolgt ein Abgleich mit dem das eingelesene Diagramm auf eventuelle Ver nderungen im Strukturmodell angepa t wird Die initialisierte od
249. u eine Vererbungshierarchie besitzt da alle Klassen von der gemeinsamen Oberklasse Object erben Es w re somit m gl ch alle Klassen z B innerhalb eines Cone Trees darzustellen Einige Klassen der Java API insbesondere solche zur Verwaltung von Kollektionen von Objekten basieren zwar auf der Existenz der gemeinsamen Oberklassen bei der Modellierung von Programmen wird sie aber nur selten von praktischer Bedeutung sein Es ist daher h ufig eher sinnvoll die Hierarchie in mehrere Teilhierarchien aufzuspalten Zun chst bietet sich die Verwendung der Cone Tree Technik an Abbildung 8 11 auf nachfolgender Seite zeigt eine Klassenhierarchie aus dem Paket awt der Java API Insbesondere f r gr ere Hierarchien ist die Technik geeignet So konnten mit ihr eine Klassenhierarchie bestehend aus allen Klassen der Pakete java awt und java lang visualisiert werden vgl Anhang A Diese Hierarchie umfa t 137 Klassen und hat damit eine Gr e die sich auf herk mmliche Weise kaum bersichtlich darstellen l t Dabe besitzen Cone Trees im Aussehen gewisse hnlichkeit zu der bei zweidimensionalen Darstellungen h ufig verwendeten Darstellung durch B ume so da damit gerechnet werden kann da Betrachter die mit der Darstellung durch B ume vertraut sind sich schnell an die Cone Tree Technik gew hnen Weit weniger intuitiv ist die Verwendung von Information Cubes zur Darstellung von Vererbungshierarchien Da diese aber auch f r mehr als 1000
250. uktor gesucht der bei allen Subklassen von Symbol vorhanden ist Durch ihn entsteht eine neue Instanz einer konkreten Subklasse von Symbol Insgesamt wird das Laden durch die Klasse DiagrammEALoad gesteuert Diese Subklasse von DiagrammEA ist auch fur den Abgleich von Diagrammen zustandig Eine Darstellungs datei wird von ihr sequentiell gelesen Der erste Block enth lt einen Verweis auf die Datei des dem Diagramm zugrundeliegenden Strukturmodells Die nachsten zwei Blocke enthalten An gaben zu den im Einstellungsfenster festgelegten Ebenenfarben siehe Abschnitt 10 8 und eine sogenannte Pfeilnegativliste s u Fur die weiteren Bl cke werden die entsprechenden Symbole mittels factory instanziiert Als Bestandteil des Abgleichs wird gepr ft ob das symbolisierte Element 1m Strukturmodell vorhanden ist Wenn nicht dann wird das Symbol wieder verworfen Bl cke f r innere Symbole werden dann ebenfalls ignoriert Zus tzlich wird der Name des verworfenen Symbols gespeichert um den Benutzer sp ter ber Ver nderungen informieren zu k nnen Existiert das zu symbolisierende Element bzw ben tigt ein Symbol ein solches gar nicht was z B bei Gruppensymbolen der Fall ist werden die weiteren Eigenschaften ber die Methode load von Symbol gelesen wobei durch das Lesen der Eigenschaft Parent die Aufnahme in das Diagramm erfolgt Die verschiedenen Subklassen redefinieren load um die jeweils nur f r sie relevanten Eigenschaften zus tzlich zu lese
251. ung 8 13 Kegelf rmige Darstellung bei vielen Abbildung 8 14 Kegelf rmige Darstellung mit Beziehungen zwischen den Klassen der Hierarchie Nutzung des Innenraum f r hierarchiefremde Entit t Sowohl Cone Trees als auch Kegel und B ume geben die Anordnung der Symbole weitgehend vor Wie oben gezeigt wurde k nnen durch sie Erweiterungshierarchien gut dargestellt werden Die gleichzeitige Darstellung andersartiger Beziehungen ist aber proble matisch Kegel k nnen hier in einigen F llen Abhilfe schaffen Sie sind aber durch die mangelnde Ausnutzung des Innenraumes nicht n allen F llen g nstig Als weitere Alternative bietet sich an die Vorgaben f r die Anordnung zu lockern so da ebenenf rmige oder auch top down Darstellungen entstehen Die Lockerungen f hren zu einer besseren Darstellbarkeit von zus tzlichen Beziehungen da diese bei der Plazierung von Symbolen leichter ber cksichtigt werden k nnen die Erweiterungshierarchie tritt aber weniger deutlich hervor Ein Beispiel daf r liefert Abbildung 8 17 auf der Seite 56 in der eine Klassenhierarchie kombiniert mit Implementierungsbeziehungen gezeigt wird Der Einsatz ebenenf rmiger Darstellungen zeigt einen weiteren Vorteil dreidimensionaler Visualisierungen auf gegebene Visualisierungstechniken lassen sich hier flex bler umsetzen So f hrt die Ebenenf rmigkeit im Zweidimensionalen zu dem Zwang Symbole einer Ebene auf einer horizontalen Linie zu plazieren Dreidimensionale Darst
252. ung einfacher Hier ist nur ein Spezifikationselement erforderlich Der gesamte Kegel wird um das Wurzelsymbol gedreht und zwar um einen Winkel der sich zwischen der Strecke vom Wurzelsymbol zur Betrachterposition und der Strecke vom Wur zelsymbol zum hauptselektierten Symbol befindet Betrachterposition X a Ausgangssituation b Situation vor der letzten Drehung Abbildung 12 13 Berechnung der Drehspezifikationselemente bei Cone Trees Die sichtbare Drehung erfolgt durch die Drehmaschine Diese arbeitet in einem eigenen Thread Solange keine Drehung durchgef hrt wird st der Thread gestoppt zur Verwendung von Threads in Java vgl z B Lea97 Er nimmt erst mit der bergabe einer Drehspezifika tion mittels drehe seine Arbeit auf Die Drehung erfolgt f r Cone Trees und Kegel auf die gleiche Weise in mehreren Schritten Bei jedem Schritt wird f r jedes Spezifikationselement die spezifizierte Drehung f r einen Bruchteil des angegebenen Winkels ausgef hrt Ist die Drehspezifikation komplett durchlaufen wird der Thread f r einige Millisekunden gestoppt wobei die graphische Darstellung aktualisiert wird Dann beginnt ein neuer Schritt Aus der entlang des Selektionspfad sequentiell berechneten Drehspezifikation entstehen somit s multane Rotationen um mehrere Achsen was optisch ansprechender st Die Drehmaschine beendet hre Arbeit wenn alle spezifizierten Drehungen vollst ndig abgearbeitet sind 12 7 Paket darstellung diagra
253. ung wird die Farbe jedes Symbols etwas aufgehellt Diese Hervorhebung wird wieder ruckgangig gemacht wenn die Beruhrung endet 12 5 9 Manipulationen von Diagrammteilen Wird an einem Diagrammteil eine Manipulation vorgenommen sind oft weitere Aktionen erforderlich So erzwingt die Ver nderung einer Symbolposition das Aktualisieren des Ver laufs der mit dem Symbol verbundenen Pfeile Ein weiteres Beispiel ist das Andern der Darstellungsform eines Symbols Wird diese z B anhand des Menus von einsehbar auf unein sehbar ver ndert so mu auch die Symbolleiste aktualisiert werden da dort die Darstellungs form des hauptselektierten Symbols angezeigt wird Um solche Aktualisierungen zum richtigen Zeitpunkt durchzuf hren wird haupts chlich wieder das Entwurfsmuster Observer eingesetzt Klassen wie Symbolleiste implementieren 105 Ein 3D Klassenbrowser fiir Java 12 Realisierung des Systems die Schnittstelle TeilListener Instanzen k nnen sich dann beim interessierenden Teil registrieren lassen Daraufhin werden sie uber den Aufrufe einer Methode updateTeil uber Veranderungen der Eigenschaften des Teils informiert Allein zur Aktualisierung der mit einem Symbol verbundenen Pfeile werden vom Symbol direkt entsprechende Methoden von Pfeil aufgerufen W rde sich jeder Pfeil bei den verbundenen Symbolen als Listener eintragen so wurde viel Speicherplatz verschwendet da Symbole bereits ber die Assoziation pfeile vgl Abbildung 12 4 auf Seite
254. utung der einzelnen Schaltfl chen W hrend der Benutzung des J3Browsers wird die Bedeutung einer Schaltfl che angezeigt wenn sie mit dem Mauszeiger ber hrt wird Einige Schaltfl chen besitzen vergleichbar mit Kontrollk stchen zwei Zust nde an und aus Der Zustand an wird durch eine gr ne Hervorhebung angezeigt Gegen berliegendes Dokumenation oder Ischi oo u a Symbol in Anordnung Eigenschaften ber Gruppen m a Navigationsgeschwindigkeit nn selektieren Doppelklick hervorhebung aktiv ee a erh hen G bzw aktiv oder Vollst ndige verringern G interaktive Anordnungen Save Pal En Pr iA subs Turn Doku Egen ta o o Keine mee vorst lt gt x em _o e Subelemente in Speichern Anordnung sichtbar SE Darstellungsform Dokumentation Pakete Entitaten und Ikonfizieren von von links nach rechts Bl ttern lt gt Schlie en X Pfeile ber hrbar Gruppen einsehbar uneinsehbar HTML unterdr cken oder nur Sockel Abbildung 10 13 Symbolleiste 10 8 Globale Einstellungen Menu Diagramm ber das Diagrammen kann das Einstellungsfenster ge ffnet werden in dem verschiedene global g ltige Optionen gesetzt werden k nnen vgl Abbildung 10 15 Dazu besitzt es die Registrierkarten Allgemein und Ebenenfarben Die M glichkeiten der Karte Allgemein k nnen der Abbildung entnommen werden Die nicht abgebildete Registrierkarte dient dazu Far
255. va 2 Motivation kann der Eindruck etwas verbessert werden hier kann sich obige Frage aber auch umdrehen so da jetzt vermutet werden kann da das Dreieck hinter dem Rechteck liegt Abbildung 2 9c In dreidimensionalen Schachtelungen wird die Zugeh rigkeit bei weitem deutlicher Abbildung 2 9d Werden Symbole entworfen wird oft die Forderung nach einer leichten Skizzierbarkeit per Hand erhoben Beispielsweise wurde die Booch Notation Boo94 f r den objektorientieren Entwurf dahingehend kritisiert da das f r Klassen verwendete Wolkensymbol vgl Abbildung 2 10 nicht leicht von Hand zu zeichnen sei Daher sind Symbole oft vergleichsweise einfach gehalten Bei dreidimensionalen Visualisierungen ist die Abbildung 2 10 Symbol f r Forderung nach Skizzierbarkeit hinf llig man wird immer auf Honger in der Booch Notation eine Rechnerunterst tzung angewiesen sein Dies k nnte sich als ein Vorteil erweisen da sich hierdurch die M glichkeit ergibt komplexere und damit vielleicht intuitivere Symbole zu verwenden Weiterhin stehen mit der Rechnerunterst tzung zus tzliche M glichkeiten wie Animation oder Farbgebung zur Verf gung die auf dem Papier nicht oder nur schwer nachvollziehbar sind Die prinzipielle Eignung dreidimensionaler Visualisierungen wurde durch verschiedene Studien gezeigt Zum Beispiel vergleichen Ware und Franck in einer ihrer Arbeiten die zwei und dreidimensionale Visualisierung von Graphen WF96 Die
256. vorhandene nicht statische Methode Nachfolgendes Beispiel zeigt eine modifizierte Deklara tion der Klasse Auto Beispiel 5 4 Redefinition class Auto extends Fahrzeug Auto String initialerStandort super initialerStandort tanken Int tankfuellung void tanken tankfuellung 50 String fahren String ziel tanken return super fahren ziel class Fahrtenplaner void fahrtAusf hren Fahrzeug f String ziel f fahren ziel Hier wird die Methode fahren redefiniert Deren ver ndertes Verhalten besteht darin dal zu n chst die Methode tanken aufgerufen wird bevor anschlie end ber das Konstrukt su per fahren ziel die urspr ngliche Implementierung aufgerufen wird Redefinition ist in Java ein m chtiges Instrument wie bei der objektorientierten Programmierung insgesamt da sich hierdurch ein Objekt welches eine Methode aufruft nicht um die konkrete Klasse des 24 Ein 3D Klassenbrowser f r Java 5 Strukturmodelle f r Java Software Objektes k mmern mu dessen Methode aufgerufen wird Dies wird in der Klasse Fahrten planer des Beispiel 5 4 gezeigt Da berall dort wo eine Instanz von Fahrzeug erwartet wird auch eine Instanz von Auto angegeben werden kann kann einem Aufruf von fahrtAusftihren auch eine Instanz von Auto als Parameter f zugewiesen werden Wenn der Aufruf von fahren f r f erfolgt entscheidet das Laufzeitsystem von Java welche Implementierung von fahren verwendet wird d h
257. wendung von Sprachkonzepten die Java zur Verf gung stellt Die Anwendung f hrt zu Gegebenheiten innerhalb der Software Diese k nnen grob unterteilt werden in Elemente in die eine Software gegliedert wird und Beziehungen zwischen diesen Elementen Gegebenheit Element Beziehung nach Abbildung 5 1 berblick ber das Metamodell fiir Strukturmodelle Kursiv geschriebene Namen kennzeichnen in dieser und in den folgenden Abbildungen abstrakte Klassen gegen ber konkreten Klassen siehe auch Abschnitt 5 1 3 Ein zentrales Konzept der objektorientierten Programmierung ist das Bilden von Klassen Wie in vielen anderen objektorientierten Programmiersprachen ist dies auch in Java m glich 21 Ein 3D Klassenbrowser f r Java 5 Strukturmodelle f r Java Software Nicht so weit verbreitet sind Schnittstellen durch die abstrakte Datentypen spezifiziert wer den konnen Da Klassen und Schnittstellen viele Gemeinsamkeiten aufweisen werden sie in diesem Text unter dem Begriff der Entitat zusammengefa t Entitaten k nnen nach beliebigen Gesichtspunkten zu Paketen geb ndelt werden um Software in Subsysteme aufzuteilen Zwischen den Elementen einer Software k nnen verschiedenartige Beziehungen bestehen Diese lassen s ch zun chst in Zugeh rigkeiten und Verwendungen unterteilen Von einer Zu geh rigkeit wird gesprochen wenn ein Element Teil eines anderen ist Beispielsweise wird das B ndeln von Entit ten zu eine
258. wenn f r jeden Knoten mit Ausnahme der Wurzel genau ein bergeordneter Knoten vorhanden ist Die Wurzel ist der Knoten der 37 Ein 3D Klassenbrowser f r Java 7 Einige Visualisierungstechniken und systeme Hierarchie der keinen bergeordneten Knoten besitzt IN ANA si A IIA MIr VJ A ZIL H I a Baum b Ebenenf rmige Darstellung c Ohne Vorgabe Abbildung 7 1 Einfache Darstellungsformen f r verschiedenartige Hierarchien Bei B umen werden gem der Hierarchiestufen quidistante Ebenen in der Darstellung eingef hrt Fur diese Ebenen werden dann weitere Anordnungsvorgaben gemacht Letztere Vorgaben k nnen aufgehoben werden so da die Knoten innerhalb der Ebenen flexibel plaz erbar werden Zudem k nnen so auch Hierarchien ohne Baumf rmigkeit dargestellt werden vgl Abbildung 7 1b Eine solche Darstellung wird als ebenenf rmig bezeichnet Schlie lich kann auch die Aufteilung in Ebenen aufgegeben werden Weniger restriktiv kann zwar gefordert werden da in der Hierarchie bergeordnete Knoten oberhalb von untergeordneten plaziert werden m ssen ohne das allerdings ein Abstand vorgegeben wird Dies wird nachfolgend als top down Darstellung betitelt Bei Aufgabe auch der letzten Forderung k nnen Hierarchien nur noch schwer erkannt werden wenn dieses Gebot nicht durch m Prinzip gleichwertige Forderungen w e z B bergeordnete Knoten sind links von untergeordneten Knoten anzuordnen ersetzt wird
259. ziehung Anstatt aber anhand des DOI bin r die Sichtbarkeit des entsprechenden Pfeiles zu entscheiden kann er durch abgestufte Helligkeits oder Transparenzwerte unterschiedlich deutlich hervorgehoben werden Es zeigte sich aber da sich bei der Darstellung der Entitaten eines Paketes die Situation ergeben kann da der berwiegende Teil aller Beziehungen eine so geringe Entfernung von jedem m glichen Brennpunkt hat da mit der DOI Technik kein Gewinn an bersichtlichkeit erzielt wird da zu viele Benutzungen einen hnlichen DOI zugeordnet bekommen vgl Abbildung 8 21 auf folgender Seite Oben beschriebene Situation ist auf die Vielzahl von Beziehungen zwischen den Entit ten eines Paketes zur ckzuf hren die be Paketen auftritt bei denen eine starke Koheranz vorliegt Diese Koher nz ist bei der Strukturierung eines Systems erstrebenswert so da die Situation recht h ufig sein wird In diesen F llen ist es sinnvoller lediglich die Benutzungen der im Brennpunkt liegenden Entitat deutlich anzuzeigen Alle weiter entfernten Benutzungen werden durch starke Transparenz n den Hintergrund gestellt vgl Abbildung 8 22 auf folgender Seite Sie st ren so nicht allzusehr es wird aber mehr Kontext vermittelt als wenn die Darstellung komplett unterbleibt Diesen Ansatz kann man dahingehend erweitern da man auch die Pfeilrichtung ber cksichtigt Es kann unterschieden werden ob nur Pfeile die auf den Brennpunkt zeigen deutlich erke
260. zusetzen Hier sind Paketzusammenfassungen brauchbar Diese machen es wiederum erforderlich die Paketzugeh rigkeit auf andere mitunter weniger intuitive Art wie z B durch F rbung darzustellen Symbole f r Pakete und Paketzusammenfassungen k nnen gut n einer an die Information Landscapes erinnernden Form in der Darstellung angeordnet werden wobei gegen ber der urspr nglichen Technik Symbole nicht auf dem Boden der Darstellung fu en m ssen Hierdurch werden Pfeil berschneidungen vermindert Paketzusammenfassungen s nd hilf reich um das Zusammenspiel von Entit ten verschiedener Pakete im berblick darzustellen H ufig gen gt jedoch bereits eine Information dar ber zu welchen Entit ten aus anderen Paketen eine bestimmte Entitat in Beziehung steht Um diese Information zu vermitteln ohne dal extra eine Paketzusammenfassung erzeugt werden mu ist die tempor re Einblendung von Entit tssymbolen n fremde Paketsymbole und das Anzeigen von Pfeilbeschreibungen sinnvoll Zur Reduktion der Darstellungskomplexitat sind f r Symbole und Pfeile verschiedene Techni ken gezeigt worden Entitatssymbole k nnen genau wie Benutzungspfeile nach Zugriffsmodi gefiltert werden Die Anwendbarkeit von Degree of Interest Filtern f r Pfeile wird durch die h ufig starke Koh renz der Entit ten eines Pakets beeintr chtigt Sinnvoller ist es meist le diglich die Pfeile f r Beziehungen der im Brennpunkt liegenden Entit t deutlich anzuzeige
261. zwischen den gefundenen Elementen ermittelt Auch dies geschieht meist anhand der Doc Instanzen der Elemente eines Strukturmodells So wird die bereits erw hnte Methode superclass der Schnittstelle ClassDoc genutzt um Erweiterungsbeziehungen zwischen Klassen zu finden Mit Hilfe der ClassDoc Methode interfaces k nnen sowohl die Schnittstellen gefunden werden die eine Klasse implementiert als auch die Schnittstellen die eine Schnittstelle erweitert Dementsprechend werden auf diese Art Implementierungs beziehungen sowie Erweiterungsbeziehungen zwischen Schnittstellen ermittelt Weitere Methoden von ClassDoc innerClasses containingPackage sowie importedClasses und importedPackages werden genutzt um Schachtelungen von Entit tsdeklarationen Paket zugeh rigkeiten von Entitaten sowie Importe von Entitaten und Paketen aufzusp ren Pakethierarchien allerdings werden mit Hilfe der vollst ndig qualifizierenden Namen von Paketen abgeleitet Dazu wird f r jedes Paket a eines Strukturmodells gepr ft ob m Struktur modell ein Paket existiert das vom Namen her das direkte Superpaket von a ist also bspw ob ein Paket de f r ein Paket de darstellung existiert Gegebenenfalls wird dann eine entsprechende PP Instanz in das Strukturmodell aufgenommen Die Behandlung von Benutzungen ist etwas komplexer F r jede Entit t user eines Strukturmodells geschieht folgendes Es wird eine Liste erzeugt die f r jede Entit t die durch user benutzt wird
Download Pdf Manuals
Related Search
Diplomarbeit diplomarbeit diplomarbeit beispiel diplomarbeit drucken diplomarbeiten24 diplomarbeit bbs diplomarbeit englisch diplomarbeit musiktherapie diplomarbeit binden lassen diplomarbeit vorlage diplomarbeit binden diplomarbeitsdatenbank login diplomarbeit schreiben lassen diplomarbeit drucken lassen diplomarbeit datenbank diplomarbeit themen diplomarbeitsthemen hak diplomarbeit meduni wien diplomarbeit korrigieren lassen
Related Contents
Bush MPK4230BUK MP3 Player User Manual LA LETTRE DU SERVICE DES ORDURES MÉNAGÈRES Numéro 7 Copyright © All rights reserved.
Failed to retrieve file