SoftEngFragen1.txt

Card Set Information

Author:
Anonymous
ID:
160660
Filename:
SoftEngFragen1.txt
Updated:
2012-07-01 15:16:31
Tags:
SoftEng SS11 WS1011 SS10 WS0910 SS09
Folders:

Description:
SS11, WS1011, SS10, WS0910, SS09
Show Answers:

Home > Flashcards > Print Preview

The flashcards below were created by user Anonymous on FreezingBlue Flashcards. What would you like to do?


  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
  33. Was ist die Badewannenkurve und welche Bedeutung hat Sie für die Software-Entwicklung?
    • 1: Entwicklungsfehler, Kinderkrankheiten
    • 2: zufällige Fehler
    • 3: Verschleiß
    • Software verschleißt nicht, jedoch nimmt die Fehlerrate mit der Einbringung neuer Funktionen und geänderter Hardware zu
  34. Beschreiben Sie den Unterschied zwischen Black-Box-Test und White-Box-Test?
    • Black-Box:
    • - Betrachtung der funktionalen Anforderungen
    • - Überprüfen des Ergebnisses
    • White-Box:
    • - Entwurf von Testfällen, die sich an der inneren Struktur des Moduls orientieren
    • - Überprüfen des Weges zur Lösung
  35. Worin unterscheidet sich ein Zeiger von einer Referenz?
    • - Referenz muss bei der Definition mit der Originalvariablen initialisiert werden
    • - man benötigt keine Dereferenzierung (*) für die Referenz
  36. Was ist eine inline-Funktion?
    • - Funktionsaufrufe werden durch den Funktionskörper ersetzt, es findet kein echter Aufruf mehr statt
    • - Zeitersparnis
  37. Welches ist der wesentliche Vorteil der Geheimhaltung?
    - gewährleistet die Integrität einer ausprogrammierten Klasse
  38. Was ist ein this-Zeiger?
    - Zeiger in dem die Adresse der Instanz steht mit der eine Methode aufgerufen wird
  39. Was hat eine abstrakte Klasse (rein virtuelle Funktionen) für spezielle Vorteile? Nennen Sie mindestens 2 Vorteile.
    • - erzwingt, dass die virtuellen Methoden in allen abgeleiteten Klassen implementiert wird
    • - Erschaffung einer allgemeinen Schnittstelle
  40. Wie löst man am einfachsten das Problem, dass eine übergeordnete Klasse vorhanden ist, die eine andereKlasse (die aber keine vererbte Klasse ist) verwaltet, auf deren Datenelemente aber keinen Zugriff hat?
    Beispiel : Klasse CPruefungsAmt will auf Datenelemente der Klasse CStudent zugreifen.
    • -> friend-Deklaration
    • (besser: get-/set-Methoden)
  41. Was geschieht bei der Vererbung, wenn die Basisklasse mit dem Schlüsselwort protected vererbt wird?
    • - public wird protected und protected bleibt protected
    • - privat wird nicht vererbt
  42. Nennen Sie ein Anwendungsbeispiel für eine Klassenmethode.
    z.B. den Inhalt einer Klassenvariable ausgeben
  43. 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?
    • - Änderungen nur in der Basisklasse nötig
    • - Änderungen werden in die abgeleiteten Klassen übernommen
    • - weniger Aufwand
  44. Was genau bewirkt eine friend-Deklaration?
    - Zugriff auf Datenelemente / methoden einer anderen Klasse die "protected" sind
  45. Warum verwendet man gern Felder, wenn man mit vielen Instanzen einer Klasse arbeitet?
    über den Feld-Index kann man gut auf Datenelemente zugreifen
  46. Warum ist der Polymorphismus nicht nur eine nette Ergänzung der objektorientierten Programmierung,sondern ein wesentlicher Bestandteil der OOP?
    - Fähigkeit einer Variablen zur Laufzeit auf verschiedene Objekte zu verweisen -> passender Methodenaufruf des jeweiligen Objekts

What would you like to do?

Home > Flashcards > Print Preview