Abstract
In de laatste twee decennia heeft de computer de mens in staat gesteld enorme hoeveelheden
informatie te vergaren, te bewaren en te bewerken. Als een direct gevolg van deze
virtuele vloedgolf aan informatie is het voor de moderne mens steeds moeilijker om te
bepalen welke informatie voor hem relevant is. Dit probleem wordt nog eens verergerd
door het feit dat het moeilijk is om het begrip ‘relevante informatie’ vooraf te specificeren.
Er is daarom een duidelijke behoefte aan verkennende gereedschappen die het mogelijk
maken dergelijke informatie te achterhalen, voordat exact bekend is wat relevant is en wat
niet.
Visualisatie (meer specifiek, computer ondersteunde visualisatie) is een onderzoeksgebied
dat zich bezig houdt met het gebruiken van computer grafiek om grote hoeveelheden
data inzichtelijk te maken. Denk bijvoorbeeld aan gegevens uit windtunnels, computersimulaties
of atmosferische metingen.
Dit proefschrift gaat over het inzichtelijk maken van de informatie in abstracte data,
zoals bijvoorbeeld de inhoud van databases, grote organisatiestructuren of communicatiepatronen.
Abstracte data heeft geen voor de hand liggende ruimtelijke representatie, wat
het zichtbaar maken bemoeilijkt. We beperken ons hier tot abstracte gegevens in de vorm
van netwerken (ook wel grafen genoemd). Deze gegevens bestaan uit een verzameling
nodes (bijvoorbeeld personen, stukjes software of internetpagina’s) waartussen relaties
(bijvoorbeeld ‘is een vriend van’, ‘gebruikt’ of ‘verwijst naar’) zijn gedefinieerd.
Een veelgebruikte manier om een graaf visueel te maken is het node-link diagram, een
verzameling symbolen verbonden door lijnen. Het automatisch genereren van dergelijke
diagrammen is echter niet eenvoudig, zelfs als de graaf relatief klein is. Grotere grafen
(met meer dan een paar duizend nodes) vormen een nog groter probleem en resulterende
diagrammen zijn vaak erg moeilijk leesbaar. De onderzoeksvraag die dit proefschrift
probeert te beantwoorden is dan ook: hoe kunnen we visualisatie gebruiken om inzicht
te krijgen in de structuur en inhoud van grote grafen, met duizenden of zelfs miljoenen
nodes?
In Hoofdstuk 2 karakteriseren we het probleem aan de hand van drie hoofdaspecten:
data (wat zijn de karakteristieken van de gegevens?), doel (wat wil de gebruiker met deze
gegevens?) en context (wat zijn de randvoorwaarden?).
Hoofdstuk 3 beschrijft bestaande technieken die nuttig kunnen zijn bij het ontwerpen
van een visualisatie en geeft een overzicht van de huidige toestand van het onderzoeksgebied.
In Hoofdstuk 4 selecteren we vier verschillende versies van het visualisatie pro-
bleem op basis van de karakteristieken in Hoofdstuk 2 en construeren daar vervolgens
visualisaties voor.
Hoofdstuk 5 beschrijft Beamtrees, een visualisatie methode voor boomstructuren die
is gebaseerd op het gebruik van overlapping om relaties weer te geven. Als toepassingsgebied
is de bestandsstructuur van een harde schijf gekozen. Een kwantitatieve gebruikerstest
is uitgevoerd om onderzoeken of er een betere informatie overdracht plaatsvond.
In Hoofdstuk 6 wordt een techniek beschreven die is ontwikkeld voor het visualiseren
van eindige automaten. Een eindige automaat beschrijft het gedrag van een computerproces
op een elementair niveau. Bestudering van deze automaten kan leiden tot het ontdekken
van fouten in software zonder deze expliciet te testen. Eindige automaten kunnen
in grootte vari¨eren van tientallen mogelijke toestanden tot honderden miljoenen toestanden.
De ontwikkelde visualisatie kan de globale structuur en symmetrieen weergeven in
automaten van een paar miljoen toestanden.
Hoofdstuk 7 is een case-study in het visualiseren van software systeem dat ontwikkeld
werd bij Philips Medical Systems. In veel systemen wordt door een groep software
architecten een globaal ontwerp gemaakt, dat daarna door een veel grotere groep programmeurs
wordt ge¨implementeerd. Tijdens dit implementatie proces wordt vaak (bewust of
onbewust) afgeweken van het oorspronkelijke ontwerp, wat invloed kan hebben op de uiteindelijke
kwaliteit. De ontwikkelde visualisatie is gebaseerd op een matrix representatie
van een graaf en geeft architecten een overzicht van het ontwikkelde systeem, zowel op
architectuur niveau als op code-niveau. Dit prototype is later uitgebreid met mogelijkheden
om ook grafen aan te kunnen die zo groot zijn dat ze niet in het geheugen van een
computer passen.
Hoofdstuk 8 beschrijft een visualisatie voor grafen waarin elke node vanuit een willekeurige
node bereikbaar is in een klein aantal stappen. Deze zogenaamde ’small world’
graphs komen vaak voor in de praktijk en zijn moeilijk te visualiseren vanwege hun sterk
verbonden karakter. De methode gebruikt een nieuw plaatsings algoritme om interne
structuren zichtbaar te maken en een nieuwe interactiemethode die het mogelijk maakt
om tegelijkertijd gedetailleerde informatie en de globale context te zien.
In Hoofdstuk 9 vergelijken we de vier ontwikkelde prototypes. Een eerste conclusie is
dat als we een visualisatie schaalbaar willen maken, we vaak karakteristieke eigenschappen
van de te visualiseren data gebruiken om deze te vereenvoudigen. Hierdoor is het
vaak moeilijk om een visualisatie te hergebruiken voor een ander applicatiegebied.
Aan de hand van de bovenstaande protoypes destilleren we vier kernproblemen die
optreden tijdens de ontwikkeling van een visualisatie van een grote graaf. Deze problemen
zijn:
• Representatie: Hoe kiezen we een geschikte visuele representatie voor een graaf?
• Abstractie: Gegeven een grote graaf hoe cre¨eren we een kleinere graaf die de hoofdeigenschappen
van de grotere behoudt?
• Navigatie: Hoe stellen we een gebruiker in staat een geabstraheerde graaf te verkennen
zonder daarbij het overzicht te verliezen?
• Mapping: Hoe koppelen we de daadwerkelijke informatie en de abstracte
Original language | English |
---|---|
Qualification | Doctor of Philosophy |
Awarding Institution |
|
Supervisors/Advisors |
|
Award date | 21 Nov 2005 |
Place of Publication | Eindhoven |
Publisher | |
Print ISBNs | 90-386-0704-0 |
DOIs | |
Publication status | Published - 2005 |