Strukturieren durch Modularisieren VL 1-2 Flashcards

1
Q

Was sind die Symptome der Softwarekrise und Defizite der derzeitigen Praxis?

A
  • Termin- und Budgetüberschreitung
  • Ergebis erfüllt nicht Erwartungen
  • Dinge immer wieder entwickeln
  • anfangen, dann wieder alles verändern
  • Missverständnisse zwischen Beteiligten
  • keine Dokumentation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Was ist ingenieurgemäße SW-Entwicklung(6 Punkte)

A
  • Qualitätssicherung und Entwicklung verwoben
  • systematisches, methodisches, reifes Vorgehen
  • Planung mit Leistungsvorhersage
  • Standardisierung, Modularisierung, Wiederverwendung und Automatisierung
  • Akkumulation von Wissen
  • Arbeitsteilung und Spezialisierung
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was sind die Vorteile einer Vermischung von Problemraum und Lösungsraum?

A

-explizite Entscheidungen mit besseren Lösungen

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

Was sind die Nachteile einer Vermischung von Problemraum und Lösungsraum?

A
  • Vorgriff auf Lösungen führt zu Detailentscheidungen

- schränkt Freiheitsgrad bei Suche nach optimaler Lösung ein

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

Welchen Nutzen können Modelle für Softwareentwicklung bringen

A
  • unterstützen die Kommunikation, Einarbeitung, Abstimmung, Problemlösung
  • frühzeitige Prüfungen
  • Informationen konservieren für das Verstehen, Verändern, Wiederverwenden
  • Auf das Wesentliche konzentrieren
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Welche Begriffe für Fehler in Software gibt es?

A

Mistake: Menschliche Fehlhandlung, die zu einem Fehler(Fault) führen

Fault: Fehler im Quelltext der Software (Codierungsfeheler, Bug)

Failure: Versagen eines Systems aufgrund von Faults

Error: Realisierung entspricht nicht den Forderungen

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

Was ist defensiver Programmstil?

A

Grundsätze:

  • Risiken vermeiden
  • Anwesenheit von Pehlern immer erwarten
  • Fehlerreaktion auf minimale Auswirkungen richten
  • Auswirkungen von Fehlern verringern/vermeiden

-Robust - unempfindlich gegen Störungen

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

Was ist das Vertragsmodell der objektorientierten SW-Entwicklung?

A

Eine Beziehung zwischen Klassen als Vertragsverhältnis, wo der Klient den Dienstleister benutzt.

Vertrag:
Welche Vorleistung muss der Klient erbringen, damit der Dienstleister seine Diente garantiert

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

Was sind die Bestandteile eines Vertragsmodell?

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
10
Q

Was ist im Vertragsmodell eine Klassen-Invariante?

A

Eine boolesche Aussage über alle Exemplare einer Klasse, die vor und nach Ausführung jeder Operation der Klasse gelten muss.

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

Was ist eine statische Analyse?

A
• Experten analysieren Quelltext –
Review
• Werkzeuge analysieren Quelltext –
Metriken, Strukturanalyse,
Korrektheitsbeweise
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Was ist eine dynamische Analyse?

A

• Software wird ausgeführt,

Verhalten beobachtet – Test

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

Was ist der Test-First-Ansatz?

A

• Testklassen schreiben vor zu testenden Klassen
• Je Methode: Problemlösung und Randbedingungen durch
Testfall beschreiben
• neue Klasse und Methode sofort getestet
• bei Integration alle Testfälle korrekt durchlaufen
• Später: sichere Veränderung durch automatisiertes Testen
ermöglicht systematisches Refactoring

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

Welche Zugriffsmodifikatoren gibt es?

A
  1. Private: Nur innerhalb der Klasse zugreifbar
  2. Default: Für alle Klassen im selben Paket
  3. Protected: Für alle Klassen im selben Paket und Subklassen
  4. Public: Für alle Klassen im selben Paket und anderen Paketen zugreifbar
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Welche Merkmale von Softwaresystemen zeigen deren Komplexität?

A
  • viele Anforderungen
  • viele Beteiligte
  • mehrere Fachdisziplinen
  • viele Bestandteile
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Wie kann man Komplexität beherrschbar machen?

A
  • Aufteilung
  • Hierarchiebildung
  • Patterns
17
Q

Wie wird das Vertragsmodell in Java umgesetzt?

A

-In der Dokumentation mit javadoc sind Informationen des Vertrags
@require(Vorbedingung)
@ensure(Nachbedingung)

-Prüfung erfolgt ithilfe von assert

18
Q

Erläutere verschiedene Arten von Abstraktion

A

Modelle sind Abstraktionen

  • Sicht, z.B. Verhalten, Struktur
  • Generalisierung, z.B. Klasse der Insekten
  • fachliche Abstraktion, z.B. Geschäftsobjekt Kunde
19
Q

Was sichert der Dienstleister dem Klienten im Vertragsmodell zu?

A

Wenn der Klient die Vorbedingungen erfüllt, dann garantiert der Dienstleister die Nachbedingungen.

20
Q

Was sind die Unterschiede zwischen statischer und dynamischer Analyse?

A

Statische Analyse:

  • frühzeitig möglich
  • auch innere Qualitäts Merkmale: Wartbarkeit
  • Effizienz hoch

Dynamische Analyse:

  • erst nach teilweiser Implementierung möglich
  • nur Fehlverhalten, äußere Qualitätsmerkmale
  • Effizienz gering
21
Q

Wie hilft das Vertragsmodell beim Testen?

A
  • Zuständigkeiten von Klient und Dienstleister sind klarer getrennt
  • liefert mit Vor- und Nachbedingungen Hinweise auf Testfälle
22
Q

Welche Vorteile ergeben sich aus dem Test-First-Ansatz?

A
  • Fehlervermeidung
  • genaue Verhaltensbeschreibung der Klassen und Methoden
  • steigert Vertrauen und Mut zu Änderungen, da es ischerer ist durch automatisiertes Testen