-
Warum ist der klassische Lebenszyklus (Wasserfallmodell) unrealistisch?
- reale Projekte lassen sich selten in das Modell übertragen
- man muss oft Schritte wiederholen (iteratives Vorgehen)
-
In welcher Phase eines Softwaremodells ist das Lastenheft zu finden?
In der Anforderungsanalyse
-
Erläutern Sie eine Anwendung des : : Operators
Definition einer Methode ausserhalb der Klasse in der die Methode deklariert wurde.
-
Was bewirkt das Schlüsselwort delete?
Es gibt dynamischen Speicher (new) wieder frei
-
Welche Aufgaben hat ein Konstruktor? Nennen Sie mindestens 2 Aufgaben.
- Objekte können während der Definition initialisiert werden
- Reservierung von dynamischem Speicher
-
Welche Aufgabe hat der Copy-Konstruktor?
- Initialisierung eines Objekts mit einem anderen
-
Wie löst man programmtechnisch den Fall, dass man auf ein Datenelement einer Instanz einer anderen Klasse zugreifen will, dieses Datenelement aber durch protected geschützt ist?
- get-/set-Methoden
- friend-Deklaration
-
Wie kann man erreichen, dass von einer Klasse keine Objekte erzeugt werden können?
- virtuelle Klasse verwenden
-
Wann wird das Schlüsselwort virtual eingesetzt?? Erklären Sie genau.
- - zur Laufzeit wird entschieden, von welchem Objekt eine bestimmte Methode aufgerufen wird (späte Bindung)
- - Polymorphismus
-
Sie haben eine Software, die bereits im Einsatz ist. Von dieser sollen 2 Varianten für neue Kunden programmiert werden, die sich nur in Details von der vorhandenen Version unterscheiden. Welchen Vorteil hat es hier die Vererbung zu verwenden, anstatt vom Verzeichnis der vorhandenen Software einfach 2 Kopien zu erstellen und dort die Änderungen zu machen?
Man muss Änderungen nur in der Basisklasse vornehmen, die abgeleiteten Klassen erben diese Änderungen.
-
Was bedeutet im Software-Engineering der Begriff Modell?
Beschreibung des Entwicklungsvorgangs von Software
-
Welche Phase der Erzeugung von Software wird meist in der Zeitplanung deutlich unterschätzt?
der Software-Entwurf
-
Welchen wesentlichen Vorteil hat beim Programmieren eine Referenzvariable gegenüber einem Zeiger?
- - weniger Schreibaufwand: Man braucht */& nicht
- - Behandlung als gewöhnliche Variable
-
Erklären Sie kurz, was eine Instanz ist.
- - "Instanz = lebendes Objekt" (siehe Skript)
- - Instanz = Objekt einer Klasse
-
Warum verwendet man gern Felder, wenn man mit vielen Instanzen einer Klasse arbeitet?
einfache Handhabung der Daten mit dem Feldindex
-
Wie wird eine Klassenmethode von außerhalb der Klasse aufgerufen im Vergleich zu einer Instanzmethode?
Schreiben Sie für beide Fälle ein Beispiel oder etwas ähnliches hin.
- Instanzmethode: Instanz.Methode
- Klassenmethode: Klassenmethode::Funktionsaufruf
-
Warum soll man friend-Deklarationen nur sparsam verwenden?
friend-Deklaration umgeht den Geheimhaltungsgrundsatz
-
Was heisst es, wenn ein Konstruktor überladen ist?
- es gibt mehrere Konstruktoren mit verschiedenen Parameterlisten in einer Klasse
-
Was bedeutet der Begriff abgeleitete Klasse?
- die abgeleitete Klasse ist eine Klasse die bestimmte Methoden und Datenelemente der übergeordneten Basisklasse geerbt hat
-
Was ist der Vorteil des Polymorphismus aus Sicht des Anwenders?
Der Anwender muss sich keine Gedanken machen welcher Instanz welche Methode zugeordnet wird.
-
Was wird bei der Vererbung vererbt und was nicht? Beschreiben Sie genau und vollständig!
- Vererbt werden Datenelemente und Methoden, die public/protected sind.
- Nicht vererbt werden Konstruktoren, Destruktoren, Datenelemente und Methoden, die privat sind.
-
Was wird bei der Systemanalyse untersucht?
Anforderungen an Betriebssystem, Betriebsmittel und Hardware
-
Was bedeutet UML und was fängt man im Softwarebereich damit an?
- Unified Modelling Language
- grafische Konzeptionierung eines Programms
-
Was bewirkt das Schlüsselwort new?
stellt dynamischen Speicher bereit
-
Erläutern Sie den Unterschied zwischen Objekten und Klassen
- Klassen beschreiben Objekte mit gleicher Struktur
- Objekte besitzen Datenelemente und Methoden, Klassen nicht
-
Worin unterscheidet sich die Verwendung der Schlüsselworte private und protected?
Zugriffsrechte:
Basisklasse: private - abgeleitete Klasse: kein Zugriff !
Basisklasse: protected - abgeleitete Klasse: protected
-
Wann wird der Destruktor aufgerufen und wozu wird er benötigt? Geben Sie ein Beispiel an.
zur Speicherfreigabe wenn der Gültigkeitsbereich eines Objekts verlassen wird.
z.B.: CKlasse : : ~ CKlasse ( ) {Anweisung (z.B. delete)}
-
Wozu benötigt man die Initialisierungsliste?
zur schnellen Vorbelegung von Datenelementen
-
Wann setzt man Instanzvariablen ein und wann Klassenvariablen?
Instanz-Variablen: - nur für Vwerwendung in einer Instanz
- Klassen-Variable: - bei Datenelementen die nur 1x in einer Klasse vorkommen
- - bei allgemeinen Daten einer Klasse
- - gelten auch für alle Instanzen
-
Erklären Sie anschaulich, was der Compiler bei der Vererbung eigentlich macht.
- in der Unterklasse werden alle Datenelemente und Methoden der basisklasse übernommen (außer privat)
- Unterklasse wird um spezifische Datenelemente/Methoden ergänzt
-
Was versteht man unter Faktorierung und zu welchem Zweck benutzt man Sie?
Erstellung einer neuen Basisklasse aus Eigenschaften verschiedener Klassen
zur Erzeugung von hierarchischen Klassen
-
Was ist eine allgemeine Schnittstelle?
- Funktion mit der Methoden aus einer Basisklasse und den abgeleiteten Klassen, die den selben Funktionsprototyp haben, aufgerufen werden kann
|
|