Lehrplan
·
·
Vor dem Start
·
Vorbemerkung
o
Box: JDK-Installation
unter Windows
§
Box:
Path-Einstellungen
o
Box: JDK-Installation
unter Linux
§
Box: CLASSPATH unter
Linux setzen
o
Box: BlueJ:
Installation und Projekte
o
Box: Java 1.5:
Installation
·
Aufbau &
Gliederung
·
Gruppierung: Nebenläufigkeit:
Schnelleinstieg
o
Anwendungen vs.
Prozesse (2 Tests)
o
Programme & ihre
Ausführung (ein Test)
o
threads &
scheduling (ein Test)
o
Gruppierung: Vorteile
und Probleme von nebenläufigen Programmen (ein Test)
§
Verbesserung der
Performance (ein Test)
§
Synchronisation (ein
Test)
§
Realisierung
kritischer Abschnitte (ein Test)
§
Monitore (ein Test)
§
Lebendigkeit (ein
Test)
§
Verklemmungen (ein
Test)
·
Gruppierung: Threads
in Java: Schnelleinstieg
o
Hello
World mit threads (ein Test)
o
Die Schnittstelle
Runnable
§
Box: Innere Klassen
in Java
§
Box: Generische
Klassen in Java
o
Zum Entwurf nebenläufiger
Anwendungen
§
Fallstudie:
Freizeitpark-Simulation (eine Aufgabe)
o
Synchronisation von
threads (ein Test, eine Aufgabe)
o
Monitore in Java (ein
Test, eine Aufgabe)
o
Verklemmungen in Java
o
Fallstudie:
Lagerverwaltung
§
Fallstudie: LVS 1:
nebenläufige Roboter
§
Fallstudie: LVS 2:
Synchronisation
·
Gruppierung:
UML-Modellierung von Nebenläufigkeit
o
Klassen- und
Objekt-Diagramme (ein Test)
o
Aktivitäts-Diagramme
(ein Test)
§
Box: Petri-Netze
o
Interaktions- und
Sequenz-Diagramme (ein Test)
o
Zustandsautomaten
(ein Test)
·
Gruppierung: Neues
zur Nebenläufigkeit in Java 5 (3 Aufgaben)
o
Zeiteinheiten angeben
mit TimeUnit (ein Test)
o
Gruppierung: Nebenläufige
Container-Klassen
§
Synchronisation vs.
Nebenläufigkeit (ein Test)
§
Warteschlangen (ein
Test, eine Aufgabe)
§
Fallstudie: LVS 3:
Auftrags-Warteschlange
§
Warteschlangen mit
Prioritäten
§
Container
und Copy-On-Write-Semantik (ein Test)
§
Fallstudie: LVS 4:
Beobachter-Muster
§
Nebenläufige HashMap
o
Gruppierung:
Auftragsorientierte Architektur
§
Ausführungsdienst für
Aufträge (ein Test)
§
Implementierungen von
ExecutorService
§
Aufträge mit
Ergebnis (ein Test)
o
Flexible Monitore
o
Leser-Schreiber-Synchronisation
o
Synchronisations-Objekte
in Java 5
o
Atomare Operationen
·
Gruppierung:
Realisierung von Nebenläufigkeit
o
Stapel & Halde
(ein Test)
o
Speicherverwaltung
mit mehreren threads (ein Test)
o
Realisierung von
threads 1.0 (ein Test)
o
Stapel & Halde in
Java (ein Test)
o
Prozessor & BS
(ein Test)
·
Gruppierung:
Fortgeschrittene Java-Konzepte für Nebenläufigkeit (eine Aufgabe)
o
Swing-GUIs und Nebenläufigkeit
(2 Aufgaben)
§
Arbeits-Thread:
Hauptfenster
§
Arbeits-Thread:
Fortschritts-Dialog
§
Arbeits-Thread:
Sortier-Thread
o
Fallstudie: LVS 5:
GUI
o
Gruppierung: Threads
kontrolliert beenden
§
Fallstudie:
Produktionsstrasse
§
Beenden mit stop()
§
shutdown flag
§
Threads unterbrechen
§
Herunterfahren oder
Unterbrechen
o
Gruppierung:
Java-Threads im Details
§
Die Klasse Thread
§
Box: Lebenszyklus
eines thread
§
Caches &
Synchronisation
§
Sicherung von run()
·
Gruppierung:
Verteilte Anwendungen
o
Hello World mit
Java-RMI (2 Aufgaben)
§
Box: RMI-Begriffe
o
Stummel-Objekte
§
Identität und
Gleichheit von Stummel-Objekten
o
Gruppierung:
Verteilung & Installation (eine Aufgabe)
§
Bereitstellung von
class-Dateien
§
Box: Abläufe beim
dynamischen Laden
o
Gruppierung: RMI
& UML
§
Artefakte
§
Verteilungs-Diagramme
o
Entwurfsprinzipien für
verteilte Anwendungen
§
Fabrik-Dienst
§
Wert-Objekte
§
Fassaden
o
RMI und Nebenläufigkeit
o
Fallstudie: LVS 6:
RMI-Unterstützung
o
Fallstudie: LVS 7:
Optimierungen