SWS |
4 |
ECTS |
5 |
Sprache(n) |
Deutsch
(Standard)
Englisch
|
Lehrform |
SU mit Praktikum |
Angebot |
im Wechsel mit anderen Fächern der gleichen Fachgruppe |
Aufwand |
30 Präsenzstunden Vorlesung, 30 Präsenzstunden Praktikum, 45 Stunden Vor-/Nachbereitung des Praktikums, 45 Stunden Nachbereitung der Vorlesung und Prüfungsvorbereitung |
Voraussetzungen |
Softwareentwicklung I und II |
Ziele |
Die Teilnehmer sollen in der Lage sein, auf der Basis der Kenntnisse aus den Grundlagenvorlesungen Softwareentwicklung I und II systematisch größere skalierbare und langfristig stabile Software zu entwickeln. |
Inhalt |
Die folgenden Themen werden in der Vorlesung behandelt beziehungsweise im Praktikum an Hand wechselnder Beispiele bearbeitet:
- OO-Entwurfsprinzipien (SOLID): Single Responsibility, Open/closed Principle, Liskov'sches Substitutionsprinzip, Interface Segregation, Dependency Inversion
- Faustregeln des OO-Entwurfs und deren Konsequenzen (DRY, KISS, YAGNI, Law of Demeter, God classes etc.)
- Entwurfsmuster zur Trennung von Zuständigkeiten (GRASP)
- Methoden des Refactoring
- Negative Sourcecode-Merkmale (Code Smells), Antipatterns und Umgang damit (Eliminierungsverfahren)
- Statische Codemetriken (Komplexitäts- und Kopplungsmaße) und deren Kontrolle
- Selbstanalyse von Code (Reflection und Annotationen)
- Rolle von Typen, Klassen und Interfaces (Type-Annotations, Nullability)
- Konzepte Immutability, Gleichheit, Identität, Clones und Kopien von Objekten
- Lebenszeit von Objekten gegenüber Prozessen und Lokalisierung in unterschiedlichen Systemen (persistente Objekte, Serialisierungsverfahren und ihre Eigenschaften, Transport von Objekten im Netzwerk)
- Prinzipien des API-Designs
- Praktische Umsetzung der Konzepte am Beispiel konkreter Java-Technologien
- Werkzeuge zur Unterstützung von Konstruktionsprinzipien (statische Stylechecker, Profiler, Coverage-Tools)
|
Medien und Methoden |
Tafel, Beamer, Praktikum |
Literatur |
- Fowler: Refactoring – Improving the Design of Existing Code
- Martin: Clean Code, A Handbook of Agile Software Craftsmanship
- GOF: Design Patterns
- Liskov, Guttag: Program Development in Java – Abstraction, Specification, and Object-Oriented Design
- Beck: Test Driven Development
|
Zuordnungen Curricula |
SPO |
Fachgruppe |
Code |
ab Semester |
Prüfungsleistungen |
IF Version 2019 |
FWP |
IF-I-B-F42 |
6 |
Modularbeit
Präsentation
|
IF Version 2023 |
FWP |
IF-I-B-F42 |
6 |
Modularbeit
Präsentation
|
IF Version 2025 |
FWP |
IF-I-B-F42 |
6 |
Modularbeit
Präsentation
|
|