Strukturieren durch Modularisieren VL 1-2 Flashcards
Was sind die Symptome der Softwarekrise und Defizite der derzeitigen Praxis?
- 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
Was ist ingenieurgemäße SW-Entwicklung(6 Punkte)
- Qualitätssicherung und Entwicklung verwoben
- systematisches, methodisches, reifes Vorgehen
- Planung mit Leistungsvorhersage
- Standardisierung, Modularisierung, Wiederverwendung und Automatisierung
- Akkumulation von Wissen
- Arbeitsteilung und Spezialisierung
Was sind die Vorteile einer Vermischung von Problemraum und Lösungsraum?
-explizite Entscheidungen mit besseren Lösungen
Was sind die Nachteile einer Vermischung von Problemraum und Lösungsraum?
- Vorgriff auf Lösungen führt zu Detailentscheidungen
- schränkt Freiheitsgrad bei Suche nach optimaler Lösung ein
Welchen Nutzen können Modelle für Softwareentwicklung bringen
- 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
Welche Begriffe für Fehler in Software gibt es?
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
Was ist defensiver Programmstil?
Grundsätze:
- Risiken vermeiden
- Anwesenheit von Pehlern immer erwarten
- Fehlerreaktion auf minimale Auswirkungen richten
- Auswirkungen von Fehlern verringern/vermeiden
-Robust - unempfindlich gegen Störungen
Was ist das Vertragsmodell der objektorientierten SW-Entwicklung?
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
Was sind die Bestandteile eines Vertragsmodell?
- bezieht sich immer auf eine Operation einer Klasse.
- wird in der Dienstleister-Klasse festgelegt.
- Vertragsbedingungen werden als Zusicherungen spezifiziert.
Was ist im Vertragsmodell eine Klassen-Invariante?
Eine boolesche Aussage über alle Exemplare einer Klasse, die vor und nach Ausführung jeder Operation der Klasse gelten muss.
Was ist eine statische Analyse?
• Experten analysieren Quelltext – Review • Werkzeuge analysieren Quelltext – Metriken, Strukturanalyse, Korrektheitsbeweise
Was ist eine dynamische Analyse?
• Software wird ausgeführt,
Verhalten beobachtet – Test
Was ist der Test-First-Ansatz?
• 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
Welche Zugriffsmodifikatoren gibt es?
- Private: Nur innerhalb der Klasse zugreifbar
- Default: Für alle Klassen im selben Paket
- Protected: Für alle Klassen im selben Paket und Subklassen
- Public: Für alle Klassen im selben Paket und anderen Paketen zugreifbar
Welche Merkmale von Softwaresystemen zeigen deren Komplexität?
- viele Anforderungen
- viele Beteiligte
- mehrere Fachdisziplinen
- viele Bestandteile