TU Wien:Programmierparadigmen VU (Puntigam)/PP Test 2 2025WS

Aus VoWi
Zur Navigation springen Zur Suche springen

Test 2 in Programmierparadigmen am 26.1.2026[Bearbeiten | Quelltext bearbeiten]

Aufgabe 1 (10 Punkte)[Bearbeiten | Quelltext bearbeiten]

und seien definiert durch und . Bitte markieren Sie jedes Auswahlfeld, bei dem der links stehende Typ ein Untertyp des darüber stehenden Typs ist. Es können keines, eines oder mehrere Felder pro Zeile auszuwählen sein.

Aufgabe 2 (10 Punkte)[Bearbeiten | Quelltext bearbeiten]

Bitte markieren Sie in jeder Zeile das eine Auswahlfeld, bei dem die links stehende Aussage am ehesten eine Eigenschaft der darüber stehenden Parametrisierungsform in Java oder AspectJ ist.

Generizität Annotationen Aspekte
Join-Points sind dynamisch identifizierbare Programmstellen
kann die Werkzeuge zur Programmerzeugung beeinflussen
"" steht für beliebige Zeichen außer "" (Punkt)
für binäre Methoden wird Rekursion benötigt
zur Laufzeit sind Daten über Reflexion zugreifbar
wird für Kernfunktionalität meist gemieden
Lücken werden durch spezielle Parameter dargestellt
ersetzt den spezifizierten Programmtext
mit @ wird die Lebensdauer festgelegt
Typschranken legen vorausgesetzte Funktionalität fest

Aufgabe 3 (10 Punkte)[Bearbeiten | Quelltext bearbeiten]

Bitte markieren Sie jedes Auswahlfeld, bei dem der links stehende Typausdruck (mit Typnamen aus den Paketen und ein Typ des darüber stehenden Lambdas ist. Es können keines, einer oder mehrere Felder pro Zeile auszuwählen sein.

Aufgabe 4 (10 Punkte)[Bearbeiten | Quelltext bearbeiten]

Bitte markieren Sie jedes Auswahlfeld, bei dem die links stehende Kommandozeile (in ausgeführt) die darüber stehende Auswirking hat. Es können keines, eines oder mehrere Felder pro Zeile auszuwählen sein.

mehrere Prozesse laufen gleichzeitig Prozesse laufen im Hintergrund Prozesse über Pipelines verbunden Standardeingabe von umgeleitet Standardausgabe von umgeleitet Fehlerausgabe von umgeleitet
|& &>>
&> &&
&
""
|& &> &

Aufgabe 5 (10 Punkte)[Bearbeiten | Quelltext bearbeiten]

Bitte markieren Sie jedes Auswahlfeld, bei dem die links stehende Eigenschaft auf den darüber stehenden Methodenaufruf zutrifft. Es können keines, eines oder mehrere Felder pro Zeile auszuwählen sein.

muss mit umgehen
darf nur in einem Monitor verwendet werden
soll nicht in einem Monitor verwendet werden
gehört nicht zu Synchronisationsmechanismen
suspendiert Ausführung des aktuellen Threads
suspendiert Ausführung auf bestimme Zeit
weckt systemweit alle wartenden Threads auf
weckt höchstens einen wartenden Thread auf
weckt mindestens einen wartenden Thread auf
gibt den Lock vorübergehend frei

Aufgabe 6 (10 Punkte)[Bearbeiten | Quelltext bearbeiten]

Bitte markieren Sie jedes Auswahlfeld, bei dem die links stehende Aussage eine Eigenschaft des darüber stehenden Entwurfsmusters ist. Es können keines, eines oder mehrere Felder pro Zeile auszuwählen sein.

Iterator Decorator Proxy Prototype Factory-Method
unterstützt Umkehrung der Abhängigkeiten
führt zu vielen kleinen Objekten
für oberflächliche Erweiterungen geeignet
oft große Anzahl an Unterklassen nötig
ist Entwurfsmuster für Struktur
ist erzeugendes Entwurfsmuster
hilft große Zahl an Klassen zu vermeiden
beruht auf Delegation
häufig als innere Klasse implementiert
Objektidentität ist damit unzuverlässig

Aufgabe 7 (10 Punkte)[Bearbeiten | Quelltext bearbeiten]

Bitte markieren Sie in jeder Zeile das eine Auswahlfeld, bei dem die links stehende Aussage am ehesten eine Eigenschaft des darüber stehenden Entwurfsmuster ist.

Iterator Decorator Proxy Prototype Factory-Method
zyklische Strukturen bereiten Probleme
robuste Varianten werden bevorzugt
Verantwortlichkeiten wieder entziehbar
schlecht geeignet für umfangreiche Objekte
mehrere gleichzeitige Abarbeitungen möglich
kein Decorator, aber gleiche Struktur möglich
kann mit kovarianten Problemen umgehen
es gibt externe und interne Varianten
flache von tiefen Kopien unterschieden
führt zu parallelen Klassenhierachien

Aufgabe 8 (10 Punkte)[Bearbeiten | Quelltext bearbeiten]

Bitte markieren Sie in jeder Zeile das eine Auswahlfeld, bei dem die links stehende Aussage am ehesten eine Eigenschaft des darüber stehenden Entwurfsmuster ist.

Iterator Decorator Proxy Prototype Factory-Method
Component ist ein Bestandteil
Product ist ein Bestandteil
Subject ist ein Bestandteil
Creator ist ein Bestandteil
Aggregate ist ein Bestandteil
Smart-Reference ist eine Variante davon
wird auch Wrapper genannt
wird auch Surrogate genannt
wird auch Virtual-Constructor genannt
wird auch Cursor genannt

Aufgabe 9 (10 Punkte)[Bearbeiten | Quelltext bearbeiten]

Bitte markieren Sie jedes Auswahlfeld, bei dem die links stehende Aussage eine Eigenschaft des darüber stehenden Entwurfsmuster ist. Es können keines, eines oder mehrere Felder pro Zeile auszuwählen sein.

Visitor Singleton Template-Method Factory-Method
verwaltet verwandte Operationen zentral
für Lazy-Initialization geeignet
gibt Grundgerüst von Algorithmus vor
Anzahl erzeugter Objekte kontrollierbar
kann zu vielen Klassen führen
kann zu vielen Methoden führen
verwendet häufig Hooks
kann zu vielen Objekten führen
mehrere Arten primitiver Operationen
beruht auf dem Hollywood-Prinzip

Aufgabe 10 (10 Punkte)[Bearbeiten | Quelltext bearbeiten]

Bitte markieren Sie in jeder Zeile das eine Auswahlfeld, bei dem die links stehende Aussage am ehesten eine Eigenschaft des darüber stehenden Entwurfsmuster ist.

Visitor Singleton Template-Method Factory-Method
accept hat einen Parameter
instance ist meist
Element ist Bestandteil
hilft Duplikate im Code zu vermeiden
kann als Anti-Pattern gesehen werden
Lambdas können Schreibaufwand reduzieren
eine Methode ist häufig
globale Variable ist eine Alternative dazu
unterstützt direkte Code-Wiederverwendung
Umgang mit Unterklassen problematisch

Lösungen[Bearbeiten | Quelltext bearbeiten]

Die Lösungen sollten korrekt sein. Der Großteil meiner Antworten wurden als korrekt gewertet*, für die restlichen Antworten wurde mit den Lehrveranstaltungsunterlagen oder dem Java Compiler korrigiert.

*(Anmerkung: Die Korrektur des PP-Teams ist jedoch inkonsistent und es könnte sein, dass bei meinem Test etwas als korrekt gewertet wurde, obwohl es das eigentlich nicht ist.)

Aufgabe 1 (Lösung)[Bearbeiten | Quelltext bearbeiten]

und seien definiert durch und . Bitte markieren Sie jedes Auswahlfeld, bei dem der links stehende Typ ein Untertyp des darüber stehenden Typs ist. Es können keines, eines oder mehrere Felder pro Zeile auszuwählen sein.

x
x x
x x
x x
x
x x
x
x x

Aufgabe 2 (Lösung)[Bearbeiten | Quelltext bearbeiten]

Bitte markieren Sie in jeder Zeile das eine Auswahlfeld, bei dem die links stehende Aussage am ehesten eine Eigenschaft der darüber stehenden Parametrisierungsform in Java oder AspectJ ist.

Generizität Annotationen Aspekte
Join-Points sind dynamisch identifizierbare Programmstellen x
kann die Werkzeuge zur Programmerzeugung beeinflussen x
"" steht für beliebige Zeichen außer "" (Punkt) x
für binäre Methoden wird Rekursion benötigt x
zur Laufzeit sind Daten über Reflexion zugreifbar x
wird für Kernfunktionalität meist gemieden x
Lücken werden durch spezielle Parameter dargestellt x
ersetzt den spezifizierten Programmtext x
mit @ wird die Lebensdauer festgelegt x
Typschranken legen vorausgesetzte Funktionalität fest x

Aufgabe 3 (Lösung)[Bearbeiten | Quelltext bearbeiten]

Bitte markieren Sie jedes Auswahlfeld, bei dem der links stehende Typausdruck (mit Typnamen aus den Paketen und ein Typ des darüber stehenden Lambdas ist. Es können keines, einer oder mehrere Felder pro Zeile auszuwählen sein.

x
x x
x x
x
x
x
x
x
x

Aufgabe 4 (Lösung)[Bearbeiten | Quelltext bearbeiten]

Bitte markieren Sie jedes Auswahlfeld, bei dem die links stehende Kommandozeile (in ausgeführt) die darüber stehende Auswirking hat. Es können keines, eines oder mehrere Felder pro Zeile auszuwählen sein.

mehrere Prozesse laufen gleichzeitig Prozesse laufen im Hintergrund Prozesse über Pipelines verbunden Standardeingabe von umgeleitet Standardausgabe von umgeleitet Fehlerausgabe von umgeleitet
x x x x
|& &>> x x x x
&> && x x
x x x
& x x x
""
|& &> & x x x x x x
x x x

Aufgabe 5 (Lösung)[Bearbeiten | Quelltext bearbeiten]

Bitte markieren Sie jedes Auswahlfeld, bei dem die links stehende Eigenschaft auf den darüber stehenden Methodenaufruf zutrifft. Es können keines, eines oder mehrere Felder pro Zeile auszuwählen sein.

muss mit umgehen x x
darf nur in einem Monitor verwendet werden x x x
soll nicht in einem Monitor verwendet werden x
gehört nicht zu Synchronisationsmechanismen x
suspendiert Ausführung des aktuellen Threads x x
suspendiert Ausführung auf bestimme Zeit x
weckt systemweit alle wartenden Threads auf
weckt höchstens einen wartenden Thread auf x
weckt mindestens einen wartenden Thread auf
gibt den Lock vorübergehend frei x

Aufgabe 6 (Lösung)[Bearbeiten | Quelltext bearbeiten]

Bitte markieren Sie jedes Auswahlfeld, bei dem die links stehende Aussage eine Eigenschaft des darüber stehenden Entwurfsmusters ist. Es können keines, eines oder mehrere Felder pro Zeile auszuwählen sein.

Iterator Decorator Proxy Prototype Factory-Method
unterstützt Umkehrung der Abhängigkeiten x
führt zu vielen kleinen Objekten x
für oberflächliche Erweiterungen geeignet x
oft große Anzahl an Unterklassen nötig x
ist Entwurfsmuster für Struktur x x
ist erzeugendes Entwurfsmuster x x
hilft große Zahl an Klassen zu vermeiden x
beruht auf Delegation x x
häufig als innere Klasse implementiert x
Objektidentität ist damit unzuverlässig x

Aufgabe 7 (Lösung)[Bearbeiten | Quelltext bearbeiten]

Bitte markieren Sie in jeder Zeile das eine Auswahlfeld, bei dem die links stehende Aussage am ehesten eine Eigenschaft des darüber stehenden Entwurfsmuster ist.

Iterator Decorator Proxy Prototype Factory-Method
zyklische Strukturen bereiten Probleme x
robuste Varianten werden bevorzugt x
Verantwortlichkeiten wieder entziehbar x
schlecht geeignet für umfangreiche Objekte x
mehrere gleichzeitige Abarbeitungen möglich x
kein Decorator, aber gleiche Struktur möglich x
kann mit kovarianten Problemen umgehen x
es gibt externe und interne Varianten x
flache von tiefen Kopien unterschieden x
führt zu parallelen Klassenhierachien x

Aufgabe 8 (Lösung)[Bearbeiten | Quelltext bearbeiten]

Bitte markieren Sie in jeder Zeile das eine Auswahlfeld, bei dem die links stehende Aussage am ehesten eine Eigenschaft des darüber stehenden Entwurfsmuster ist.

Iterator Decorator Proxy Prototype Factory-Method
Component ist ein Bestandteil x
Product ist ein Bestandteil x
Subject ist ein Bestandteil x
Creator ist ein Bestandteil x
Aggregate ist ein Bestandteil x
Smart-Reference ist eine Variante davon x
wird auch Wrapper genannt x
wird auch Surrogate genannt x
wird auch Virtual-Constructor genannt x
wird auch Cursor genannt x

Aufgabe 9 (Lösung)[Bearbeiten | Quelltext bearbeiten]

Bitte markieren Sie jedes Auswahlfeld, bei dem die links stehende Aussage eine Eigenschaft des darüber stehenden Entwurfsmuster ist. Es können keines, eines oder mehrere Felder pro Zeile auszuwählen sein.

Visitor Singleton Template-Method Factory-Method
verwaltet verwandte Operationen zentral x
für Lazy-Initialization geeignet x x
gibt Grundgerüst von Algorithmus vor x
Anzahl erzeugter Objekte kontrollierbar x
kann zu vielen Klassen führen x
kann zu vielen Methoden führen x
verwendet häufig Hooks x x
kann zu vielen Objekten führen
mehrere Arten primitiver Operationen x
beruht auf dem Hollywood-Prinzip x x

Aufgabe 10 (Lösung)[Bearbeiten | Quelltext bearbeiten]

Bitte markieren Sie in jeder Zeile das eine Auswahlfeld, bei dem die links stehende Aussage am ehesten eine Eigenschaft des darüber stehenden Entwurfsmuster ist.

Visitor Singleton Template-Method Factory-Method
accept hat einen Parameter x
instance ist meist x
Element ist Bestandteil x
hilft Duplikate im Code zu vermeiden x
kann als Anti-Pattern gesehen werden x
Lambdas können Schreibaufwand reduzieren x
eine Methode ist häufig x
globale Variable ist eine Alternative dazu x
unterstützt direkte Code-Wiederverwendung x
Umgang mit Unterklassen problematisch x