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?

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?

20
Q

Wie schreibt man die Nachbedingung in ein Schnittstellenkommentare mit JavaDoc?

21
Q

Wie ist die assert Bedingung aufgebaut?

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
Was ist ein Positiv-Test?
* nur erwartete/gültige Eingabewerte getestet und Ausgabedaten erwartet – erhöhen Vertrauen in Korrektheit
26
Was ist ein Negativ-Test?
* unerwartete/ungültige Eingabewerte getestet und Fehlerbehandlung erwartet - erhöhen Vertrauen in Robustheit
27
Was ist ein Last-Test?
* fortwährend erhöhte Anzahl / Häufigkeit bis Funktionsausfall – erhöhen Vertrauen in Performance und Skalierbarkeit
28
Was ist, wenn sich der Klient nicht an seinen Teil des Vertags hält?
Dann muss der Dienstleister auch nicht handeln
29
Aus was bestehen Zusicherungen | Vertragsmodell
Aus Vor- und Nachbedingungen
30
Wer deklariert in Java die Vor- und Nachbedingungen und wie?
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
Was und wie überprüft der Dienstleister?
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.