Software Engineering Flashcards
K6 LE 1
In welchen Punkten unterscheiden sich Software-Projekte von konventionellen Projekten?
Qualität des Ergebnis ist von Qualität des Entw.-Prozess abhängig
hohe Anforderungen da man das Verhalten des Systems und der Benutzer antizipieren muss
Ergebnis nicht materiel und Qualität nur schwer messbar
Komplexität und somit Aufwand schwer abschätzbar
In welchen Punkten macht sich die Software-Krise besonders bemerkbar?
- Anwendungsstau
nicht schnell genug neue Software da zu viele Mitarbeit der Wartung gezwungen sind - Mangelnde Qualität
Mangel an Robustheit, Benutzerfreundlichkeit und Wartbarkeit - Kosten- und Terminüberschreitung
Welche Gründe sind vorallem auschlaggeben für die Software-Krise?
hohe Innovationsgeschwindigkeit
Kostenverschiebung (früher nur 20% Wartung, heute 75%)
Ausbildungsdefizit (Vernachlässigung von konstruktiv-analytischen Vorgehen)
Was war die #1 Hauptursache der Software-Krise?
Erster Entwurf war zu grob, somit wurden Fehler sehr spät erkannt und somit war oft eine Neuprogrammierung, des Gesamten oder von Teilen, der günstigste Weg.
Durch so ein Flickwerk war die Dokumentation somit lückenhaft und stimmte nicht überein
Durch welche Schritte wurde die Codierung und das Testen verbessert?
Durch verschiebung von Analyse und Design in die frühe Entwurfsphase.
Welche Vorteile bringt die frühe Analyse und Design?
kostengünstiger Fehler ausmerzen (früh erkennen)
gesamtheitliches Konzept
entfallen von aufwendiger Neucodierung
stabielere und wartbare Software
Dokumentation parallel erstellt (vollständig und lückenlos)
Was sind die Ziele des Software-Engineerings?
qualitativ hochwertige Software
kostengünstig
einhalten von Zeit- und Kostenrahmen
In welche Prinzipien kann man das Software-Engineering unterteilen? Nennen Sie jeweils ein Beispiel.
allgemeine Prinzipien (integrierte Dokumentation)
Entwurfsprinzipien (Modularisierung, Strukturierung)
Implementierungsprinzipien (schrittweise Verfeinerung)
Erklären Sie die möglichen Ansätze des Software-Engineerings?
Top-Down
Benutzer gibt möglichst vollständige Angaben vor zur Programmierung
Bottom-Up
Aufbau der Software durch bestehende Bausteine, qulitativ und quantitativ im vorhinein feststellbar, eingeschränkte Möglichkeiten
Evolutionär
Zyklische Annäherung des Software-Produkts an
Anforderung, mehreres Durchlaufen einzelner Entwicklungsschritte
Welches große Problem tritt durch konventionelle Software-Entwicklungs-Ansätze (z.B. Wasserfallmodel) auf und wie wird dieses Problem heute vermieden?
Durch z.B. dem Wasserfall-Model wurde die Software erst spät im Entw.-Prozess zusammengeführt und fehler erst spät erkannt. Somit entstanden enorme Kosten und Mehraufwand.
Durch Prototypen wird dies heutzutage vermieden
In welche Arten von Prototypen wird unterschieden?
Explorativer-Prototyp
Experimenteller-Prototyp
Evolutionärer-Prototyp
Welche Probleme treten druch Prototype auf?
Mehraufwand durch “Wegwerf Prototypen”
Kunde könnte Prototyp als fertiges Produkt sehen
Ständiges Verändern des Prototypen kann zu Inkonsitenzen und Fehleranfälligkeit führen
Beschreiben Sie den Experimentellen Prototypen?
Von Entwicklern eingesetzt. Simulation von den einzelnen Komponenten und Schnittstellen zum testen von Verhalten, Performance und Umsetztbarkeit
Unterstütz System- und Komponenten-entwurf
Beschreiben Sie den Explorativen Prototypen?
Einsatz in der Anforderungsanalyse und Systemspezifikation. Entwickler und Anwender versuchen anhand des Prototypen eine möglichst vollständige Systemspezifikation zu erarbeiten.
Größter Vorteil ist das frühzeitige Erkennen von Spezifikations-Fehlern und -Probleme
Beschreiben Sie den Evolutionären Prototypen?
Der Prototyp hat bereits alle Funktionen, aber noch nicht vollständig entwickelt, und wird im Laufe des Projekts immer mehr zum fertigen Software-Produkt
Es gibt keine klare unterscheidung zwischen Prototyp und Produkt
Durch den permanten Änderungsprozess wird die einheitliche Systemkonzeption behindert, was somit das Projektmanagement erschwert