Wissenschaftliche Hausarbeit zur Ersten Staatsprüfung für
Transcrição
Wissenschaftliche Hausarbeit zur Ersten Staatsprüfung für
Wissenschaftliche Hausarbeit zur Ersten Staatsprüfung für das Lehramt am Gymnasium im Fach: Informatik Thema: Entwicklung einer Simulationsumgebung zur explorativen Lösungsfindung grundlegender Probleme in Verteilten Systemen. vorgelegt von: Meißner, Gabor Name, Vorname 09.11.1983 geb. am Rudolstadt Geburtsort INHALTSVERZEICHNIS I Inhaltsverzeichnis Abbildungsverzeichnis 1 2 3 Einleitung 1 1.1 Verteilte Systeme in der Schule . . . . . . . . . . . . . . . . . . . . 1 1.2 Von der (fundamentalen) Idee zur Lernsoftware . . . . . . . . . . . 4 1.3 Motivation und Aufbau . . . . . . . . . . . . . . . . . . . . . . . . 6 Anforderungsanalyse und Rahmenbedingung 7 2.1 Technische Anforderungen . . . . . . . . . . . . . . . . . . . . . . 7 2.2 Inhaltliche Anforderungen . . . . . . . . . . . . . . . . . . . . . . 7 2.3 Pädagogische und psychologische Anforderungen . . . . . . . . . . 8 2.4 Rahmenbedingungen . . . . . . . . . . . . . . . . . . . . . . . . . 11 Stand der Forschung 14 3.1 Merkmale und Einordnung von Lernsoftware . . . . . . . . . . . . 14 3.2 Lernsoftware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.3 4 IV 3.2.1 Simulation zum Thema Internetworking: F ILIUS . . . . . . 16 3.2.2 Lernsoftware zur Automatentheorie und mehr: G ANIMAL . 19 Digitale Lernspiele . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.3.1 Forschung über digitale Lernspiele . . . . . . . . . . . . . . 21 3.3.2 c . . . . . . . . . . . 25 Wo in der Welt ist Carmen Sandiego? 3.3.3 Fountain of Wisdom . . . . . . . . . . . . . . . . . . . . . 27 3.3.4 Auswertung . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Konzeption 4.1 32 Inhaltliche Konzeption . . . . . . . . . . . . . . . . . . . . . . . . 32 INHALTSVERZEICHNIS 5 6 II 4.1.1 Die Spielwelt . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.1.2 Punktesystem . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.1.3 Auswahl von zentralen Problemen in Verteilten Systemen . 34 4.1.4 Auswahl und Beschreibung von Lösungswegen . . . . . . . 38 4.2 Prototypentwicklung und grafische Oberfläche . . . . . . . . . . . . 47 4.3 Unterteilung in Rahmenwerk und Plugins . . . . . . . . . . . . . . 50 4.4 Einordnung des Projekts . . . . . . . . . . . . . . . . . . . . . . . 51 Realisierung 53 5.1 Programmiersprache und verwendete Technologien . . . . . . . . . 53 5.2 Das Rahmenwerk . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 5.3 Die Problem-Plugins . . . . . . . . . . . . . . . . . . . . . . . . . 56 5.3.1 Nachrichtenverlust . . . . . . . . . . . . . . . . . . . . . . 58 5.3.2 Unterschiedliche Nachrichtenreihenfolgen . . . . . . . . . . 60 5.3.3 Fälschen von Nachrichten . . . . . . . . . . . . . . . . . . 62 5.3.4 Inkonsistent-Werden einer gemeinsamen Ressource . . . . . 64 5.3.5 Mitlesen von Nachrichten . . . . . . . . . . . . . . . . . . 66 Evaluation 6.1 69 Schulversuche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 6.1.1 Vorbemerkungen . . . . . . . . . . . . . . . . . . . . . . . 69 6.1.2 Fragebogenentwicklung . . . . . . . . . . . . . . . . . . . 70 6.1.3 Ergebniserfassung und Auswertung . . . . . . . . . . . . . 75 6.1.4 Schlussfolgerung aus den Ergebnissen . . . . . . . . . . . . 82 6.2 Schwächen der Lösung . . . . . . . . . . . . . . . . . . . . . . . . 84 6.3 Stärken der Lösung . . . . . . . . . . . . . . . . . . . . . . . . . . 85 6.4 Anwendungsmöglichkeiten . . . . . . . . . . . . . . . . . . . . . . 86 INHALTSVERZEICHNIS 6.5 7 III Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Zusammenfassung 88 Literaturverzeichnis 89 Erklärung 95 A Technische Dokumentation 96 A.1 Beschreibung der Systempakete . . . . . . . . . . . . . . . . . . . 96 A.1.1 Der Systemkern: systemcontrol . . . . . . . . . . . . . . . 96 A.1.2 Das systemcontrol.runtime-Unterpaket . . . . . . . . . . . . 98 A.1.3 Das systemcontrol.runtime.simulation-Unterpaket . . . . . . 99 A.1.4 Systemwerkzeuge: util.xmlhandling . . . . . . . . . . . . . 99 A.1.5 Die Problemsimulation: problem . . . . . . . . . . . . . . . 100 A.1.6 Die Problem-Schnittstellen: problem.ressourcemodell . . . . 100 A.1.7 Die Problem-Verwaltung: problem.runtime . . . . . . . . . 102 A.1.8 Das Kommunikationsunterpaket: problem.simulationmodel . 105 A.1.9 Die grafische Benutzeroberfläche: gui . . . . . . . . . . . . 107 A.1.10 Vorgabe zur Struktur von Plugins . . . . . . . . . . . . . . 110 A.1.11 Pluginbeschreibung in XML-Dateien . . . . . . . . . . . . 111 A.2 Beschreibung der Plugins . . . . . . . . . . . . . . . . . . . . . . . 112 A.2.1 Verlorene Nachrichten . . . . . . . . . . . . . . . . . . . . 112 A.2.2 Falsche Nachrichtenreihenfolge . . . . . . . . . . . . . . . 114 A.2.3 Inkonsistentes Nutzen gemeinsamer Ressourcen . . . . . . 116 A.2.4 Lauschangriff . . . . . . . . . . . . . . . . . . . . . . . . . 119 A.2.5 Verfälschte Nachrichten . . . . . . . . . . . . . . . . . . . 120 ABBILDUNGSVERZEICHNIS IV Abbildungsverzeichnis 1 Filius: Hauptfenster . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2 Filius: Simulation einer Peer-to-Peer-Anwendung . . . . . . . . . . 17 3 Ganimal: Zwei Möglichkeiten zur Erstellung eines Rot-SchwarzBaums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4 c Tutorien . . . . . . . . . . . . 22 NEED FOR SPEED: CARBON : 5 c Parasoziale Charaktäre . . . . . . . . . . . 23 CALL OF DUTY 4 : 6 c Titelbild: Wo auf der Welt ist Carmen Sandiego?von 2001 . . . . 25 7 c Wo auf der Welt ist Carmen Sandiego?Spielszene . . . . . . . . . 26 8 Fountain of Wisdom: Spielszene . . . . . . . . . . . . . . . . . . . 28 9 Fountain of Wisdom: Bewertungssystem . . . . . . . . . . . . . . . 29 10 Uhren mit unterschiedlichen Geschwindigkeiten . . . . . . . . . . . 40 11 Uhren mit unterschiedlichen Geschwindigkeiten und Lamport . . . 42 12 Beispiel für ein Lese- und Scheibquorum . . . . . . . . . . . . . . 43 13 Kombinierter Einsatz von Verschlüsselung und Signierung mit Hilfe eines asymmertrischen Verschlüsselungsverfahrens1 . . . . . . . 45 14 Der Einsatz und die Verschlüsselung von Nachrichten-Digests2 . . . 47 15 Programmoberfläche von Gimp . . . . . . . . . . . . . . . . . . . . 48 16 Programmoberfläche des ersten Prototyps . . . . . . . . . . . . . . 49 17 Programmoberfläche des zweiten Prototyps . . . . . . . . . . . . . 50 18 Der Bürgermeister begrüßt den Benutzer . . . . . . . . . . . . . . . 55 19 Die Programmoberfläche . . . . . . . . . . . . . . . . . . . . . . . 55 20 Der Ereignis-Tab: Verknüpfung von Werkzeugen mit Ereignissen . . 56 21 Der Nachrichtentypen-Tab: Auswahl von Nachrichten-Optionen . . 57 22 Grafische Darstellung einer verlorenen Nachricht . . . . . . . . . . 59 23 Die Werkzeuge des Problems „Verlorene Nachrichten“ . . . . . . . 59 ABBILDUNGSVERZEICHNIS V 24 Optionen des Typs „Nachrichtenbestätigung“ . . . . . . . . . . . . 60 25 Nachrichten haben bei den Agenten unterschiedliche Kombinationen 61 26 Werkzeuge zur Nachrichtensortierung . . . . . . . . . . . . . . . . 62 27 Gefälschte Nachricht werden über unterschiedliche Orte dargestellt . 63 28 Eine echte Nachricht: Identische Orte bei Sender und Empfänger . . 63 29 Werkzeuge für das Problem der gefälschten Nachrichten . . . . . . 63 30 Animation des Problems der gemeinsamen Ressourcen . . . . . . . 64 31 Aktuelle und nicht-aktuelle Ressourcen . . . . . . . . . . . . . . . 65 32 Werkzeuge des Problems der gemeinsamen Ressourcen . . . . . . . 65 33 Quoreneinstellungen des Problems der gemeinsamen Ressourcen . . 66 34 Ein dritter Agent liest Nachrichten mit . . . . . . . . . . . . . . . . 67 35 Werkzeuge zur Nachrichtenver- und entschlüsselung . . . . . . . . 67 36 Zwei Fragezeichen: Die Nachrichten werden verschlüsselt, aber nicht entschlüsselt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 37 Ergebnisse des ersten Teils. Mittelpunkt der Linien sind die Durchschnittswerte, die Linien stellen die Standardabweichung dar. . . . . 77 38 Lernerfolg der Schülerinnen und Schüler . . . . . . . . . . . . . . . 79 39 Herstellen eines Praxisbezugs zum Problem . . . . . . . . . . . . . 79 40 UML-Diagramm 1: Systemübersicht . . . . . . . . . . . . . . . . . 96 41 UML-Diagramm 2: Systemsteuerung und -verwaltung . . . . . . . 97 42 UML-Diagramm 3: Laufzeitkomponenten zur Systemverwaltung . . 99 43 UML-Diagramm 4: Systemwerkzeuge . . . . . . . . . . . . . . . . 100 44 UML-Diagramm 5: das Problempaket . . . . . . . . . . . . . . . . 101 45 UML-Diagramm 6: die Problemschnittstellen . . . . . . . . . . . . 103 46 UML-Diagramm 7: Paket zur Problemverwaltung . . . . . . . . . . 104 47 UML-Diagramm 8: Nicht-generische Kommunikationskomponenten 106 48 UML-Diagramm 9: Das GUI-Paket . . . . . . . . . . . . . . . . . 110 1 EINLEITUNG 1 1 Einleitung In den 1940er Jahren begann das moderne Computerzeitalter. Mit fortschreitender Technik bildeten sich einige Tendenzen der Entwicklung heraus, die den Umgang mit Computern für große Teile der Bevölkerung alltäglich werden ließ. Aus fast allen Bereichen von Wirtschaft, Gesellschaft und auch aus dem Privatleben sind Rechner nicht mehr wegzudenken. Daruntern zählen die Miniaturisierung, der Leistungszuwachs, die Vernetzung und Einbettung von Computern, die mittlerweile über Local oder Wide Area Networks bishin zum Internet Kommunikation über weite Distanzen mit Geschwindigkeiten bis zu mehreren Gigabit pro Sekunde erlauben. Verteilte Systemen nehmen in dieser Entwicklung eine besondere Rolle ein. Nach Tannnenbaum sind Verteilte Systeme „eine Menge voneinander unabhängiger Computer, die dem Benutzer wie ein einzelnes, kohärentes System erscheinen“[TS03, S. 18]. Dabei sind zwei Aspekte entscheidend: Ein verteiltes System besteht aus mehreren autonomen Maschinen und aus Benutzersicht ist die Zusammensetzung des Systems unbekannt, es erscheint als eine einzelne Maschine. Andere Definitionen charakterisieren diese Systeme über unabhängige Funktionseinheiten, die miteinander kommunizieren und dabei Aufgaben bewältigen[Ben04, S. 5]. Je nachdem wie eng oder weit die unterschiedlichen Definition ausgelegt werden, kann die Kommunikation in einem Verteilten System auf den Austausch von Nachrichten beschränkt werden. Diese Annahme oder Definition soll der Arbeit zu Grunde liegen. 1.1 Verteilte Systeme in der Schule „Es sieht so aus, als hätten wir in der Computertechnologie die Grenzen des Möglichen erreicht, auch wenn man mit solchen Aussagen vorsichtig sein sollte sie neigen dazu, fünf Jahre später ziemlich dumm zu klingen.“ John von Neumann, 1949 1 EINLEITUNG 2 Mit dem Fortschritt der Technologie geht auch ein Bedeutungszuwachs der Informationstechnologie in der Gesellschaft und der Wirtschaft einher, der zwangsläufig auch Einfluss auf die Schule und andere Bildungseinrichtungen hat. Der klassische Informatikunterricht, zum Teil als Wahlfach, oder die Thematisierung von Informationstechnologie in anderen Schulfächern begann in den 1970er Jahren. Die Themen und Perspektiven des Fachs haben sich natürlich in den letzten 40 Jahren verändert. Die Schwerpunkte verlagerten sich von hardware- zu algorithmenorientiertem Informatikunterricht [SS04, S. 23f.]. Als Tendenz für die Zukunft werden die Einbettung der Informatik in übergeordnete Begriffe und der Ansatz der fundamentalen Ideen von Schubert und Schwill herausgestellt. Die in der Informatik behandeltenden Themen wurden quantitativ mit der Entwicklung des Fachs immer größer. Während zu Zeiten des hardwareorientierten Ansatzs die Maschine im Vordergrund stand, wurden zahlreiche Themen durch die Algorithmenorientierung ergänzt. Dazu zählen etwa der Softwareentwurf oder Fragen der theoretischen Informatik wie die Komplexität von Algorithmen. Mit der Öffnung des Unterrichtsfachs und der Schwerpunktlegung auf fundamentale Ideen der Wissenschaft Informatik, finden sich auch Ansätze zur Thematisierung von Verteilten Systemen wieder, auch wenn sie von Schubert und Schwill nicht explizit genannt werden[SS04, S. 95ff]. Im Gegensatz dazu nennen eine Reihe von bayrischen Didaktikern in ihrem Konzept „Informatik und Schule“ Verteilte Systeme als Thema für die Oberstufe ausdrücklich[BGH+ 00, S. 25ff.]. Um eine fundamentale Idee einer Wissenschaft zu werden, muss eine Idee fünf Kriterien[SS04, S. 85] erfüllen, damit sie „ebenso einfach wie durchschlagend sind“ [Bru60, S. 26]. Das Hochizontalkriterium besagt, dass die Idee in verschiedenen Gebieten vielfältig anwendbar und erkennbar sein muss. Verteilte Systeme könnten natürlich als eigenständiges Thema behandelt werden, darüberhinaus aber auch in Verbindung mit den (Thüringer) Lehrplanthemen Internetworking, der Analyse von komplexeren Informatiksystemen oder nachrichtenbasierter Kommunikation (Sicherheit von Informatiksystemen) [LP99, S. 14]. 1 EINLEITUNG 3 Das zweite Kriterium ist das Vertikalkriterium, das besagt, dass eine Idee auf jedem intellektuellen Niveau unterrichtet werden muss.3 Als Beispiel soll ein konkretes Beispiel aus dem Thema Verteilte Systeme genannt werden. Der Austausch von Nachrichten kann zu Beginn über eine einfache Unterscheidung zwischen einer Netzwerk- und einer Softwareebene des Nachrichtenprotokolls dargestellt werden. Zu einem späteren Zeitpunkt könnte man dann das komplette ISO-OSI- Schichtenmodell [Tan03] einführen und alle sieben Ebenen berücksichtigen. Weiterhin könnte man das ISO/OSI-Modell und TCP oder IP[Hol03, S. 17f und S. 33f] vergleichen und diskutiert werden. Drittes Kriterium ist das Zielkriterium und besagt, dass die Idee einer idealisierten Zielvorstellung dient, die aber eigentlich nicht realisierbar ist. Die Ziele von Verteilten Systemen lassen sich mit wünschenswerten Transparenzeigenschaften[TS03, S. 21-24], einer wirklich zuverläßiger Kommunikation und einfachen Nutzung der verteilter Ressourcen beschreiben. Das vierte Kriterium ist das Zeitkriterium. Eine Idee muss historisch wahrnehmbar und längerfristig relevant sein. Die historische Bedeutsamkeit Verteilter Systeme ist durch die ständige Zunahme derartiger Systeme gegeben. Das Sinnkriterium ist das letzte Kriterium für eine Idee um als fundamental zu gelten. Es besagt, dass die Idee einen Bezug zur Sprache und zum Denken des Alltags haben muss. Verteilte Systeme sollten für einen „normalen“ Endanwender transparent sein, also unbemerkt bleiben. Der Nachrichtenaustausch zwischen Computern zur kooperativen Arbeit an gemeinsamen Ressourcen gehört aber zur täglichen Lebenswelt von Jugendlichen und hat natürlich auch Bedeutung für die spätere Arbeitswelt und soziale Interaktionen. Die Schule hat an dieser Stelle die Aufgabe, über den intuitien Umgang hinaus Wissen über das bedienende System bereitzustellen. 3 Vgl. dazu auch das „Spiralprinzip“[SS04, S. 45 u.a.] 1 EINLEITUNG 1.2 4 Von der (fundamentalen) Idee zur Lernsoftware „Durch spielerisches Experimentieren kamen vermutlich ebenso viele Durchblicke zustande wie durch planmäßiges Abarbeiten vorgegebener Programme.“ [Win04, S. 179] Werner Winkler Verteilte Systeme könnten in Zukunft eine wichtigere Rolle als Thema im Informatikunterricht spielen. Gleiches könnte für Lernsoftware gelten. Der Begriff Lernsoftware ist sehr weit gefasst. So sind Entwicklungsumgebungen für Programmiersprachen oder auch Office-Anwendungen, wenn sie dem Lernen dienen, Lernsoftware. Auch Programme, die Lehrmaterialien erzeugen, Lernspiele oder Lernplattformen fallen unter diesen Begriff. Die in dieser Arbeit beschriebene Software unterstützt das Lernen jedoch durch eine vereinfachte Abbildung zentraler Eigenschaften der Realität auf eine Simulation. Simulation zeichnen sich dadurch aus, dass sie reale Vorgänge sichtbar und manipulierbar machen um damit Strukturen und Funktionsweisen zu unterstreichen[Bi007]. Die Simulation soll den Benutzern eine Möglichkeit eröffnen, hinter die „Welt der Zeichen“ zu blicken und zu verstehen, wie Verteilte Systeme arbeiten, auch wenn eine Simulation „nur“ die Realität abstrakt abbilden kann. Die Simulation ist kein Beitrag zur Beherrschung eines Werkzeugs wie einem Chats, das auf einem verteilten System basiert. Sie soll systematisch und explizit die Vorgänge hinter der Oberfläche beleuchten und zugänglich machen. Die Simulation soll also das Funktionieren des Werkzeugs aufzeigen[Ber07]. Ein zweites Element der Software ist die Spielorientierung. Um die Simulation möglichst spannend und ansprechend zu gestalten, werden die Benutzer in eine fiktive Spielwelt eingeführt. Der vielzitierte Johan Huizinga beschreibt das Spiel als „eine freiwillige Handlung [...], die innerhalb festgesetzter Grenzen von Zeit und Raum nach freiwillig angenommenen, aber unbedingt bindenden Regeln ver- 1 EINLEITUNG 5 richtet wird, ihr Ziel in sich selber hat und begleitet wird von einem Gefühl der Spannung und Freude und einem Bewusstsein des ’Andersseins’ als das ’gewöhnliche Leben’“[Hui87, S. 37]. Diese klassische Definition des Spielens widerspricht natürlich dem Begriff „Lernspiel“, da sie davon ausgeht, dass ein Spiel nur dem Selbstzweck dient und damit nicht dem Lernen dienen kann. Auch die Freiwilligkeit einer Lernsoftware muss im Projektzusammenhang sicher bezweifelt werden. Interessant sind aber andere Attribute des Spielens nach Huizinga. Darunter fallen die festgesetzten Grenzen, die bindenden Regeln, die positiven Emotionen, die mit einem Spiel verbunden sein sollen, sowie das Ausbrechen aus dem Alltag. All diese Eigenschaften machen den Entwurf eines Lernspiel sehr interessant. Dass Spielen und Lernen aber trotzdem einen engen Zusammenhang aufweisen, zeigen andere Arbeiten[Win04, S. 170] und ist zudem auch offensichtlich. Bopp zeigt beispielsweise auf, wie Lernen in Computerspielen stattfindet und wie diese Analyse für Lernspiele genutzt werden kann. Spiele werden immer komplexer und gleichzeitig haben Spieler wenig Lust vor Beginn eines Spiels ein Handbuch zu studieren. Komplexere Regeln bauen stattdessen auf bekannten Regeln auf und werden in Form von aufwendig entwickelten Methoden dem Spieler näher gebracht. „Games that trigger learning and thus allow players to do new interesting things are games that people like to play.“[Bop06, S. 9] Diese einfache Formel soll möglichst auch für Lernspiele, also auch im vorliegenden Projekt gelten. Es kommt also auf die Methoden an und die sollen möglichst wenig an klassisches Lernen errinnern. Um den Ehrgeiz des Benutzers zu wecken, wurde ein Bewertungssystem entwickelt, das das Spielergebnis vergleichbar mit den von anderen Spielern macht. Die Software versteht sich dabei als „Explorationsmodul“. Nach Kerres sind diese Module Software, die Lernaktivitäten beim Lernenden initiieren, die von ihm ausgehen. „Exploratives Lernen in solchen Lernumgebungen schließt aus, dass z. B. Ziele und/ oder Wege des Lernens von außen vorgegeben werden. Es kann ein Angebot gemacht werden, das so gestaltet ist, dass die Person motiviert ist sich eigenständig mit einem Gegenstand auseinanderzusetzen“[Ker01, S. 217f]. 1 1.3 EINLEITUNG 6 Motivation und Aufbau Die mediale Diskussion über Computerspiele ist unüberschau groß. Dabei geht es meist darum, wie Computerspiele Jugendlichen schaden. Manchmal wird aber auch darüber diskutiert, ob und wie elektronische Spiele einen Nutzen haben könnten [Kri08].s Die Arbeit soll ein Beispiel dafür sein, dass komplexe Lernvorgänge in Spielen stattfinden können, dass Lernen mit Computerspielen angstfrei sein kann und den Lernern vielleicht auch etwas Spass bereitet. Ausgehend von diesen Grundannahmen wurde eine explorative Simulation Verteilter Systeme konzipiert, implementiert und getestet. In dieser Arbeit soll zunächst untersucht werden, welche Anforderungen erstellt wurden und daraus ableitend welche Voraussetzungen für die Entwicklung der Software bestanden. In einem zweiten Schritt werden ähnliche Projekte vorgestellt. Im vierten Abschnitt der Arbeit wird die inhaltliche, didaktische und technische Konzeption der Simulation näher erläutert. Anschließend wird die Realisierung diskutiert und das Ergebnis der Arbeit hauptsächlich anhand empirischer Untersuchungen in verschiedenen Informatikkursen evaluiert. Zudem werden in diesem Abschnitt Schlussfolgerungen für eine Weiterentwicklung der Simulation vorgestellt. Im siebten Kapitel werden ableitend aus den Hypothesen und den Ergebnissen der Evaluation Einsatzmöglichkeiten der Software skizziert. Abschließend folgt ein Ausblick. 2 2 ANFORDERUNGSANALYSE UND RAHMENBEDINGUNG 7 Anforderungsanalyse und Rahmenbedingung Die Simulation ist eine Lernsoftware, die Lernende dabei unterstützt, zentrale Probleme Verteiler Systeme zu kennen und mit einfachen, aber authentischen Mitteln Lösungen für diese Probleme bereitzustellen. Im folgenden Kapitel werden die technischen, inhaltlichen und erziehungswissenschaftlichen Anforderungen an das Projekt sowie die vorausgesetzten Rahmenbedingungen dargestellt. 2.1 Technische Anforderungen Die Simulation soll plattformunabhängig und ressourcenschonend realisiert werden. Dies begrenzt natürlich die Wahl der Programmiersprachen. Das Programm soll zudem in einen Haupt- und in mehrere Problemteile abgegrenzt werden. Im Rahmen der Arbeit werden verschiedene Probleme implementiert. Die Software soll so entworfen werden, dass auf einfache Art weitere Probleme in die Simulation integriert werden können. Die Software soll über eine grafische Benutzerschnittc stelle verfügen und mit Bedienelementen ausgestattet sein, die aus Windowsund anderen modernen Betriebssystemen sowie Webapplikationen bekannt sind. Natürlich ist die Oberfläche aufgeräumt und möglichst einfach zu gestalten. Eine weitere Funktionalität ist das Speichern und Laden von Systemzuständen, damit das Programm abgebrochen und fortgesetzt werden kann. 2.2 Inhaltliche Anforderungen Um Schülerinnen, Schülern und anderen Lernenden die Thematik Verteilte Systeme näher zu bringen, ist es notwendig ihnen zu verdeutlichen, welche Ziele derartige Systeme haben. Sie sollten zum Beispiel erkennen, dass es sinnvoll ist, Nutzern Verteilter Systeme über weite Strecke den Zugang zu Ressourcen zu ermöglichen[TS03, S. 20]. Diese Ziele kann die Simulation aber nur bedingt vermitteln und muss die 2 ANFORDERUNGSANALYSE UND RAHMENBEDINGUNG 8 Aufgabe des begleiteten Unterrichts sein, in den die Software eingebettet sein sollte. Weiterhin spielen Transparenzen in Verteilten Systemen eine wichtige Rolle, etwa dass es sich überhaupt um ein Verteiltes System handelt. So sollen verschiedene Mechanismen hinter dem System dem Benutzern verborgen bleiben[TS03, S. 22ff.]. Dies kann im Rahmen der Simulation nur begrenzt dargestellt werden, soll aber versucht werden. Verteilte Systeme sollen auch offen, also erweiterbar, und skalierbar sein. Damit sollen zusätzliche Funktionalitäten und Mechanismen in einem Verteilten System ergänzt oder auch entfernt werden können[TS03, S. 24-33]. Auch diese Ziele können nur begrenzt Gegenstand der Software sein, sollten aber zumindest ansatzweise vermittelt werden. Hier bieten sich gute Möglichkeiten für den Unterricht, Informationen und Wissen zu ergänzen. Das Hauptziel der Simulation ist aber die Darstellung von zentralen Problemen Verteilter Systeme. Es soll gezeigt werden, dass ein einfaches System in der Realität oft fehleranfällig ist und zahlreiche Funktionalitäten ergänzt werden müssen um es stabil und robust zumachen. Nur dies würde garantieren, dass Benutzer die Vorzüge von Software, die auf verteilten Ressourcen basiert, eher vertrauen als anderen Methoden. Sicher ist es ein Vorteil, wenn man zu jeder Uhrzeit eine Onlineüberweisung durchführen kann und nicht zur Bank gehen muss. Ein möglicher Nachteil, dass das System aber nicht sicher ist und wichtige Informationen an Dritte geraten könnten, würden diesen Vorteil aber zunichte machen. 2.3 Pädagogische und psychologische Anforderungen Zur Klärung der pädagogischen Anforderungen an die Simulation ist ein grundsätzliches Verständnis von drei Lerntheorien von Bedeutung:4 Kognitivismus 4 Auswahl begründet durch [HS07, S. 30] 2 ANFORDERUNGSANALYSE UND RAHMENBEDINGUNG 9 Unter Kognitivismus versteht man eine Lerntheorie, die die Kognition in den Mittelpunkt des Lernen stellt und davon ausgeht, dass die „inneren“ Prozesse, „durch die ein Organismus Kenntnis von seiner Umwelt erlangt“, für den Wissenserwerb verantwortlich sind. Darunter fallen vor allem „Wahrnehmung, Vorstellung, Denken, Urteilen [und] Sprache“[Ede96, S. 8]. Für eine Lernsimulation ist der Kognitivismus deshalb von Bedeutung, weil eine Lösungsfindung auf der Basis von kognitiven Vorgängen stattfinden sollte um nachhaltig zu sein. Behaviorismus Nach dem Behaviorismus, einer Gegenströmung zum Kognitivismus, ist Verhalten das wichtigste Merkmal des Menschseins. Außerdem wird davon ausgegangen, dass das Verhalten veränderbar ist. Deshalb spielt die Umwelt eine entscheidende Rolle in der Analyse des menschlichen Verhaltens. Von besonderer Bedeutung ist das Beschreiben der gewünschten Verhaltensänderung des Lernenden, um sog. „Verstärkermechanismen“ auswählen zu können. Zwischen Verhalten und einem Umweltereignis gibt es demnach funktionale Zusammenhänge[Sun06, S. 64f]. Für eine Simulation, die nach Lafrancois Lernen als Verhaltsänderung ausgelöst von Erfahrungen versteht[Lef06, S. 3], spielt diese Analyseform eine besondere Rolle. Konstruktivismus Für das Lernen durch Simulationen ist nach Heptner und Schnarrenberger der Konstruktivismus von besonderer Bedeutung [HS07, S. 33], da Manipulationen als konstruktivistische Vorgänge an einem realen System u.a. zu kompliziert sein können [Bi007]. Unter Konstruktivismus wird dabei verstanden, dass Wissen nur in den Köpfen der Lernenden aktiv konstruiert werden kann. Durch die aktive, lernerorientierte Auseinandersetzung mit der Umwelt, z.B. in Form der Manipulation von Objekten mit Hilfe einer Simulation, finden Lernprozesse statt [KW06, S.70f]. L ERNTHEORIE M ERKMALE DER S OFTWARE B EISPIEL Behaviorismus Instruktionsparadigma: Frage-Antwort-Schema Vokabeltrainer Kognitivismus Problemlöseparadigma: vorgegebenes Problem Simulationen 2 ANFORDERUNGSANALYSE UND RAHMENBEDINGUNG Konstruktivismus Problemlöseparadigma: offenes Problem 10 Simulationen Tabelle 1: Lerntheorien und ihre Beziehung zu Lernsoftware [WR02, S. 17] Neben dem grundlegenden Verständnis der Lerntheorien ist eine Zuordnung der Software zu einem Lernprogrammtyp notwendig um weitere pädagogische Anforderungen an das Projekt benennen zu können. Prinzipiell sind dabei Programme zu unterscheiden, die dem behavioristischen Lernmodell nahe stehen und einen starren Ablauf verfolgen (Information - Frage - Antwort - Auswertung). Die Auswertung besteht dabei meist nur aus „richtig“ oder „falsch“[Sun06, S. 74ff]. Im Gegensatz gibt es Lernsoftware, die Lernenden zutraut, ihr Wissen selbst zu konstruieren. Solche Software muss natürlich offener angelegt werden als Software vom ersten Typ[Sun06, S. 77ff]. Das vorliegende Projekt soll dem konstruktivistischer Lernsoftware zuzuordnen (Vgl. S. 10, Tabelle 1). Nach der Typologie von Baumgart und Payr[BP99, S. 142] gibt es weiterhin die Gruppe der Simulationen und Spiele, die einem Lerner vor die Aufgabe stellt durch gezielte Manipulation ein bestimmtes Ergebnis zu bewirken. In komplexeren Simulationen haben solche veränderten Parameter auch Auswirkungen auf andere Parameter und es entsteht ein komplexes Netz von Wechselwirkungen [BP99, S. 161]. Dabei besteht eine Verwandtschaft zwischen dem Spielen, dem Lernen und dem Begriff der Simulation: „The relationship between games and simulations has been close, even when virtual reality systems were being pioneered the power of immersive environments for learning was recognised“[Fre06, S. 10]. Neben Simulationen gibt es auch noch Experten- und Modellbildungssysteme. Diese stellen „Wissen“, etwa in Form von Werkzeugen, bereit um damit konkrete Probleme lösen zu können. Hierbei sollen erfolgreiche und nicht erfolgreiche Lösungswege in einem konkreten Fall zu kognitiven Lernerfahrungen und zu wünschenswerten Generalisierungen führen [AP94, S. 39-59]. Trotz der offensichtlichen Ähn- 2 ANFORDERUNGSANALYSE UND RAHMENBEDINGUNG 11 lichkeiten der beiden Typen, gibt es einen zentralen Unterschied. Simulationen sollen bestimmte Verhaltensmuster einüben und Modellbildungssysteme theoretische Überlegungen über strukturelle Gegebenheiten initiieren[HS07, S. 33]. Eine weitere Anforderung an die Lernsoftware ist es also, nicht nur Verhaltensweisen zu trainieren, sondern generalisierbares Wissen zu erzeugen. Die Software soll also, eingebettet in einen entsprechenden Unterricht, die Voraussetzungen schaffen, alle drei Anforderungsbereiche der Einheitlichen Prüfungsanforderungen im Fach Informatik in den Aufgabenkontext einzubinden. So sollen bekannte Sachverhalte, Verfahren und Arbeitstechniken die Grundlage zur Lösung der gestellten Probleme sein (z.B. die Bedienung des Programms und die Verwendung verschiedener Datentypen). Diese bekannten Techniken sollen in dem neuen Zusammenhang (Verteilte Systeme) angewendet (Anforderungsbereich II) und schließlich bewusst und selbstständig zur Lösung einer komplexeren Aufgabe verwendet werden (Anforderungsbereich III)[Ku003, S. 11f]. 2.4 Rahmenbedingungen Der Entwicklung der Simulation gehen verschiedene Annahmen der aktuellen Forschung zu E-Learning-Produkten voraus. So richtet sich die Software vordergründig an ein eingebettes Unterrichtskonzept, dass neben Phasen der individuellen Arbeit von Schülerinnen und Schüler mit der Simulation auch Elemente klassischer Unterrichtsgestaltung beinhaltet. Diese Voraussetzung basiert auch auf aktuellen wissenschaftlichen Erkenntnissen, die einen kombinierten, eingebetteten Einsatz von Lernsoftware als sinnvoll herausstellen [Ker03]. Lehrende müssen das Konzept Verteilter Systeme trotz der Software den Lernenden nahe bringen, die Simulation hat nicht den Anspruch Unterricht zu ersetzen[KSJ06, S. 10]. Stattdessen wird die „Arbeit mit einem Explorationsmodul [...] aus dem Wunsch des Schülers [motiviert] mit Elementen zu agieren, die auf Grund ihrer Abstraktion oder Komplexität mit anderen Lernmaterialien schwer erfassbar oder schwerer darstellbar sind“[SS04, S. 142]. 2 ANFORDERUNGSANALYSE UND RAHMENBEDINGUNG 12 Weitere Voraussetzungen, die Anforderungen an die Simulation sind, lassen sich in einigen Punkten zusammenfassen[KSJ06, S. 25-29]. So sollen die technischen Voraussetzungen zur Nutzung der Software gegeben sein. Dies legt die Verwendung einer möglichst kostenlosen und plattformübergreifenden Programmiersprache nahe. Außerdem sollte beim Einsatz der Software darauf geachtet werden, dass Hilfe bei technischen Problemen angeboten werden kann. Dies kann etwa durch OnlineHilfen oder gut geschulte Lehrende realisiert werden. Es wäre weiterhin denkbar, einen virtuellen Raum aufzubauen, wo sich Entwickler und Nutzer der Software austauschen können. Ein zweiter Anforderungskomplex sind Vorkenntnisse der Lehrenden. Da die Software für den Informatikunterricht konzipiert wurde, ist davon auszugehen, dass die Lehrerinnen und Lehrer über das nötige Fachwissen im Umgang mit der Simulation verfügen und sich schnell und problemlos in die Thematik Verteilte Systeme einarbeiten können. Es gibt auch Voraussetzungen an die Lernenden, wenn der Einsatz der Simulation erfolgreich sein soll. So müssen sie grundlegende Kenntnisse über die Bedienung von Computer haben und mit einer modernen, grafischen Oberfläche umgehen können. Sie sollten weiterhin einfache Datentypen kennen und sich mit Algorithmen auskennen. Auch dies kann von Schülerinnen und Schülern erwartet werden, die schon einige Zeit den Informatikunterricht besucht haben. Der Zeitaufwand für die Vorbereitung, die Verwendung der Simulation und die Nachbereitung der Thematik sollte sich ebenfalls im Rahmen halten. Hier ist angedacht, dass alle drei Schritte in einer Doppelstunde durchgeführt werden können. Diese Annahme soll in der Evaluation überprüft werden. Unter „Instruktionsdesign für E-Learning“5 wird eine weitere Gruppe Anforderungen zusammengefasst. Dabei soll der Lernende aktiv sein und sein Wissen selbst mit Unterstützung der Software und bezogen auf einen konkreten Kontext konstru5 Die Auswahl der relevanten Punkte für die Software entspricht nicht allen Qualitätskriterien, die von Kristöfl u.a. aufgestellt, da sich viele Punkte auf ein konkretes Unterrichtsmodell beziehen und nicht auf die Simulation an sich. Im Kapitel „Anwendungsmöglichkeiten“ wird auf andere Punkte genauer eingegangen. 2 ANFORDERUNGSANALYSE UND RAHMENBEDINGUNG 13 ieren. Die Schüleraktivität wird über die Bedingung des Software sichergestellt. Die Lösungsfindung in der Simulation entspricht der Wissenskonstruktion und der Kontext ist die von der Simulation bereitgestellte „Lernwelt“. Die Lernaktivität wird über Selbstständigkeit, den Rückgriff auf implizites Wissen, die Einbindung konkreter Probleme in komplexe Denkprozesse und die Anwendung auf eine konkrete Problemsituation sichergestellt. Für Hilfestellungen wird eine breite, mediale Unterstützung in Form einer Dokumentation und Anwendungshilfe sowie dem Verweis auf verschiedene (Online-)Quellen angeboten. Weiterhin ist der Lerninhalt aktuell und authentisch, auch wenn er sich auf ein fiktives, spielerisches Szenario bezieht. Die Rahmenbedingungen, die dieser Arbeit zu Grunde liegen, sind also: • Explorativität • niedrige technische Anforderungen und technische Unterstützung am Lernort • inhaltliche Unterstützung am Lernort • geringe Voraussetzungen an die Vorkenntnisse der Lernenden • Schüleraktivität6 • realitätsbezogene Lösungsfindung • aktuelle und authenische Lerninhalte 6 Unter Schüleraktivität ist zu verstehen, dass Schülerinnen und Schüler durch aktives, selbsttäti- ges Handeln lernen und nicht passiv durch Zuhören, Abschreiben oder Nachvollziehen. 3 3 STAND DER FORSCHUNG 14 Stand der Forschung Dem Projektinhalt entsprechend soll in diesem Kapitel der Stand der Forschung analysiert werden. Dazu wird zunächst eine Einordnung des Projekt anhand verschiedener Typologien vorgenommen. Anschließend geht es um exploratives Lernen im Allgemeinen und im Informatikunterricht. Das vorliegende Projekt kann dabei am besten mit F ILIUS verglichen werden, einer Software zum Thema Internetworking der Universität Siegen. Da das vorliegende Projekt ein digitales Lernspiel ist, sollen Beispiele aus der aktuellen Forschung über spiel-basiertes E-Learning diskutiert werden. 3.1 Merkmale und Einordnung von Lernsoftware Um die vorzustellenden Projekte einordnen zu können, werden an dieser Stelle noch einige Merkmale definiert. Der Gegenstand der Software ist das Thema, über das etwas gelernt werden soll. Die Nutzerzahl unterscheidet, ob das Programm von mehreren Nutzern gleichzeitig verwendet werden kann. Die unterschiedlichen Softwaretypen wurden bereits angeführt. Mit Spielorientierung ist gemeint, ob das Lernen in einer Spielwelt stattfinden. Der Begriff Explorativität wurde bereits definiert. Die Erweiterbarkeit meint, ob sich durch angemessenen Aufwand weitere Lerninhalte zur Software hinzufügen lassen. Mit Einbettung in andere Lernformen soll festgelegt werden, ob die Software allein genutzt werden kann oder ob es sinnvoller ist sie in einen Unterrichtskontext zu stellen. Als vorletztes Merkmal wird der „Lerngegenstandstyp“ definiert, das hinter einer Lernsoftware steckt. Dieser Typ zeichnet den Zugang zum Verständnis des Mediums aus. Hier sind generell zu unterscheiden, ob das Bedienen und Beherrschen eines Werkzeugs, das vom Computer mittels einer grafischen Benutzeroberfläche bereitgestellt wird [Maa94, S. 5], („werkzeugorientiert“) oder das Verstehen des 3 STAND DER FORSCHUNG 15 Funktionierens der Werkzeuge („systemorientiert“) im Vordergrund stehen. Außerdem soll die Methodik des Lernens unterschieden werden, die von den Programmen verwendet werden. Sind die Methoden unabhängig vom Lerngegenstand, werden sie als „offen“ bezeichnet. Orientieren sich die Methoden am Funktionieren des zu untersuchenden Objekts, werden sie „problembezogen“ genannt. Daraus ergibt sich folgendes Schema für Vergleichsmerkmale von E-Learningprodukten: • Gegenstand • Nutzerzahl • Softwaretyp • Spielorientierung • Explorativität • Erweiterbarkeit • Einbettung in andere Lernformen • Lerngegenstandstyp • Problembezug • Art des Wissens7 3.2 Lernsoftware Das vorliegende Projekt versteht sich wie bereits ausgeführt als exploratives Modul. Solche Module gibt es viele. Exemplarisch sollen die Projekte F ILIUS und G ANI MAL in diesem Abschnitt kurz vorgestellt werden. F ILIUS weist eine thematische Nähe zum vorliegenden Projekt auf und hat ebenfalls moderne Erkenntnisse der 7 Hier könnten zahlreiche Arten unterschieden werden. Es soll aber nur zwischen zwei Arten in dieser Arbeit differenziert werden: Sachwissen und Handlungswissen. 3 STAND DER FORSCHUNG 16 Abbildung 1: Hauptfenster von Filius.8 Lernsoftwareforschung berücksichtigt. Letzteres gilt auch für G ANIMAL, welches sich u.a. mit Fragen der Automatentheorie beschäftigt. 3.2.1 Simulation zum Thema Internetworking: F ILIUS F ILIUS ist ein Projekt, das an der Universität Siegen von der Fachgruppe Didaktik der Informatik und E-Learning entwickelt wurde. F ILIUS bedeutet soviel wie „Freie Interaktive Lernumgebung für Internetworking der Universität Siegen“. Die Haupttätigkeiten, die Benutzer mit F ILIUS vornehmen können, sind das Konstruieren und Konfigurieren von Netzwerken sowie die Interaktion mit dem System. Die Software bietet daneben die Möglichkeit, alle Vorgänge auf unterschiedlichen Netzschichten zu beobachten [ABD+ 07a, S. 1ff]. Darstellbar sind mit der Simulation verschiedene Typen von Rechnern sowie weitere Komponenten, die im Internet eine Rolle spielen. Dazu zählen Kabel, Switch, Router, Personal Computer, Laptops und Modems [ABD+ 07a, S. 16]. Im Zentrum der Software stehen jedoch die Modelle und Dienste, die zum Verständnis des Internets grundlegend notwendig sind. Darunter zählen das Client-Server-Modell, das World Wide Web, Routing, Peer-to-peer und E-Mail [ABD+ 07a, S. 6-13 und 30-41]. Die Untersuchung der Vorgänge auf verschiedenen Netzwerkschichten [ABD+ 07a, 8 Asschoff, André u.a., <http://www.die.informatik.uni-siegen.de/pg\ textsc{Filius}/pic/MainFrame.png> am 08.03.08. 3 STAND DER FORSCHUNG 17 Abbildung 2: Simulation einer Peer-to-Peer-Anwendung.9 S. 52-60] sind dabei die interessanteste Eigenschaft, denn sie bieten die Möglichkeit hinter die Internet-“Werkzeuge“ zu schauen und nicht nur ihre Bedienung nachvollziehbar zu machen, sondern auch ihre eigentliche Funktionsweise. Den gleichen Anspruch hat auch die vorliegende Simulation, der einen entscheidenden Mehrwert für den Unterricht erbringen kann. F ILIUS hat ebenfalls den Anspruch eine explorative Lernsoftware zu sein, die konstruktives Lernen ermöglicht [ABD+ 07a, S. 2f]. Das Siegener Projekt soll also ebenfalls nicht isoliert betrachtet werden, sondern in einen klassischen Unterrichtskontext begleitet von einem Lehrer eingebunden werden und gleichzeitig den Schülerinnen und Schülern den Wissenserwerb auf Basis konstruktiver Tätigkeiten ermöglichen. Der Aufbau der Software hat viele Paralellen zum vorliegenden Projekt. Unter einem Projekt wird ein konfiguriertes Netzwerk verstanden. Dies kann neu angelegt, geladen und gespeichert werden. Ein solches Projekt ist vergleichbar mit den „Spielständen“ im vorliegenden Projekt. Weiterhin werden zwei Modi unterschieden: Im Entwurfsmodus wird ein Netzwerk zusammengefügt. Im Simulationsmodus kann das Netzwerk dann auf Funktionstüchtigkeit überprüft und anhand eines vorgegebenen Szenario getestet werden [ABD+ 07b, S. 3f und S. 6-9]. Auch diese funktionelle Unterscheidung ist eine Gemeinsamkeit der beiden Projekte. 9 Asschoff, André u.a., <http://www.die.informatik.uni-siegen.de/pg\ 3 STAND DER FORSCHUNG 18 F ILIUS ist ebenfalls erweiterbar. Dazu gibt es einen Software-Assistenten, der eingebunden in die F ILIUS-Oberfläche Client- oder Server-Anwendungen dabei hilft, neue Funktionalitäten hinzuzufügen [ABD+ 07b, S. 4]. Die Unterschiede liegen natürlich zunächst in der Thematik. Das vorliegende Projekt beschäftigt sich mit Verteilten Systemen und nicht mit dem Internet und seinen Diensten. Auch die Hardware hinter dem Netzwerk sowie Fragen der Konfiguration sind für das Projekt uninteressant, da sie als vorgegeben vorausgesetzt werden. Die verschiedenen Szenarien in F ILIUS sind zwar mit den zentralen Problemen vergleichbar, aber nicht das Hauptaugenmerk der Simulation. Ein zentraler, pädagogischer Unterschied ist die Spielorientierung. Das vorliegende Projekt hat einen ausgeprägten Spielcharakter und lässt sich der Gruppe der Lernspiele zurechnen, F ILIUS kann man eher als reine Lernsoftware bezeichnen. Das vorliegende Projekt soll außerdem das Erstellen von Algorithmen ermöglichen. In F ILIUS werden hingegen Konfigurationen von Maschinen erstellt. M ERKMAL F ILIUS Gegenstand Internetworking Nutzerzahl Einzelnutzer Softwaretyp Simulation Spielorientierung nicht spielorientiert Explorativität explorativ Erweiterbarkeit erweiterbar Einbettung in andere Lernformen eingebettet Lerngegenstandstyp systemnah Problembezug problembezogen Art des Wissens Handlungswissen Tabelle 2: Einordung von Filius textsc{Filius}/pic/P2PSuche.png> am 08.03.08. 3 STAND DER FORSCHUNG 19 Abbildung 3: Ganimal: Zwei Möglichkeiten zur Erstellung eines Rot-SchwarzBaums[GanoJ] 3.2.2 Lernsoftware zur Automatentheorie und mehr: G ANIMAL Das Projekt G ANIMAL wurde an der Universität des Saarlandes mit Unterstützung der Deutschen Forschungsgemeinschaft entwickelt und beschäftigt sich mit endlichen Automaten, Bäumen u.a.10 . Das System basiert auf HTML und JAVA und kann on- und offline genutzt werden. Außerdem wird die Systematik des Wissensaufbaus des Projekts hervorgehoben. Darunter wird verstanden, dass ein Lernender zunächst einen Text lesen kann und anschließend mit Informationen aus dem Text einen Prozess spezifiziert. Aus diesem vom Nutzer erstellten Prozess generiert die Software dann eine Grafik. Der Lernende hatte damit die Möglichkeit zu interagieren und steuert das Lernen selbst [Ker03, S. 2f]. Auch G ANIMAL ist ein Einzelnutzersystem und simuliert den Lerngegenstand. Durch das Paradigma der Generativität ist G ANIMAL auch erweiterbar, wobei die Erweiterbarkeit sich auf Werkzeuge u.ä. bezieht und das Rahmenwerk damit dem Plugin-Entwickler möglichst viel (vor allem konzeptionelle) Arbeit abnimmt [Ker03, S. 4ff]. 10 Weitere Anwendungsmöglichkeiten sind unter [GanoJ] nachzulesen. 3 STAND DER FORSCHUNG 20 Die Unterschiede zum vorliegenden Projekte liegen im Lernleitbild und natürlich im Thema. Auch bei G ANIMAL steht das Verständnis des Verstehens des Lerngegenstands im Vordergrund, allerdings sind Handlungen, die der Lernende auszuführen relativ unabhängig davon. Aufgrund der weiten Thematik hätte man ein solches System sicher kaum anders entwerfen können. M ERKMAL G ANIMAL Gegenstand Theoretische Informatik Nutzerzahl Einzelnutzer Softwaretyp Simulation Spielorientierung nicht spielorientiert Explorativität explorativ Erweiterbarkeit erweiterbar Einbettung in andere Lernformen nicht eingebettet Lerngegenstandstyp systemnah Problembezug problembezogen Art des Wissens Handlungswissen Tabelle 3: Einordnung von Ganimal 3 STAND DER FORSCHUNG 3.3 21 Digitale Lernspiele Das vorliegende Projekt ist ein digitales Lernspiel. Darunter zu verstehen ist Software, die als Zweck die Erfüllung von Lernzielen hat und die das mit spielerischen Elementen umzusetzen versucht. Der folgende Abschnitt beschäftigt sich schwerpunktmäßig mit dem Forschungsstand in diesem Sektor. 3.3.1 Forschung über digitale Lernspiele Die Forschung beschäftigt sich auf unterschiedlichste Weise mit digitalen Lernspielen. Angelehnt an Brezinka[Bre95] gibt es drei Hauptgruppen von Forschungsschwerpunkten, die dabei gesetzt werden können. Das sind • die pädagogische Analyse von Computerspielen (Lernspiele und Unterhaltungsspiele), • der pädagogischer Umgang mit Computerspielen und • die methodologisch-technische Forschung zur pädagogischen Gestaltung von digitalen Lernspielen. Für das vorliegende Projekt ist in erster Linie der dritte Punkt interessant. Dazu kann zunächst festgestellt werden, dass in Videospielen im Allgemeinen gelernt wird, auch wenn dies nicht intendiert ist oder die Lernziele einen direkten Bezug zur Bedienung des Spiels haben. Diese Ansicht wird u.a. von James Paul Gee von der University of Wisconsin vertreten: „Um ein Computerspiel spielen zu können, muss man es lernen. Und Computerspiele werden immer komplizierter. Darum ist es für den kommerziellen Erfolg eines Games zentral, dass es auf gute Lernprinzipien zurückgreift. Die Funktionsweisen guter Computerspiele, die Schüler heute spielen, sind oft besser als die in den Schulen, die sie besuchen.“[Kri08] 3 STAND DER FORSCHUNG 22 Abbildung 4: Schnelle Einführung in die Spielewelt durch eine Filmsequenz.11 Demnach lernen Schülerinnen und Schüler in Computerspielen „angst- und risikofrei“. Wenn sie Fehler machen, können sie einfach einen alten Spielstand neuladen. In der Schule ist das nicht so. Außerdem passen sich gute Computerspiele an die Fähigkeiten der Spieler an und machen es schwerer, wenn jemand sehr gut ist. Ist jemand schlecht, wird das Spiel einfacher gestaltet - ein Paradebeispiel für Differenzierung im Lernprozess.[Kri08] Bopp benennt für Computerspiele drei mögliche Lerndimensionen[Bop06, S. 11]: • situative Dimension • temporäre Dimension • soziale Dimension Unter der situativen Dimension versteht man geplantes oder nicht-geplantes Lernen der Spieler. Der Planende ist dabei der Spielentwickler. Er arrangiert Spielsituationen, in denen der Spieler Wissen aufbauen kann, das zum Lösen von Problemen notwendig ist. Dies kann auf verschiedene Weise geschehen. Klassisch sind das Texte, Gespräche und Illustrationen[Bop06, S. 13-15], die in unterschiedlichen Formen präsentiert werden. 11 c c <http://www.onlinekosten. Szene aus NEED FOR SPEED: CARBON von EA, de/news/bilder/nfs_filmsequenz.jpg> am 18.03.08. 3 STAND DER FORSCHUNG 23 c Parasoziale Charaktäre sollen motivieren.12 Abbildung 5: Call of Duty 4 : Moderne Spiele verzichten dabei auf klassische Hilfetexte, die „außerhalb“ der Spielewelt stehen. Sie bringen Informationen in PDAs, Telefongesprächen, Fernsehsendungen oder in (Handy-) Kurznachrichten unter. Die Kommunikationspartner können zum Beispiel Freunde, erfahrene Charaktäre, Auftraggeber oder Vorgesetzte sein. Weiterhin kann dem Spieler ein bestimmtes Verhalten demonstriert werden, das er dann nachahmen muss um ein Problem oder eine bestimmte Klasse von Problemen zu lösen [Bop06, S. 15]. Bopp nennt weiterhin das „stealth teaching“ - das versteckte Lehren. Damit gemeint sind Situationen, in denen der Spieler etwas machen muss ohne zu bemerken, dass er damit auf eine komplexere Situation verbreitet wird [Bop06, S. 16f]. Es gibt auch Hervorhebungen, die bestimmte Wege kennzeichnen oder Verengungen, die diese Wege vorgeben können. Die zeitliche Dimension zeichnet sich dadurch aus, dass komplexere Lernziele nicht in wenigen Sekunden, in einem Schritt und mit einer Methode gelernt werden können. Stattdessen ist es von großer Bedeutung, dass Wissen auf bereits vorhandenes Wissen aufbauen kann. Dieser Wissensstand muss von Spielentwicklern beachtet werden, damit keine unüberwindbaren Herausforderungen den Spielfluss stören können [Bop06, S. 22-26]. Die soziale Dimension des Lernens scheint für das vorliegende Projekt keine Rolle zu spielen, da es ein Einzelspielerprogramm ist. Nach Bopp kann es aber „parasoci12 c <http://media.teamxbox.com/games/ss/1719/1194292285. Infity Ward, jpg> am 18.03.08. 3 STAND DER FORSCHUNG 24 al learning“ geben, was soviel bedeutet, dass der Nutzer mit virtuellen Charakteren lernt. Das parasoziale Lernen nimmt damit den motivierenden Charakter sozialer Lernprozesse auf. Weiterhin ist die Beziehung zu dem Charakter von Bedeutung. Emotionale Beziehungen und damit tiefgehendere Charaktäre haben ein größeres Potenzial für Lernerfolge zu sorgen als flache virtuelle Mitspieler. Bopp fasst zusammen: „The importance of parasocial phenomena for didatic methods lies in its potential to create motivating learning situations, among others. [...] Parasocial didactics can be seen as a development of several traditional classroom methods; for example, the teaching story, a method sometimes used to make history alive by telling it from perspective of real or made up persons from the past[...]“[Bop06, S. 28]. Die Kriterien angelehnt Bopp u.a., an denen digitale Lernspiele in dieser Arbeit gemessen werden, sind • situatives Lernen, • komplexe, zusammengesetzte Lernvorgänge, • soziale Lernprozesse, • parasoziale Lernprozesse und • einer ansprechenden Oberfläche. Im Folgenden sollen verschiedene dieser Lernspiele mit Bopps Kriterien und der entwickelten Typologie verglichen werden. Die Auswahl beschränkt sich auf drei Lernspiele, wobei es natürlich noch viele weitere gibt. Die Spiele wurden deshalb ausgewählt, weil sie zahlreiche Gemeinsamkeiten mit dem vorliegenden Projekt aufweisen und auch einige wichtige Unterschiede, die helfen sollen, das Spielkonzept zu begründen. 3 STAND DER FORSCHUNG 25 c Abbildung 6: Titelbild: Wo auf der Welt ist Carmen Sandiego?von 200113 3.3.2 c Wo in der Welt ist Carmen Sandiego? Die Spielereihe „Wo in der Welt is Carmen Sandiego?“ von Brøderbund Software, Inc. weisst von der Spielweltkonzeption eine Gemeinsamkeit mit dem vorliegenden Projekt auf. Es geht um die Jagd nach der Diebin Carmen Sandiego, die überall auf der Welt Schätze stiehlt. Das Spiel wurde in verschiedenen Versionen veröffentlicht sowie als Fernsehserie und als Gameshow ausgestrahlt, die teils auch in Deutschland ausgestrahlt wurden und sich vor allem in den USA großer Beliebtheit erfreuen [BeioJ]. Das Lernspiel ist eine kommerzielle Anwendung, die eher auf den Spiel- als auf den Lernfaktor setzt, was wohl den Erfolg der Reihe erklärt. Trotzdem kann sich der (jüngere) Spieler viel Wissen über Geographie und nebenbei auch über das kulturelle Erbe der Menschheit aneignen, denn die Abenteuer finden an vielen Orten rund 13 c Wo auf der Welt ist Carmen Sandiego?von 2001: <http://ecx.images-amazon. com/images/I/51TYCA6RJHL._SS400_.jpg> am 01.04.08 3 STAND DER FORSCHUNG 26 c Abbildung 7: Wo auf der Welt ist Carmen Sandiego?Infos über Korea14 um die Welt statt. Der Spieler rückt dabei in die Rolle eines Interpol-Detektiven, der sich auf die Jagd nach der Mafia und ihrer Chefin Carmen Sandiego begibt. Als Motivation kann der Nutzer verschiedene Dienstgrade erlangen, wenn er Erfolge verzeichnet hat. Außerdem gibt es Motivation in Form von parasozialen Kontakten wie dem Interpol-Chef, der sich über Erfolge freut bzw. sauer wird, wenn der Spieler Mißerfolge zu verzeichnen hat. [BeioJ] Die Oberfläche des Spiels hat sich natürlich seit dem Jahr der ersten Version, 1985, ständig verändert, ist aber in vielen Punkten sehr ansprechend und auf der Höhe der Zeit geblieben. Auch in weiteren Punkten, die von Bopp angesprochen wurden, entspricht die Software einem guten Lernprodukt (themenbezogene Texte, Illustrationen und Gespräche, komplexere Lernvorgänge). Das Lernen steht insgesamt aber nicht im Vordergrund, was Vor- und Nachteile hat. So wird nebenbei gelernt und die Motivation steigt. Allerdings lernt man eher Fakten statt Kompetenzen, die im Kontext der Spielbedienung stehen als sich am Lerngegenstand orientieren. M ERKMAL 14 c C ARMEN S ANDIEGO Wo auf der Welt ist Carmen Sandiego? Deluxe Edition von 1990: Zeigt einen In- fobildschirm über Korea: <http://www.lauppert.ws/screen1/carmen_sandiego_ deluxe.png> am 01.04.08 3 STAND DER FORSCHUNG 27 Gegenstand Geographie u.a. Nutzerzahl Einzelnutzer Softwaretyp Adventure Spielorientierung spielorientiert Explorativität nicht explorativ Erweiterbarkeit nicht erweiterbar Einbettung in andere Lernformen nicht eingebettet Lerngegenstandstyp offen Problembezug nicht problembezogen Art des Wissens Faktenwissen situatives Lernen Texte, Illustrationen, Gespräche komplexes Lernen schwach vorhanden soziale Lernprozesse nicht vorhanden parasoziale Lernprozesse vorhanden Oberfläche moderne Grafiken Tabelle 4: Einordnung der Carmen-Sandiego-Reihe 3.3.3 Fountain of Wisdom FOW (kurz: FOW, zu deutsch „Brunnen der Weisheit“) ist ein Lernspiel, das an der FernUniversität Hagen im Lehrgebiet Verteilte Systeme für kooperative Lern/Arbeitsumgebungen entwickelt wurde. Es basiert auf der Plattform „C URE“ (Collaborative Universal Remote Education), welches eine Internet-Lernplattform ist, die den studentischen Wissensaustausch fördern soll. C URE benutzt dazu virtuelle Räume, die gemeinsame Arbeitsbereiche für Gruppen darstellen [CURoJ]. Die Anbindung eines Projekts an C URE erfolgt über eine Beschreibungssprache. Diese Erweiterungsfunktion nutzt auch FOW. 16 [oAoJ, S. 6] 3 STAND DER FORSCHUNG 28 Abbildung 8: Fountain of Wisdom: Drei Mitspieler, eine Quelle (links) und eine Senke (rechts)16 FOW ist eine Plattform, die auf fast alle Themengebiete angewendet werden kann. Zunächst bestimmt ein Spielleiter das Thema und entwickelt zugehörige Fragen. Fragen werden als Quellen dargestellt und Antworten befinden sich in Senken. Ein Spieler holt immer eine Frage ab und begibt sich dann auf die Suche nach der Antwort oder den Antworten, denn einer Fragen können mehrere Antwortteile zugeordnet werden. Ist eine Frage richtig beantwortet, wird sie aus dem Spiel entfernt und der Spieler erhält dafür Punkte. Ist sie falsch beantwortet, gibt es Punktabzüge und die Frage verbleibt im Spiel. Daneben gibt es noch Geister, die gut und böse sein können. Gute Geister helfen dem Spieler mit Hinweisen, böse klauen Fragen. Die Attribute der Spieler können über Gimmicks wie schnellere Bewegungen verbessert werden. Ein Gimmick kann von erworbenen Punkten gekauft werden [oAoJ, S. 8-16]. FOW ist für viele Benutzer ausgelegt, die gemeinsam Fragen beantworten können. Wird ein Mehrbenutzerspiel gewählt, werden die Nutzer in zwei gegnerische Teams aufgeteilt, was den Wettbewerbsgedanken fördern soll. Die Zusammenarbeit wird über verschiedene Formen des Chats („Marktplatz“ - offener Chat in der gesamten FOW-Welt; „Spielchat“ - für alle Teilnehmer des Spiels, „Team-Chat“ - für alle Teammitglieder und „Face-to-Face-Chat“ zwischen zwei Spielern) und über die 3 STAND DER FORSCHUNG 29 Abbildung 9: Fountain of Wisdom: Das Bewertungssystem17 Komplettierungsmöglichkeit einer nicht-vollständig beantworteten Frage durch ein anderes Teammitglied sichergestellt [oAoJ, S. 3]. Bei FOW handelt es sich um ein Abfrageprogramm, welches bereits vorhandenes Wissen überprüft, es ist also keine Simulation. Wissen wird durch die Software zwar gefestigt, aber nicht aufgebaut. Die Aufgabenlösungen haben keinen Bezug zu einem bestimmten Thema, sind also offen. Die Software ist erweiterbar und nicht-explorativ, ist aber in einem explorativen Kontext denkbar, da durch das Spiel eigentlich kein Wissen geschaffen werden kann. Obwohl FOW eine durchaus aufwendige, wenn auch nicht aktuelle 3D-Oberfläche zu bieten hat, hat das Projekt einige Schwächen. Es verwendet keine lernbezogenen Tutorials, Vorführungen, kein verstecktes Lernen und keine parasozialen Charaktäre. Positv sind das Nutzen von themenbezogenen Gesprächen mit den Geistern und die komplexe Lösungsfindung durch aufgeteilte Antwortmöglichkeiten. Lernen findet zwar nur sehr begrenzt parasozial, dafür aber sozial statt. Damit ist das Lernen fast nur auf den Austausch mit anderen Teilnehmern beschränkt. 17 M ERKMAL F OUNTAIN OF W ISDOM Gegenstand offen [oAoJ, S. 10] 3 STAND DER FORSCHUNG 30 Nutzerzahl Mehrnutzer Softwaretyp Testsoftware Spielorientierung spielorientiert Explorativität nicht explorativ Erweiterbarkeit erweiterbar Einbettung in andere Lernformen eingebettet Lerngegenstandstyp Problembezug nicht problembezogen Art des Wissensaufbaus kein Wissensaufbau Tutorials nicht-vorhanden Informationsvermittlung Geister Vorführungen keine Vorführungen komplexes Lernen (vorhanden) soziale Lernprozesse vorhanden parasoziale Lernprozesse (nicht vorhanden) Oberfläche 3D-Grafik Tabelle 5: Einordnung von Fountain of Wisdom 3.3.4 Auswertung Aktuelle Lernsoftware-Lösungen, nicht nur die vorgestellten Projekte, haben die Erkenntnisse von Bopp u.a. noch nicht realisiert. Lernsoftware wirkt im Vergleich zu den modernen 3D-Welten aktueller Videospiele eher rückständig, die soziale Dimension beschränkt sich meist auf einen tutor-ähnlichen Gefährten, der sehr flach gehalten ist. Es gibt meist keinen Mehrspieler-Modus und auch keine Einführungslevels [Bop06, S. 32ff]. Auch das methodisch-didaktische Design der Spiele entspricht nicht den Erkenntnissen von Bopp u.a. So sind viele Spiele eher einem multimedialen Lehrbuch zu vergleichen und die Handlungsfreiheit des Nutzers ist sehr 3 STAND DER FORSCHUNG 31 eingeschränkt. „This dominance of traditional learning and teaching in educational games may caused by a lack of knowledge about the didactic design of non educational games or a lack of financial resources necessary to use them. Or maybe it is difficult to actually use these didactic methods to support academi learning content and not just entertaining learning content.“[Bop06, S. 35]18 18 Das vorliegende Projekt kann auf Grund von beschränkten Ressourcen nicht alle Forderungen von Bopp wie eine ansprechende, aktuelle Grafikengine oder eine komplexe Story erfüllen. Trotzdem wird an den verschiedendsten Stellen versucht, diese Erkenntnisse zu nutzen, soweit dies möglich ist. 4 KONZEPTION 4 32 Konzeption In diesem Kapitel wird die Konzeption des vorliegenden Projekts beschrieben. Dabei wird entsprechend der bisherigen Vorgehensweise die Konzeption in zwei Bereiche aufgeteilt (inhaltliche und technische Konzeption). 4.1 Inhaltliche Konzeption Entsprechend der Anforderungen sind die Inhalte der Lernsoftware bereits vorbestimmt: Es sollen innerhalb einer Spielwelt fünf Probleme modelliert werden, die von den Benutzerinnen und Benutzer gelöst werden können. Die Auswahl der Probleme richtet sich danach, ob das Problem für Lernende einfach zu verstehen und auch die Notwendigkeit der Problemlösung einfach nachvollziehbar ist. Außerdem sollten die Probleme möglichst einen Bezug zur Alltagswelt aufweisen und sich auf unterschiedliche Weise, also textuell und grafisch, in verschiedenen Zuständen darstellen lassen. Die Anzahl der Probleme soll auf fünf beschränkt werden, damit sich die Simulation zeitlich in ungefähr einer Stunde lösen lässt, wenn die Lernenden keine oder wenige Vorkenntnisse über Verteilte Systeme haben. 4.1.1 Die Spielwelt Der Nutzer der Simulation wird in eine fiktive Stadt entführt, die in einigen Punkten an Jena angelehnt ist. Der „Kontaktmann“, der eine parasoziale Kommunikation mit der Spielwelt ermöglichen soll, ist der Bürgermeister der Stadt. An diesem fiktiven Ort blühen die Wirtschaft und die Wissenschaft. Die Bewohner sind sehr zufrieden und erhoffen sich, dass das so bleibt. Durch den wachsenden Wohlstand werden allerdings Spione aus fremden Ländern angelockt, die sich über die Technologien informieren wollen. Die Bewohner der Stadt, insbesondere die Industriellen, haben sich mit der Situation weitestgehend abgefunden. Der Klau von Informationen kann meist verhindert werden und es wird kein schlimmer Schaden angerichtet. 4 KONZEPTION 33 Gleichzeitig kommt aber ein neues Problem auf. Die Spione sind nicht unbedingt positiv zueinander eingestellt und geraten immer öfter in Konflikte. Der Bürgermeister und die Wirtschaft der Stadt haben die begründete Angst, dass diese Konflikte schnell größer werden und die öffentliche Sicherheit in der Stadt gefährten. Deswegen spricht er mit jedem einzelnen Agenten und findet heraus, dass ihre Konflikte oft nur auf Missverständnissen in der Kommunikation beruhen. Um diese Probleme soll sich ein Techniker kümmern. Der Spieler rückt in die Rolle dieses Technikers und wird vom Bürgermeister um Hilfe gebeten. Schnell treten erste Probleme in der Kommunikation auf, die der Nutzer lösen soll. 4.1.2 Punktesystem Die Spielergebnisse sollten laut den Anforderungen vergleichbar gemacht werden um den Ehrgeiz der Nutzerinnen und Nutzer zu wecken. Vergleichbar heißt, dass zwei Nutzer direkt vergleichen können, wer in dem Spiel besser abgeschnitten hat. Dazu wurde ein Punktestand eingeführt, der die Leistung messen und den Nutzern ein Feedback geben soll. Dabei geht die Simulation wie folgt vor. Ein Spieler erhält dann Punkte, wenn ein Problem als gelöst gilt. Die Leistung des Spielers wird danach berechnet, wie schnell er das Problem gelöst hat. Die Standardvariante ist die, dass ein Schüler 3600 Punkte abzüglich der benötigten Sekunden zur Problemlösung Punkte gutgeschrieben bekommt. Wer schneller ist, bekommt also mehr Punkte. Ein Plugin kann diese Einstellungen natürlich ändern und individuell Punkte verteilten. So ist angedacht, dass es für komplexere Probleme mehr Punkte gibt als für einfachere und gleichzeitig weniger abgezogen werden. Sind nun in einem Spiel alle Probleme gelöst, wird ein Endpunktestand ermittelt, der es den Nutzern ermöglicht, ihre Leistungen direkt miteinander zu vergleichen. 4 KONZEPTION 4.1.3 34 Auswahl von zentralen Problemen in Verteilten Systemen Wie bereits ausführlich geschildert, werden in Verteilten Systemen Nachrichten zwischen unterschiedlichsten und oftmals gleichwertigen Kommunikationspartnern, über deren Zustand vielleicht gar nichts ausgesagt werden kann, ausgetauscht.19 Diese sehr weite Beschreibung führt natürlich zwangsläufig zu Problemen, die beispielsweise in homogenen Systemen einfacher in den Griff zu bekommen wären. Im Folgenden soll für die Auswahl der zu Grunde liegenden Probleme in der Simulation ein kurzer Überblick gegeben werden. Der Entscheidung für oder gegen eine Aufgabenstellung liegen die folgenden Kriterien zu Grunde: • das Problem hat eine wichtige Stellung in Verteilten Systemen, • es lässt sich in geigneter Form innerhalb der Spielewelt modellieren, • das Problem, die Lösung und die Teilschritte lassen sich grafisch und textuell gut beschreiben, • die Lösungen sind „authentisch“20 und haben eine geeignete Komplexität für Schülerinnen und Schüler. Nachrichtenverlust und -duplizität Nachrichten können z.B. auf Grund von Übertragungsfehlern verloren gehen und nicht beim Gegenüber ankommen. Gleichzeitig kann eine Nachricht doppelt gesendet werden und zu Missverständnissen führen. Auch der Verlust einer Nachricht kann unerwünschte Folgen haben und eine Aktion auf der Empfängerseite nicht auslösen, die gewünscht war. Der Verlust von Nachrichten wird in der Simulation 19 Wie bereits angedeutet, muss die Kommunikation in Verteilten Systemen nicht Nachrichten in den Mittelpunkt stellen, auch wenn sich Nachrichten meist hinter anderen Möglichkeiten verbergen. Der Aufruf entfernten Prozeduren (z.B. Remote Procedure Call, kurz RPC) und weitere Paradigmen werden in dieser Arbeit aber nicht behandelt [TS03, S. 77-160]. 20 Die Lösungen sollen der Realität entsprechen, keine falschen Tatsachen zur Vereinfachung der Lösung verwenden[SS04, S. 45 u.a.]. 4 KONZEPTION 35 berücksichtigt, wobei sich das Problem einfach modellieren lässt und gut für jüngere Nutzer nachvollziehbar ist. Für die Agenten bedeutet das, dass sie sauer werden, wenn eine gewünschte Reaktion ausbleibt, da eine Nachricht verloren gegangen ist. Sie glauben nicht daran, wie bei den anderen Problemen auch, dass es sich um ein technisches Problem handelt, sondern gehen von bösen Absichten ihres Kommunikationspartners aus. Damit würde sich der Unmut zwischen den Agenten erhöhen, was der Nutzer natürlich verhindern soll. Synchronisierung Aspekte der Synchronisation treten dann in den Mittelpunkt, wenn Prozesse tatsächlich auch miteinander arbeiten müssen. Das kann etwa bedeuten, dass sie eine gemeinsam genutzte Ressource manipulieren oder dass es wichtig ist, in welcher Reihefolge Prozesse abgearbeitet werden. Diese beiden Aspekte fließen als zentrale Probleme in die Arbeit ein, die Synchronisation einer physikalischen Uhr oder Wahl eines Koordinators werden hingegen nicht behandelt[TS03, S. 280]. Ersteres ist in vielen Situationen gar nicht notwendig, da es reicht, das Problem auf eine logische Uhr zu reduzieren, für die nur die Reihenfolge von Ereignissen eine Rolle spielt. Ein Wahlalgorithmus ist deshalb nicht in dieser Arbeit berücksichtigt, da es ähnlich wie das Namenproblem recht komplex ist und sich bisher auch nicht ansprechend in der Spielewelt modellieren ließ. Falsche Nachrichtenreihenfolge Auf den ersten Blick ist es für viele Belange nicht von Relevanz, in welcher Reihenfolge Nachrichten ausgetauscht werden. Doch schon ein Blick in den Alltag macht deutlich, dass dies durchaus zu Irritationen führt: „Treffen wir uns an der Mensa?“ - „Nein. Das wird heute nichts.“ „Wir könnten auch heute Abend ins Kino gehen“ - „Ja, gerne.“ Werden die Antworten vertauscht, kommt es zu einem Missverständnis: 4 KONZEPTION 36 „Treffen wir uns an der Mensa?“ - „Ja, gerne.“ „Wir könnten auch heute Abend ins Kino gehen“ - „Nein. Das wird heute nichts.“ Analog dazu könnten auch zwei Maschinen Missverstände in der Kommunikation haben. Für die Agenten der Simulation ist die Nachrichtenreihenfolge deshalb von Bedeutung, da sie Kodierungen austauschen wollen, damit die anderen Agenten geheime Botschaften erhalten können. Dabei ist in der Spielewelt die absolute Reihenfolge im Gegensatz zum obrigen Beispiel aus der Alltagswelt nicht von Bedeutung. Der Code der Agenten ist verteilt auf zwei Agenten mit jeweils zwei Bestandteilen. Die Agenten versenden ihre zwei Bestandteile immer in richtiger Reihenfolge, aber es kann nicht garantiert werden, dass alle vier Bestandteile in richtiger Reihenfolge ankommen. Wichtig ist, dass am Ende der Übertragung jeder Agent den gleichen Code hat. Hat ein Spion nicht die gleiche Kodierung erhalten, ist er von der Kommunikation ausgeschlossen. Inkonsistent-Werden einer gemeinsamen Ressource und Replikation Unter Replikation versteht man das Anlegen von Kopien von Ressourcen um performanter und zuverläßiger in Verteilten Systemen zu arbeiten. Die große Herausfordung, die bei replizierten Objekten besteht, ist diese Objekte konsistent zu halten. Wird eine Kopie aktualisiert, müssten auch andere Kopien angepasst werden[TS03, S. 405f]. Ein typisches Problem in Verteilten Systemen ist, dass Prozesse eine gemeinsame Ressource bearbeiten. Ein klassisches Beispiel ist ein Konto, das über einen Kontostand verfügt. Bucht ein Prozess einen Betrag vom Konto ab, wird der Kontostand aktualisiert. Problematisch wird dies erst, wenn zwei Prozesse gleichzeitig versuchen, auf das Konto zuzugreifen. Sie lesen beiden den gleichen Kontostand ein, Prozess 1 zieht dann einen Betrag ab und Prozess 2 zahlt einen Betrag ein. Wenn Prozess 1 zuerst beendet ist, kann es bei einem unkoordinierten Zugriff dazu führen, dass diese Transaktion gar nicht berücksichtigt wird und nur die Erhöhung von Prozess 2 in der Bilanz auftaucht. Was für den Kontoinhaber gut sein mag, ist natürlich 4 KONZEPTION 37 ein Problem, welches schon innerhalb einer Maschine gelöst werden muss. Analog dazu, nur mit erhöhtem Koordinationsaufwand und damit um einiges komplizierter sieht es aus, wenn mehrere Maschinen dieses Problem lösen wollen. Ist das Problem gelöst, spricht man davon, dass die Ressource in einem konsistenten Zustand ist. Das Problem ist deshalb von zentraler Bedeutung, weil es in vielfältiger Form auftreten kann. Die Lösung des Problems ist zwar nicht einfach, es kann aber ansprechend innerhalb der Spielwelt modelliert werden. Hier haben die Agenten sich nämlich zusammengeschlossen und für kurze Zeit ihre Konflikte bei Seite gelegt. Sie wollen die Warenein- und ausfuhr der Stadt abschätzen und positionieren sich dafür an zentralen Punkten. Sie haben sich überlegt, dass sie einfach den aktuellen Wert der Waren in der Stadt als zentrale Ressource verwenden. Wird etwas exportiert, sinkt der Wert, wird etwas importiert, erhöht er sich. Natürlich trauen sich die Agenten nicht gegenseitig und überprüfen genau, ob es ein anderer Spion etwas macht, was nicht abgesprochen war. Schnell entdecken sie, dass etwas nicht stimmen kann. Doch kein Agent hat die anderen betrügen wollen. Es liegt also ein technisches Problem vor. So schreiben die Agenten unkoordiniert auf die Ressource und es kommt zu Inkonsistenzen. Mithören und Fälschen von Nachrichten Das Thema Sicherheit ist ein wichtiger Aspekt in Verteilten Systemen. Dabei wird unter Sicherheit eine ganze Sammlung von Systemeigenschaften verstanden, die grob in zwei Kategorien eingeteilt werden können. Zum einen wird ein sicherer Kanal für die Kommunikation zwischen zwei Maschinen benötigt, damit Nachrichten nicht gefälscht, verändert oder mitgelesen werden können. Außerdem muss sichergestellt sein, dass der Empfänger sich sicher kann, dass die Nachricht tatsächlich vom vorgegebenen Absender stammt (Authentifizierung). Die zweite Kategorie ist die Autorisierung, also wer auf welche Ressourcen tatsächlich zugreifen darf. Auf diesen Aspekt soll in der Arbeit allerdings nicht eingegangen werden, da er eher einen Nebenaspekt in Verteilten Systemen darstellt[TS03, S. 467f]. 4 KONZEPTION 38 In dem Projekt sollen Probleme der ersten Kategorie untersucht und behandelt werden, da auf diese Weise den Nutzern wichtige Sicherheitsaspekte näher gebracht werden können und diese Klasse von Problemen sehr gut ins Thema der Agenten passt, die natürlich Interesse an der Kommunikation der anderen Agenten haben. Auf folgende Sicherheitsgefährdungen soll im vorliegenden Projekt näher eingegangen werden: • Mitlesen von Nachrichten durch einen anderen Agenten, • Erzeugung einer Nachricht unter einer fremden Identität und • Modifikation von Nachrichten durch Dritte. Aus dieser Sammlung sollen zwei Probleme abgeleitet werden. Zum einen sind Nachrichten nicht abhörrestitent werden und zum anderen ist nicht sichergestellt, dass eine Nachricht auch tatsächlich genauso wie sie beim Empfänger ankam vom Absender verschickt wurde. Damit wäre nämlich nicht gesichert werden, dass sich auf die Information in der Nachricht tatsächlich verlassen werden kann. 4.1.4 Auswahl und Beschreibung von Lösungswegen Entsprechend der vier Kriterien zur Auswahl der Probleme, die in dem Projekt dargestellt werden sollen, wird auch eine Liste von Kritierien entwickelt, welche Lösungswege oder Klassen von möglichen Lösungen für die Probleme bevorzugt werden. Generell sollte es so sein, dass nicht eine bestimmte Konstellation von Systemeinstellungen als Problemlösung akzeptiert wird, sondern Werkzeuge bereitgestellt werden, die zur Lösung eines Problems notwendig sind. Vielmehr könnte es einen Überwacher-Prozess geben, der anhand bestimmter Kriterien überprüft, ob ein Problem gelöst ist, damit hier eine Unabhängigkeit von konkreten Lösungsvorgaben entsteht. Allerdings stehen dem Entwickler eines Plugins beide Wege offen. Trotzdem wird der Nutzer durch die Auswahl von Werkzeugen auf bestimmte Lösungswege beschränkt. Diese sollen im Folgenden vorgestellt und mit den nicht 4 KONZEPTION 39 gewählten Wegen verglichen werden. Die Kriterien für die Auswahl einer Strategie sind dabei: • Qualität der Strategie und Anerkennung als gängiger Lösungsweg nach Stand der Forschung, • grafische und textuelle Beschreibbarkeit der Lösungswerkzeuge und • geeignete Komplexität der Werkzeugkonstellation und Lösungsstrategien. Als vereinfachendes Schema für den Nutzer, nach dem sich der Entwickler auch richtet, werden Werkzeuge als Komponenten definiert, die auf Grundlage einer konkreten Nachricht eine Aktion ausführen. Ausgelöst wird eine Komponente von einem Ereignis. Ereignisse können dabei das Senden oder das Empfangen einer Nachricht sein. Die Reihenfolge der Ausführung der Werkzeuge wird dabei berücksichtigt. Außerdem soll der Anwender Nachrichtentypen manipulieren können um die Kommunikation zu vereinfachen können. Verlorene Nachrichten: Sendungswiederholung und Nachrichtenbestätigung Gehen Nachrichten verloren, führt dies zu Missstimmungen zwischen den Agenten. Sie glauben, ihr Gegenüber ignoriert sie oder sind sauer, weil sie keine Antwort erhalten haben. Dieses recht einfache Problem wird zunächst über eine Nachrichtenbestätigung gelöst. Versendet ein Agent eine Nachricht, wird das Ankommen dieser vom Empfänger quittiert. Sollte keine Bestätigung eintreffen, kann davon ausgegangen werden, dass auch die Ursprungsnachricht nicht ankam. Dann muss das Senden dieser Nachricht wiederholt werden. Die Wiederholung sollte dann abbrechen, wenn eine Bestätigung eingetroffen ist. Damit die Nachrichten und ihre Bestätigungen einander zugeordnet werden können, erhalten Nachrichten eine ID. Eine Nachrichtenbestätigung hat einen anderen Nachrichtentyp als eine Standardnachricht. Sie wird aus der Ursprungsnachricht generiert und trägt im Empfängerfeld den Absender ein. 4 KONZEPTION 40 Abbildung 10: Uhren mit unterschiedlichen Geschwindigkeiten: Falsche Nachrichtenreihenfolge22 Falsche Nachrichtensortierung: Logischer Zeitstempel, Empfangsbestätigung und Sortierung beim Empfänger Um zu verhindern, dass Nachrichten bei den Empfängern in unterschiedlicher Reihenfolge ankommen, muss den Nachrichten zunächst eine logische Uhr zugeordnet werden. Eine logische Uhr ist im Gegensatz zu einer physikalischen keine genaue Uhrzeit, sondern nur eine Nummer. Von Interesse ist dann nur, ob ein Ereignis a vor oder nach einem Ereignis b stattgefunden hat. Der Lösungsweg der Simulation ist an Lamport angelehnt. Lamport definierte diese Passiert-vor-Beziehung (a → b). Das Senden der Nachricht findet immer vor dem Empfangen statt. Wenn jedoch zwei Prozesse nicht miteinander kommunizieren und auch nicht indirekt in einen Nachrichtaustausch einbezogen werden, dann gilt weder a → b noch b → a. Diese Beziehung ist auch nicht von Interesse für die logische Sortierung [TS03, S. 289]. Weiterhin muss gelten, dass der logische Zeitpunkt C eines Ereignisses a, welches vor einem Ereignis b stattgefunden hat, kleiner ist als der Zeitpunkt C des Ereig22 Grafik entnommen aus [TS03, S. 290] 4 KONZEPTION 41 nisses b (C(a) < C(b)). Außerdem dürfen Uhren nur vorwärts zählen und Aktualisierungsoperationen dürfen nur Additionen positiver Zahlen sein [TS03, S. 289]. Lamport schlägt nun vor, dass jeder Systemteilnehmer eine eigene Uhr führt, die zum Startzeitpunkt auf null gesetzt ist und bei jedem Ereignis (Senden und Empfangen einer Nachricht) um eins erhöht wird. Beim Empfang einer Nachricht gilt zudem: neuerLamportstempel = max (Sendezeit, alterLamportstempel) + 1. Zusammenfassend müssen drei Fälle betrachtet werden, um einen korrekten LamportZeitstempel zu erzeugen: 1. Wenn a vor b im gleichen Prozess auftritt, gilt: C(a) < C(b) 2. Wenn a ein Sendeereignis ist und b das zugeordnete Empfangsereignis, gilt: C(a) < C(b) 3. Sonst gilt: C(a) 6= C(b) Interessant ist vor allem der Fall, wenn ein Teilnehmer mit einem höheren Zeitstempel eine Nachricht an einen Teilnehmer mit niedrigeren Zeitstempel schickt. Dieser schickt eine Nachricht an den dritten Teilnehmer, dessen Zeitstempel noch kleiner ist (Vgl. Abb. 6, S.25). Wird nicht nach Lamport sortiert, wäre die Nachrichtenreihenfolge logisch vertauscht. Mit dem Lamport-Algorithmus haben die Nachrichten einen korrekten Zeitstempel(Vgl. Abb. 11, S.42) [TS03, S. 291]. Bevor die Nachrichten sortiert und ausgegeben werden können, muss jeder Agent den Empfang einer Nachricht an alle Teilnehmer bestätigen und ebenfalls die empfangene Nachricht mit einem Zeitstempel versehen. Sind nun von jedem Agent die Bestätigungen zu einer Nachricht eingetroffen, kann sie aus der Warteschlange entfernt und ausgegeben werden. In der Simulation bleibt die Nachricht jedoch sichtbar bis alle Nachrichten empfangen wurden. Weiterhin müssen die Nachrichten eventuell noch umsortiert werden. Dies kann über einen beliebigen Sortieralgorithmus anhand der Zeitstempel geschehen. 24 Grafik entnommen aus [TS03, S. 290] 4 KONZEPTION 42 Abbildung 11: Uhren mit unterschiedlichen Geschwindigkeiten und Lamport: Korrekte Nachrichtenreihefolgen24 Der Lamport-Algorithmus wurde auf Grund seiner Einfachheit ausgewählt, das Problem wurde auf den Algorithmus angepasst. Um das Problem komplett zu lösen, wurde ein vollständig sortiertes Multicast verwendet, was sich als gängige Lösung in Verteilten Systemen auszeichnet. Inkonsistent-Werden einer gemeinsamen Ressource: Quorum-basierte Konsistenz Für die Sicherung der Konsistenz einer Ressource gibt es eine ganze Reihe von Vorgehensweisen, die zunächst klassifiziert werden sollen. Da für die Projektbelange ein erhöhter Mehraufwand und eine höhere Komplexität auszuschließen ist, entfallen Strategien, die die Bestimmung eines Koordinators voraussetzen [TS03, S. 384ff]. Bei einem vollständig migrierenden Modell, bei dem eine Ressource nicht repliziert wird, ist das Ausfallrisiko der Ressource recht hoch. Gleiches gilt für einen Protokolltypus, bei dem eine Ressource immer zu dem letzten, schreibenden Prozess wechselt [TS03, S. 386f]. Bei Ansätzen, bei denen tatsächliche Replikate einer Ressource hergestellt werden, erfordert ein Schreibprozess einen komplexeren Koordinationsaufwand, der in diesem Zusammenhang durchaus wünschenswert ist. 4 KONZEPTION 43 Abbildung 12: Beispiel für ein Lese- und Scheibquorum: Links Schreibquorum mit NW = 4 und rechts Lesequorum mit NR = 3 Ein Quorum-basiertes Protokoll realisiert den Repliziertes-Schreiben-Ansatz, was bedeutet, dass Operationen auf mehreren Repliken ausgeführt werden. Zu unterscheiden sind dabei mehrheits- und einheitsbasierte Protokolle, wobei einheitsbasierte für häufige Schreiboperationen ineffektiv arbeiten und bei Ausfall von Ressourcen anfälliger sind als die mehrheitsbasierenden Varianten. Die Quorenbasierung drückt dabei aus, dass nicht alle Repliken aktuell gehalten werden müssen, sondern nur die Mehrheit der Teilnehmer einem Schreibvorgang zuzustimmen haben. Um den aktuellen Wert der Ressource zu erhalten, ist dann aber ein größerer Aufwand notwendig, denn es müssen so viele Teilnehmer ihren Wert zurückgeben, dass die Anzahl der nötigen Agenten für ein Schreibquorum plus die Anzahl für Lesequorum größer sein als die Gesamtzahl der Teilnehmer. Die aktuelle Version in einem wird zudem über eine Versionsnummer identifizierbar gemacht [TS03, S. S.388-392]. Nach Gifford werden Lese-Schreib- (1) und Schreib-Lese-Konflikte (2)25 vermie25 N ist die Gesamtzahl der Teilnehmer, NR die Zahl der Teilnehmer, die für ein Lesequorum benötigt werden und NW die Anzahl für ein Schreibquorum 4 KONZEPTION 44 den, wenn 1. NR + NW > N und 2. NW > N/2 gelten (Vgl. Abb 12, S. 43). Für die Lösung der Aufgabe in der Simulation wird vorausgesetzt, dass die Agenten ein Abstimmungssystem aufgebaut haben, welches auf Schreiben und Lesen basiert, aber einfach per Broadcast-Prinzip an alle Teilnehmer eine Aktualisierung senden und als aktuellen Wert ihren eigenen annehmen. Dem Nutzer wird schnell deutlich, dass dieses System sehr anfällig ist und die Ressource zunächst geschützt werden muss. Nur wenn ein Prozess aktuell nicht an einem Lese- oder Schreibvorgang teilnimmt, darf er seine Ressource sperren und eine Lese- oder Schreibbestätigung versenden. Wurde ein Quorum erfüllt, kann der anfordernde Teilnehmer seine Operation ausführen und im Schreibfall eine Aktualisierung des Wertes versenden, die dann zur Entsperrung der Ressource führen würde. Grafisch wird das Problem dargestellt indem, wie in der Problemauswahl beschrieben, ein nummerischer Wert neben den Agenten angezeigt wird. Ein wirklich konsistentes Replikat wird grün und ein nicht-konsistes rot dargestellt. Die unterschiedlichen Nachrichtentypen erhalten wie im Beispiel der verlorenen Nachrichten ebenfalls unterschiedliche Farben. Die Sperrung einer Ressource wird mit einem aus Browsern und anderen Anwendungen bekannten Schlosssymbol angezeigt. Ist es offen, ist die Ressource nicht gesperrt und umgekehrt. Lauschangriff: Verschlüsselung und Signierung mit öffentlichen Schlüssel Es gibt zahlreiche Methoden, Nachrichten zu verschlüsseln und somit sicherzustellen, dass nur der Empfänger der Nachricht in der Lage ist, diese zu lesen. Dabei wird ein Klartext (P ) in einen Chiffretext (C) mit Hilfe eines Schlüssels (K) übersetzt. In den meisten Fällen wird dann mit dem gleichen Schlüssel die Operation (E für Verschlüsseln, D für Entschlüsseln) umgekehrt, sodass der Empfänger der Nachricht 4 KONZEPTION 45 Abbildung 13: Kombinierter Einsatz von Verschlüsselung und Signierung mit Hilfe eines asymmertrischen Verschlüsselungsverfahrens27 den Text wieder lesen kann. Diese Operationen klassifiziert man als symmetrische Verschlüsselungsverfahren (Vgl. Formel 1 und 2) [TS03, S. 479-484]. C = EK (P ) (1) P = DK (C) (2) Für das vorliegende Projekt wurde sich jedoch für ein asymmetrisches Verschlüsselungsverfahren [RSA78]. Hierbei wird ein Nachrichtentext nicht mit dem gleichen Schlüssel ver- und entschlüsselt, stattdessens werden zwei Schlüssel dafür verwendet. Ein öffentlicher Schlüssel (öffentlicher Schlüssel von A: KA+ ) wird publiziert und ist generell jedem zugänglich. Einen geheimen Schlüssel (KA− ) sollte jeder Nutzer für sich behalten. Je nachdem, ob man sicherstellen will, dass eine Nachricht nicht mitgelesen werden kann oder dass eine Nachricht tatsächlich vom Absender stammt, werden für die Ver- und Entschlüsselung unterschiedliche Schlüssel verwendet. Zur Nachrichtenverschlüsselung wird der Text mit dem öffentlichen Schlüssel des Empfängers verschlüsselt. Zur Entschlüsselung muss nun der geheime Schlüssel des Empfängers genutzt werden. Damit ist sichergestellt, dass nur der Empfänger die Nachricht tatsächlich lesen kann. Zur Nachrichtensignierung hingegen wird der geheime Schlüssel des Absenders verwendet. Da nur dieser den geheimen Schlüssel 27 Grafik entnommen aus [TS03, S. 498] 4 KONZEPTION 46 besitzt, ist sichergestellt, dass er auch tatsächlich der Absender der Nachricht ist (Vgl. S. 45, Abb. 13). Asymmetrische Verfahren verwenden die Erkenntnis, dass die Faktorisierung großer Zahlen aufwändig, während das Multiplizieren zu einer Primzahl einfach ist (sog. „Einwegfunktion“). Für das Programm sollen die mathematische Zusammenhänge allerdings in den Hintergrund rücken. Die Schülerinnen und Schüler sollen in erster Linie die Idee hinter dem asymmetrischen Verschlüsselungsverfahren verstehen, also wann muss welche Operation eingesetzt werden um die Ziele Abhörsicherheit und Authentizität zu erreichen. Intern soll das Programm auch nicht mit sehr großen Primzahlen arbeiten, damit der Rechenaufwand in Grenzen gehalten werden kann. Dies ist nämlich der große Nachteil bei der Verwendung asymmetrischen Verfahren [TS03, S. 485f]. Weil den Schülerinnen und Schülern die zentralen Operationen nahe gebraucht werden sollen, fiel die Entscheidung auch auf ein asymmetrisches Verfahren. Auf diese Weise lässt sich die Idee am besten in der Spiel- und Lernwelt modellieren und grafisch ausdrücken, da einfache Werkzeuge definiert werden können, die die einzelnen Operationen repräsentieren. Bei symmetrischen Verfahren wären, wenn man nach diesem Schema verfahren würde, nur zwei Werkzeuge (Ver- und Entschlüsseln) notwendig und das Problem wäre damit zu einfach. Die Frage, ob die Qualität dieser Verfahren besser im Sinne von performanter oder sicherer ist, lässt sich vor allem im Bezug auf die Sicherheit und verschiedene Anwendungsszenarien nicht so leicht beantworten und soll nicht näher diskutiert werden. Dafür sei auf die umfangreiche Literatur zu diesem Thema verwiesen (z.B. Pfitzmann [Pfi00, S. 263-269]) verwiesen. Verfälschen von Nachrichten Für das Problem der Nachrichtenintegrität gibt es ebenfalls eine Reihe von guten Lösungen. Ausgewählt wurde das Verfahren der Nachrichten-Digest. Dabei wird 4 KONZEPTION 47 Abbildung 14: Der Einsatz und die Verschlüsselung von Nachrichten-Digests28 eine kryptografische Hash-Funktion H verwendet, um den Nachrichteninhalt m abzubilden. Wird m verändert, unterscheiden sich die Funktionswerte H(m) und H(m0 ). Daran lässt sich nun erkennen, ob eine Verfälschung stattgefunden hat. Weiterhin muss dieser Nachrichten-Digest verschlüsselt werden, was einfach über zwei Werkzeuge „Ver- und Entschlüsseln“ geschehen soll, damit der Digest nicht an den veränderten Text angepasst werden kann. Stimmen nun der vom Empfänger berechnete und der an die Nachricht angehängte Digest überein, kann sich der Empfänger über die Integrität der Nachricht sicher sein (Vgl. S. 47, Abb. 14). Grafisch soll dieses Problem über Treffpunkte dargestellt werden, die von Agenten vereinbart werden. Der Benutzer sieht während des Nachrichtenverlauf beim Empfänger und beim Absender ein Symbol, welches für einen bestimmten Ort steht. Stimmen beide überein, wurde die Nachricht nicht verfälscht, ansonsten liegt ein Fehler vor und die Agenten würden an unterschiedlichen Stellen aufeinander warten. Wenn nun der Empfänger festgestellt hat, dass die Nachricht verfälscht wurde, kann er den Absender erneut zum Versenden der Einladung veranlassen. Das passiert im Idealfall dann solange, bis die Nachrichtintegrität festgestellt wurde. 28 Grafik entnommen aus [TS03, S. 498] 4 KONZEPTION 48 Abbildung 15: Programmoberfläche von Gimp 4.2 Prototypentwicklung und grafische Oberfläche Zunächst wurde ein Oberflächenprototyp entwickelt, der vor allem die Aufgabe hatte, die Bedienstruktur und die grafischen Elemente, die in der späteren Realisierung von Bedeutung sind, zu testen. Es handelt sich also um einen horizontalen Prototypen, der noch keine (tieferen) Funktionalitäten aufweisen sollte. Allerdings sollte ein ausgewähltes Problem bereits im Prototypen verwirklicht werden, damit absehbar wird, ob die Bedienelemente auch den Anforderungen genügen. Die Idee war zunächst, die Oberfläche mit vielen Fenstern aufzubauen, wie in G IMP realisiert. Dort werden für zahlreiche Funktionen in seperaten Fenstern dargestellt (Vgl. S. 48, Abb. 15). Da G IMP ähnlich wie das vorliegende Projekt funktionell über Plugins erweiterbar ist und diese Plugins auch eine bedeutende Stellung innerhalb des G IMP-Konzepts einnehmen, seien Plugins auch nur über zusätzliche Fenster darstellbar []. Dieser Ansatzpunkt wurde in der Konzeption nicht aufgegriffen. Es sollten alle Plugins das gleiche bzw. die gleichen Fenster und Bedienelemente nutzen. 4 KONZEPTION 49 Abbildung 16: Programmoberfläche des ersten Prototyps Der Prototyp des vorliegendes Projekts wurde ebenfalls mit zahlreichen Fenstern erstellt. Das Ziel war vor allem, eine optische Unabhängig von Hauptprogramm und Plugins. Dadurch wirkte die Oberfläche aber sehr unübersichtlich. Zahlreiche Fenster öffneten sich, wodurch leicht der Überblick verloren ging (Vgl. S. 49, Abb. 16). Die Schlussfolgerung war, dass zumindest die Fenster zur Bearbeitung von Agentenverhalten, Nachrichtentypen und sonstigen Optionen mit Tabs (Karteikartenreiter) in ein Fenster integriert werden sollten. Wenn möglich, sollte auch das Hauptprogramm und die Problemsimulation in eine Oberfläche integriert werden. Daraufhin wurde der Prototyp verändert und wirkte nun wesentlich übersichtlicher (Vgl. S. 50, Abb. 17). Mit dem Prototyps wurde aber die grundlegende Funktionsweise des Programms deutlich. So sollten Probleme mit Hilfe einer Animation dargestellt werden und textuell beschrieben werden. Über die verschiedenen Tabs sollte das Verhalten der Agenten und Nachrichtentypen verändert werden können. Außerdem sollte festgelegt werden, wie Agenten auf den Erhalt oder das Absenden von Nachrichten (die 4 KONZEPTION 50 Abbildung 17: Programmoberfläche des zweiten Prototyps sog. Ereignisse) reagieren. Dabei sollten einem Ereignis verschiedene Werkzeuge zugeordnet werden. Dies sollte grafisch mit Drag and Drop realisiert werden. Im Prototypen war angedacht, dass die Werkzeuge über den Tab „Agenten“ manipuliert werden können. Dies wurde fallengelassen, weil die Probleme dann recht kompliziert werden würden. Diese Annahme sollte in der Evaluation überprüft werden. Grafisch wurden in der Endversion noch zahlreiche Details verbessert, sodass das Programm einen modernen Anstrich bekam. Die Systemsteuerung wurde über bekannte Mediaplayer-Bedienelemente (Start/ Pause, Stop, Forward und Reload) realisiert, es sollte ein kleines Menü integriert und - wie bereits im Prototypen realisiert - sollten Tabs genutzt werden. 4.3 Unterteilung in Rahmenwerk und Plugins Was im Prototyp noch nicht deutlich wurde, war die Programmteilung in Rahmenwerk und Plugins. So sollten die Probleme in Verteilten Systemen als eigenständige Teile umgesetzt werden, die einfach und schnell entwickelt werden können. Das Hauptprogramm sollte diese Plugins einfach „finden“ und integrieren. Dafür muss 4 KONZEPTION 51 ein Plugin lediglich ein Problem simulieren, eine Animation bereitstellen, die auf verschiedene Problemzustände reagiert, Werkzeuge zur Verfügung stellen, mit denen Probleme gelöst werden können und Teilzustände von Problemen definieren. Sind alle Teilprobleme gelöst, ist das Gesamtproblem gelöst. Als Teilproblem kann Zustand definiert werden, der ein bestimmtes Verhalten überwacht. Es ist aber auch möglich, eine Werkzeug-Ereignis-Konstellation vorzugeben, die erfüllt sein muss. Werkzeuge werden in der Entwicklung als Komponenten bezeichnet und untergliedern sich in funktionale und Datenkomponenten. Funktionale Komponenten sollen das Verhalten der Agenten beeinflussen, Datenkomponenten sollen verschiedene Informationen des Agenten speichern und veränderbar machen. Die Oberfläche des Programms sollte komplett im Rahmenwerk umgesetzt werden, damit ein Plugin-Entwickler von dieser Aufgabe entlastet wird. Lediglich die Animation sollte selbst geschrieben werden. Als Vorgaben für die Animation gibt es eine gewisse Fenstergröße, das Hintergrundbild, die Agentenbilder und verschiedene Nachrichtenbilder. 4.4 Einordnung des Projekts Anhand der aufgestellten Typologien soll das Projekt im Folgenden eingeordnet werden. Zunächst beschäftigt es sich mit grundlegenden Problemen in Verteilten Systemen und ist für einen Einzelnutzer ausgelegt. Der Softwaretyp ist Simulation, auch wenn das Projekt im Schema von eher ein „Experten- und Modellbildungssystem“ ist [AP94, S. 39-59]. Weiterhin ist das Projekt spielorientiert, was bedeutet, das eine Nutzerin oder ein Nutzer in eine Spiel entführt ist. Wissen wird dabei explorativ aufgebaut. Die Software ist um weitere Probleme, die mit nachrichtenbasierter Kommunikation zusammenhängen, erweiterbar und sollte mit anderen Lernformen kombiniert eingesetzt werden. Die Simulation bezieht sich auf das Verständnis und nicht auf das Bedienen-Können von Werkzeugen. Die Steuerung des Programms ist auf das 4 KONZEPTION 52 Problem in Form vom Zusammenstellen von Algorithmen auf einer abstrakten Ebene bezogen. Gelernt werden soll mit Hilfe der Simulation komplexere Vorgänge. Als „Tutorial“ soll der begleitende Unterricht dienen. Zur Informationsvermittlung in der Spielwelt sollen Texte und vor allem Animationen dienen. Gelernt wird nicht sozial, dafür aber parasozial. So soll der Bürgermeister als Ansprechpartner dienen. Die Oberfläche wurde mit modernen Bedienelementen und Animationen ausgestattet. M ERKMAL VORLIEGENDES P ROJEKT Gegenstand Verteilte Systeme Nutzerzahl Einzelnutzer Softwaretyp Simulation Spielorientierung spielorientiert Explorativität explorativ Erweiterbarkeit erweiterbar Einbettung in andere Lernformen eingebettet Lerngegenstandstyp systemnah Problembezug problembezogen Art des Wissensaufbaus Handlungswissen Tutorials nicht vorhanden Informationsvermittlung Texte, Animationen Vorführungen keine Vorführungen komplexes Lernen vorhanden soziale Lernprozesse nicht vorhanden parasoziale Lernprozesse vorhanden Oberfläche 2D-Grafik Tabelle 6: Einordnung des vorliegenden Projekts 5 REALISIERUNG 5 53 Realisierung In diesem Kapitel wird die Implementierung des beschriebenen Konzepts diskutiert. Dafür sollen zunächst die Auswahl von Programmiersprache und anderen Technologien begründet werden. Anschließend erfolgt eine ausführliche Beschreibung des Programms und der zugehörigen Plugins. Im letzten Teil dieses Kapitels werden dann Besonderheiten und Probleme angeführt. 5.1 Programmiersprache und verwendete Technologien Als Programmiersprache für das Projekt wurde JAVA verwendet. Für JAVA wurde sich auf Grund der zahlreichen und einfachen Möglichkeiten zur Gestaltung einer modernen und ansprechenden Oberfläche, der Unterstützung für XML-Operationen zur Erweiterbarkeit des Programms, der guten Dokumentationsmöglichkeiten (JAVADOCS), der Multi-Threading-Fähigkeiten und vor allem wegen der Plattformunabhängigkeit entschieden. Somit ist u.a. sichergestellt, dass das Programm auf verschiedenen System lauffähig ist und sich dort. Für JAVA spricht weiterhin die einfache und nachvollziehbare objektorientierte Modellierung. Zudem ist JAVA mittlerweile so verbreitet, dass sich der Einsatz dieser Sprache fast aufdrängt um ein Projekt zu entwickeln, dass gut und leicht nachvollziehbar sein soll [Ull06, S. 49-79]. Zur Darstellung der grafischen Oberfläche wurde sich für einen Mix aus den JA VA -Grafikpaketen S WING für die Darstellung von Fenstern und für AWT für Ani- mationen entschieden. Das Grafikpaket S WING bietet sehr gute Möglichkeiten aktuelle Grafikelemente wie Fortschrittsbalken, Tabs oder Werkzeugleisten zu implementieren. S WING ist eine Erweiterung von AWT und bietet damit weitaus größeren Spielraum als AWT und dieser Spielraum wurde in der Arbeit auch genutzt. S WING-Komponenten passen sich nicht komplett an das „Look and Feel“ der Plattform an. Eine S WING-Anwendung kann also nicht das Äußere von W INDOWS V IS TA oder des KDE-Desktops „annehmen“, ist dafür aber flexibeler verwendbar und performanter als z.B. SWT [Ull07]. 5 REALISIERUNG 54 Die Animationen wurden mit Hilfe von AWT verfasst, da für die Zeichnungen nicht der volle Funktionsumfang von S WING genutzt werden musste und damit das Programm performanter wurde. Die beiden Pakete sind gut miteinander kompatibel, weshalb die Mischung zu keinerlei Problemen führte [Ull06, S. 842]. Für das Laden von Plugins sind XML-Dateien mitverantwortlich [Con02]. XML kann als Definitionsbasis für einfache Auszeichnungssprachen wie HTML (Hypertext Markup Language) genutzt werden und baut selbst auf der flexiblen, Korrektheit sichernden und leistungsfähigen Sprache SGML (Standard Generalized Markup Language) auf [Ull06, S. 796]. Die Nutzung beider Vorteile machte XML schnell populär. Die Einsatzgebiete sind sehr groß und so eignet sich die Technologie auch für die Beschreibung zentraler Elemente des Plugins. Für die Auswertung der XML-Dateien wurde das JDOM (JAVA Document Object Model) verwendet, welches knapp gesagt die Vorteile der Konkurrenten des W3C-(World Wide Web Consortium) Projekts DOM (Document Object Model) und von SAX-(Simple API for XML) Projekts vereinen soll [Hun08]. Die Erstellung der Programmhilfe, die ein zentrales Element des Programms ist, da viele Nutzer wohl nur über wenige Erfahrungen im Umgang mit Simulationen, Verteilten Systemen und teilweise auch der Steuerung eines solchen Programms verfügen werden, wurde mit dem JAVA H ELP S YSTEM erstellt, welches es der Standart für derartige Projekte ist und den entscheidenden Vorteil hat, dass es auch HTML basiert und damit auch als Online-Hilfe zur Verfügung gestellt werden kann. JAVA H ELP ist durch die Verwendung von HTML natürlich auch plattformunabhängig. [SM08] 5.2 Das Rahmenwerk Das Rahmenwerk des Programm29 stellt zunächst die Systemoberfläche bereit und zeichnet den „parasozialen“ Bürgermeister (vgl. S. 55, Abb. 18), der den Nutzer der 29 Eine ausführliche, technische Dokumentation befindet sich im Anhang A. 5 REALISIERUNG 55 Abbildung 18: Der Bürgermeister begrüßt den Benutzer Abbildung 19: Die Programmoberfläche Software begrüßt und ihn in die Spielwelt einführt. Anschließend kann der Benutzer mit ein Problem starten, indem er den „Play“-Button in der unter Steuerungsleiste anklickt. Die Animation rechts zeigt dann speziell für ein Problem eine Animation an, die auf Benutzereingaben reagiert und somit generisch verschiedene Zustände eines Problems grafisch verdeutlicht (vgl. S. 55, Abb. 19). Im Tab „Ereignisse“ kann man die zur Problemlösung relevanten Ereignisse auswählen. Das sind das Senden und das Empfangen einer Nachricht vom einem bestimmten Nachrichtentypen. Vor dem Senden oder nach dem Empfang von Nachrichten eines bestimmten Typs werden dann die Werkzeuge ausgeführt, die der Benutzer zugeordnet hat. Die Reihenfolge der Werkzeuge wird bei der Abarbeitung 5 REALISIERUNG 56 Abbildung 20: Der Ereignis-Tab: Verknüpfung von Werkzeugen mit Ereignissen berücksichtigt. Für die grafische Darstellung der Benutzerlösung wurden eine an Ablaufdiagramme angelehnte Form verwendet, die Schülerinnen und Schüler vertraut sein dürften und zudem auch intuitiv handhabbar sind (vgl. S. 56, Abb. 20). Der Tab „Nachrichtentypen“ erlaubt die Manipulation von Nachrichtentypen. Diese haben Optionen, denen ein bestimmter, vorgegebener Wert zugeordnet werden kann (vgl. S. 57, Abb. 21). 5.3 Die Problem-Plugins Im Folgenden sollen die Problem-Plugins30 näher beschrieben werden. Dabei stehen vor allem die grafische Umsetzung und die Werkzeuge, die zur Problemlösung notwendig sind, im Vordergrund. Zur grafischen Umsetzung allgemein ist zu sagen, dass verschiedene Nachrichtentypen über verschiedene Farben dargestellt werden. Außerdem kann eine Animation weitere grafische Elemente neben der Stadt, den Nachrichten, Leitungen und Agenten verwenden. Zu diesen Elementen kann ein Plugin-Autor eine Legende als Bild einfügen, die dem Benutzer die Übersicht erleichtert. 30 Eine ausführliche, technische Dokumentation befindet sich im Anhang A. 5 REALISIERUNG 57 Abbildung 21: Der Nachrichtentypen-Tab: Auswahl von Nachrichten-Optionen Für die Entwicklung eines Plugins muss der Autor bestimmte Vorgaben einhalten, damit das Plugin vom Hauptprogramm gefunden und eingebunden werden kann. Für die Plugin-Beschreibung muss deshalb zunächst ein XML-Dokument angelegt werden, welches auf funktionale und Datenkomponenten, Lösungszustände, Nachrichtentypen, die Animation und die Simulation verweist. Das Plugin muss als JA VA -kompatible JAR-Datei vorliegen und die Implementierungen der oben aufge- führten Komponenten beinhalten, damit es korrekt eingebunden werden kann. Die zentralen Bestandteile eines Plugins sind die Simulation und die Animation. Die Problemsimulation koordiniert alle anderen Bestandteile des Plugins und simuliert das eigentliche Problem. Die Animation, an die bestimmte Vorgaben geknüpft bzw. Angebote (Fenstergröße, das Hintergrundbild, die Agentenbilder und verschiedene Nachrichtenbilder) gestellt werden. Eine funktionale Komponente ist ein Werkzeug, dass das Verhalten eines Agenten manipuliert. Es kann mehrfach einem bestimmten Ereignis zugeordnet werden. Unter Datenkomponenten werden hingegen Ressourcen verstanden, die entweder mit der Simulation oder mit einem Agenten verknüpft sein können. Im Rahmenwerk ist zunächst keine Möglichkeit der Darstellung von Datenkomponenten gegeben. Um sie sinnvoll zu nutzen, kann der Entwickler sie aber in die Animation einbauen. 5 REALISIERUNG 58 Datenkomponenten können über funktionale Komponenten manipuliert werden. Zuletzt besteht die Möglichkeit Nachrichtentypen zu definieren. Sie sind notwendig um die notwendige Übersichtlichkeit im Problem zu wahren und damit man ihnen Ereignisse zuordnen kann. Generell kann es maximal zwei Ereignisse pro Nachrichtentyp geben (vor dem Senden und nach dem Empfangen einer Nachricht). Als Konvention an die Plugins wird jedoch vorgegeben, dass Ereignisse, die nicht zur Problemlösung gebraucht werden, auch nicht dem Benutzer angeboten werden, damit die Übersichtlichkeit gewahrt bleibt. Die Benutzerlösungen werden fortlaufend in einem eigenen Thread überprüft. Dafür gibt es für Plugin-Entwickler zwei Möglichkeiten. Zunächst kann eine bestimmte Konfiguration von Ereignis-Werkzeug-Verknüpfungen als korrekt gelten. Es besteht aber auch die Möglichkeit, einen oder mehrere Teilzustände zu definieren, die den Lösungszustand ständig überwachen. Beide Formen haben aber Vor- und Nachteile. Erste akzeptiert nur vom Entwickler vorgegebene Konfigurationen, wobei es durchaus möglich ist, dass der Entwickler andere Konfigurationen außer Acht gelassen hat. Die zweite Möglichkeit ist also die konzeptionell „schönere“, riskiert aber eine längere Wartezeit auf ein Feedback und kann bei Entwicklungsfehler auch falsche Zustände akzeptieren. Für die Plugins wurden beide Varianten verwendet. 5.3.1 Nachrichtenverlust Der Verlust von Nachrichten wird über eine rot gefärbte Nachricht dargestellt, die auf der Hälfte der Wegstrecke verschwindet (vgl. S. 59, Abb. 22). Zur Lösung des Problems werden Nachrichten wiederholt gesendet, sodass die Nachricht nach Überwinden des Übertragungsproblems beim Empfänger ankommen kann. Dabei ist der Abstand der Sendungen voreingestellt, damit die Nutzerinnen und Nutzer nicht mit zusätzlichen Aufgaben überlastet werden. Derartige Parameter bieten sich aber für eine Projekterweiterung an, die zur Differenzierung im Unterricht nach Leistungsstand der Schülerinnen und Schüler führen kann. 5 REALISIERUNG 59 Abbildung 22: Grafische Darstellung einer verlorenen Nachricht Abbildung 23: Die Werkzeuge des Problems „Verlorene Nachrichten“ Neben dem Beginn der Sendungswiederholung gibt es das Werkzeug Nachrichtenbestätigung, das eine Nachricht vom gleichnamigen Typ generiert und sendet. Eine solche Nachricht hat die Farbe grün. Es muss dem Ereignis „Empfang“ einer Standardnachricht zugeordnet werden (vgl. S. 59, Abb. 23), damit der Absender weiß, dass eine Nachricht angekommen ist. Dann kann man noch das Werkzeug Sendungswiederholung beenden auswählen, dass beim Empfang einer Nachrichtenbestätigung sinnvoll eingesetzt werden könnte. Die ID einer Nachricht vom Typ „Nachrichtenbestätigungen“ kann ebenfalls manipuliert werden. Nur wenn die Option „ Nachrichten-ID zitieren“ ausgewählt wird, wird die Nachrichten-ID der Ursprungs-Nachricht verwendet (vgl. S. 60, Abb. 24). 5 REALISIERUNG 60 Abbildung 24: Optionen des Typs „Nachrichtenbestätigung“ Damit das Problem der verlorenen Nachricht als gelöst gilt, müssen zwei Bedingungen erfüllt sein. Geht eine Nachricht verloren, muss sie anschließend erneut gesendet wird. Außerdem darf keine Endloswiederholung einer Nachricht auftreten, die die Übertragung anderer Nachricht stören könnte. Grafisch wird das Problem über drei verschiedene Nachrichtenarten dargestellt. Zunächst werden die beiden Typen „Standardnachicht“ und „Nachrichtenbestätigung“ unterschieden. Eine Nachricht, die verloren geht, wird rot eingefärbt und verschwindet auf der Hälfte des Weges zum Empfänger. 5.3.2 Unterschiedliche Nachrichtenreihenfolgen Das Problem der Nachrichten, deren Reihenfolge bei verschiedenen Empfängern unterschiedlich ist, wurde mit zwei Senderagenten und vier Empfängeragenten realisiert. Das Ziel ist es, dass die Nachrichten am Ende des Empfangsprozesses in gleicher Reihenfolge vorliegen. In der Problemsimulation senden zunächst die beiden rot eingefärbten Agenten an einen zufälligen Empfänger eine farbige Nachricht. Je Sender werden insgesamt zwei Nachrichten an alle Empfänger versendet. Die beiden gesendeten Nachrichten eines Absenders sind immer richtig sortiert. In Abbildung 25 auf Seite 61 ist zu sehen, dass zwei Agenten (zufällig) die gleiche Kombination haben und es in der Abbildung insgesamt drei Kombinationen (ohne 5 REALISIERUNG 61 Abbildung 25: Nachrichten haben bei den Agenten unterschiedliche Kombinationen Empfänger) gibt. Zur Lösung des Problems stehen dem Benutzer fünf Werkzeuge zur Verfügung, die vier Ereignissen zugeordnet werden müssen. Die Ereignisse sind jeweils das Versenden und der Erhalt von Standardnachrichten mit farbigen Codes und von Nachrichtenbestätigungen. Bei einem Sendeereignis muss jeweils ein Zeitstempel eingefügt werden. Beim Standardnachrichtenempfang sollten die restlichen vier Werkzeuge verwendet werden. Zunächst wird der Zeitstempel der Nachricht mit dem eigenen verglichen und der höhere als eigener Zeitstempel festgelegt. Anschließend wird dieser um eins erhöht. Dann kann die Nachricht in eine Warteliste eingefügt werden, sortiert und ausgegeben werden. Außerdem muss beim Erhalt einer Nachricht den anderen Agenten mitgeteilt werden, dass die Nachricht empfangen wurde. Nur dann darf sie später an den Agenten weitergegeben werden (vgl. S. 62, Abb. 26). Was der Nutzer nicht umsetzen muss, aber Bestandteil des eigentlichen Algorithmus ist, ist die Frage wie die Ausgabe an den Agenten realisiert wird. Steht eine Nachricht an der Spitze der Warteschlange und es sind von allen Teilnehmern Bestätigungen eingetroffen, dass die Nachricht empfangen wurde, darf sie erst weitergeleitet werden. Die Lösung des Problems wird anhand mehrerer Konfigurationen überwacht. Da es zum Beispiel unerheblich ist, ob der Empfang der Nachricht zuerst bestätigt wurde oder zuerst die Nachricht in die Warteliste eingefügt worden ist. Die Nachrich- 5 REALISIERUNG 62 Abbildung 26: Werkzeuge zur Nachrichtensortierung tenreihenfolge wird in der Animation mit vier Kästchen neben den Empfängern gekennzeichnet. Wenn alle Kästchen der Agenten die gleichen Farbkombinationen haben, funktioniert die Sortierung, sonst nicht. Nachrichten werden in unterschiedlichen Farben dargestellt. Solange nicht alle Nachrichten angekommen sind, kann die Reihenfolge variieren. Nicht besetzte Felder werden grau unterlegt. 5.3.3 Fälschen von Nachrichten Bei diesem Problem werden Nachrichten gefälscht, sodass Verabredungsorte von Sender und Empfänger nicht mehr übereinstimmen. Mit einer Wahrscheinlichkeit von 25 % ist eine Nachricht gefälscht (vgl. S. 63, Abb. 27), sonst nicht (vgl. S. 63, Abb. 28). Zur Prüfung, ob eine Nachricht gefälscht wurde oder nicht, müssen Prüfsummen berechnet und verschlüsselt werden. Als zusätzliches Werkzeug gibt es die Aufforderung zur Sendungswiederholung, die nicht notwendig zum Problem gehört, aber in der Spielwelt als sinnvoll erscheint (vgl. S. 63, Abb. 29). Der Lösungszustand des Problems wird anhand von vorgegebenen Ereignis-WerkzeugZuordnungen überprüft. Auch in diesem Problem sind natürlich mehrere Konfigurationen möglich. Da die Agenten versuchen, sich zu verabreden, kann der Nutzer neben den Kommunikationspartnern jeweils ein Symbol sehen (z.B. Zoo, Café oder Kino). Sind die Symbole neben Sender und Empfänger gleich, liegt keine Fälschung 5 REALISIERUNG 63 Abbildung 27: Gefälschte Nachricht werden über unterschiedliche Orte dargestellt Abbildung 28: Eine echte Nachricht: Identische Orte bei Sender und Empfänger Abbildung 29: Werkzeuge für das Problem der gefälschten Nachrichten 5 REALISIERUNG 64 Abbildung 30: Animation des Problems der gemeinsamen Ressourcen vor, sonst kann der Nutzer erkennen, dass die Nachricht gefälscht wurde. Die unterschiedlichen Nachrichtentypen und -zustände werden wieder mit verschiedenen Farben der Nachrichten symbolisiert. 5.3.4 Inkonsistent-Werden einer gemeinsamen Ressource Das Problem der inkonsistenten Nutzung gemeinsamer Ressourcen sollte mit einer quoren-basierten Lösung bearbeitet werden. Dargestellt werden die Repliken mit einem Eurobetrag neben den Agenten und einer zentralen Ressource in der Mitte, die immer den aktuellen Stand anzeigt. Aktuelle Ressourcen sind in blauer Farbe geschrieben, nicht-aktuelle rot (vgl. S. 65, Abb. 31). Außerdem gibt es Schlösser neben den Agenten, die den Sperrungszustand verdeutlichen (vgl. S. 64, Abb. 30). Zunächst muss der Benutzer das System aufbauen und versuchen, dass die Repliken konsistent bleiben. Dafür stehen ihm sechs Werkzeuge zur Verfügung. Durch „Ressourcenversand generieren“ sendet ein Agent seine aktuelle Ressource an einen anderen. Mit „Schreiberlaubnis generieren“ wird eine Nachricht versendet, die dem Empfänger mitteilt, ob er auf die Ressource eines Agenten schreiben darf oder nicht. 5 REALISIERUNG 65 Abbildung 31: Aktuelle und nicht-aktuelle Ressourcen Abbildung 32: Werkzeuge des Problems der gemeinsamen Ressourcen „Ressourcen aktualisieren“ veranlasst einen Agenten, seine sowie die Ressourcen der Agenten, von denen er eine Schreiberlaubnis empfangen hat, zu aktualisieren. Dies geschieht jedoch nur, wenn das Schreibquorum erfüllt ist. „Ressource (ent-) sperren“ verändert den Sperrungszustand der eigene Ressource (vgl. S. 65, Abb. 32). Neben der Werkzeugkonfiguration wird noch überprüft, ob die Mindestquoren für das Lesen und Schreiben einer Ressource erfüllt sind. Diese Parameter lassen sich im Nachrichtentypen-Tab einstellen (vgl. S. 66, Abb. 33). Grafisch wird das Problem mit Geldbeträgen in Euro neben den Agenten symbolisiert. Stimmt der Betrag eines Agenten mit den mittleren überein, der den korrekten Betrag anzeigt, so ist dieser blau eingeschrieben, sonst rot. Außerdem befinden sich Schlößer neben den Agenten, die den Sperrzustand der Ressource symbolisieren sollen. Unterschiedliche Nachrichtentypen sind wieder verschieden far- 5 REALISIERUNG 66 Abbildung 33: Quoreneinstellungen des Problems der gemeinsamen Ressourcen big dargestellt, besondere Nachrichtenmerkmale wie eine Schreiberlaubnis oder verweigerung werden ebenfalls symbolisch abgebildet. 5.3.5 Mitlesen von Nachrichten Das Mitlesen von Nachrichten wurde so simuliert, dass bei einem Nachrichtenaustausch immer auch ein dritter Agent beteiligt ist. Dieser kann die Nachricht mitlesen, wenn sie unverschlüsselt versendet wurde (vgl. S. 67, Abb. 34). Ein Nebenaspekt des Problems ist die Nachrichtenauthentizität. Der Empfänger soll sich sicher sein, dass die Nachricht auch tatsächlich vom Absender stammt. Das Problem gilt dann als gelöst, wenn der Mitleser mit der gelesenen Informationen nichts anfangen kann und gleichzeitig die Nachricht beim Empfänger korrekt entschlüsselt wird. Außerdem muss sichergestellt sein, dass der Empfänger der Nachricht vertrauen kann. Zur Lösung des Problems stehen wieder einige Werkzeuge zur Verfügung (vgl. S. 67, Abb. 35). Der Benutzer muss öffentliche und geheime Schlüssel den Ereignissen so zuordnen, damit beide Bedingungen erfüllt sind. Ordnet er eine Verschlüsselung der Nachricht an ohne sie korrekt zu entschlüsseln, kann der Empfänger nichts mit 5 REALISIERUNG Abbildung 34: Ein dritter Agent liest Nachrichten mit Abbildung 35: Werkzeuge zur Nachrichtenver- und entschlüsselung 67 5 REALISIERUNG 68 Abbildung 36: Zwei Fragezeichen: Die Nachrichten werden verschlüsselt, aber nicht entschlüsselt den Informationen anfangen (vgl. S. 68, Abb. 36). Auch die Nachrichtensicherheit wird anhand von vorgegebenen Ereignis-WerkzeugVerknüpfungen überprüft. In der Animation wird das Mitlesen von Nachrichten durch einen dritten Agenten dargestellt, der eine Zeitung vor sich hat und dessen Mitlesen über eine rote „Leitung“ zu Nachricht symbolisiert wird. Der Nachrichtenempfänger hat ebenfalls eine Zeitung vor sich. Die Zeitung kann entweder die Aufschrift „News“ haben, was symbolisiert, dass die Nachricht gelesen werden kann oder ein Fragezeichen, was heißen soll, dass die Nachricht nicht gelesen werden kann. Die unterschiedlichen Nachrichtentypen oder -zustände werden über unterschiedlich farbige Nachrichten dargestellt. 6 EVALUATION 6 69 Evaluation Die Beurteilung der Software besteht aus einer Einschätzung, ob und wie die gesteckten Ziele tatsächlich umgesetzt wurden. Zudem wurde die Software mit einer neunten Klasse ausprobiert. Dieser Schulversuch soll ebenfalls zur Evaluation der Software diskutiert werden. 6.1 Schulversuche Um die Nutzbarkeit der Software, Effektivität und Effizienz des Lernen mit der Lernsoftware bezogen auf konkrete Ziele zu testen, wurde sie mit einer Informatikklasse erprobt. Dabei ist zunächst zu bemerken, dass die Tests durchaus unvollständig sind und genauere Untersuchungen aus zeitlichen Gründen leider nicht möglich waren. Die Erweiterbarkeit durch das Erstellen weiteren Plugins konnte im Rahmen der Evaluation ebenfalls nicht betrachtet werden. 6.1.1 Vorbemerkungen Prinzipiell ist eine fragebogengestützte Evaluation von Lernsoftware schwierig. Aufgrund von Zeitknappheit ist sie zudem auch nicht umfassend, sodass wichtige Aspekte vorher herausgestellt werden mussten. Dadurch musste u.a. darauf verzichtet werden, die Effizienz und Nutzbarkeit eines Unterrichts mit der Lernsoftware mit anderen Lehr- und Lernformen zu vergleichen. Darunter fallen vor allem das Textstudium und die Behandlung des Stoffs in einem Vortrag. Damit sich der Aufwand einer solchen Software lohnt, sollten zumindest vergleichbare Ergebnisse bei den unterschiedlichen Lernmethoden zu beobachten sein. Damit dieser Vergleich nicht ganz weggelassen wird, sollen kurz die Ergebnisse einer Studie vorgestellt werden, die sich mit der Lernsoftware G ANIMAL [GanoJ] befasste. Nach dieser Studie, die den Lernerfolg durch Prüfung von Wissens- und Transfer- 6 EVALUATION 70 fragen testete, ergaben sich kaum Unterschiede zwischen den vier Gruppen: ältere Lernsoftware („A DL A“), neuere Lernsoftware („G ANIMAL“), dem Textstudium und einer Vorlesung. Die Unterschiede waren bei beiden Fragetypen gering, wobei der Lehrtext bei Wissensfragen leicht besser abschnitt als die anderen Methoden und G ANIMAL bei Transferfragen die besten Ergebnisse erzielte. Wie die Autoren annahmen und die Studie in Ansätzen auch zeigte, lassen sich durch Lerntexte die besten Ergebnisse beim Aufbau von Basiswissen erzielen. Lernsoftware hingegen eignet sich gut für einen aufbauenden Ansatz. Allerdings muss gesagt werden, dass die Fragen wohl zu einfach gestellt wurden, sodass die Ergebnisse mit Vorsicht betrachtet werden müssen [Ker03, S. 6-9]. Da das G ANIMAL-System nicht für Schulen entwickelt wurde und es einige Unterschiede zwischen Schul- und Hochschuldidaktik gibt, ist es in Schulen sicher nicht sinnvoll, Textarbeit dort einzusetzen, wo andere, z.B. handlungsorientierte Methoden eingesetzt werden können. Damit lassen sich nachweislich bessere Lernerfolge erzielen, auch beim Aufbau von Basiswissen. Für das vorliegende Projekt heißt das nun, dass sich ein kombinierter Einsatz mit anderen Lernmethoden empfiehlt. Leider konnten unterschiedliche Vorgehensweisen, die auf unterschiedliche Bedürfnisse der Lernenden eingehen, aus zeitlichen Gründen nicht mehr erprobt werden. 6.1.2 Fragebogenentwicklung In zwei Schulversuchen sollte herausgefunden werden, ob und wie die Software in Schulen tatsächlich eingesetzt werden kann. Durch Beobachtungen während der Versuche und durch einen Fragebogen sollten folgende Fragen geklärt werden: 1. Eignet sich die Komplexität der Probleme und Lösungsstrategien prinzipiell für den Einsatz an Schulen? 2. Welche Unterschiede gibt es zwischen den einzelnen Problemen in Bezug auf ihre Komplexität? 6 EVALUATION 71 3. Welche Voraussetzungen müssen Schülerinnen und Schüler haben, damit sie erfolgreich mit der Software lernen können? 4. Wie muss der Lehrende den Unterricht begleiten, damit der Einsatz der Software erfolgsversprechend ist? Zur Beantwortung dieser Fragen müssen natürlich zunächst Lernziele definiert werden, die durch den Fragebogen geprüft werden können. Die Schülerinnen und Schüler sollen • ein grundsätzliches, intuitives Verständnis von Verteilten Systemen entwickeln, • die Probleme und ihre Relevanz erfassen und • die Lösungsstrategien zu den Problemen verstehen und in anderen Zusammenhängen anwenden können. Neben diesen grundsätzlichen Fragen sollten auch unterrichtspraktische Aspekte durch die Schulversuche getestet werden: • Sind die Schulen für den Einsatz der Software ausgestattet (vorhandene Hardware, Internetanschluss)? • Wie lange dauert bei einem guten, durchschnittlichen und leistungsschwächeren Schüler die komplette oder Einzelproblemdurchführung? • Bestehen Möglichkeiten der Differenzierung nach Leistungsstand? Aus diesen Grundfragen wurde anschließend der Fragebogen entwickelt. Die Schülerinnen und Schüler sollten ihn direkt im Anschluss an die Nutzung der Software ausfüllen. Der mittelfristige Lernerfolg konnte aus praktischen Gründen nicht kontrolliert werden. 6 EVALUATION 72 Der Fragebogen untergliedert sich in drei Teile. Im ersten Teil sollten die Schülerinnen und Schüler ihre persönliche Meinung zur Software zum Ausdruck bringen. Im zweiten Abschnitt wurde der Lernerfolg anhand einiger Fragen überprüft. Im letzten Teil sollten Daten zu Programmfehlern und sonstigen Schwierigkeiten in der Durchführung gesammelt werden. Den Fragen wurden jeweils Wertansprüche (Erfüllung von unabdingbaren Notwendigkeiten (1), in den Anforderungen definierte Eigenschaften, die über die Minimalanforderungen hinausgehen (2) sowie idealistische Eigenschaften, die für spätere Fortführungen und das Erstellen weiterer Plugins genutzt werden können (3))31 [Bau97] zugeordnet. Die Schülerinnen und Schüler konnten bei einem Großteil der Fragen zwischen acht Abstufungen auswählen und immer auch weitere Anmerkungen niederschreiben. Im Folgenden sollen Erwartungen zu den einzelnen Fragen dargestellt werden, die als Grundlage für Auswertung dienen. 1. Teil: Einschätzung des Programms 1.1 Würden Sie sagen, dass Sie durch das Programm etwas gelernt haben (viel/ wenig)[1]? Die Frage soll die subjektive Wahrnehmung der Teilnehmerinnen und Teilnehmer zeigen, ob sie etwas gelernt haben, und ist natürlich zentral für das Projekt. Es wird davon ausgegangen, dass die Schülerinnen und Schüler einen Lernerfolg bei sich verzeichnen können. 1.2 Wie beurteilen Sie das Programm im Ganzen (sinnvoll/ weniger sinnvoll)[-]? Diese Frage soll vor allem die Schülerinnen und Schüler motivieren, dass ihre Angaben und Eindrücke von Bedeutung sind. Schlussfolgerungen lassen sich kaum daraus ziehen, da es sich um ein Lernprojekt handelt. Möglich wären auch negative Einschätzungen, da die Software z.B. keine moderne 3D-Grafik verwendet und den Schülerinnen und Schülern nicht klar geworden sein könnte, welchen Vorteil sie von 31 Die Wertansprüche werden in eckigen Klammern dargestellt. 6 EVALUATION 73 der Software im Gegensatz zum klassischen Unterricht hatten. Die Akzeptanz als Lernmethode für elektronische Lernspiele ist zumindest in Deutschland noch nicht gegeben [Kri08]. 1.3 Wie beurteilen Sie den Entwicklungsstand des Programms (verbesserungswürdig/ komplett)[2]? Auch bei dieser Frage wird eine grundsätzliche, subjektive Einschätzung der Schülerinnen und Schüler erwartet, zu der vorher noch nicht viel gesagt werden kann. Durch den relativ kurzen Entwicklungszeitraum ist aber zu erwarten, dass das Ergebnis eher in Richtung „verbesserungswürdig“ tendiert. 1.4 Fanden Sie, dass die Grafik im Allgemeinen und besonders die Animationen hilfreich für das Verstehen und das Lösen der Probleme war (nicht hilfreich/ sehr hilfreich) [2]? Die Grafik soll vor allem motivieren und nicht sofort klar machen, dass es um Lernen geht und nicht um Spaß. Natürlich ist die Grafik im Vergleich zu modernen 3D-Spielen nicht besonders anspruchsvoll. Sie verwendet aber moderne Bedienelemente. Wichtiger ist es aber zu erfassen, ob die Animationen dem Zweck dienen, das Lernen zu unterstützen und hilfreich beim Verstehen und Lösen des Problems sind. Erwartet wurde bei dieser Frage, dass viele Schülerinnen und Schüler die Animationen als hilfreich empfanden. 1.5 Wie angemessen finden Sie die Steuerung (sehr angemessen/ nicht angemessen)[2]? Diese Frage ist deshalb von Bedeutung, da eine lange Eingewöhnzeit in die Steuerung die knappe Unterrichtszeit weiter verkürzen würde und demotivierend wirken kann. Es wird erwartet, dass die Schülerinnen und Schüler die Steuerung als einfach bezeichnen, da Bedienelemente aus modernen Betriebssystemen, Programmen und Webapplikationen verwendet wurden. 6 EVALUATION 74 1.6 Für wie wichtig halten Sie das Thema Verteilte Systeme für die Schule (sehr wichtig/ unwichtig)[2]? Es ist sicher schwierig, ein Unterrichtsthema zu begründen und es Schülerinnen und Schüler „schmackhaft“ zu machen. Trotzdem soll mit Hilfe der Software und des begleitenden Unterrichts sichergestellt werden, dass die Lernerinnen und Lerner das Thema für relativ wichtig halten. 2. Teil: Was Sie tatsächlich gelernt haben Dieser Fragebogenteil wird für alle fünf Probleme extra ausgefüllt. Es ist zu erwarten, dass vor allem das Problem der inkonstitenten Nutzung einer gemeinsamen Ressource zu Problemen führt, da es recht komplex ist. Die Hoffung ist aber, dass durch den Vergleich mit den anderen Problemen Schlussfolgerungen gezogen werden können, die zur Weiterentwicklung der Quoren-Lösung und zur Neuentwicklung weiterer Probleme beitragen können. 2.x Haben Sie das Problem bearbeitet? (ja/ nein, dann weiter mit 2.x+1)[-] 2.x.1 Für wie relevant halten Sie das Problem (sehr relevant/ nicht relevant)[1]? Es ist wichtig, dass die Schülerinnen und Schüler feststellen, dass das Problem erstens für sie und zweitens für das Thema Verteilte Systeme von Bedeutung ist. Dadurch soll sichergestellt werden, dass eine Motivation und Verknüpfung (Einordnung) zum Problem hergestellt wurde. Es ist zu erwarten, dass vor allem komplexere, aber auch sehr einfache Probleme schlechter motivieren können. 2.x.2 Wie kann das Problem in der Praxis auftreten (Stichpunkte)[2]? Diese Frage soll Rückschlüsse auf den Lernerfolg der Schülerinnen und Schüler ermöglichen. Es soll getestet werden, ob sie etwas mit dem Problem anfangen und es einordnen können. Es ist zu erwarten, dass Schülerinnen und Schüler mit besseren Leistungen hier bessere Ergebnisse abliefern. 2.x.3 Wie löst man das Problem (Stichpunkte)[2]? 6 EVALUATION 75 Ebenfalls für die Lernerfolgskontrolle ist diese Frage von Bedeutung. Es ist zu erwarten, dass die Lösungswege auf unterschiedlichem Niveau nachvollzogen werden können. 2.x.4 Wie viel Zeit haben Sie ungefähr gebraucht (1 Minute bis 15 Minuten)[2]? Die Auswertung der Frage soll dabei helfen, die Komplexität des Problems, der Lösungswege und vielleicht bestimmte Designfragen zu überprüfen. 3. Teil: Programmfehler und sonstige Schwierigkeiten 3.1 Haben Sie Fehler im Programm festgestellt (Stichpunkte)[2]? Diese Frage dient dazu, Programm- oder auch Designfehler festzustellen um sie zu beheben. 3.2 Kamen Ihnen konkrete Bedienelemente ungewöhnlich vor (Stichpunkte)[2]? 6.1.3 Ergebniserfassung und Auswertung Das Programm wurde mit 13 Schülerinnen und Schülern der neunten Klassen am Jenaer Gymnasium Carl Zeiss mit mathematisch-naturwissenschaftlich-technischen Spezialklassen im wahlobligatorischen Unterricht (WOU) Informatik getestet. Dieser Unterricht ist ein obligatorisches Zusatzangebot und kann in einer Naturwissenschaft oder in Informatik belegt werden. Die Schülerinnen und Schüler haben neben diesem WOU auch noch „normalen“ Informatik-Unterricht, was in anderen Thüringer Schulen unüblich ist. Von daher haben sie auch Erfahrungen im Umgang mit Algorithmen und durch die Behandlung der visuellen Programmierumgebung P UCK[Koh04] in der achten Klasse auch einige praktische Kenntnisse, die andere Schülerinnen und Schüler in Thüringen nicht haben dürften. Das Programm wurde in einer Doppelstunde getestet, die von 14.00 bis 15.30 Uhr stattfand. Zunächst erfolgte eine kurze informelle und anschließend eine formale Definition von Verteilten Systemen, eine Diskussion möglicher Anwendungen und 6 EVALUATION 76 die Ziele von Verteilten Systemen, die über Transparenzeigenschaften beschrieben worden [TS03, S. 21-24]. Dann wurde eine kurze Einführung in das Programm und vor allem die Steuerung gegeben. Die einzelnen Probleme wurde nicht vorgestellt. Sollten die Ergebnisse bei einigen Problemen keinen oder einen geringen Lernerfolg nachweisen, kann durch eine vorherige Vorstellung der Probleme und einer Lösungsstrategie der Erfolg gesteigert werden. Die Schülerinnen und Schüler hatten insgesamt 50 Minuten Zeit mit dem Programm zu arbeiten. Anschließend füllten sie die Fragebögen aus. Da es meist acht Auswahlmöglichkeiten gab, werden die Ergebnisse auch in acht Stufen dargestellt. Beachtet wurden nur die Durchschnittswerte, die sich bei den jeweiligen Fragen ergaben. Dabei ist der Wert 8 der „beste“ und 1 der „schlechteste“32 . Interessante Anmerkungen sollen ebenfalls in der Auswertung berücksichtigt werden. 1.1 Würden Sie sagen, dass Sie durch das Programm etwas gelernt haben (viel/ wenig)[1]? Die erste Frage, die einen besonderen Stellenwert für die Bewertung der Software hat, wurde im Durchschnitt mit 3,8 bewertet. Dabei ist diese subjektive Einschätzung der Teilnehmer schlechter als der tatsächliche Lernerfolg, der in der Fragen zu den einzelnen Problemen gemessen wird, und unterscheidet sich bei den einzelnen Schülerinnen und Schüler recht stark (Standardabweichung 1,58). Dies könnte daran liegen, dass diese ungewöhnliche Lernform noch keine große Akzeptanz hat. Bezeichnend ist dabei die Anmerkung einer Schülerin oder eines Schülers, die oder der die schlechteste Antwort ankreuzte und bemerkte, dass er nichts gelernt habe, weil er ja alles selber machen musste. Hier wird deutlich, dass Lernen für einige Schülerinnen und Schüler sehr eng mit passiven Methoden wie Zuhören oder Abschreiben verknüpft ist und kein konstruktives und/ oder selbstgesteuertes Lernen in Betracht gezogen wurde. 32 Antwortmöglichkeiten werden jeweils in Klammern dargestellt 6 EVALUATION 77 Abbildung 37: Ergebnisse des ersten Teils. Mittelpunkt der Linien sind die Durchschnittswerte, die Linien stellen die Standardabweichung dar. 1.2 Wie beurteilen Sie das Programm im Ganzen (sinnvoll/ weniger sinnvoll)[-]? Mit der zweiten Frage sollten die Schülerinnen und Schüler das Programm einschätzen. Da das Programm ein Lernprogramm ist, sollte die Einschätzung stark von der Beurteilung der ersten Frage abhängen. Tatsächlich wurde die Frage im Schnitt mit 4,4 bewertet, die Standardabweichung beträgt 1,33 und ist damit etwas homogener. Lernerfolg und Sinn des Programms wurde von den Schülerinnen und Schüler also etwas kritisch eingeschätzt. 1.3 Wie beurteilen Sie den Entwicklungsstand des Programms (verbesserungswürdig/ komplett)[2]? Auch die dritte Frage sollte wieder einen subjektiven Eindruck erfassen. Die Bewertung fiel mit einem Ergebnis von 5,25 recht positiv und mit einer Standardabweichung von 1,25 relativ homogen aus. Daraus könnten man schlussfolgern, dass einigen Schülerinnen und Schülern zwar Bedienschwierigkeiten und Programmfehler aufgefallen sind, aber die Anzahl gering war. 1.4 Fanden Sie, dass die Grafik im Allgemeinen und besonders die Animationen 6 EVALUATION 78 hilfreich für das Verstehen und das Lösen der Probleme war (nicht hilfreich/ sehr hilfreich) [2]? Diese Frage wurde sehr positiv beantwortet (6,1), wobei eine Schülerin oder ein Schüler hier nur einen Punkt vergab, weshalb die Standardabweichung mit 1,64 recht hoch ausfiel. Damit zeigte sich aber, dass die Animationen den Lernerfolg sehr gut steigern konnten und von den Schülerinnen und Schülern (intuitiv) als Anhaltspunkt genutzt wurde, welche Änderungen sie an ihren Lösungen vornehmen mussten. 1.5 Wie angemessen finden Sie die Steuerung (sehr angemessen/ nicht angemessen)[2]? Die Frage 1.5 fiel ebenfalls sehr positiv aus (6,2), die Standardabweichung war sehr gering (0,95). Daraus lässt sich schlussfolgern, dass die Wahl von gewohnten Bedienelemente richtig war. 1.6 Für wie wichtig halten Sie das Thema Verteilte Systeme für die Schule (sehr wichtig/ unwichtig)[2]? Das Thema Verteilte Systeme für die Schule wurde von den Schülerinnen und Schülern als durchaus wichtig beurteilt (5,9). Daraus lässt sich zumindest schlussfolgern, dass der erste Teil des Unterrichts, die allgemeine Einführung einen motivierenden Charakter hatte. Wahrscheinlich ist aber auch, dass durch die Nutzung des Programms, dem Kennenlernen einiger Probleme in Verteilten Systemen und durch die konstruktive Auseinandersetzung mit diesen Problemen eine Bedeutung für die Schule erkannt wurde, was besonders erfreulich ist, da es nicht immer einfach ist, Schülerinnen und Schüler für bestimmte Inhalte zu motivieren. Im zweiten Teil des Fragebogens sollte der tatsächliche Lernerfolg bei den Schülerinnen und Schülern überprüft werden. Verlorene Nachrichten Als Erfolg zu betrachten ist zunächst die Tatsache, dass die Relevanz des Problems 6 EVALUATION Abbildung 38: Lernerfolg der Schülerinnen und Schüler Abbildung 39: Herstellen eines Praxisbezugs zum Problem 79 6 EVALUATION 80 mit 6,7 sehr hoch eingeschätzt wurde (Standardabweichung 0,78). Dabei ist natürlich zu bemerken, dass weniger komplexe Probleme und Lösungen sicher intuitiv relevanter erscheinen. Zehn Schülerinnen und Schüler haben das Problem bearbeitet. Zwei Schülerinnen und/ oder Schüler vermerkten, dass die Zeit nicht mehr ausreichte um die Problembearbeitung fortzusetzen. Die Lösung wurde fünfmal korrekt und dreimal unvollständig erfasst, zwei Schülerinnen und/ oder Schüler schrieben keine Lösungsskizze. Der Praxisbezug als Transferleistung, die eigentlich nicht durch das Programm oder den Unterricht vermittelt wurde, wurde von drei Schülerinnen und Schüler vollständig und ebenfalls von drei Schülerinnen und Schülern teilweise erfasst. Viermal wurde kein (sinnvoller) Praxisbezug hergestellt. Zu den Ergebnissen ist allgemein zu bemerken, dass die Motivation der Schülerinnen und Schüler zum (gewissenhaften) Ausfüllen der Fragebögen sicher gering war. Dadurch wurden die Ergebnisse sicher etwas verfälscht. Im Durchschnitt wurden weniger als fünf Minuten zur Lösung des Problems benötigt. Gefälschte Nachrichten Auch für das Problem der gefälschten Nachrichten wurde die Relevanz als sehr hoch eingeschätzt (6,9). Insgesamt haben acht Schülerinnen und Schüler angegeben, das Problem bearbeitet zu haben. Da ein Schüler den Fragebogen aber nicht weiter ausgefüllt hat, entfällt dieser Fragebogen bei der Auswertung. Überraschend war, dass der Lernerfolg höher war als bei dem Problem der verlorenen Nachrichten. So gaben sechs Schülerinnen und Schüler eine korrekte Lösung wieder und haben ganz oder teilweise einen guten Praxisbezug herstellen können. Die Bearbeitungsdauer war im Allgemeinen sehr gering (zwischen zwei und fünf Minuten), eine Schülerin oder ein Schüler brauchte etwa eine halbe Stunde. Mitgelesene Nachrichten Das Problem der mitgelesenen und nicht-authentischen Nachrichten wurde von zwölf Schülerinnen und Schüler bearbeitet, wobei eine Schülerin oder ein Schülern 6 EVALUATION 81 wieder keine weiteren Angaben machte und lediglich eine Relevanzeinschätzung abgab, weshalb ihre oder seine Wertung nicht mit in die Durchschnittsbetrachtung einfliesst. Wie schon bei den vorangegangenen Problemen erschien den Schülerinnen und Schülern das Problem erfreulicherweise als sehr relevant (6,6), die Streuung der Werte war relativ gering (1,18). Eine hohe Relevanzeinschätzung lässt immer vermuten, dass die Schülerinnen und Schüler das Problem erfasst und in seiner Bedeutung reflektiert haben. Auch der Lernerfolg ist wieder gut. Sieben Schülerinnen und Schüler haben die Lösung komplett erfasst, zwei teilweise und einer oder eine nicht. Einen sinnvollen Praxisbezug konnten vier Schülerinnen und Schüler ganz und ebenfalls vier teilweise korrekt herstellen. Dreimal gelang dies nicht oder wurde nicht versucht. Auch diese Ergebnisse sind sehr erfreulich. In der Stunde gab es jedoch ein Problem mit dem öffentlichen Verschlüsselungsverfahren. Hier war nicht genau klar, was gemacht werden musste bzw. wozu ein öffentlicher Schlüssel dient. Weiterhin war es problematisch, dass die Problembeschreibung nicht verständlich machte, dass die Nachrichten auch einem Absender sicher zugeordnet werden müssen. Im Schnitt wurden zehn Minuten zur Problemlösung benötigt, wobei eine Schülerin oder ein Schüler den Schnitt deutlich hob, da sie oder er 40 Minuten brauchte. Unterschiedliche Nachrichtenreihenfolge Nur fünf Schülerinnen und Schüler bearbeiteten das Problem der unterschiedlichen Nachrichtenreihenfolge. Davon machte zwei Schülerinnen und Schüler wieder keine Angaben, weshalb die Daten nicht in die Betrachtungen einfliessen. Bei der Bearbeitung des Problems gab es größere Probleme, was sich auch in der Relevanzbetrachtung niederschlägt (5,0). Hier waren die Ansichten auch recht differenziert (Standardverteilung 1,79). Nur zwei Schülerinnen und Schüler machten konkrete Zeitangaben (fünf bzw. zehn Minuten) für die Lösungsdauer. Ein Proband konnte die Lösung korrekt, ein anderer teilweise skizzieren, einmal gelang dies gar nicht. Zweimal wurde ein schwacher Praxisbezug hergestellt, einmal keiner. Die Ergebnisse sind natürlich nicht erfreu- 6 EVALUATION 82 lich. Das Problem scheint auf den ersten Blick zu komplex und demotiviert damit etwas. Lösungen für dieses Problem werden im nächsten Kapitel diskutiert. Gemeinsam genutzte Ressource Ähnliche Ergebnisse ergab das Problem der gemeinsam genutzten Ressourcen. Hier bearbeiteten ebenfalls nur fünf Schülerinnen und Schüler das Problem. Nur einmal wurde eine Zeit angegeben (15 Minuten), was darauf schließen lässt, dass die anderen das Problem nicht lösen konnten. Die Relevanz wurde wieder differenziert, aber insgesamt niedrig bewertet (4,8), was daran liegen könnte, dass das Problem nicht im vollem Umfang erfasst worden ist. Erstaunlicherweise konnte mehrmals ein sinnvoller Praxisbezug zugeordnet werden (dreimal), eine Lösungsskizze wurde nur zweimal in Ansätzen korrekt angefertigt. Auch für dieses Problem scheint zu gelten, dass es den Schülerinnen und Schüler als zu komplex erschien. Weitere Ergebnisse der Befragung Einige Programmfehler sind den Schülerinnen und Schülern aufgefallen, die notiert und behoben wurden. Die Bedienung bereitete entgegen der Auswertung der Frage 1.5 einige Schwierigkeiten, die ebenfalls zu behoben worden. Die relativ niedrigen Anforderungen an die Hardware konnten die Schule mit einem gut ausgestatteten Computerkabinett erfüllen. Es ist davon auszugehen, dass ältere Computer für den Aufbau der Grafik etwas länger brauchen, aber es ansonsten wenige Probleme geben sollte. 6.1.4 Schlussfolgerung aus den Ergebnissen Die Ergebnisse sind im Ganzen betrachtet als erfolgreich zu bezeichnen. Die offenkundigen Probleme, die es gab, lassen sich leicht beheben. Merkwürdig ist, dass die Schülerinnen und Schüler den Lernerfolg relativ schlecht einschätzten, aber die Auswertung des zweiten Teils bei drei Problemen sehr erfreuliche Ergebnisse ver- 6 EVALUATION 83 muten ließ. Lediglich die Frage, ob auch alle Werkzeuge korrekt verstanden worden sind, konnte nicht erfasst werden. Ansonsten wurden auch die meisten Annahmen bestätigt. Ein Lernerfolg kann nur durch einen begleiteten Unterricht sichergestellt werden, der vor allem motivierend in das Thema einführt und gleichzeitig das Programm erklärt. Der zweite Teil ist in der Teststunde leider nicht gelungen, weshalb zu viel Zeit mit individuellen Erklärungen verschwendet wurde. Der zeitliche Rahmen von 90 Minuten ist ebenfalls realistisch, wenn keine 20-minütige Befragung stattfindet. Dann sollten alle Schülerinnen und Schüler die drei einfachen und die besseren auch eins von den beiden komplexeren Themen bearbeiten können. Wenn man sicherstellen will, dass alle Probleme und deren Lösungen nachhaltig von den Schülerinnen und Schüler verstanden werden, wäre auch eine dritte Unterrichtsstunde sinnvoll, damit vor allem die komplexen Themen sowie das Funktionieren des Public-Key-Verfahrens intensiver behandelt werden können. Die Probleme der unterschiedlichen Nachrichtenreihenfolge und der gemeinsam genutzten Ressource müssten für den Einsatz in der Schule etwas überdacht werden. Da es schwierig ist, die Probleme zu splitten oder angemessen zu reduzieren, sollten sie anders in den Unterricht eingebaut werden. Denkbar wäre eine Erläuterung oder Erarbeitung des Problems mit Praxisbezug und eine Lösungsskizze. Dann sollten auch die meisten Probleme im Umgang mit den Plugins behoben werden können. Dazu könnten auch entsprechende Materialien zur individuellen Arbeit bereitgestellt werden. Weiterhin sollte der Einsatz der Software in der Regel erst in der elften oder zwölften Klassen stattfinden, was bessere Ergebnisse ermöglichen sollte. 6 6.2 EVALUATION 84 Schwächen der Lösung Vergleicht man die dargestellten Forschungsergebnisse und die tatsächliche Implementierung, gibt es natürlich einige Schwächen, die hier diskutiert werden sollten. Die Grafik des vorliegenden Projekts entspricht nicht modernen 3D-Welten in aktuellen Computerspielen. Eine solche Entwicklung war im Rahmen dieser Arbeit aber auch nicht möglich. Fraglich ist auch, ob in solchen 3D-Welten der Lerngegenstand tatsächlich besser und motivierender umgesetzt werden könnte. Immerhin müssen ja Algorithmen modelliert werden, wenn auch auf einer abstrakten Ebene. Weiterhin bietet die Software keine sozialen und nur sehr eingeschränkte parasoziale Lernprozesse. Für Themen aus dem Bereich der Informatik sind sicher kooperative Lernformen in Spielwelten denkbar, die aber ebenfalls eine längere Entwicklungszeit benötigen würden. Das Design der parasozialen Charaktere wie dem Bürgermeister könnte auch tiefer gehen und z.B. über Emotionen bestimmte Systemzustände verstärkt darstellen. Es fehlt außerdem ein Tutorial zur Bedienung des Programms und zur Einführung in die Spielwelt sowie in die Thematik der Verteilten Systeme, was helfen könnte, die Software unabhängiger von einem einbettetenden Unterricht zu machen. Bei der Darstellung der Algorithmen ist es bisher möglich „wenn- dann- Konstrukte“ einzubauen. Allerdings werden Werkzeuge, die auf eine solche Bedingung folgen, entweder ausgeführt oder nicht. Bisher ist noch keine Implementierung vorhanden, die z.B. einen alternativen Pfad von Werkzeugen ausführbar macht. Komplexere Werkzeuge werden in der bisherigen Lösung zwar textuell beschrieben, eine grafische Beschreibung in Form eines Ablaufsdiagramms wäre aber ebenfalls denkbar gewesen. Zu den Problemen ist nur soviel zu sagen, dass die beiden komplexeren Plugins (Inkonsistent-Werden einer gemeinsamen Ressource und unterschiedliche Nachrichtenreihenfolge) durch weitere Parameter ergänzt werden könnten um sie allgemeiner darzustellen. Bisher wurde nur ein bestimmtes, eingeschränktes Szenario 6 EVALUATION 85 erarbeitet. Außerdem könnte die Komplexität zu hoch sein, was sich im Schulversuch bereits andeutete. Um dieses Problem zu umgehen, wurden Lösungsvorschläge erarbeitet. 6.3 Stärken der Lösung Soweit es im Rahmen der Arbeit möglich war, wurden aktuelle Forschungsergebnisse zu Lernsoftware und Lernen mit Computerspielen umgesetzt, um Schülerinnen, Schülern und anderen Lernenden einen schnellen und motivierenden Einstieg in grundlegende Probleme Verteilter Systeme zu ermöglichen. Verglichen mit anderen Projekten, hat das vorliegende Projekt einige Stärken. Die Software ermöglicht den Nutzern mit einfachen Mitteln, komplexe Algorithmen nachzubilden, was bei allen anderen Anwendungen, die im Rahmen dieser Arbeit vorgestellt wurden, nicht der Fall ist. Die Nutzer werden dabei unterstützt, indem sie in den Animationen nachvollziehen können, in welchem Zustand ihre Lösung ist und was sie vielleicht noch abändern müssten. Der Schulversuch machte deutlich, dass diese generischen Animationen sehr gut angenommen wurden. Durch den simulierenden Charakter des Projekts kann nachvollzogen werden, welche Werkzeuge welchen Einfluss auf das Problem haben. Mit einfachen Werkzeugen, die in der Regel schon vom Namen her ihr Funktionieren erkennen lassen, können diese Algorithmen einfach, explorativ und selbstständig verstanden werden. Schülerinnen und Schüler können komplexe Zusammenhänge mit der Software erlernen (Handlungswissen) und nicht eben nur einfache Fakten, was auch der Schulversuch verdeutlichte. Außerdem sind die Handlungen, die die Nutzer auszuführen haben, am eigentlichen Problem orientiert. Das Lernen findet weiterhin in einem explorativen und daher angstfreien Zusammenhang statt. Der Anwender kann beliebige Konfigurationen ausprobieren ohne Angst vor Fehlern oder Blamage haben zu müssen. Motivierend sollen auch die Punkte wirken, die ein Nutzer sammeln kann. 6 EVALUATION 86 Das Rahmenwerk wurde so gestaltet, dass das Programm für sehr viele Probleme in der nachrichtenbasierten Kommunikation verwendbar ist. Wie das Beispiel der quoren-basierten Konsistenz zeigt, können auch komplexere Probleme mit der Software modelliert werden. Plugins, die weitere Probleme simulieren, können schnell und einfach erstellt und in das Hauptprogramm eingebunden werden. Die vorgegebene Struktur macht Teile der konzeptionellen Arbeit überflüssig. Die Software ist weiterhin plattformunabhängig und kann auch auf älterer Hardware problemlos eingesetzt werden. 6.4 Anwendungsmöglichkeiten Durch den Einsatz der Software sind verschiedene Anwendungsszenarien bereits vorgegeben. Am besten eignet sich der Einsatz in der Schule mit einem begleitenden Unterricht, der kurz benennt, was Verteilte Systeme sind und warum sie für Schülerinnen und Schüler von Bedeutung sind, die prinzipielle Programmsteuerung und das Ziel der Software vorstellt und auch eine Auswertung des Erlernten nach dem Einsatz der Simulation sicherstellt. Denkbar ist aber auch, dass die Simulation im Rahmen eines Selbststudiums genutzt werden kann. Dort müssten die Grundlagen für das Verstehen der Probleme selbst erarbeitet werden und in einer Auswertungsphase müssten die Probleme und ihre Lösungen noch einmal recherchiert werden. Dann könnte das Programm auch als Grundlage für Hausaufgaben, Schülervorträge, -projekte oder -geleiteten Unterricht eingesetzt werden. 6.5 Ausblick Eine Weiterentwicklung des Projekts bietet sich in erster Linie durch weitere Plugins an, die Probleme der nachrichtenbasierenten Kommunikation darstellen können. Wenn man Selektionen und eventuell Schleifen in das Projekt einbinden würde, 6 EVALUATION 87 könnten sehr viele, auch komplexere Probleme einfach und schnell in die Spielwelt aufgenommen werden. Für eine Großzahl von Problemen reichen aber die jetztigen Möglichkeiten aus. Es bietet sich natürlich auch an, ein Tutorial zu ergänzen sowie weitere Begleitmaterialien zu erstellen, die den Schuleinsatz auch für die Lehrenden effizienter gestalten würden bzw. einen Einsatz ohne begleitenden Unterricht ermöglichen. Dazu sollten auch weitere Versuche in Schulen stattfinden, die mehr evaluieren als die prinzipielle Eignung als Lernsoftware, unterrichtspraktische Fragen und eine knappe Evaluation der einzelnen Plugins. Basierend auf Teilen des bisherigen Konzepts könnte das Projekt für soziale Lernprozesse ausgebaut werden. Dafür könnten die Probleme durch geschickte Kombination von Teilproblemen oder durch Ausdifferenzierung erschwert werden. Die Rolle des Technikers, in die der Nutzer bisher schlüpft, müsste ebenfalls konzeptionell erweitert werden. Denkbar wären etwa in Anlehnung an beliebte Computerspiele die Entwicklung unterschiedlicher Eigenschaften und Stärken von verschiedenen Nutzern und/ oder zwei Teams, die gegeneinander wettstreiten. Um echtes soziales Lernen zu ermöglichen, wären Problemlösungen nur durch Kooperationen und Wissensteilung und -zusammenführung zu ermöglichen. 7 7 ZUSAMMENFASSUNG 88 Zusammenfassung Wie die Arbeit gezeigt hat, werden Verteilte Systeme in Zukunft an Bedeutung gewinnen und möglicherweise ein Thema für den Informatikunterricht sein. Das vorliegende Projekt zeigt eine Möglichkeit auf, wie diese Systeme unterrichtet werden könnten. Neben dem Einsatz dieser Software sollte das Programm eingebettet in „klassischen“ Unterricht verwendet werden. Das vorliegende Projekt wurde unter Einbeziehung aktueller, pädagogischer und didaktischer Forschungsergebnisse als spielorientierte Lernsoftware zum Thema Verteilte Systeme entwickelt, die Lernende dabei unterstützen soll, die recht komplexen Algorithmen und Verfahrensweisen zur Lösung grundlegender Probleme in Verteilten Systemen zu erlernen. Dabei wurde auch auf die Verwendung von aktuellen Technologien und sog. ehrlichen Lösungen geachtet, die zwar die Komplexität bestimmter Probleme und deren Lösungen reduzieren, sie aber nicht falsch darstellen. Die Software ist erweiterbar, sodass weitere Module schnell und einfach hinzugefügt werden können. In Schulversuchen wurde gezeigt, dass ein unterrichtspraktischer Einsatz möglich und sinnvoll ist. Die Software kann Lehrpersonen entlasten, ermöglicht den Einsatz einer innovativen Lernmethode und sichert den Lernerfolg zum Beispiel durch Animationen, die den Lösungszustand von Problemen erkennen lassen. Im Vergleich zu anderen Lösungen können insbesondere die Algorithmenorientierung, die Explorativität, das Darstellen komplexer Lernvorgänge sowie das Handlungswissen, das mit Hilfe der Software aufgebaut werden kann, hervorgehoben werden. LITERATURVERZEICHNIS 89 Literaturverzeichnis [ABD+ 07a] A SSCHOFF, A. ; BADE, J. ; D ITTICH, C. ; G ERDING, T. ; H ASS LER , N. ; K LEBERT, J. ; W EYER, M.: Abschlussbericht Projektgrup- pe FILIUS. <http://www.die.informatik.uni-siegen. de/pgfilius/download/Benutzungshandbuch.pdf> am 11.03.08, 2007 [ABD+ 07b] A SSCHOFF, A. ; BADE, J. ; D ITTICH, C. ; G ERDING, T. ; H ASS LER , N. ; K LEBERT, J. ; W EYER, M.: Handbuch der Projektgrup- pe FILIUS. <http://www.die.informatik.uni-siegen. de/pgfilius/download/Benutzungshandbuch.pdf> am 11.03.08, 2007 [AP94] A AMODT, A. ; P LAZA, E.: Case-Based Reasoning: Foundational Issues, Methodological Variations, an System Approaches. In: AICOM 7 (1994), S. 39–59 [Bau97] BAUMGARTNER, P.: Evaluation vernetzten Lernens. In: Virtueller Campus. Forschung und Entwicklung für neues Lehren und Lernen (1997), S. 131–146 [BeioJ] B EILER, H.: go? Where in the World is Carmen Sandie<http://www.longplays.de/longplays/ w/whereintheworldiscarmensandiego/ carmensandiego.htm> am 01.04.2008, o.J. [Ben04] B ENGEL, G.: Verteilte Systeme. 3. Aufl. Wiesbaden : Viehweg Lehrbuch, 2004 [Ber07] B ERNDT, E.: Warum die Werkzeug-Metapher in Bildungsprozessen in die Irre führt. In: OBST - Osnabrücker Beiträge zur Sprachtheorie 72 (2007), S. 109–133 [BeroJ] B ERNATH, U.: Qualitätsaspekte des eLearnings. o.J. LITERATURVERZEICHNIS [BGH+ 00] 90 B URGER, H. ; G ALATA, R. ; H ECHENLEITNER, A. ; K REISEL, K. ; L EPPMEIER, M. ; L IESSEL, W. ; W IEDEMANN, A.: Informatik und Schule. Schwerpunkte, Hinweise auf Materialien, Informationsquellen. Augsburg, 2000 [Bi007] F. A. B ROCKHAUS AG, Bibliographisches I. (Hrsg.): Simulation. <http://lexikon.meyers.de/meyers/Simulation> am 17.03.08, 2007 [Bop06] B OPP, M.: Didactic Analysis of Digital Games and Game-based Learning. In: P IVEC, M. (Hrsg.): Affective and Emotional Aspects of Human-computer Interaction: Game-based and Innovative Learning Approaches: The Future of Learning. Amsterdam, 2006, S. 8–37 [BP99] BAUMGARTNER, P. ; PAYR, S.: Lernen mit Software. Digitales Lernen. Innsbruck : Österreichischer StudienVerlag, 1999 [Bre95] B REZINKA, W.: Der Gegenstand der Erziehungswissenschaft und die Aufgabe der erziehungswissenschaftlichen Forschung. In: Erziehungsziele, Erziehungsmittel, Erziehungserfolg. Beiträge zu einem System der Erziehungswissenschaft. München : Ernst Reinhardt Verlag, 1995 (5), S. 15–42 [BöroJ] B ÖRDLEIN, C.: Eine Einführung in die Verhaltesanaly- se [Manuskript]. <http://verhalten.org/dateien/ verhaltenbuch.pdf> am 02.03.08, o.J. [Bru60] B RUNER, J.S.: The process of education. Cambridge : Harvard University Press, 1960 [Con02] C ONSORTIUM, World Wide W.: ge (XML) 1.0. Extensible Markup Langua- 2. Aufl., deutsche Übersetzung von Stefan Mintert. <http://edition-w3c.de/TR/2000/REC-xml-20001006/> am 01.04.2008, 2002 LITERATURVERZEICHNIS [CURoJ] 91 CURE-Benutzerhandbuch. <http://teamwork. fernuni-hagen.de/CURE/doc/manual.html> am 16.03.08, o.J. [Ede96] E DELMANN, W.: Lernpsychologie. 5. Aufl. Weinheim, 1996 [EWJR08] E GGER, D. ; W ERNICKE, A. ; J OOST, R. ; R EINHARDT, M.: GNU Image Manipulation Program. Benutzerhandbuch. 2002-2008 [Fre06] F REITAS, S. de: Learning in Immersive Worlds. A review of game-based learning. <http:\\www.jisc.ac.uk/media/ documents/programmes/elearninginnovation/ gamingreport_v3.pdf> am 15.03.08, 2006 [GanoJ] G ANIMAL: GANIMAL Homepage. <http://rw4.cs.uni-sb. de/projects/ganimal/> am 04.05.08, o.J. [Hol03] H OLTKAMP, H.: Einführung in TCP/IP. <http://www. rvs.uni-bielefeld.de/~heiko/tcpip/tcpip.pdf> am 13.03.08, 1997-2003 [HPE+ oJ] H ELLWEG, Matthias ; P LIENINGER, Frank ; E NGELS, Volker ; G RASSE, Thomas ; R ASEL, Martin ; D ENTLER, Kathrin ; B RANDTNER , Christian: Fountain of Wisdom: Technische Dokumentation. <http://kalu.fernuni-hagen.de/downloads/FaPra_ 04_05/Technische_Dokumentation_FlOW.pdf> am 16.03.08, o.J. [HS07] H EPTNER, L. ; S CHNARRENBERGER, F.: Spielbasiertes Ler- nen und gemeinsame Wissenskonstruktion. In: F ERNUNIVER - SITÄT H AGEN, Juniorprofessur für Verteilte Lernsysteme und kooperative Arbeits-/Lernumgebung der Fakultät für Mathematik und Informatik d. (Hrsg.): Gemeinsame Wissenskonstruktion. <kalu.fernuni-hagen.de/downloads/1915_SS_ 07.pdf> am 12.03.08, 2007, S. 29–42 LITERATURVERZEICHNIS [Hui87] 92 H UIZINGA, J.: Homo ludens. Vom Ursprung der Kultur im Spiel. Reinbek bei Hamburg : ANPASSEN, 1987 [Hun08] H UNTER, J.: JDOM: FAQ. <http://www.jdom.org/docs/ faq.html> am 01.04.2008, 2008 [Ker01] K ERRES, M.: Multimediale und telemediale Lernumgebungen. Konzeption und Entwicklung. 2. Aufl. Oldenburg : Oldenbourg, 2001 [Ker03] K ERREN, A.: Exploratives Lernen mit partiell generierter Lehr- und Lernsoftware. <http://www.ads.tuwien.ac.at/people/ kerren/pubs/kerren-gml03.pdf> am 04.05.08, 2003 [Koh04] KOHL, L.: Entwurf und Implementierung einer visuellen Programmiersprache für den Einsatz in Schulen (Diplomarbeit). 2004 [Kri08] K RINGIEL, D.: das Spielen bei. Games in der Schule. Lehrer bringen Schülern <http://www.spiegel.de/netzwelt/ spielzeug/0,1518,550345-4,00.html> am 04.05.2008, 2008 [KSJ06] K RISTÖFL, H. ; S ANDTNER, M. ; JANDEL, H.: Qualitätskriteri- en für E-Learning. Ein Leitfaden für Lehrer/innen, Lehrende und Content-Ersteller/innen. <www.e-teaching-austria.at/ download_mat/Qualitaetskriterien.pdf> am 15.03.08, 2006 [Ku003] K ULTUSMINISTERKONFERENZ (Hrsg.): Einheitliche Prüfungsanforderungen Informatik. 2003 [KW06] K RAPP, A. ; W EIDENMANN, B.: Pädagogische Psychologie. 5. Aufl. Basel : Psychologische Verlags Union, 2006 [Lef06] L EFRANCOIS, G. R.: Psychologie des Lernens. 3. Aufl. Berlin : Springer, 2006 LITERATURVERZEICHNIS [LP99] 93 K ULTUSMINISTERIUM, Thüringer (Hrsg.): Lehrplan für das Gymnasium. Informatik. Erfurt : <http://www.thillm.de/thillm/ pdf/lehrplan/gy/gy_lp_if.pdf> am 30.04.08, 1999 [Maa94] M AASS, S.: Maschine, Partner, Medium, Welt... Eine Leitbildgeschichte der Software-Ergonomie. In: H ELLIGE, H. D. (Hrsg.): Leitbilder der Informatik- und Computer-Entwicklung (Tagungsband) Bd. 33. 1994 [oAoJ] OA: Foundation of Wisdom - Ein interaktives Lernspiel in Cure. Benutzerhandbuch. <http://kalu.fernuni-hagen.de/ downloads/FaPra_04_05/Fountian_of_Wisdom.pdf> am 16.03.08, o.J. [Pfi00] P FITZMANN, A.: Sicherheit in Rechnernetzen: Mehrseitige Si- cherheit in verteilten und durch verteilte Systeme. Karlsruhe, Hildesheim, Dresden : <http://dud.inf.tu-dresden.de/ ~pfitza/DSuKrypt.pdf> am 02.05.08, 1999-2000 [RSA78] R IVEST, R. ; S HAMIR, A. ; A DLEMAN, L.: A Method for Obtaining Digital Signatures and Public Key Cryptosystems. In: Commun. ACM 21 (1978), Nr. 2, S. 120–126 [SM08] S UN M ICROSYSTEMS, Inc.: <http://java.sun.com/products/javahelp/> JavaHelp am 02.04.2008, System. 1994- 2008 [SS04] S CHUBERT, S. ; S CHWILL, A.: Didaktik der Informatik. München : Spektrum, 2004 [Sun06] S UNNEN, P.: Lernprozesse am Computer. Theoretische und emirische Annäherungen. Frankfurt a.M. : Europäischer Verlag der Wissenschaften, 2006 [Tan03] TANNENBAUM, A.: Computernetzwerke. München : Pearson Studium, 2003 LITERATURVERZEICHNIS [TS03] 94 TANNENBAUM, A. ; S TEEN, M. van: Verteilte Systeme - Grundlagen und Paradigmen. München : Pearson Studium, 2003 [Ull06] U LLENBOOM, C.: Java ist auch eine Insel. 5. Aufl. Bonn : Galileo Press, 2006 [Ull07] U LLENBOOM, C.: Java ist auch eine Insel. 6. Aufl. Bonn : Galileo Press, 2007 [Win04] W INKLER, W.: Probleme schnell und einfach lösen. 99 Lösungswerkzeuge. Frankfurt a. M. : Moderne Verlagsgesellschaft, 2004 [WR02] W ILLIGE, M. ; RÜB, H.: Zur Evalution von Online-Lernprogrammen. Hamburg : Institut für berufliche Bildung, Arbeitsmarkt- und Sozialpolitik, 2002 Erklärung Ich erkläre, dass die vorliegende Arbeit selbstständig und nur unter Verwendung der angegebenen Literatur und Hilfsmittel verfasst habe. Sämtliche Stellen, die anderen Werken entnommen sind, wurde unter Angabe der Quelle als Entlehnung kenntlich gemacht. Jena, den 03.06.2008 95 A TECHNISCHE DOKUMENTATION 96 Abbildung 40: UML-Diagramm 1: Systemübersicht A A.1 Technische Dokumentation Beschreibung der Systempakete Das Projekt ist grob in zwei Teile gegliedert. Zum Einen wurde ein Rahmenwerk (Framework) geschaffen, welches die wichtigsten Systemkomponenten enthält und eine möglichst einfache Entwicklung von zusätzlichen Funktionalitäten ermöglichen soll. Zum Anderen gibt es verschiedene Plugins, die Probleme in Verteilten Systemen abbilden und mögliche Lösungsstrategien erlernbar machen. A.1.1 Der Systemkern: systemcontrol Der Systemkern hat die Aufgabe, grundlegende Funktionalitäten für das System und Schnittstellen für die anderen Pakete bereitzustellen. Die Klasse SystemCore enthält die main-Methode und initialisiert die notwendigen Programmfunktionalitäten. In der Klasse werden zunächst ein Psydo-Problem (SystemSimulation), längere Hilfstexte und die System-Oberfläche (GUI) geladen. Zudem werden .xml-Dateien analysiert, die Plugin-Informationen bereitstellen. Neben der System-GUI baut sich für den Benutzer sichtbar auch ein weiteres Fenster auf, welches einen Begrüßungstext darstellt. A TECHNISCHE DOKUMENTATION 97 Abbildung 41: UML-Diagramm 2: Systemsteuerung und -verwaltung Neben diesen sequentiellen Funktionen, die die Klasse bereitstellt, ist sie auch Schnittstelle zwischen und zu verschiedenen anderen Systemkomponenten. Dies betrifft in erster Linie Methoden, die zwischen Problemen/ Plugins und der System-GUI vermitteln. Außerdem verwaltet die Klasse verschiedene Systemzustände. Diese sind: Problem aktiv, kein Problem aktiv oder alle Probleme gelöst. Eine Unterklasse von SystemCore ist DelaySelcter, die lediglich für ein zeitverzögertes Auswählen eines Problems verantwortlich it. Trotz der geringen Funktionalität musster die Klasse eigenständig implementiert werden, da ansonsten die Auswahl die Systemoberfläche blockiert hätte. Weiterhin befindet sich im systemcontrol-Paket die Klasse FileIO, die für Datenoperationen verantwortlich ist. Sie sucht nach Plugins im Plugin-Ordner (Vgl. S. 97 Abb. 41). A TECHNISCHE DOKUMENTATION A.1.2 98 Das systemcontrol.runtime-Unterpaket Im Paket systemcontrol befindet sich das runtime-Unterpaket, das aus drei Klasse besteht. ScoreCount realisiert die Zählung der Punkte. Dabei kann ein Problem Punkte addieren oder subtrahieren. Außerdem kann ein Pausezustand gesetzt werden, der zur Folge hat, dass die keine Punkteoperationen mehr durchgeführt werden können. In GameData werden alle Statusinformationen zusammengefasst und Schnittstellen für das Bereitstellen dieser Informationen für andere Klassen bereitgestellt. Die Spieldaten sind dabei der aktuelle Punktestand sowie eine Liste von gelösten Problemen. Damit diese beiden spielrelevanten Daten nicht (einfach) per Texteditor manipuliert werden können, wird GameData serialisiert als Objekt in eine Datei geschrieben. Da das Programm Plugin-fähig ist und die Auswahl der Plugins variabel sein kann, macht es keinen Sinn, die Zustände eines Plugins zu speichern, da das Problem bei einem anderen Programm nicht mehr vorhanden sein könnte. systemcontrol.runtime stellt außerdem die Klasse PluginFinder bereit. Sie kann über die Methode getPlugins() angesprochen werden. Diese ruft zuerst die Methode analyseDocs() auf, die mit Hilfe von systemcontrol.FileIO eine Liste von xmlPlugin-Dateien sucht. Anschließend werden die Plugin-Informationen mit Boolean checkPlugin( String file ) geprüft. Dort werden die Simulations-, die Animationsund weitere Klassen (Komponenten, Nachrichtentypen und Stadien), die zu einem Plugin gehören auf Vorhandensein und auf die Frage überprüft, ob die Klassen vorgegebene Interfaces implementieren. Ist dies der Fall, wird das Plugin anerkannt und die Daten aus der xml-Datei in ein Objekt der Klasse Plugin geladen. Dies besteht aus den Klassenpfaden und -namen und diversen Kurz- und/ oder Langbeschreibungen. Ein Feld von Plugin-Objekten wird dann an den Aufrufer zurückgegeben (Vgl. S. 99 Abb. 42). A TECHNISCHE DOKUMENTATION 99 Abbildung 42: UML-Diagramm 3: Laufzeitkomponenten zur Systemverwaltung A.1.3 Das systemcontrol.runtime.simulation-Unterpaket Jedes Problem simuliert den Austausch von Nachrichten und stellt außerdem eine Animation bereit. SystemSimulation in systemcontrol.runtime.simulation macht dies ebenfalls. Dazu werden zunächst Instanzen der Agenten-Klasse als Threads erzeugt. Diese senden Nachrichten aneinander, was von SystemSimulation koordiniert wird. Über die System-GUI kann dann die Simulation gestartet werden. Jetzt nehmen die Agenten ihre Arbeit auf und senden Nachrichten. Gleichzeitig wird eine Thread-Instanz der Klasse DelaySelecter des Pakets systemcontrol erzeugt, welche in einer festzulegenden Zeit ein Plugin/ Problem auswählt, das anschließend als aktuelles Problem (currentProblem) in SystemSimulation geladen wird (Vgl. S. 99 Abb. 42). A.1.4 Systemwerkzeuge: util.xmlhandling Das Paket util umfasst nur eine Klassen. XmlHandler stellt wie der Name schon sagt, Funktionalitäten zur Auswertung von XML-Dateien bereit. Dabei wird zu- A TECHNISCHE DOKUMENTATION 100 Abbildung 43: UML-Diagramm 4: Systemwerkzeuge nächst ein Parser geladen und anschließend die Anzahl der Knoten im Dokument ermittelt. Als Schnittstellen für andere Klassen kann entweder ein String-Wert an Hand eines Tag-Namen und einer Positionsnummer oder ein Feld von Stringwerten zu einem gegebenen Tag geladen werden (Vgl. S. 100 Abb. 43). A.1.5 Die Problemsimulation: problem Das Paket problem untergliedert sich in drei Unterpakte. problem.ressourcemodel stellt verschiedene Schnittstellen (Interfaces) für die Plugin-Programmierung bereit, problem.runtime enthält systemnahe Klassen zur „Verwaltung“ der Simulation verantwortlich sind und problem.simulationmodel stellt verschiedene Klassen bereit, die die Kommunikation simulieren und in Form von abstrakten Klassen oder Schnittstellen überschrieben werden müssen (Vgl. S. 101 Abb. 44). A.1.6 Die Problem-Schnittstellen: problem.ressourcemodell Das Interface Problemable ist der Kern der Problemsimulationen. Zu einem Problem gehört ein ProblemSolveTracker, Agenten-Objekte, ein Plugin-Objekt, Nachrichtentypen, funktionale Komponenten (FunctionComponents), Datenkomponen- A TECHNISCHE DOKUMENTATION 101 Abbildung 44: UML-Diagramm 5: das Problempaket ten (DataComponents), eine Liste von Ereignissen und von Problemstadien. Dazu kommen verschiedene getter-, adder- und setter-Methoden sowie das Herzstück, die sendMessage( Message msg )-Methode, die das Kommunikationsproblem simulieren soll. Mit der Methode addEvent( Event event, Message msg) können neue Ereignisse ausgelöst werden. Mit der Schnittstelle Componentable können verschiedene Komponenten definiert werden. Komponenten sind Werkzeuge oder Daten von Agenten, die die Kommunikation beeinflussen. Sie haben einen Namen. Im Interface FunctionComponentable werden funktionale Werkzeuge definiert. Sie stellen Methoden bereit, die das Verhalten der Kommunikationspartner ändern. Eine funktionale Komponente kann aktiv oder inaktiv sein. Außerdem kann einer funktionalen Komponente verschiedene Daten zugeordnet werden. Neben verschiedenen getter- und setter-Methoden ist die operate( Message msg, Event event )-Methode das Kernstück einer jeden Komponente, wo die eigentliche Funktionalität implementiert werden soll. Die Schnittstelle DataComponentable wird wie FunctionComponentable ebenfalls von Componentable abgeleitet. Ihr Herzstück ist keine Funktion, sondern ein bestimmter Wert value vom Typ Integer, eine Versionsnummer des Wertes (version) A TECHNISCHE DOKUMENTATION 102 und der Zugriffszustand isLocked, der angibt, ob auf die Komponente geschrieben oder von der Komponente gelesen werden darf. Eine genaue Definition dieses Zustand muss in der jeweiligen Implementierung der Schnittstelle festgelegt werden. In MessageType wird ein Interface bereitgestellt, welche die Definition verschiendener Nachrichtentypen ermöglicht. Jedem Nachrichtentypen werden zwei Events zugeordnet: ein Sendungs- und ein Empfangsereignis. Außerdem kann ein Nachrichtentyp verschiedene Optionen haben. Das Interface Animable steht für die Animation, die dem Problem zugeordnet wird. Sie wird in der System-GUI gezeichnet und stellt verschiedene Systemzustände grafisch dar. Aufgerufen wird eine Animation mit der Methode initPainting( Message msg ). Aus der Nachricht kann dann der Sender, der Empfänger und der Nachrichtentyp abgeleitet werden. Eine ProblemImplementierung kann außerdem einer Nachricht einen Zustand zuordnen, womit zum Beispiel ein Problem in der Kommunikation dargestellt werden kann. Das letzte Interface ist das Statable-Interface. Ein Status überprüft, ob ein (Teil)Problem gelöst wurde und gibt entspricht einen Wahrheitswert zurück. In einer Statable-Implementierung werden die Methoden operate, getState und getStateDescription definiert. operate( Message msg ) sollte beim Senden einer Nachricht in der Problem-Klasse aufgerufen werden und den Zustand des Status ändern (Problem gelöst oder ungelöst) (Vgl. S. 103 Abb. 45). A.1.7 Die Problem-Verwaltung: problem.runtime Die Klasse ProblemSolveTracker wird von einem Problem als Thread initialisiert und überprüft fortwährend, ob alle Teilprobleme gelöst sind. Einem Problem-Tracker werden also alle Statable-Interfaces übergeben. Sind alle Teilprobleme gelöst, wird eine Methode in der Problemsimulation aufgerufen, die das Problem beendet und den Status der Systemsimulation auf „kein Problem aktiv“ setzt. Außerdem läuft in ProblemSolveTracker eine Uhr, die die Zeit zur Problemlösung misst. Wird das Problem durch die Pause-Taste der GUI angehalten, stoppt die Zeit. Das Zeitmes- A TECHNISCHE DOKUMENTATION Abbildung 45: UML-Diagramm 6: die Problemschnittstellen 103 A TECHNISCHE DOKUMENTATION 104 Abbildung 46: UML-Diagramm 7: Paket zur Problemverwaltung sen ist dafür notwendig, damit Punkte an den Benutzer verteilt werden, die abhängig von der Lösungszeit sind. Wird das Problem vom Benutzer übersprungen, wird eine Methode im Hauptprogramm aufgerufen, die den Punktestand um 1000 Punkte vermindert. Die Plugin-Klasse fasst alle notwendigen Informationen zu einem Plugin in Form von Stringwerten zusammen. Dazu gehören etwa Klassennamen und -pfade für die Simulation und die Animation, die funktionalen und Daten-Komponenten sowie die Stadien und Nachrichtentypen. Außerdem enthält die Klasse verschiedene Kurzund/ oder Langbeschreibungen. Die Daten werden von der Klasse util.PluginFinder gesetzt und vor allem von der System-GUI verwendet(Vgl. S. 104 Abb. 46). A TECHNISCHE DOKUMENTATION A.1.8 105 Das Kommunikationsunterpaket: problem.simulationmodel In problem.communication werden Klassen beschrieben, die für die Kommunikation notwendig sind. Einem Agent-Objekt wird eine ID sowie ein Problem zugeordnet. Die Hauptaufgabe eines Agenten ist das Empfangen und das Senden von Nachrichten. Das wird in den Methoden sendMessage( Message msg ), retrieveMessage( Message msg ) und in der run() realisiert. In run werden Nachrichten automatisch an eine zufällige ID mit zufälligen Abständen von maximal 3,5 Sekunden gesendet, in sendMessage können Nachrichtenversendungen von Komponenten ausgelöst werden. Ein Agenten-Thread kann außerdem gesperrt werden, so dass entweder gar keine oder nur noch Komponenten-generierte Kommunikation stattfinden kann. Das Event-Klasse wird von einer Problemsimulation aufgerufen, wenn eine Nachricht gesendet oder empfangen wurde. Einem Event können vom Benutzer funktionale Komponenten zugeordnet werden, die dann bestimmte Funktionalität zur Lösung eines Problems bereitstellt. Daneben hat ein Event einen Namen, damit dieses in der GUI dargestellt werden kann. Über getter- und setter-Methoden können die assoziierten Komponenten hinzugefügt, entfernt oder geordnet werden. Objekte der Message-Klassen bilden eine Nachricht ab. Eine Nachricht hat stets einen Absender, einen Empfänger, eine ID, einen Nachrichtentypen sowie eine Botschaft. Über Konstruktoren werden Messages erzeugt, über getter-Methoden können sie von den funktionalen Komponenten ausgewerten und über setter-Methoden verändert werden. Das problem.simulationmodel-Unterpaket stellt für die Darstellung der Kommunikation auch den Nachrichtentyp „Standardnachricht“ bereit. Eine Standardnachricht hat nur die Option „Nachrichten-ID erzeugen“ und implementiert ansonsten die normalen Events, die von dem MessageType-Interface vorgegeben werden (Vgl. S. 106 Abb. 47). A TECHNISCHE DOKUMENTATION 106 Abbildung 47: UML-Diagramm 8: Nicht-generische Kommunikationskomponenten A TECHNISCHE DOKUMENTATION A.1.9 107 Die grafische Benutzeroberfläche: gui Das gui-Paket stellt Funktionen bereit, wie das System und vor allem die Probleme/ Plugins grafisch dargestellt werden können. Dabei gibt es für jedes Fenster und für jede Zeichnung eine eigene Klasse. Die Ressourcen zum Zeichnen der Oberfläche (Bilder) sind im Ordner „dates“ gespeichert und stammen aus einer freien Bilderund Grafiksammlung33 . Das Herzstück der grafischen Benutzeroberfläche ist die SystemGUI-Klasse, die als Datenelement ein Objekt des Interfaces Problemable erhält und daraus generisch die wichtigsten Daten für die Darstellung des Problems erzeugt. Durch diese wird ein Fenster erzeugt, dass die zentralen Bedienelemente der Simulation bereitstellt. Dazu gehören: • die Steuerungsbuttons, • das Menü, • den Ladebalken, • die Status- und Punkteanzeige, • die Übersichtsfläche, • die Nachrichtentypenoberfläche, • die Ereignisoberfläche und • die Werkzeugoberfläche Klassifieren kann man diese Komponenten in allgemeine Bedienelemente sowie in die Gruppen der einzelnen Tabs. Zu den allgemeinen Elementen gehören drei Buttons. Der „play“-Button startet die Simulation bzw. startet sie erneut, wenn das System im Pause-Zustand war. Der „pause“-Button hält die Simulation an, was vor 33 http://commons.wikimedia.org/wiki/Category:Fairytale_icons A TECHNISCHE DOKUMENTATION 108 allem bedeutet, dass keine Einstellungen an der Problemsimulation mehr vorgenommen werden können, dass der Punktestand nicht weitergezählt wird und dass die Agenten und die Animation anhalten. Der „forward“-Button ermöglicht es dem Benutzer, ein Problem zu überspringen, was einen Punktabzug zur Folge hat. Im Menü stehen die Funktionen „Spiel laden“ und „Spiel speichern“ zur Verfügung, die mit Hilfe der util.GameData-Klasse entsprechende Operationen ausführen. Außerdem kann das Spiel beendet werden und es können verschiedene Hilfefenster angezeigt werden. Weiterhin sind in der allgemeinen Oberfläche eine Statusanzeige, die wichtige Systeminformationen auf den Bildschirm schreibt, eine Punktestandsanzeige, die von der Klasse systemcontrol.ScoreCount gesteuert wird und ein Fortschrittsbalken (JAVAx.S WING.JProgressBar), der Systemprozesse verdeutlichen soll. Daneben gibt es vier Tabs. Im ersten Tab, dem Übersichtstab, werden Informationen zum Stand der Simulation (z.B. „2 von 3 Teilproblem sind gelöst“, „derzeit funktioniert die Kommunikation problemlos“) angezeigt und daneben befindet sich die aktuelle Animation, die die textuelle Beschreibung grafisch unterstützt. Die Animation wird zu Beginn einer Probleminitialisierung (problemabhängig) geladen. Die textuelle Beschreibung ändert sich in Abhängigkeit von der ProblemSolveTracker-Klasse ebenso wie die Animation, die abhängig von der Problemsimulation ist, wenn verschiedene Stadien der Problembearbeitung erreicht werden. Der „Nachrichtentypen-Tab“ stellt eine Nachricht als Bild dar und beschreibt kurz, was ein Nachrichtentyp ist und warum verschiedene Typen notwendig sind. Außerdem können hier Nachrichtentypenoptionen eingestellt werden. Im Ereignis-Tab werden links in Abhängigkeit der funktionalen Komponenten eines Problems alle diese Komponenten dargestellt. Wie bei den Nachrichtentypen erfolgt auch auf dieser Seite eine kurze Erläuterung, was Ereignisse sind. Auf der rechten Seite sieht man eine Combo-Box, die alle Events des Problems zur Auswahl stellt. Mit Hilfe von Drag and Drop können funktionale Komponenten von links zu den Ereignissen rechts gezogen und damit zugeordnet werden. Die Assoziation wird dann grafisch sichtbar. Diese Operation kann natürlich rückgängig gemacht werden. Entsprechend des Event-Designs können einem Event auch mehrere Werkzeuge zugeordnet werden. A TECHNISCHE DOKUMENTATION 109 Die Zuordnung ist an sich auch geordnet. Die Ordnung kann ebenfalls per Drag and Drop geändert werden. Mit einem „Klick“ auf die rechte Maustaste kann man die Werkzeugbeschreibung zu einer funktionale Komponente einsehen. Im WerkzeugTab kann der Nutzer Informationen zu Werkzeugen allgemein und Parameter zu den vom Problem bereitgestellten Werkzeugen ansehen und verändern. Animationen und Zeichnungen werden in JAVAx.S WING.JPanels dynamisch und problemzustandsabhängig geladen. Diese Zeichnungen werden in eigengen Klassen definiert. Die SystemAnimation-Klasse stellt die Animation im Übersichtstab bereit. Sie zeichnet zunächst einen Hintergrund (Stadtkarte von Jena), sechs Agenten und Verbindungslinien zwischen diesen. Die Systemsimulation ruft bei jeder Nachrichtenübertragung die Methode initPainting auf, die die Koordinaten der Senderund Empfängeragenten zuordnet und anschließend den Weg berechnet. Mit Abständen von 200ms werden dann Nachrichten zwischen den beiden Punkten in Weg/20 Pixel-Abständen neugezeichnet. Während eine Nachrichtenübertragung stattfindet, wird die Animation für andere Sendungen blockiert, die aber trotzdem stattfinden können. Der Punktestand bemisst sich aber nur nach gezeichneten Nachrichtenübertragungen. Die Animation kann vom System auch komplett gestoppt, etwa wenn es sich im Pause-Modus befindet. Die Klasse FlowDiagram zeichnet ein Ereignis und darunter der Reihenfolge nach die zugeordneten funktionalen Komponenten. Die Klasse ComponentPainter zeichnet alle Werkzeuge und die DragPainter-Klasse ist für das Zeichnen einer Komponente während des Ziehens (Drags) verantwortlich. Ein weiteres Fenster wird durch die Klasse MayorMessageGUI bereitgestellt. Diese zeichnet in Abhängigkeit von zwei String-Parameter des Konstruktors einen kurzen Text in die Titelleiste und einen langen in ein Textfeld. Daneben ist ein Bild des Bürgermeisters zu sehen. Durch das Klicken auf einen OK-Button schließt man das Fenster. Funktionalität bietet die Klasse ansonsten keine. Die Klasse SystemMessageGUI gibt lediglich in Abhängigkeit eines String-Parameters eine Botschaft zu Dateioperationen aus (Vgl. S. 110 Abb. 48). A TECHNISCHE DOKUMENTATION 110 Abbildung 48: UML-Diagramm 9: Das GUI-Paket A.1.10 Vorgabe zur Struktur von Plugins Plugins müssen oder können Interfaces aus dem Unterpaket problem.ressourcemodel implementieren, zentrale Informationen in einer XML-Datei bereitstellen und in den Plugin-Ordner gepackt als JAR-Datei abgelegt werden, damit das Hauptprogramm sie verarbeiten kann. Pflicht ist das Implementieren der Schnittstellen Problemable und Animable. Daneben kann eine beliebige Anzahl von Statable-, FunctionComponentable-, DataComponentable- und MessageType-Implementierungen angeboten werden, ohne die die Simulation wohl keinen Sinn machen würde. Besonders müsste mindestens ein Status vorhanden sein, damit kontrolliert werden kann, ob das Problem gelöst ist. Außerdem müsste mindestens eine Komponente oder ein Nachrichtentyp geschrieben werden, damit das Verhalten der Simulation vom Benutzer beeinflusst werden kann. Die Implementierungen müssen weiterhin in einer bestimmten Struktur angeordnet werden. Im Unterpaket plugin.PLUGINNAME müssen die Problemable- Implementierung sowie die XML-Beschreibung des Problems zu finden zu sein. Außerdem ist es anzuraten, dass im Verzeichnis plugin/exampleproblem/dates alle Bilder und andere Dateien gespeichert werden, die zur Darstellung oder Implementierung A TECHNISCHE DOKUMENTATION 111 des Plugins nötig sind. Die komplette Paketstruktur kann man Tabelle 7 entnehmen. PAKET I NTERFACES plugin.PLUGINNAME Problemable plugin.PLUGINNAME.data Bilder, Textdateien etc. plugin.PLUGINNAME.animation Animable plugin.PLUGINNAME.ressources.messagetypes MessageType plugin.PLUGINNAME.ressources.components.functioncomponents FunctionComponentable plugin.PLUGINNAME.ressources.components.datacomponents DataComponentable plugin.PLUGINNAME.ressources.states Stateable Tabelle 7: Vorgegebene Paketstruktur eines Plugins A.1.11 Pluginbeschreibung in XML-Dateien Das Programm ist in der Lage, dynamisch Plugins zu laden. Dazu müssen die classDateien in einen Unterordner im Plugin-Paket abgelegt werden. Weiterhin müssen die Klassen die Interfaces aus dem problem-Paket implementieren und ex muss eine XML-Datei vorhanden, die das Problem beschreibt, damit das Laden des Plugins erfolgreich ist. Die XML-Datei ist nach dem Standart des W3Cs (World Wide Web Consortium) „wohlgeformt“ [Con02]. Eine solche Plugin-XML-Datei muss mit einem plugin-Tag beginnen und schließen, dem sogenannten Wurzelelement. Dazwischen werden zunächst der Klassenname, eine Beschreibung, ein Ordner und die Animation beschrieben. Anschließend werden zusätzliche Klassen wie funktionale und Datenkomponenten, Nachrichtentypen und Stadien beschrieben. Ein Plugin-Parser überprüft die Korrektheit der Angaben und lässt schließlich das Plugin zu oder verweigert es, wenn es die Vorgaben verletzt. A TECHNISCHE DOKUMENTATION A.2 112 Beschreibung der Plugins EINLEITUNG ERGÄNZEN A.2.1 Verlorene Nachrichten Das Plugin „Verlorene Nachrichten“ enthält folgende Klassen: • LostMessage • LostMessageAnimation • AcknowledgementType • Acknowledgement • SendRepeating • SendRepeatingStop • LosingOfMessageState • SendState Das Herzstück des Plugins ist die LostMessage-Klasse. Sie implementiert Problemable. Die sendMessage-Methode erzeugt dabei eine Zufallszahl zwischen 0 und 100. Ist der Wert größer als der einer Verlustkonstante PROPLOST, wird die Nachricht normal gesendet, sonst geht sie verloren. Dies wird über einen Zusatz im Text-Element der Nachricht gekennzeichnet. Die Animation zeigt dann keine blaue Nachricht mehr, die von Agent X zu Agent Y geschickt wird, sondern eine rote Nachricht, die bei der Hälfte verschwindet. Daneben implementiert die Klasse hauptsächlich die einfachen getter- und setter-Methoden des Interfaces und initialisiert die Kommunikation und übernimmt aus der Systemsimulation die Agenten. A TECHNISCHE DOKUMENTATION 113 Die Klasse LostMessageAnimation ist eine Implementierung des Animable-Interfaces. Auch sie zeichnet eine Stadt im Hintergrund und die Agenten sowie die Verbindungslinien zwischen ihnen. Außerdem wird die Nachrichtendarstellung auf gleiche Weise realisiert wie in SystemAnimation. Da aber grüne Nachrichtenbestätigungen gleich nach dem Eintreffen einer Standardnachricht gezeichnet werden sollen, werden nicht die Nachrichten beliebig aussortiert, die wie in der Systemanimation in der Systemsimulation zu einem Zeitpunkt ankommen, während die Animation gerade zeichnet, und später von einer neuen Nachricht überschrieben werden, sondern es wird ein Stack verwendet, der alle Nachrichten tatsächlich, wenn auch zeitverzögert, in richtiger Reihenfolge zeichnet. Nachrichten können dadurch nicht mehr verschluckt werden. AcknowledgementType implementiert MessageType. Im Vergleich zur Standardnachricht wird lediglich die Option „Nachrichten-ID zitieren“ hinzugefügt. Ist diese nicht ausgewählt, kann das Sendungswiederholungen-stoppen-Werkzeug nicht die richtige Nachrichten-ID bestimmen und die entsprechende Nachricht nicht aus der Sendungswiederholung entfernen. In der Acknowledgement-Klasse wird das Versenden einer Nachrichtenbestätigung implementiert. Die Klasse ist dem Interface FunctionComponentable zugeordnet und verschickt in der operate-Methode lediglich eine Nachricht vom Typ Nachrichtenbestätigung. Ist eine Nachricht empfangen worden, wird aus der ursprünglichen Nachricht der Sender als Empfänger und Empfänger als Sender definiert. Ist dies nicht der Fall, bleiben Sender und Empfänger gleich. Die Nachrichten-ID wird in Abhängigkeit der gewählten Nachrichtentypoption aus der ursprünglichen Nachricht zititert oder neugeneriert, wobei dies nicht zum gewünschten Ergebnis für den Benutzer führt. SendRepeating ist ebenfalls eine Implementierung von FunctionComponentable. Sie hat einen JAVA.util.HashSet-Datensatz, in der Nachrichten gespeichert werden, die wiederholt gesendet werden soll. Genau dies tut die Komponente auch in der operate-Methode. Ist eine Nachricht noch nicht im HashSet, wird sie hinzugefügt A TECHNISCHE DOKUMENTATION 114 und anschließend immer wieder gesendet. Da dies zu einer Blockierung der Leitung führt, können andere Agenten nicht mehr senden und werden gesperrt. Von der Sperrung wird neben dem Sender aber auch der Empfänger ausgenommen, damit dieser eventuell eine Bestätigung versenden kann. Die Sperrung wurde deshalb eingefügt, damit in der Animation die Sendungswiederholung ohne Abbruch in alle Konsequenz gezeigt werden kann. Die Klasse SendRepeatingStop entfernt eine Nachricht aus dem Hashset von SendRepeating, wenn diese eintrifft. Damit sie entfernt werden kann, ist es notwendig, dass auch tatsächlich der Absender der ursprünglichen Nachricht eine Nachricht empfangen hat. In der Statable-Implementierung SendState wird lediglich überprüft, ob eine Nachrichtenblockierung vorhanden ist, die durch eine nicht abbrechende Sendungswiederholung ausgelöst wurde. Wenn das der Fall ist, wird an den Problem-Tracker ein false gesendet und das Problem gilt weiterhin als ungelöst. In LosingMessagesState wird überprüft, ob eine Nachricht, die gesendet wurde, aber nicht ankam später beim Benutzer ankommt. Ist das der Fall, gilt das Teilproblem als gelöst. A.2.2 Falsche Nachrichtenreihenfolge Das Plugin „Falsche Nachrichtenreihenfolge“ enthält folgende Klassen: • WrongMessagesOrder • WrongMessagesOrderAnimation • AddMessageToList • AddTimeStemp • IncTimeStemp • RefreshTimeStemp A TECHNISCHE DOKUMENTATION 115 • SortAndOutput • OrderingState Die Klasse WrongMessagesOrder implementiert Problemable und stellt die zentrale Funktionen sendMessage( Message msg ) und initSimulation() bereit. initSimulation() übernimmt zunächst standardmäßig alle Agenten und sperrt anschließend alle außer den Agenten mit der Nummer vier, dem in der Simulation eine besondere Rolle zukommt. Dieser hat einen farbigen Code und sendet ihn an seine Kollege. Der Code besteht aus vier Farben und wird in vier unterschiedlich gefärbten Nachrichten verschickt. sendMessage( Message msg ) sammelt zunächst pro Empfänger vier Nachrichten und fügt dem Nachrichtentext eine Zahl zwischen Null und Drei bei, anhand der Agent die Farbe erkennen kann. Dann wird mit einer Wahrscheinkeit von 25 % die Nachrichtenreihenfolge von zwei Nachrichten vertauscht. Zudem werden pro Agent eine Datenkomponente initialisiert, die die Reihenfolge der Nachrichten speichert. Das Plugin stellt daneben noch fünf funktionale Komponenten bereit. AddMessageToList fügt eine Nachricht in eine Liste ein und speichert diese zwischen. Diese muss dem richtigen Ereignis zugeordnet sein, damit die Agenten überhaupt den farbigen Code speichern können. AddTimeStemp verändert eine Nachricht von einem Agenten und fügt ihr den aktuellen Zeitstempel des Absenders bei. IncTimeStemp erhöht einfach den Zeitstempel des Agenten. RefreshTimeStemp vergleicht den Zeitstempel der Nachricht mit dem eigenen und ersetzt den eigenen mit dem der Nachricht, wenn der Nachrichtenzeitstempel höher ist. SortAndOutput sortiert die Nachrichten aus der Nachrichtenliste nach dem Zeitstempel der Nachrichten. Die Datenkomponente WaitingList speichert den aktuellen Zeitstempel eines Agent in der Integer-Variable value und zudem die Nachrichtenliste. Zusätzlich zu den Interface-Vorgaben werden die Methode add( Message msg ), removeAll() und changeElements( int a, int b ) implementiert, die eine Nachricht zur Nachrichtenliste hinzufügen, alle entfernen oder die Plätze zweier Elemente tauschen. A TECHNISCHE DOKUMENTATION 116 Die Status-Implementierung OrdingState überprüft, ob tatsächlich eine Sortierung der Nachrichten nach dem Zeitstempel vorgenommen wird. Implementierungen von Nachrichtentypen werden nicht benötigt, alle versendeten Nachrichten sind vom Typ StandardMessge. WrongMessageOrderAnimation stellt das Problem grafisch dar. Unter den Agenten wird eine farbige Kombination angezeigt, die der Reihenfolge der Nachrichten entspricht. Agent Nummer 4 hat immer die richtige Reihenfolge und ist der einzige, der Nachrichten in dieser Problemsimulation sendet. Neben den Agenten kann man außerdem ein Feld mit einer Nummer sehen, das dem Zeitstempel entspricht. Nachrichten werden entsprechend der Stelle im Code eingefärbt. A.2.3 Inkonsistentes Nutzen gemeinsamer Ressourcen Das Problem Inkonsistentes Nutzen gemeinsamer Ressourcen enthält folgende Schnittstellenimplementierungen: • InconsistentRessources • InconsistentRessourcesAnimation • Ressource • SendRessource • SendWriteAuthorization • RefreshRessource • CurrentVersionFinder • ReadDemandType • WriteDemandType • RessourceType • WriteAuthorizationType A TECHNISCHE DOKUMENTATION 117 • WriteType • RessourceState • QuorumState Die Klasse InconsistentRessources implementiert die Schnittstelle Problemable und simuliert das Problem der inkonsisten Nutzung gemeinsamer Ressourcen. Dabei bedient sich die Klasse einer Unterklasse Simulation, die die Kommunikation bei dem recht komplexen Problem kontrolliert. Wie im Problem der falschen Nachrichtenreihenfolge werden zunächst von InconsistentRessources alle Agenten gesperrt. Anschließend wählt die run()-Methode von Simulation einzelne Agenten aus, die Schreib- und Leseanfragen stellen und dafür temporär entsperrt werden. Die entsperrten Agenten stellen Lese- oder Schreibanfragen entsprechend eines festzulegenden Quorums an andere Agenten und erwarten eine Antwort. Die sendMessage( Message msg )-Methode des Problems ist entsprechend knapp gefasst, da die Simulation die eigentliche Arbeit verrichtet. Wie im Problem falsche Nachrichtenreihenfolge gibt es je Agent wieder eine Datenkomponente, die die gemeinsam genutzte Ressource repräsentiert. Der Name dieser Klasse ist Ressource. Eine Ressource wird beschrieben durch einen Wert value, einen Sperrungszustand eine Versionsnummer. Die Komponente speichert darüberhinaus auch die ID des Agenten, mit der sie verknüpft ist und stellt einige Methoden zur Manipulation der Daten bereit sowie eine toString()-Methode, die als Schnittstelle zur Animation dient, die den aktuellen Wert und die aktuelle Version der Ressource darstellt. Auf Grund der Komplexität des Problems benötigt es eine größere Anzahl von Nachrichtentypen und funktionalen Komponenten. SendRessource bereitet das Versenden einer Ressource vor. Dabei wird eine Nachricht vom Typ RessourceType mit dem aktuellen Wert der Ressource und der aktuellen Version an einen anderen Agenten verschickt. SendWriteAuthorization bereit das Verschicken einer Schreiberlaubnis (Nachrichtentyp WriteAuthorizationType) vor und sperrt die Ressource A TECHNISCHE DOKUMENTATION 118 des Agenten für den Absender der Nachricht, die die Komponente ausgelöst hat. Die funktionale Komponente RefreshRessource ist die Hauptkomponente des Problems und bearbeitet in der operate( Message )-Methode gleich mehrere Aufgaben. Zunächst zählt die Methode die Anzahl der Ereignisse, auf die die Komponente reagiert. Überschreitet diese Anzahl das Quorum, wird die eigene Ressource aktualisiert und es werden Nachrichten vom Typ WriteType an die Agenten geschickt, die eine Schreiberlaubnis gegeben haben. Wird eine Schreiberlaubnis verweigert, wird ein neuer Agent angeschrieben, der noch nicht befragt wurde. Scheitert das Quorum endgültig, werden die restlichen Agenten, die bereits eine Erlaubnis versendet haben, wieder entsperrt. Die funktionale Komponente CurrentVersionFinder überprüft beim Empfang einer Ressource, ob dessen Version höher ist als die eigene. Ist das der Fall, wird der neue Wert an Stelle des alten gespeichert. War die empfangene Nachricht vom Typ WriteType, wird die Ressource versucht zu entsperren. Die Nachrichtentypen ReadDemandType und textitWriteDemandType werden zu Beginn der automatisch Simulation versendet. Beiden Typen werden Optionen beigefügt, wieviele Agenten mindestens für das Zustandekommen eines entsprechenden Quorums benötigt werden. Das Plugin stellt zusätzlich zwei Problemlösestadien zur Verfügung. QuorumState überwacht dabei, ob die Bedingungen für ein Schreib- und Lesequorum erfüllt sind (Vgl S. 44, Formel 2). Der Überwacher RessourceState überprüft schließlich, ob das vom Benutzer eingestellte Quorum für Lese- und Schreibprozesse tatsächlich erfüllt ist. Die Animation des Plugins wird in der Klasse InconsistentRessourcesAnimation beschrieben. Sie stellt neben den Agenten und den Nachrichten mit unterschiedlichen Farben auch ein Schloss neben jedem Agenten dar, welches den Sperrungszustand der Ressource repräsentiert. Außerdem wird neben jedem Agenten ein Feld gezeichnet, welches den Zustand der eigenen Ressource darstellt. Dort zu sehen sind der aktuelle Wert der Ressource und die Versionsnummer. In der Mitte der Animati- A TECHNISCHE DOKUMENTATION 119 on wird zudem immer der reale Berechnungsstand angezeigt. Aktuelle Ressourcen werden dabei blau, nicht-aktuelle rot gezeichnet. A.2.4 Lauschangriff Das Mitlesen von Nachrichten und das Verhindern dieses Problems werden von folgenden Klassen realisiert: • Bugging • BuggingAnimation • Keys • Decrypt • Encrypt • RequestPublicKey • SendPublicKey • KeyRequestType • KeyType • CryptingState Bugging ist wieder die zentrale Klasse des Plugins. In ihr wird der Nachrichtenaustausch simuliert. Das Problem an sich, kann in dieser Klasse nicht simuliert werden, da es „über“ der Kommunikation steht, wer eine Nachricht mitlesen kann. Deshalb wird diese Funktionalität in die BuggingAnimation-Klasse ausgelagert. Dort wird zunächst die normale Kommunikation gezeichnet. Außerdem gibt es einen Agenten, der neben Sender und Empfänger eine Nachricht mitlesen kann. Von diesem A TECHNISCHE DOKUMENTATION 120 Agenten aus wird eine rote Linie auf das „Kabel“ bzw. die Nachricht, die ausgetauscht wird, gezeichnet. In der sendMessage( Message msg )-Methode der Hauptklasse wird jeder Nachricht vor dem Senden der Text „Klartext“ beigefügt. In der Animation wird dann überprüft, ob der Text noch so da ist oder nicht. Ist das der Fall, werden bei Empfänger und Mitleser eine Zeitung gezeichnet. Ist der Nachrichtentext verschlüsselt, wird beim Mitleser eine Zeitung mit Fragezeichen gezeichnet, was symbolisieren soll, dass die Nachricht nicht gelesen werden kann. Der Verschlüsselungsstatus der Nachricht wird außerdem mit über unterschiedliche Farben und ein offenes oder geschlossenes Schloss repräsentiert. Die Datenkomponente Keys wird allen sechs Agenten zugeordnet und repräsentiert eine Sammlung von öffentlichen Schlüsseln sowie den eigenen, geheimen Schlüssel. Mit dem Werkzeug Encrypt kann dann eine Nachricht verschlüsselt werden. Die Verschlüsselung wird von der Komponente bzw. der Entschlüsselungskomponente Decrypt tatsächlich vorgenommen. Allerdings in stark vereinfachter Form. So handelt es sich um einen Cäsar-Code mit ASCII-Alphabet, wobei der öffentliche Schlüssel der negative geheime Schlüssel ist. Aufwendigere Methoden machen für die interne Simulation sicher keinen Sinn. Die funktionale Komponente RequestPublicKey bereitet eine Anfrage vom Typ KeyRequestTyp vor, ob der Empfänger dem Absender seinen öffentlichen Schlüssel zusendet. Im Idealfall reagiert der Empfänger einer solchen Nachricht mit der Komponente SendPublicKey, die dem Absender den eigenen Schlüssel zustellt (Nachrichtentyp KeyType). Der Lösungszustand wird mit CryptingState überwacht, welcher überprüft, ob Nachrichten tatsächlich verschlüsselt werden und ob der Empfänger der Nachricht diese auch wieder entschlüsselt und dann lesen kann. A.2.5 Verfälschte Nachrichten Die folgenden Klassen implementieren das Problem der verfälschten Nachrichten: • MessageFake A TECHNISCHE DOKUMENTATION 121 • MessageFakeAnimation • CompareCheckSum • CreateCheckSum • EncryptCheckSum • DecryptCheckSum • SendReapting • RequestSendRepeating • RepeatRequestType • IntegrityState Das Problem wird wieder in der Hauptklasse, MessageFake simuliert. In der zentralen sendMessage( Message msg )-Methode wird zunächst ein Ort ausgewählt, an dem sich der Absender mit dem Empfänger treffen will. Wieder mit einer Wahrscheinlichkeit von 25 % tritt das Problem auf. In diesem Falle wird der Ort verändert. Insgesamt stehen fünf Orte zur Auswahl. Im Nachrichtentext wird dann die String-Konstante „fake“ angehängt, so dass es für die Animation ersichtlich wird, das etwas schief gegangen ist. Datenkomponenten werden für dieses Problem nicht benötigt. Als funktionale Komponente ist zunächst das Erstellen einer Prüfsumme von Bedeutung (CreateCheckSum). In ihr wird auf Basis des Nachrichtentextes, also des Ortes, eine Prüfsumme berechnet. Das Verfahren dafür ist eine Modulo-Operation durch 11. Das Ergebnis wird an die Nachricht herangehangen. Natürlich wurde darauf geachtet, dass nicht zwei Orte das gleiche Ergebnis bei dieser Operation aufweisen. In der Klasse CompareCheckSum wird die angehängte Prüfsumme mit einer selbsterrechneten Prüfsumme verglichen. Ist das Ergebnis ungleich, können weitere Komponenten ausgeführt werden, sonst passiert nichts. A TECHNISCHE DOKUMENTATION 122 Die funktionale Komponenten EncryptCheckSum und DecryptCheckSum kümmern sich um das Ver- und Entschlüsseln der Prüfsumme, damit diese nicht mitverfälscht werden kann. Die Grundlage dafür ist wieder ein Cäsar-Code. RequestSendRepeating erzeugt eine Nachricht vom Typ RepeatRequestType, die den Empfänger auffordert die vorherige Nachricht erneut zu senden. Da dabei der Inhalt der ursprünglichen Nachricht nicht verwendet werden kann und sich ein Agent auch nicht merkt, was er zuvor verschickt hat, wird ein neuer Treffpunkt vereinbart. SendRepeating sendet dann erneut eine Nachricht. IntegrityState überprüft die Konfiguration darauf, ob eine Nachricht erneut gesendet wird, wenn ein gemeinsamer Treffpunkt nicht zu Stande gekommen ist. Die Animation des Problems wird in der Klasse MessageFakeAnimation beschrieben. Die Animation ordnet wieder Nachrichten mit unterschiedlichen Typen verschiedene Farben zu. Ist die Nachricht verfälscht, erhält sie ebenfalls eine andere Farbe. Außerdem wird während des Übertragsvorgangs neben Absender und Empfänger ein Bild des Ortes gezeichnet, an dem sie sich treffen wollen. Sind die Orte unterschiedlich, weiß der Benutzer, dass die Nachricht verfälscht wurde.