Software Engineering Flashcards

1
Q

Was ist eine Softwarearchitektur?

A

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

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

Was ist das Ziel von Softwarearchitektur?

A

Die Verringerung von Abhängigkeiten zwischen Komponenten

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

Was sind nicht-funktionale Anforderungen?

A

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…)

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

Qualitätsattribute: Was ist Performanz?

A

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

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

Qualitätsattribute: Was ist Skalierbarkeit?

A

gibt an wie gut das Problem gelöst werden kann, wenn die Größe des Problems zunimmt

Anfragelast, Gleichzeitige Verbindungen, Datenumfang

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

Qualitätsattribute: Was sind Verfügbarkeitsanforderungen?

A

-Verfügbarkeit: Durchschnittszeit zwischen zwei Ausfällen
-Länge einer Ausfallphase: Zeit bis die Anwendung wieder verfügbar ist
-Wiederaufsetzbarkeit des Systems

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

Was sind Authentifizierung und Authorisierung?

A

-Authentifikation: Anwendung kann die Identität eines Nutzers oder einer Anwendung verifizieren
-Authorisierung: authentifizierte Nutzer und Anwendungen haben das Recht, auf definierte Ressourcen zuzugreifen

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

Qualitätsattribute: Was ist Integration?

A

-Einfachheit mit der eine Anwendung in einen weiteren Anwendungskontext eingebettet werden kann

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

Was ist Modularität und was ist das Ziel?

A

Aufteilung eines Systems in separate unabhängige Module die spezifische Funktionen ausführen und klar definierte Schnittstellen haben

Ziel:
Verständlichkeit
Anpassbarkeit
Robustheit

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

Wozu dient Dokumentation?

A

-Software ist leichter verständlich und damit einfacher Wartbar
-geringerer Wissensverlust

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

Was haben alle Vorgehensmodelle zur Entwicklung von Software gemeinsam?

A

-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

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

Was ist beim Wasserfallmodell zu beachten?

A

-Teilphasen müssen vollständig durchlaufen werden
-Phasenabschluss ist durch Vorliegen bestimmter Dokumente definiert

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

Was sind die Vor- und Nachteile des Wasserfallmodells?

A

+verständlich
+wenig Managementaufwand
-keine Parallelität
-zu hohe Bedeutung der Dokumente

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

Unterschiede zwischen einem Systemtest und Abnahmetest

A

Systemtest : Prüft das Software System auf Anforderungen und Tauglichkeit

Abnahmetest : Test von Kunden auf Tauglichkeit für Inbetriebnahme

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

Was ist ein horizontaler und was ein vertikaler Prototyp?

A

ein horizontaler Prototyp enthält nur ausgewählte Komponenten einer Systemschicht

ein vertikaler Prototyp realisiert eine Funktionsauswahl über mehrere Systemschichten (Benutzeroberfläche, Anwendung, Datenbank)

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

Welche Vorteile bietet die Erstellung eines Prototyps in der Softwareentwicklung ?

A

Veranschaulichung speziellen Aspekte des Systems

Hilft bei der Kommunikation mit Kunden => schnelleres Feedback

Frühere Fehlererkennung => Kostenersparnis

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

Begründen Sie warum ein iteratives Vorgehen Vorteile bringen kann?

A

Kleinen Arbeitsschritten mit regelmäßigen Feedback => auf Kundenwünsche eingegangen werden

reduziert das Risiko, dass das Endprodukt dem Kunden missfällt

18
Q

Was ist der Rational Unified Process (RUP)?

A

-Definition von neun Workflows für Kernaufgaben eines Projekts
-vollständige Abdeckung des Entwicklungsprozesses samt Tools, Dokumentations- und Visualisierungssprache

19
Q

Was sind die Unterschiede zwischen schwergewichtigen und leichtgewichtigen Softwareentwicklungsmethoden?

A

schwergewichtigen : starre, gut definierte Strukturen,
großer Wert auf Planung und Dokumentation
Bsp : Wasserfallmodell, V-Modell

leichtgewichtigen : Flexibilität, Anpassungsfähigkeit
- Wert auf Zussamenarbeit
- Schnelle Bereitstellung funktionsfähiger Software
- iterative und inkrementelle Herangehensweise = > Feedback integrieren, reagieren
Bsp : Scrum, Extreme Programming, Kanban

20
Q

Was ist ein Unit-Test / Integrations-Test / System-Test?

A

Unit-Test : einzelne Funktionalität testen (isoliert)
Integrations-Test : Testet einzelne Units zusammen
System-Test : das gesamte System wird getestet

21
Q

Was ist eine Software-Konfiguration?

A

Benannte und formale freigegebene Menge von Software-Elementen mit gültiger Versionsangabe; die Elemente sind aufeinander abgestimmt und erfüllen vorhergesehene Aufgaben

22
Q

Woraus setzt sich eine Versionsnummer zusammen?

A

Aus Major, Minor und Patchnummer
Majorversion : API inkompatible Änderung
Minorversion : neue Funktionen kompatibel zur API
Patchversion: Bei Fehlerbehebung und Änderungen, ohne Änderung der Schnittstelle

23
Q

Was sind Anforderungen, die zu einer neuen Variante führen können?

A

Produkt in neuem Land/Sprache
Neue Platform ( OS )
Sicherheitsanforderung
V.1.0 –> V.1.0.1.0

24
Q

Was ist das Check-IN-Check-Out-Modell?

A

Nutzer sperrt Datei bevor er Änderungen vornimmt und entsperrt nachdem er fertig ist
=> Verhindert das zwei Personen gleichzeitig Änderungen vornehmen
=> Versionenkonflikt
=> Datenverlust (löschen oder Überschreibung)
=> Fehlende Nachverfolgbarkeit

25
Q

Warum muss eine Konfiguration gemanaged werden ?

A

Um sicher zu gehen, dass eine konsistente, stabile Version entsteht

Änderungen an der Software geordnet, kontrolliert und nachvollziehbar sind

das Entwicklung Kunden entsprechend sind

26
Q

Was ist statisches/dynamisches Testen?

A

statisch: Überprüfung des Codes ohne Ausführen des Programms

dynamisch: Überprüfung durch Ausführung des Codes

27
Q

Was ist das Ziel von Testverfahren?

A

-Verbesserung der Code Qualität-> Kostenreduzierung, bessere Wartbarkeit
-Sicherstellung des Einhalten von Standards
-Verbesserung der Verständlichkeit
-Fehler finden

28
Q

Was ist ein Blackbox-Unittest?

A

-Unit wird gegen Spezifikationen getestet
-ein Fehler ist ein Widerspruch von erwartetem zu tatsächlichem Wert und wird nachgewiesen
-vollständige Fehlersuche und damit Nachweis der Korrektheit nicht möglich

29
Q

Was ist ein Stapeltest?

A

Ein Test der automatisch Testfälle abarbeitet bis er ein tatsächlicher Wert vom erwartetem Wert abweicht

30
Q

Wie ist das V-Modell strukturiert?

A

Analyse
Entwurf
Implementierung

und während jeder Phase werden bereits Tests dafür entwickelt

31
Q

Was sind drei mögliche statische Testverfahren?

A

Inspektion: als Team vorbereiten und dann in Sitzung durch den Code gehen - hoher Aufwand

Review: weniger Personen, etwas weniger Aufwand als Inspektion, da weniger formal

Walkthrough: Autor führt Gutachter durch Code - Gutachter machen Anmerkungen und stellen Fragen

32
Q

Was ist der Unterschied zwischen einem Blackbox und Whitebox Test?

A

Blackbox Test:
keinen Zugriff auf den Code
kann von Testern angewendet werden, die keine direkten Kenntnisse haben
wird meist am Ende angewendet um die Funktionalität zu testen

Whitebox:
benötigt Zugriff auf den Code
überprüft die Art und Weise der Implementierung - Struktur, Logik
wird meist bei einzelnen Integrationsstufen angewendet

33
Q

Was ist der Unterschied zwischen kontrollflussorientierten und datenflussorientierten Whitebox Tests?

A

Kontrollfluss:
überprüft, ob alle Pfade verwendet werden und alle Entscheidungszweige verwendet werden

Datenfluss:
überprüft den Fluss der Daten in einem System - das sie richtig verarbeitet und übertragen werden

34
Q

Was ist eine Metrik für die Kompaktheit/Modularität?

A

das Verhältnis von Bindungen zu Kopplungen

Bindungen: Beziehungen zwischen Elementen innerhalb einer Komponente

Kopplung: Beziehung zwischen Komponenten

35
Q

Was sind die Anforderungen die durch Softwarearchitektur untersützt werden?

A

Performanz
Skalierbarkeit
Änderbarkeit
Sicherheit
Verfügbarkeit
Portabilität
Wartbarkeit

36
Q

Was ist Separation of Concerns?

A

Teilen von Problemen in Teilprobleme - einzelne Komponenten

Prinzip der Softwarearchitektur

37
Q

Was ist unter Information Hiding zu verstehen?

A

Prinzip: nur der für eine Aufgabe nötige Teil von Informationen wird nach außen gegeben

Prinzip der Softwarearchitektur

38
Q

Was ist Abstraktion im Kontext von Softwarearchitektur?

A

wichtige Aspekte identifizieren und unwichtige Details weglassen

im Kontext von Schnittstellen - keine ungenutzten Schnittstellen,

39
Q

Was sind die wichtigen Elemente um eine Softwarearchitektur darzustellen?

A

Komponenten
Schnittstellen
Beziehungen zu einander (Sender, Empfänger)

39
Q

Wieso ist Dokumentation in der Softwarearchitektur wichtig?

A

Um das Verständlichkeit zu erhöhen und somit die Softwarearchitektur analysierbar und wartbarer zu machen