### PO 2020 ### ### Studiengang und Semester 5BOMI:2020, 5BOWI:2016, 5BOWI:2024, 1MOMI:2020 ### Modulbezeichnung Patterns und Frameworks ### Englische Modulbezeichnung Patterns and Frameworks ### Modulkürzel PFW ### Art BOMI: Pflichtmodul BOWI: Wahlpflichtmodul MOMI: Anpassungsmodul Eingangszweig Medien ### ECTS-Punkte 5 ### Studentische Arbeitsbelastung 38, 112 ### Voraussetzungen (laut Prüfungsordnung) keine ### Empfohlene Voraussetzungen Grundlagen der Programmierung 2, Softwaretechnik, Datenbanken ### Pruefungsform und -dauer mündliche Prüfung oder Kursarbeit nach Ansage des Lehrenden ### Lehrmethoden und Lernmethoden Multimedial aufbereitetes Online-Studienmodul zum Selbststudium mit zeitlich parallel laufender Online-Betreuung und regelmäßigen virtuellen Lehrveranstaltungen ### Modulverantwortlicher N. Streekmann ### ModulverantwortlicherVFH J. Ehlers (THL) ### Qualifikationsziele Die Studierenden können - ein Softwareprojekt mit vorgegebenen Anforderungen in der Programmiersprache Java selbstständig implementieren. - die vorgestellten Entwurfsmuster in der Anwendungsentwicklung erkennen und selbst bewusst einsetzen. - eine adäquate Softwarearchitektur unter Berücksichtigung der vorgestellten Architekturmuster und Frameworks entwerfen. - die vorgestellten Frameworks in einem Projekt gezielt einsetzen. - synchrone und asynchrone Kommunikation jeweils mittels verschiedener Ansätze (RMI/Web Services, Sockets/Web Sockets) in einer verteilten Java-Anwendung umsetzen und diesbezüglich Vorund Nachteile erörtern. - komplexe Verarbeitungsprozesse in Java aufteilen, effizient parallelisieren und synchronisieren. Sie können diesbezüglich Vor- und Nachteile unterschiedlicher Ansätze erörtern. ### Lehrinhalte Einleitung - Ziele und Struktur des Moduls - Objektorientierung und UML-Klassendiagramm als Wiederholung - Softwareprojekt als Prüfungsleistung Entwurfsmuster - Erzeugungsmuster (Singleton, Fabrikmethode und Dependency Injection) - Strukturmuster (Kompositum, Proxy, Adapter und Fassade) - Verhaltensmuster (Beobachter, Strategie) Architekturmuster - Schichtenarchitektur und MVC/MVVM - Komponenten-basierte Architektur - Microservices Verteilte Programmierung - Synchrone und asynchrone Kommunikation im verteilten System - Remote Method Invocation (RMI) - SOAP Web Services - REST Web Services - Objekt-Relationales Mapping (ORM) und Spring Data - Sockets und Web Sockets Frameworks - Desktop-App mit JavaFX - Mobile-App mit Android - Web-App mit Angular Nebenläufige Programmierung - Nebenläufigkeit und Parallelität - Threads in Java - Synchronisation von Threads - Thread Pooling und Futures ### Literatur Joshua Bloch: Effective Java - Best Practices für die Java-Plattform, dpunkt, 3. Aufl., 2018. Matthias Geirhos: Entwurfsmuster - Das umfassende Handbuch,Rheinwerk Computing, 2015. Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides:Entwurfsmuster - Elemente wiederverwendbarer objektorientierter Software, Addison-Wesley, 6. Aufl., 2010. Michael Inden: Der Java-Profi - Persistenzlösungen und RESTServices, Datenaustauschformate, Datenbankentwicklung und verteilte Anwendungen, dpunkt, 2016. Michael Inden: Der Weg zum Java-Profi - Konzepte und Techniken für die professionelle Java-Entwicklung, dpunkt, 4. Aufl., 2017. Veikko Krypczyk, Olena Bochkor: Handbuch für Softwareentwickler: Das Standardwerk zu professionellem Software Engineering,Rheinwerk Computing, 2018. Christoph Kecher, Alexander Salvanos, Ralf Hoffmann-Elbern: UML 2.5 - Das umfassende Handbuch, Rheinwerk Computing, 6. Auflage, 2017. Bernhard Lahres, Gregor Rayman, Stefan Strich: Objektorientierte Programmierung - Das umfassende Handbuch. Prinzipien guter Objektorientierung auf den Punkt erklärt, Rheinwerk Computing, 4. Aufl., 2018. Robert Martin: Clean Code - Refactoring, Patterns, Testen und Techniken für sauberen Code, mitp, 2009. Robert Martin: Clean Architecture - Gute Softwarearchitekturen - Das Praxis-Handbuch für professionelles Softwaredesign. Regeln und Paradigmen für effiziente Softwarestrukturierung, mitp, 2018. Bernd Oestereich, Axel Scheithauer: Analyse und Design mit der UML 2.5 - Objektorientierte Softwareentwicklung, De Gruyter Oldenbourg, 11. Auflage, 2013. Kai Spichale: API-Design: Praxishandbuch für Java- und Webservice- Entwickler, dpunkt, 2016. ### Titel der Lehrveranstaltung Pattern und Frameworks ### Dozent N. Streekmann ### SWS 4