ANIMAL-FARM: an Extensible Framework for Algorithm Visualization
Total Page:16
File Type:pdf, Size:1020Kb
ANIMAL-FARM: An Extensible Framework for Algorithm Visualization Vom Fachbereich Elektrotechnik und Informatik der Universitat¨ Siegen zur Erlangung des akademischen Grades Doktor der Ingenieurwissenschaften (Dr.-Ing.) genehmigte Dissertation von Diplom-Informatiker Guido Roßling¨ geboren in Darmstadt 1. Gutachter: Prof. Dr. Bernd Freisleben 2. Gutachter: Prof. Dr. Mira Mezini Tag der mundlichen¨ Prufung:¨ 11. April 2002 ii Acknowledgments The material presented in this thesis is based on my research during my time as a research assistant in the Parallel Systems Research Group at the Department of Electrical Engineering and Computer Science at the University of Siegen, Germany. I would like to thank all collaboration partners who made this research enjoyable and productive. Apart from many discussion partners at conferences who offered insights or sparked ideas, I want to thank some persons individually. First of all, I want to thank my academic mentor Bernd Freisleben who gave me the freedom needed for developing this thesis. He also supported the incorporation of algorithm visualizations in the Introduction to Computer Science course. Apart from giving hints on academic research techniques and assisting me in writing papers, he has also graciously invested much financial support into the stressful year of 2000, when I was presenting my research status at six conferences. I also wish to thank my second advisor Mira Mezini for her advice in software engineering aspects. Her insights on developing adaptable software systems gave me a starting point for my exploration of dynamically configurable and extensible software. Several members at the department have helped developing ANIMAL-FARM and the ANIMAL sys- tem. Markus Schuler¨ helped to design and implement the first ANIMAL prototype as his Mas- ter’s Thesis. Jens Brodowski and Andre´ Floper¨ adapted parts of the graphical editing facilities to changed Swing interfaces. Matthew Smith and Patrick Ahlbrecht also contributed to later stages of the development process by implementing add-ons. Andre´ Berten and Frank Katritzke proof-read drafts of this thesis. Several researchers around the globe contributed ideas to the thesis. First of all, I want to thank Tom Naps for many discussions and the productive cooperation in adapting algorithm visualiza- tion systems to pedagogical purposes. Stuart Hansen provided several animations generated from student assignments, as well as hints on improving ANIMAL. Nils Faltin offered ideas on adapting algorithm visualizations to improve the success of teaching the underlying content. I thank my parents for their continuous support, without which I would not have been able to come this far. Finally, grateful thanks go to my wife Annika and our son Fabian for their support during the development of this thesis and especially the finishing phase. Without them and their inspiration, I would have found it much harder to take a step back during the writing process and allow phases of rest that helped firming up the content of the thesis. iii iv Zusammenfassung Zusammenfassung Die Visualisierung und Animation von Algorithmen ist in den letzten Jahren sowohl bei Lehrkraften¨ als auch bei Lernenden auf weltweit zunehmendes Interesse gestoßen. Dieses Interesse wird belegt durch die wachsende Anzahl an wissenschaftlichen Publikationen, verfugbaren¨ Animationssyste- men und die Anzahl frei erhaltlicher¨ Animationen im World Wide Web. In ihrem Artikel von 1998 geben Price, Baecker und Small die Zahl verfugbarer¨ Animationssysteme als “uber¨ 150” an [156]. Seit dem Zeitpunkt der Publikation ist diese Zahl nochmal deutlich gestiegen. Diese Arbeit stellt ein Framework fur¨ Algorithmenvisualisierung (AV) vor, das zahlreiche beson- dere Eigenschaften bietet, die es von aktuellen Animationssystemen abhebt. Hierzu zahlt¨ insbeson- dere die sehr weitreichende Dynamik des Frameworks hinsichtlich seiner Zusammenstellung. Fur¨ diesen Zweck wird die Verwendung dynamischer Lookup-Datenstrukturen konsequent auf die Ad- ministration sowohl von Komponenten als auch deren Attributen ausgedehnt. Als Ergebnis entsteht ein Framework, das die Einfugung¨ einzelner Komponenten zur Laufzeit durch dynamisches Laden ebenso unterstutzt¨ wie die Entfernung von Komponenten und die Einfuhrung¨ zusatzlicher¨ “At- tribute”. Ein besonderes Konzept zur dynamischen Vermittlung nutzbarer Funktionalitaten¨ durch eine Abar- beitung von Anfragen und Bereitstellung von Auswahlmoglichk¨ eiten mittels einer sogenannten Handler-Klasse findet im Framework weitreichenden Einsatz. Dieses Konzept kann auch in vielen anderen Softwarebereichen erfolgreich eingesetzt werden. Zusatzlich¨ unterstutzt¨ das Framework die Verwendung ubersetzbarer¨ GUI-Elemente auf Basis der Java Swing-Bibliothek, wobei gleich- zeitig die Erstellung der Komponenten vereinfacht wird. Da diese dynamischen Eigenschaften des Frameworks fur¨ viele Anwendungsgebiete interessant sind, werden sie im Rahmen der Arbeit zunachst¨ abstrakt vorgestellt, bevor sie in den konkreten Anwendungszweck der Algorithmenvisu- alisierung eingebettet werden. Zu den besonderen Leistungen des Frameworks im Bereich der Algorithmenvisualisierung zahlt¨ insbesondere die Unterstutzung¨ fur¨ flexible Ablaufkontrolle inklusive vollwertigem Ruckw¨ artsab-¨ spielen der Animationsinhalte. Zur Demonstration der Nutzbarkeit des Frameworks stellt die Ar- beit eine Umsetzung in einen konkreten Prototypen vor, der weitere Funktionsmerkmale beinhal- tet. Hierzu zahlen¨ etwa die Unterstutzung¨ mehrerer Generierungs- und Editierarten sowie eine eingebaute Skriptsprache mit Unterstutzung¨ fur¨ modulare Animationskomponenten. Die direkte Ubersetzung¨ von Animationsinhalten mit automatischer Anpassung der Positionen davon betrof- fener Objekte wird im Rahmen des Prototyps erstmals im Bereich der AV vorgestellt. Die Arbeit ist wie folgt strukturiert. Kapitel 2 gibt einen kurzen Uberblick¨ uber¨ die Geschichte der Algorithmenanimation. Basierend auf Price et al. [156] werden vier Rollen im Umgang mit AV-Systemen vorgestellt: Nutzer verwenden das System zum Betrachten und Interagieren mit der Animation; Visualisierer erstellen die Animationen; Entwickler erstellen oder erweitern das Ani- mationssystem; Programmierer implementieren den zu animierenden Algorithmus, eventuell ohne dabei von einer geplanten Animation zu wissen. Einzelne Personen konnen¨ dabei mehrere Rollen innehaben. So wird beispielsweise der Visualisierer oftmals die Rolle des Nutzers annehmen, um sich von der Qualitat¨ der erstellten Animation zu uberzeugen.¨ Zusatzlich¨ wird ein einfaches Klassifikationsschema fur¨ Animationssysteme vorgestellt, das die Systeme einteilt in themengebundene Systeme sowie anhand der Animationserstellungsart nach manueller Eingabe, API-Programmierung, Skriptsprachenbefehlen oder logischen Beschreibungen. Die Verteilung der einzelnen Rollen sowie typische Stark¨ en und Schwachen¨ der Ansatze¨ werden dabei ebenfalls beleuchtet. Zusammenfassung v Basierend auf einer umfangreichen Betrachtung verfugbarer¨ Applets und AV-Systemen sowie Lite- raturrecherchen werden Anforderungen an AV-Systeme formuliert. Die Anforderungen sind un- terteilt in allgemeine sowie von den einzelnen Nutzungsrollen ausgehende und werden unter Beruck-¨ sichtigung der relevanten Publikationen in Kapitel 3 prasentiert.¨ Aktuelle AV-Systeme realisieren nur eine stark eingeschrankte¨ Untermenge dieser Anforderungen. Andererseits macht es die stetig steigende Erwartungshaltung hinsichtlich Funktionalitat¨ in allen Softwarebereichen unwahrschein- lich, dass es ein “ideales” AV-System geben kann, das allen Wunschen¨ gerecht werden kann. Daher sollte ein AV-System so flexibel gestaltet werden, dass Erganzungen¨ und Erweiterungen der Funk- tionalitat¨ so leicht wie moglich¨ realisiert werden konnen.¨ Aufgrund dieser Uberle¨ gung prasentiert¨ Kapitel 4 den Entwurf des ANIMAL-FARM Frameworks fur¨ dynamisch erweiterbare und anpassbare AV-Systeme. Das Framework adressiert sowohl soft- waretechnische als auch AV-bezogene Anforderungen. Aus Sicht der Softwaretechnik ist insbeson- dere die abstrakte Beschreibung des Frameworks interessant, die auf dynamischen Laden und der intensiven Verwendung dynamischer Lookup-Strukturen beruht und damit eine dynamische Zusammenstellung und Erweiterbarkeit erlaubt. Hierzu zahlt¨ auch die strikte Entkoppelung zweier zentraler Komponenten durch das Handler-Konzept, das eine sehr konsequente Ausdehnung des Prinzips der Trennung von Aufgabengebieten (engl. separation of concerns) erlaubt und als Ent- wurfsmuster (engl. design pattern) fur¨ den Entwurf dynamisch anpassbarer Kommunikation dienen kann. Ein allgemeines Softwarepaket zur Ubersetzung¨ von grafischen Elementen rundet den soft- waretechnischen Leistungsumfang des Frameworks ab. Aus AV-Sicht ist einer der entscheidenden Beitrage¨ des Frameworks die effiziente Unterstutzung¨ des Zuruckspulens¨ und sogar des flussigen¨ Ruckw¨ artsabspielens¨ von Animationen. Auf dem First International Program Visualization Workshop im Jahr 2000 stellte ein Mitglied des Programmkomi- tees die Bedeutung des Zuruckspulens¨ als “one of the most important ‘open questions’ in AV” heraus [2]. Das hier vorgestellte Framework beinhaltet diese Funktionalitat,¨ wurde aber weniger als ein halbes Jahr nach Publikation des Artikels fertiggestellt, was die Ausdruckskraft der ihm zugrundeliegenden Konzepte unterstreicht. Kapitel 5 stellt die erste Umsetzung des Frameworks vor: das ANIMAL System. ANIMAL ist dy- namisch erweiter- und anpassbar und komplett unabhangig¨ von einem