Modul
Fortgeschrittene Objektorientierung [M-INFO-100809]
Leistungspunkte
5Turnus
UnregelmäßigDauer
1 SemesterSprache
DeutschLevel
3Version
1Verantwortung
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