Objektorientierter Softwareentwurf
Fakultät für Informatik und Mathematik ©
Name Objektorientierter Softwareentwurf
Verantwortlich Prof. Dr. Reinhard Schiedermeier
SWS 4
ECTS 5
Sprache(n) Deutsch
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 2012 FWP IF-I-B-F71 4 benotete mündliche Prüfung (60%)
benotete Studienarbeit (40%)