### PO 2020 ### ### Studiengang und Semester 3MOMI:2020 ### Modulbezeichnung Moderne Softwareentwicklung~~ ### Englische Modulbezeichnung Modern Software Development ### Art Pflichtfach ### ECTS-Punkte 5 ### Studentische Arbeitsbelastung 32, 118 ### Voraussetzungen (laut Prüfungsordnung) SWT Bachelor und Master 1 ### Empfohlene Voraussetzungen ### Pruefungsform und -dauer Klausur (120 min.) ### Lehrmethoden und Lernmethoden Multimedial aufbereitetes Online-Studienmodul zum Selbststudium mit zeitlich parallel laufender Online-Betreuung (E-Mail, Chat, Einsendeaufgaben u. a.) sowie Präsenzphasen. ### Modulverantwortlicher S. Edlich (BHT) ### Modulautor S. Edlich (BHT) ### Qualifikationsziele Festigung der Kenntnisse aus dem Bachelormodul Softwaretechnik und erlernen neuer Methoden der Praxis. Nach dem erfolgreichen Abschluss des Studienmoduls, sind die Studierenden in der Lage: - Elemente und Anwendung des UML Designs zu verstehen - ein praktisches Design zu entwerfen - Anforderungen und Systeme für die UML-Umsetzung zu analysieren - aus UML-Basiselementen ein System zu entwickeln - ihre vertieften Kenntnisse der Softwaretechnik, insbesondere modernere handwerkliche Fähigkeiten darzustellen und anzuwenden - moderne Techniken anzuwenden (Git, Jenkins, funktionale / loschige Prog., Maven / Gradle, Clean Code, etc.) - Moderne Tool-Chains in der Industrie wie praktisches Testen, Continous Delivery, Coding Guidelines anzuwenden und DSLs zu entwickeln - reale Problemstellungen auf Werkzeuge abzubilden - aus den Bausteinen (z. B. der logischen oder funktionalen Programmierung) ein Gesamtsystem zu entwickeln - die Effizienz eines Gesamtsystems zu evaluieren und zu bewerten - Basiselemente der modernen Vorgehensweise einzusetzen - Elemente (z. B. composition in logischer Programmierung) zusammenzusetzen - praktische Übungen der Methodik durchzuführen wie z. B. das Ausschöpfen der Mächtigkeit von composition oder lazyness - Problemstellungen auf abstrakte Konzepte abzubilden (auch hier z. B. comp und lazy) - aus den Methoden (z. B. der logischen oder funktionalen Programmierung) den gewünschten Effekt zu erzielen - die Unterschiede der verschiedenen Ansätze zu bewerten, z. B. verschiedene Methoden der Sprachen ### Lehrinhalte 1. Unified Modeling Language 2. Advanced Java 3. Software- und Architekturmetriken 4. Clean Code Development 5. Advanced Buildmanagement 6. Distributed Version Control Systems Vertiefung 7. Continous Integration / Continous Delivery 8. Aspect Oriented Programming 9. Funktionale Programmierung 10. Logische Programmierung 11. Externe und interne DSLs ### Literatur Oesterreich, Analyse und Design mit UML 2.3: Objektorientierte Softwareentwicklung, Oldenbourg Rady, Coffin, Continous Testing with Ruby, The Pragmatic Bookshelf Noel Rappin, Rails Test Prescriptions, The Pragmatic Bookshelf Robert C. Martin, Clean Code, Prentice Hall Boris Gloger, Scrum, Hanser Verlag Jez Humble, Continous Delivery, Addison-Wesley Signature Series Pastor, Model-Driven Architecture in Practice, Springer Fowler, Domain Specific Languages, Addison-Wesley Professional (Signature Series)