Ziele

Die Stu­die­ren­den haben grund­le­gen­de Fä­hig­kei­ten und Tech­ni­ken, um ne­ben­läu­fi­ge Pro­gram­me si­cher ent­wi­ckeln zu kön­nen. Sie ken­nen soft­ware­tech­ni­sche Ent­wurfs­mus­ter, wel­che be­kann­te Pro­ble­me bei ne­ben­läu­fi­gen Pro­gram­men wie zum Bei­spiel die Ver­klem­mung ver­mei­den las­sen. Die Teil­neh­mer kön­nen

  • die Per­form­anz von Pro­gram­men durch den Ein­satz der ne­ben­läu­fi­gen Pro­gram­mie­rung ver­bes­sern,
  • be­ste­hen­de Pro­gram­me ana­ly­sie­ren und mög­li­che Feh­ler er­ken­nen und
  • die Sprach­merk­ma­le und Schnitt­stel­len von JAVA für die ne­ben­läu­fi­ge Pro­gram­mie­rung si­cher an­wen­den.

Inhalt

Mo­der­ne Hard­ware-Ar­chi­tek­tu­ren las­sen sich nur durch den Ein­satz ne­ben­läu­fi­ger Pro­gram­me rich­tig aus­nut­zen. Die ne­ben­läu­fi­ge Pro­gram­mie­rung ga­ran­tiert bei rich­ti­ger An­wen­dung eine op­ti­ma­le Aus­las­tung der Hard­ware. Je­doch sind mit einem sorg­lo­sen Ein­satz die­ser Tech­nik auch viele Ri­si­ken ver­bun­den. Die Ver­an­stal­tung stellt Vor­tei­le und Pro­ble­me ne­ben­läu­fi­ger Pro­gram­me dar und zeigt, wie sich die Per­form­anz von Pro­gram­men ver­bes­sern lässt:

  • Ne­ben­läu­fig­keit: Schnell­ein­stieg
    • An­wen­dun­gen vs. Pro­zes­se
    • Pro­gram­me und ihre Aus­füh­rung
    • Vor­tei­le & Pro­ble­me von ne­ben­läu­fi­gen Pro­gram­men
      • Ver­bes­se­rung der Per­form­anz
      • Syn­chro­ni­sa­ti­on
      • Rea­li­sie­rung kri­ti­scher Ab­schnit­te
      • Mo­ni­to­re
      • Le­ben­dig­keit
      • Ver­klem­mun­gen
  • Thre­ads in Java
  • UML-Mo­del­lie­rung von Ne­ben­läu­fig­keit
  • Neues zur Ne­ben­läu­fig­keit in Java 5 und Java 6
  • Rea­li­sie­rung von Ne­ben­läu­fig­keit
  • Fort­ge­schrit­te­ne Ja­va-Kon­zep­te für Ne­ben­läu­fig­keit

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.






Semester: WiSe 2024/25