Fehlervermeidung & Vertragsmodell Flashcards

1
Q

Was ist ein Mistake?

A

Menschliche Fehlhandlung, die zu einem Fehler (Fault) führt

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Was ist ein Fault?

A

Fehler im Quelltext der Software

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was ist ein Failure?

A

Versagen eines Systems aufgrund
eines oder mehrerer Faults

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Was ist ein Error?

A

Die Realisierung entspricht nicht der Forderung

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was besagt das Vertragsmodell in der Softwareentwicklung?

A

Vertrag beschreibt:
* welche Vorleistung Klient erbringen muss,
* damit Dienstleister seine Leistung garantiert

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Wie wird eine Benutzt-Beziehung hergestellt in Java?

A
  • In Klasse A werden Variablen vom Typ B deklariert.
  • In einer Methode der Klasse A werden Methoden an Exemplaren der Klasse B aufgerufen.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Worauf bezieht sich das Vertragsmodell?

A
  • den Aufruf von Methoden,
  • die Überprüfung von Aufrufparametern sowie des Zustands des gerufenen Exemplars.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Beschreibe den Vertrag des Vertragsmodells

A
  • bezieht sich immer auf eine Operation einer Klasse.
  • wird in der Dienstleister-Klasse festgelegt.
  • Vertragsbedingungen werden als Zusicherungen spezifiziert.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Beschreibe die Zusicherungen des Vertragsmodells

A
  • Vorbedingungen
    – eingehalten vor der Ausführung der Operation
  • Nachbedingungen
    – erfüllt nach der Ausführung der Operation Zusätzlich
  • Invarianten
    – Bedingungen, die immer gelten sollen, als Klassen- Invarianten
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Woraus besteht das Vertragsmodell?

A
  • dem Vertrag und
  • den Zusicherungen als boolesche Ausdrücke (Prädikate)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Wie läuft der Mechanismus des Vertragsmodells ab?

A

Vertrag wird bei Methodenaufruf geprüft:
* Klient muss sicherstellen, dass Vorbedingungen der Operation erfüllt sind.
* Beim Dienstleister muss geprüft werden, ob die Vorbedingung gilt.
* Wenn die Vorbedingung erfüllt ist, führt Dienstleister die Operation aus.
* Dienstleister garantiert durch Nachbedingungen, dass Leistung erbracht.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Was ist eine Klasseninvariante?

A

ist eine allgemeine Randbedingung des Vertrags, muss bei jedem Methodenaufruf gelten

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Wann garantiert der Dienstleister die Nachbedingung?

A

Wenn der Klient die Vorbedingungen erfüllt

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Welche Rechte und Pflichten hat der Klient?

A
  • hat die Pflicht, die Methode nur aufzurufen,
    wenn Zustand des Dienstleisters es erlaubt.
  • hat das Recht, die ordnungsgemäße Erfüllung
    des Vertrags
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Welche Rechte und Pflichten hat der Dienstleister?

A
  • hat die Pflicht, die versprochene Leistung zu erbringen.
  • hat das Recht bei Nichteinhaltung des Vertrags durch Klienten, die Operation nicht auszuführen.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Wann gilt eine Klasse K im Sinne des Vertragsmodells als korrekt?

A
17
Q

Was ist die Spezifikation?

A

Die Anforderungsbeschreibung

18
Q

Was ist die grundsätzliche Herangehensweise eines defensiven Programmierstils?

A
  • Risiken vermeiden
  • Anwesenheit von Fehlern immer erwarten
  • Fehlerreaktion auf minimale Auswirkungen richten
  • Auswirkungen von Fehlern verringern / vermeiden
19
Q

Wie schreibt man die Vorbedingung in ein Schnittstellenkommentare mit JavaDoc?

A

@require

20
Q

Wie schreibt man die Nachbedingung in ein Schnittstellenkommentare mit JavaDoc?

A

@ensure

21
Q

Wie ist die assert Bedingung aufgebaut?

A
22
Q

Was ist die statische Analyse?

A
  • Experten analysieren Quelltext – Review
    Ü Werkzeuge analysieren Quelltext – Metriken, Strukturanalyse, Korrektheitsbeweise
23
Q

Was ist eine dynamische Aanalyse?

A
  • Software wird ausgeführt, Verhalten beobachtet – Test
24
Q

Wie lässt sich der Testaufwand verringern?

A
  • Nur Zweigabfdeckung, nicht Pfadabdeckung
  • Nur Abdeckung der Anforderungen
  • Nur Abdeckung der Zustäne und Zustandsübergänge
  • Abdeckung der Bedingungskombination
  • Nur Abdeckung der Äquivalenzklassen
25
Q

Was ist ein Positiv-Test?

A
  • nur erwartete/gültige Eingabewerte getestet und Ausgabedaten erwartet
    – erhöhen Vertrauen in Korrektheit
26
Q

Was ist ein Negativ-Test?

A
  • unerwartete/ungültige Eingabewerte getestet und Fehlerbehandlung erwartet
  • erhöhen Vertrauen in Robustheit
27
Q

Was ist ein Last-Test?

A
  • fortwährend erhöhte Anzahl / Häufigkeit bis Funktionsausfall
    – erhöhen Vertrauen in Performance und Skalierbarkeit
28
Q

Was ist, wenn sich der Klient nicht an seinen Teil des Vertags hält?

A

Dann muss der Dienstleister auch nicht handeln

29
Q

Aus was bestehen Zusicherungen

Vertragsmodell

A

Aus Vor- und Nachbedingungen

30
Q

Wer deklariert in Java die Vor- und Nachbedingungen und wie?

A

Der Dienstleister deklariert seine Vor- und Nachbedingungen gegenu ̈ber dem Klienten, indem er sie im Javadoc- Kommentar einer Methode mit @require und @ensure angibt

31
Q

Was und wie überprüft der Dienstleister?

A

Weiterhin überprüft der Dienstleister die Einhaltung der Vorbedingungen im Rumpf der implementierenden Methode mit sogenannten assert-Anweisungen. Die eigenen Nach- bedingungen werden nicht überprüft.