EN

Modul

Fortgeschrittene Objektorientierung [M-INFO-100809]

Leistungspunkte
5
Turnus
Unregelmäßig
Dauer
1 Semester
Sprache
Deutsch
Level
3
Version
1

Verantwortung

Einrichtung

  • KIT-Fakultät für Informatik

Bestandteil von

Teilleistungen

Identifier Name LP
T-INFO-101346 Fortgeschrittene Objektorientierung 5

Erfolgskontrolle(n)

Siehe Teilleistung.

Qualifikationsziele

Die Teilnehmer können die fundamentale softwaretechnische Bedeutung von Vererbung und dynamischer Bindung beurteilen. Sie können Verhalten und Implementierungstechniken für Einfach- und Mehrfachvererbung (zB Vtables, Thunks) im Detail analysieren, anwenden und bewerten. Sie können C++Subobjektgraphen, den dort verwendeten Dominanzbegriff sowie formale Definitionen von statischem und dynamischem Lookup analysieren und konstruieren. Sie beherrschen Details von Objektlayout, Type Casts, Überladungsauflösung und Smart Pointers, Inner Classes, generischen Klassen und Interfaces, und Wild Cards.

Die Teilnehmer können semantische Forderungen an Vererbung (insbesondere Verhaltenskonformanz) ableiten und anhand Beispielen analysieren (zB Rechteck vs Quadrat). Sie können die Grenzen klassischer Objektorientierung beurteilen (zB Probleme des Visitor-Patterns) und verstehen innovative Konzepte wie Traits, virtuelle Klassen, Aspektorientierung. Sie beherrschen die Grundlagen des Cardelli-Typsystems und können dessen Bedeutung beurteilen. Sie können Typisierungsregeln für objektorientierte Konstrukte herleiten (insbesondere Kontravarianz, Vererbung bei generischen Klassen, keine Vererbung bei generischen Instanzen, Behandlung rekursiver und abstrakter Typen). Sie beherrschen Verfahren zur Programmanalyse objektorientierter Programme (insbesondere Call Graphen für C++ [RTA] und objektorientierte Points-to Analyse) sowie die Lösung der dabei auftretenden Constraint-Systeme, können diese herleiten und anwenden.

Die Teilnehmer haben einen Überblick über das Spektrum objektorientierter Sprachen und können aktuelle Entwicklungen beurteilen.

Voraussetzungen

Siehe Teilleistung.

Inhalt

  • Verhalten und Semantik von dynamischer Bindung
  • Implementierung von Einfach- und Mehrfachvererbung
  • Generizität, Refaktorisierung
  • Traits und Mixins, Virtuelle Klassen
  • Cardelli-Typsystem
  • Call-Graph Analysen, Points-to Analysen
  • operationale Semantik, Typsicherheit
  • Bytecode, JVM, Bytecode Verifier, dynamische Compilierung

Empfehlungen

Siehe Teilleistung.

Arbeitsaufwand

Vorlesung 2 SWS und Übung 2 SWS, plus Nachbereitung/Prüfungsvorbereitung, 5 LP.

5 LP entspricht ca. 150 Arbeitsstunden, davon

ca. 30 Std. Vorlesungsbesuch

ca. 15 Std. Nachbearbeitung

ca. 30 Std. Übungsbesuch

ca. 43 Std. Bearbeitung Übungsaufgaben

ca. 1,5 Std schriftliche Prüfung (90 Min)

ca. 30 Std. Prüfungsvorbereitung