Pruefungsfragen Einleitung (nicht fuer Uebungsteilnehmer) 1. Was sind die Eigenschaften eines Objekts 2. Erklaeren Sie: Objekt-Identitaet 3. Kopieren von Objekten (Arten, Unterschiede) 4. Was versteht man unter "Datenkapselung" (Encapsulation) 5. Erklaeren Sie die Begriffe: Objekt, Instanzvariable, Methode, Message und Klasse/Typ. 6. Erklaeren Sie das Prinzip der Vererbung in Klassenhierarchien und beschreiben Sie dessen vorteilhaften Eigenschaften. 7. Was versteht man unter "Polymorphismus". Warum ist es guenstig Polymorphismus anzuwenden? 8. Warum ist in objektorientierten Systemen "spaetes Binden" erforderlich/sinnvoll? 9. Welchen Zusammenhang haben Objekte mit abstrakten Datentypen? 10. Welche Grade der Datenkapselung gibt es? 11. Variablen in objektorientierten Systemen 12. Was ist eine Signatur? Welche Rolle koennen logische Bedingungen als Teil einer Signatur eingehen? Smalltalk (nicht fuer Uebungsteilnehmer) 1. Wie werden Abfragen (if-statements) in Smalltalk implementiert? 2. Wie sind Schleifen in Smalltalk implementiert? Wo findet man Schleifenoperationen in der Klassenbibliothek? 3. Erklaeren Sie den Unterschied zwischen Klassenvariablen und Class Instance Variables 4. Was sind Collections? Worin besteht ihr Nutzen? 5. Geben Sie Beispiele fuer verschiedene Vererbungssichten in der Smalltalk-Klassenbibliothek an. 6. Nach welchen Funktionalitaetsaspekten kann man die Smalltalk-Collection-Hierarchie strukturieren? 7. Welche Operationen koennen auf verschiedenen Collections ausgefuehrt werden? Vererbung 1. Was sind die 4 unvereinbaren Ziele bei der Verwendung von Typsystemen? Welche Kompromisse muss man eingehen? 2. Erklaeren sie die verschiedenen Typkonstruktoren und welche Arten von Klassen mit ihnen aufgebaut werden koennen. 3. Fuer welche Zwecke koennen Subklassenbeziehungen eingesetzt werden 4. Was sind die Nachteile/Vorteile dieser verschiedenen Verwendungszwecke? 5. Was bedeutet "Implementierungsvererbung"? (nicht fuer Uebungsteilnehmer) 6. Was bedeutet "Spezifikationsvererbung"? (nicht fuer Uebungsteilnehmer) 7. Was bedeutet "Spezialisierung"? (nicht fuer Uebungsteilnehmer) 8. Erlaeutern Sie das Yoyo-Problem. (nicht fuer Uebungsteilnehmer) Durch welche Betrachtungsweise entsteht es? 9. Was ist Zusammensetzung? 10. Was ist der Unterschied zwischen Typ und Klasse? 11. Wie ist eine Subtypbeziehung definiert? 12. Erlaeutern sie den Begriff der Kovarianz. 13. Erlaeutern sie den Begriff der Kontravarianz. 14. Was sind Mixins? 15. Geben sie Entwurfsrichtlinien fuer Vererbungsbeziehungen an. 16. Was ist Delegation? Wo wird der Begriff in klassenbasierten Systemen ebenfalls verwendet? 17. Was sind Rollen (Roles)? 18. Vorteile/Probleme bei Mehrfachvererbung UML/OMT (nicht fuer Uebungsteilnehmer) 1. Beschreiben Sie ein moegliches Vorgehensmodell fuer den Softwarerentwurf unter Verwendung der UML-Notation 2. Was ist ein Use Case, und wie wird er beschrieben/dokumentiert? 3. Eigenschaften von Klassendiagrammen 4. Erlaeutern Sie den Begriff der Assoziation. 5. Erlaeutern Sie den Begriff der Aggregation und Komposition. (Z.B., wann verwende ich sie?) 6. Eigenschaften von Zustandsdiagrammen. 7. Was sind Aktionen (entry/exit-Aktionen? 8. Parallelitaet und hierarchische Gliederung von Zustandsdiagrammen 9. Zusammenhang zwischen Sequenz-, Kollaborations- und Zustandsuebergangsdiagrammen. 10. Wo finden sich Operationen in Sequenzdiagrammen? In Zustandsdiagrammen? 11. Geben Sie Kriterien fuer die Qualitaet bzw. Verbesserung des Entwurfs an (Vererbung, Klassen, Attribute, Assoziationen). 12. Welche hierarchischen Strukturierungsmoeglichkeiten gibt es? Wirfs-Brock 1. Erklaeren Sie "Subsysteme". 2. Wie verhalten sich Verpflichtungen und Kontrakte zueinander? 3. Erlaeutern Sie das Client-Server-Prinzip. 4. Notationshilfsmittel fuer die RDD-Methode 5. Was wird durch Kollaborationsgraphen ausgedrueckt? 6. Welche Gestalt haben die verschiedenen Entwurfsdokumente? 7. Wie finde ich Kandidatenklassen? 8. Wie finde ich moegliche Responsibilities/Collaborations? 9. Erlaeutern Sie den Begriff der Responsibility. 10. Erlaeutern Sie den Begriff der Collaboration. 11. Erlaeutern Sie den Begriff des Kontrakts. 12. Beschreiben Sie den Ablauf des Entwurfsvorgangs mit RDD. 13. Geben Sie Kriterien fuer die Qualitaet bzw. Verbesserung des Entwurfs an (Vererbung, Klassen). 14. Welche hierarchischen Strukturierungsmoeglichkeiten gibt es? Design by Contract 1. Erklaeren Sie die Grundlagen des Entwurfsansatzes 2. Arten von Zusicherungen 3. Verwendung von Zusicherungen fuer Dokumentation und Testen 4. Zusicherungen und Vererbung (Verbindung zum Vererbungskapitel!)