Software Engineering Flashcards
Was ist eine Softwarearchitektur?
Eine Softwarearchitektur unterteilt ein System in Teile (z.B. Komponenten, Module, Objekte)
Komponenten des Systems erhalten dann Verantwortlichkeiten und die Zusammenarbeit aller Komponenten ergibt die geforderte Funktionalität
Was ist das Ziel von Softwarearchitektur?
Die Verringerung von Abhängigkeiten zwischen Komponenten
Was sind nicht-funktionale Anforderungen?
Anforderungen die keine direkten Use-Cases haben z.B.
-technische Bedingungen (Programmiersprache, Datenbank…)
-Geschäftsbedingungen (Schnittstellen, Übergang zu anderen Systemen…)
-Qualitätsattribute (Skalierbarkeit, Verfügbarkeit…)
Qualitätsattribute: Was ist Performanz?
Ausführen von vielen Transaktionen in kurzer Zeit
Performanz ist durch folgende Maße definiert:
-Durchsatz: Arbeitsumfang (z.B. Transaktionen) pro Zeiteinheit
-Antwortzeit: Zeit die eine Anwendung braucht um eine Transaktion durchzuführen
-Terminbindung: Fähigkeit einer Anwendung zeitliche Vorgaben einzuhalten
Qualitätsattribute: Was ist Skalierbarkeit?
gibt an wie gut das Problem gelöst werden kann, wenn die Größe des Problems zunimmt
Anfragelast, Gleichzeitige Verbindungen, Datenumfang
Qualitätsattribute: Was sind Verfügbarkeitsanforderungen?
-Verfügbarkeit: Durchschnittszeit zwischen zwei Ausfällen
-Länge einer Ausfallphase: Zeit bis die Anwendung wieder verfügbar ist
-Wiederaufsetzbarkeit des Systems
Was sind Authentifizierung und Authorisierung?
-Authentifikation: Anwendung kann die Identität eines Nutzers oder einer Anwendung verifizieren
-Authorisierung: authentifizierte Nutzer und Anwendungen haben das Recht, auf definierte Ressourcen zuzugreifen
Qualitätsattribute: Was ist Integration?
-Einfachheit mit der eine Anwendung in einen weiteren Anwendungskontext eingebettet werden kann
Was ist Modularität und was ist das Ziel?
Aufteilung eines Systems in separate unabhängige Module die spezifische Funktionen ausführen und klar definierte Schnittstellen haben
Ziel:
Verständlichkeit
Anpassbarkeit
Robustheit
Wozu dient Dokumentation?
-Software ist leichter verständlich und damit einfacher Wartbar
-geringerer Wissensverlust
Was haben alle Vorgehensmodelle zur Entwicklung von Software gemeinsam?
-Reihenfolge von Arbeitsabläufe in Phasen unterteilt
-machen die Durchführung durch zeitlich und
inhaltlich definierte Phasen überschauberer
-müssen fast immer individualisiert werden / sind selten in Reinform anzutretten
Was ist beim Wasserfallmodell zu beachten?
-Teilphasen müssen vollständig durchlaufen werden
-Phasenabschluss ist durch Vorliegen bestimmter Dokumente definiert
Was sind die Vor- und Nachteile des Wasserfallmodells?
+verständlich
+wenig Managementaufwand
-keine Parallelität
-zu hohe Bedeutung der Dokumente
Unterschiede zwischen einem Systemtest und Abnahmetest
Systemtest : Prüft das Software System auf Anforderungen und Tauglichkeit
Abnahmetest : Test von Kunden auf Tauglichkeit für Inbetriebnahme
Was ist ein horizontaler und was ein vertikaler Prototyp?
ein horizontaler Prototyp enthält nur ausgewählte Komponenten einer Systemschicht
ein vertikaler Prototyp realisiert eine Funktionsauswahl über mehrere Systemschichten (Benutzeroberfläche, Anwendung, Datenbank)
Welche Vorteile bietet die Erstellung eines Prototyps in der Softwareentwicklung ?
Veranschaulichung speziellen Aspekte des Systems
Hilft bei der Kommunikation mit Kunden => schnelleres Feedback
Frühere Fehlererkennung => Kostenersparnis