SoftEngFragen.txt

  1. Warum ist der klassische Lebenszyklus (Wasserfallmodell) unrealistisch?
    - reale Projekte lassen sich selten in das Modell übertragen

    - man muss oft Schritte wiederholen (iteratives Vorgehen)
  2. In welcher Phase eines Softwaremodells ist das Lastenheft zu finden?
    In der Anforderungsanalyse
  3. Erläutern Sie eine Anwendung des : : Operators
    Definition einer Methode ausserhalb der Klasse in der die Methode deklariert wurde.
  4. Was bewirkt das Schlüsselwort delete?
    Es gibt dynamischen Speicher (new) wieder frei
  5. Welche Aufgaben hat ein Konstruktor? Nennen Sie mindestens 2 Aufgaben.
    - Objekte können während der Definition initialisiert werden

    - Reservierung von dynamischem Speicher
  6. Welche Aufgabe hat der Copy-Konstruktor?
    - Initialisierung eines Objekts mit einem anderen
  7. 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
  8. Wie kann man erreichen, dass von einer Klasse keine Objekte erzeugt werden können?
    - virtuelle Klasse verwenden
  9. 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
  10. 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.
  11. Was bedeutet im Software-Engineering der Begriff Modell?
    Beschreibung des Entwicklungsvorgangs von Software
  12. Welche Phase der Erzeugung von Software wird meist in der Zeitplanung deutlich unterschätzt?
    der Software-Entwurf
  13. Welchen wesentlichen Vorteil hat beim Programmieren eine Referenzvariable gegenüber einem Zeiger?
    • - weniger Schreibaufwand: Man braucht */& nicht
    • - Behandlung als gewöhnliche Variable
  14. Erklären Sie kurz, was eine Instanz ist.
    • - "Instanz = lebendes Objekt" (siehe Skript)
    • - Instanz = Objekt einer Klasse
  15. Warum verwendet man gern Felder, wenn man mit vielen Instanzen einer Klasse arbeitet?
    einfache Handhabung der Daten mit dem Feldindex
  16. 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
  17. Warum soll man friend-Deklarationen nur sparsam verwenden?
    friend-Deklaration umgeht den Geheimhaltungsgrundsatz
  18. Was heisst es, wenn ein Konstruktor überladen ist?
    - es gibt mehrere Konstruktoren mit verschiedenen Parameterlisten in einer Klasse
  19. Was bedeutet der Begriff abgeleitete Klasse?
    - die abgeleitete Klasse ist eine Klasse die bestimmte Methoden und Datenelemente der übergeordneten Basisklasse geerbt hat
  20. Was ist der Vorteil des Polymorphismus aus Sicht des Anwenders?
    Der Anwender muss sich keine Gedanken machen welcher Instanz welche Methode zugeordnet wird.
  21. 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.
  22. Was wird bei der Systemanalyse untersucht?
    Anforderungen an Betriebssystem, Betriebsmittel und Hardware
  23. Was bedeutet UML und was fängt man im Softwarebereich damit an?
    - Unified Modelling Language

    - grafische Konzeptionierung eines Programms
  24. Was bewirkt das Schlüsselwort new?
    stellt dynamischen Speicher bereit
  25. Erläutern Sie den Unterschied zwischen Objekten und Klassen
    - Klassen beschreiben Objekte mit gleicher Struktur

    - Objekte besitzen Datenelemente und Methoden, Klassen nicht
  26. Worin unterscheidet sich die Verwendung der Schlüsselworte private und protected?
    Zugriffsrechte:

    Basisklasse: private - abgeleitete Klasse: kein Zugriff !

    Basisklasse: protected - abgeleitete Klasse: protected
  27. 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)}
  28. Wozu benötigt man die Initialisierungsliste?
    zur schnellen Vorbelegung von Datenelementen
  29. 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
  30. 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
  31. 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
  32. Was ist eine allgemeine Schnittstelle?
    - Funktion mit der Methoden aus einer Basisklasse und den abgeleiteten Klassen, die den selben Funktionsprototyp haben, aufgerufen werden kann
Author
Anonymous
ID
160271
Card Set
SoftEngFragen.txt
Description
SS11, WS10/11, SS10
Updated