Ziele
Die Studierenden haben grundlegende Fähigkeiten und Techniken, um nebenläufige Programme sicher entwickeln zu können. Sie kennen softwaretechnische Entwurfsmuster, welche bekannte Probleme bei nebenläufigen Programmen wie zum Beispiel die Verklemmung vermeiden lassen. Die Teilnehmer können
- die Performanz von Programmen durch den Einsatz der nebenläufigen Programmierung verbessern,
- bestehende Programme analysieren und mögliche Fehler erkennen und
- die Sprachmerkmale und Schnittstellen von JAVA für die nebenläufige Programmierung sicher anwenden.
Inhalt
Moderne Hardware-Architekturen lassen sich nur durch den Einsatz nebenläufiger Programme richtig ausnutzen. Die nebenläufige Programmierung garantiert bei richtiger Anwendung eine optimale Auslastung der Hardware. Jedoch sind mit einem sorglosen Einsatz dieser Technik auch viele Risiken verbunden. Die Veranstaltung stellt Vorteile und Probleme nebenläufiger Programme dar und zeigt, wie sich die Performanz von Programmen verbessern lässt:
- Nebenläufigkeit: Schnelleinstieg
- Anwendungen vs. Prozesse
- Programme und ihre Ausführung
- Vorteile & Probleme von nebenläufigen Programmen
- Verbesserung der Performanz
- Synchronisation
- Realisierung kritischer Abschnitte
- Monitore
- Lebendigkeit
- Verklemmungen
- Threads in Java
- UML-Modellierung von Nebenläufigkeit
- Neues zur Nebenläufigkeit in Java 5 und Java 6
- Realisierung von Nebenläufigkeit
- Fortgeschrittene Java-Konzepte für Nebenläufigkeit
Geplante Lernergebnisse/Kompetenzen
Die Studierende verfügen über ein grundlegendes konzeptionelles Verständnis über die Wirkweisen und das Zusammenspiel zwischen Betriebssystem und Anwendungssystemen bei der nebenläufigen Programmierung. Sie sind in der Lage, nebenläufige Anwendungen unter Verwendung der UML zu entwerfen und anschließend in Java umzusetzen. Durch die Anwendung der Methodik vermeiden sie das Programme verklemmt sind oder einzelne Kontrollflüsse verhungern.
Fach- und Methodenkompetenz
Die Studierenden verstehen die Komplexität bei der Entwicklung von nebenläufigen Programmen. Sie beherrschen die Überführung von nebenläufigen Aspekten aus unterschiedlichen Diagrammarten der UML in Java-Programme. Die Studierenden kennen die notwendigen Bedingungen, die vorliegen müssen, damit Programme verklemmt sind. Sie verfügen über Lösungskonzepte zur Vermeidung von Verklemmungen. Die Studierenden kennen die Funktionsweise eines Muli-Tasking-Betriebssystems und können die Kosten und Laufzeiten zur Verwaltung von Kontrollflüssen (threads) einordnen. Daraus ziehen sie auch Rückschlüsse, welche Entwurfsmuster bei welchen Problemkategorien eingesetzt werden müssen.
Fachübergreifende Methodenkompetenz
Die Studierenden können die vermittelten Konzepte, Methoden und das vermittelte Wissen auf andere Architekturen und Programmiersprachen übertragen.
Sozialkompetenz
Die Studierenden entwickeln Teamkompetenzen durch die Zusammenarbeit über die Online-E-Learning-Plattform.
Berufsfeldorientierung
Die nebenläufige Programmierung ist eine Querschnittsdisziplin, die bei der Programmierung unterschiedlichster Softwaresystem benötigt wird.
- Kursleiter/in: Doga Arinir