Merkmale von Komplexität

Welche Merkmale von Softwaresystemen zeigen deren Komplexität?

Quellen der Veränderung

Nennen Sie wichtige Quellen von Veränderungen mit Auswirkungen auf Softwaresysteme!

Komplexität beherschen

Nennen Sie drei grundsätzliche Ansätze, Komplexität für Menschen beherrschbar zu machen!

  1. Aufteilen
  2. Hierachiebildung
  3. Pattern

Abstraktionen

Erläutern Sie verschiedene Arten von Abstraktion!

Fehlerbegriffe

Worin besteht der Unterschied der Fehler-Begriffe error, failure, fault, mistake?

Menschliche Fehlhandlungen sogenante _ 1 _ können zu Fehlern im Quelltext der Software als _ 2 _ führen. Ein _ 3 _ beschreibt das Versagen eines System aufgrund eines oder mehrerer _ 2 _ . Wenn eine Software nicht den Forderungen entspricht sprechen wir von _ 4 _ .

  1. Mistake
  2. Fault (s)
  3. Failure
  4. Error

Defensiver Programmierstil

Worin besteht defensiver Programmierstil?

☑ Risiken vermeiden
☐ Debugger benutzen
☑ Anwesenheit von Fehlern erwarten
☑ Fehlerreaktion auf minimale Auswirkungen richten
☐ Korrekte Rechtschreibung
☐ Kaffee trinken, wacher schreibt man weniger Fehler
☑ Auswirkungen von Fehlern verringern im besten fall ganz vermeiden

Design by contract.

Erläutern Sie das Prinzip Design by Contract!

Das Vertragsmodell beschreibt ein Vertragsverhältnis bei _ 1 _ zwischen Klassen.
Dabei wird beschrieben welche _ 2 _ der Klient gegenüber dem Dienstleister erbringen muss.
Im gegenzug kann der Dienstleister gegenüber dem Klienten _ 3 _ garantieren.
Diese Vertragsbedingungen werden durch _ 4 _ beschrieben.
Zusätzlich zu _ 2 _ und _ 3 _ gibt es noch Bedingungen die immer gelten sollen sogenannte _ 5 _ .

  1. Benutzt-Beziehung
  2. Vorleistung / Vorbedingung
  3. Zusicherung / Nachbedingung
  4. boolesche Ausdrücke (Prädikate)
  5. Klassen-Invarianten

Design by contract #2

Wie sollte das Vertragsmodell in Java umgesetzt werden?

Vorbedingungen können in Java mithilfe des assert keywords geprüft werden. wichtig hierbei ist, dass diese Überprüfung eingeschaltet sein muss beim Aufruf des Programmes

Nachbedingungen können mithilfe von Unit-Test überprüft werden.

Wie kann das Vertragsmodell bei der Erstellung von Tests helfen?

Exception Hirachie

Java Exceptionklasen

Programmierfehler vs Umgebungsfehler

angelehnt aus: SE2-VL05-FehlerModule.pdf Folie 49

Ordnen sie den Fehler beschreibungen zu ob es sich um einen Umgebungsfehler (U) oder Programmierfehler (P) handelt