4. Detailaufgaben im Entwicklungsprozess Flashcards

1
Q

Was ist Requirements Engineering?

A

Der Prozess zur systematischen Erhebung, Verwaltung und Umsetzung von Anforderungen über deren gesamten Lebenszyklus hinweg. Unklare Anforderungen sind ein häufiger Scheitergrund für Softwareprojekte.

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

Welche Phasen umfasst Requirements Engineering?

A

Elicitation: Sammeln von Anforderungen von Stakeholdern durch Templates, Formulare, Interviews, Workshops.

Specification: Dokumentation der Anforderungen in klarer und präziser Sprache, oft mit Modellen wie UML oder SysML - in Form von Listen, Use Cases, User Stories.

Validation: Überprüfung, ob die Anforderungen korrekt und vollständig sind.

Management: Kontinuierliche Verwaltung und Aktualisierung der Anforderungen, sowie Versionisierung und Dokumentation während des gesamten Projektlebens.

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

Anforderungsermittlung - Wasserallmodell vs. Agile Methoden

A

Wasserfallmodell: Strebt eine vollständige Dokumentation aller Anforderungen vor Projektbeginn an.

Agile Methoden: Erfassen relevante Anforderungen in ausreichendem Detailgrad, um eine Lösung entwickeln zu können.

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

Welche Kategorien von Anforderungen gibt es?

A
  • Funktionale Anforderungen: Beschreiben was die Software tun soll, d. h., sie legen die spezifischen Verhaltensweisen, Aktionen oder Funktionen fest, die die Software erfüllen muss, wie z. B. das Berechnen eines Gesamtbetrags oder das Speichern von Daten.
  • Nicht-funktionale Anforderungen: Beschreiben wie gut die Software ihre Aufgaben erfüllen soll, also die Qualitäts- und Leistungsaspekte, die über die reine Funktionalität hinausgehen. Dazu gehören z. B. Anforderungen an Geschwindigkeit, Zuverlässigkeit, Benutzerfreundlichkeit sowie gesetzliche Vorgaben wie die Einhaltung der DSGVO.
  • Projektanforderungen: Beziehen sich auf Zeit- und Kostenziele (z. B. Deadlines, Budgetgrenzen).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was ist eine User Story?

A

kurze, informelle Beschreibung einer Softwarefunktion aus der Perspektive des Endnutzers

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

Was ist eine User Journey?

A

beschreibt den gesamten Weg, den ein Nutzer von der ersten Interaktion mit einem Produkt oder einer Dienstleistung bis zum Erreichen seines Ziels nimmt

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

Was sind Software Design Patterns?

A
  • Abstrakte Lösungsansätze für wiederkehrende Probleme, die eine Art Lösungsschablone bieten.
  • Popularisiert durch die „Gang of Four“ in den 1990er-Jahren
  • Beispiel: Das „Facade“-Pattern vereinfacht den Zugriff auf komplexe Klassenstrukturen durch eine vereinheitlichte Schnittstelle.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Welche drei Kategorien von Software Design Patterns gibt es?

A
  • Erzeugungsmuster (Creational Patterns): Beschreiben die Objekterzeugung.
  • Strukturmuster (Structural Patterns): Definieren Beziehungen zwischen Klassen.
  • Verhaltensmuster (Behavioral Patterns): Beschreiben das Verhalten der Software.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Was ist ein Architekturmuster?

A

Muster auf höherer Abstraktionsebene, wie z. B. das Model View Controller (MVC) Muster, das die Software in Daten (Model), Benutzeroberfläche (View) und Steuerlogik (Controller) trennt. Ziel ist erhöhte Wiederverwendbarkeit und Anpassbarkeit.

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

Was sind Software Design Frameworks?

A
  • Bieten eine vorgefertigte Softwarearchitektur und Klassenstruktur, die der Entwickler für die konkrete Funktionserstellung nutzen kann.
  • Ermöglichen die Einbettung spezifischer Funktionen in ein vorhandenes Gerüst und enthalten oft mehrere Design Patterns.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Welche Vorteile und Nachteile bei Software Design Frameworks gibt es?

A
  • Vorteil: Zeitsparend und kosteneffizient, da Basisfunktionen und Bibliotheken integriert sind.
  • Nachteil: Reduzierte Flexibilität und mögliche Sicherheitslücken oder Fehler im Framework selbst.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Welche Arten von Frameworks gibt es?

A
  • Application Frameworks: Übergreifende Funktionen für eine Programmiersprache, z. B. Django (Python) oder Angular (JavaScript).
  • Test-Frameworks: Bieten Testfunktionalitäten, z. B. JUnit (Java), und unterstützen den Testprozess.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Was ist der Unterschied zwischen Patterns und Frameworks?

A
  • Patterns bieten abstrahierte Lösungen
  • Frameworks sind implementierte Strukturen, die mehrere Patterns enthalten
  • Frameworks erleichtern die Entwicklung, aber Patterns bieten die konzeptionellen Grundlagen.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Was ist eine integrierten Entwicklungsumgebung (IDE)?

A

Definition: Kombinieren verschiedene Entwicklungswerkzeuge in einer Umgebung.

Beispiele: Eclipse, Visual Studio, NetBeans.

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

Typische Funktionen von IDEs

A
  1. Texteditoren
  2. Compiler/Interpreter
  3. Debugger
  4. Refactoring-Tools
  5. Versionsverwaltungssysteme
  6. Build Automation Tools
  7. GUI-Builder
  8. Codegeneratoren
  9. Testautomatisierung
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Was sind Texteditoren?

A

Unterstützen das Schreiben und Anpassen von Quellcode und bieten Funktionen wie Syntaxhervorhebung, Codevervollständigung und automatische Einrückung.

17
Q

Was sind Compiler und Interpreter?

A

Übersetzen Quellcode in ausführbaren Maschinencode, entweder vorab (Compiler) oder zur Laufzeit (Interpreter).

18
Q

Was sind Debugger?

A

Werkzeuge zur Fehlersuche, die das Setzen von Breakpoints und die schrittweise Ausführung des Programms ermöglichen, um Fehler gezielt zu erkennen.

19
Q

Was sind Refactoring-Tools?

A

Unterstützen das Umstrukturieren von Code, um ihn übersichtlicher und besser wartbar zu machen, indem sie das automatische Umbenennen und Verschieben von Methoden und Klassen ermöglichen.

20
Q

Was sind Versionsverwaltungssysteme?

A

Speichern unterschiedliche Versionen des Quellcodes, ermöglichen die Wiederherstellung alter Stände und unterstützen die Zusammenarbeit im Team.

21
Q

Was sind Build Automation Tools?

A

Automatisieren den Erstellungsprozess (Build) von ausführbarer Software, um Fehler im Vergleich zu manuellen Builds zu reduzieren.

22
Q

Was sind GUI Builder?

A

Erleichtern das Erstellen grafischer Benutzeroberflächen durch Drag-and-Drop-Design, was die Entwicklung von Oberflächen schneller und intuitiver macht.

23
Q

Was sind Codegeneratoren?

A

Erstellen automatisch Quellcode aus formalen Modellen wie Ablaufdiagrammen und beschleunigen damit die Entwicklung.

24
Q

Was sind Testautomatisierungs-Tools?

A

Erstellen und führen Testfälle automatisch aus, um die Korrektheit der Software nach Änderungen zu überprüfen und Regressionstests durchzuführen.

25
Q

Was ist Qualitätskontrolle?

A

Sicherung der Softwarequalität nach der Implementierung durch geplante Testphasen, außer bei testgetriebener Entwicklung, wo Tests vor der Implementierung erfolgen.

26
Q

Welche Schritte gibt es im Testprozess?

A
  1. Testplanung: Festlegung der Teststrategie, Ressourcen- und Zeitplanung.
  2. Testdesign: Vorbereitung der Tests (Testdaten und Testumgebung).
  3. Testspezifikation: Definition der Testfälle (Voraussetzungen, Eingaben, Ausgaben).
  4. Testdurchführung: Durchführung der Testfälle, manuell oder automatisiert.
  5. Testprotokollierung: Dokumentation und Vergleich von Soll- und Ist-Ergebnissen.
  6. Testauswertung: Analyse und Ableitung weiterer Schritte.
27
Q

Testarten nach Zeitpunkt und Umfang?

A
  • Modultests/Unittests: Überprüfen einzelner Module, meist durch den Entwickler und gut für Automatisierung geeignet.
  • Integrationstests: Prüfen das Zusammenspiel der Module und Schnittstellen, entweder Bottom-Up oder Top-Down.
  • Systemtests: Testen das gesamte System in einer realitätsnahen Umgebung, um sicherzustellen, dass funktionale und nicht-funktionale Anforderungen erfüllt sind.
  • Abnahmetests (User Acceptance Tests, UAT): Vom Kunden durchgeführte Endabnahme, Grundlage für die Übergabe.
28
Q

Welche Testmethoden gibt es?

A
  • Statische Tests: Code wird nicht ausgeführt, z. B. durch Code-Reviews.
  • Dynamische Tests: Software wird tatsächlich ausgeführt, was die häufigsten Tests umfasst.
  • White-Box-Tests: Prüfen den Code direkt, nützlich in frühen Testphasen (z. B. Modultests).
  • Black-Box-Tests: Fokus auf die Funktionalität aus Nutzersicht, ohne Codeeinsicht (z. B. beim Abnahmetest).
29
Q

Welche spezielle Testarten gibt es?

A
  • Stresstests: Testen das System unter maximaler Belastung, um Grenzen und mögliche Fehler bei Überlastung zu ermitteln.
  • Regressionstests: Prüfen nach Änderungen, ob bestehende Funktionen unverändert und korrekt arbeiten.
30
Q

Funktionsorientierte Anforderungsbeschreibung

A
  • Technisch präzise und detailliert beschrieben, was die Implementierung für den Entwickler erleichtert.
  • Definiert genau, welche technischen Vorgänge auszuführen sind, z. B. bei Klick auf einen Button.
  • Erhöht die Gefahr, dass bei der Spezifikation Details übersehen werden, da Kunden oft Schwierigkeiten haben, Anforderungen so detailliert zu formulieren.
31
Q

Anwenderorientierte Anforderungsbeschreibung (User Story)

A
  • Kundenfreundlich und einfacher zu erstellen, da der Fokus auf der Nutzung durch den Anwender liegt.
  • Beschreibt, was der Anwender erreichen möchte, ohne die technische Umsetzung vorzugeben.
  • Lässt dem Entwickler Freiraum, wie die Funktionalität umgesetzt wird, was Flexibilität bietet, aber eventuell mehr Interpretationsaufwand erfordert.
32
Q

Für wen eignen sich Software Design Patterns?

A

Software Design Patterns eignen sich für erfahrene Entwickler, da die größte Herausforderung ist erstmal zu erkennen welches Pattern für das Problem gut geeignet ist.