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 Interviews, Umfragen, Workshops usw.

Specification: Dokumentation der Anforderungen in klarer und präziser Sprache, oft mit Modellen wie UML oder SysML.

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

Management: Kontinuierliche Verwaltung und Aktualisierung der Anforderungen während des gesamten Projektlebens.

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

Was ist Anforderungsermittlung?

A

Identifikation der relevanten Stakeholder und ihrer Anforderungen, um keine wichtigen Interessen zu übersehen.

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

Welche Methoden zur Anforderungserhebung gibt es?

A

Je nach Situation eignen sich Templates, Formulare, Interviews, Workshops oder Prototypen zur Erhebung und Dokumentation von Anforderungen.

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

Welche Dokumentationsformen gibt es?

A

Anforderungen können in Form von Listen, Use Cases oder User Stories festgehalten werden, je nach Vorgehensmodell.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
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
7
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
8
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
9
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
10
Q

Wie werden Anforderungen geprüft?

A

Initiale Anforderungen werden gegebenenfalls spezifiziert, geprüft, abgestimmt, konsolidiert und priorisiert, um Eindeutigkeit, Konsistenz und Widerspruchsfreiheit sicherzustellen.

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

Was ist Anforderungsmanagement?

A

Änderungsverwaltung und Nachverfolgbarkeit im Projektverlauf, inkl. Versionisierung und Dokumentation der Umsetzung und Testbezüge, um eine konsistente Dokumentation zu gewährleisten.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
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.
  • Geeignet für erfahrene Entwickler, die von gemeinschaftlichen Best Practices profitieren und eine gemeinsame Sprache für die Architektur schaffen.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
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
14
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
15
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
16
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.
17
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.
18
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.
19
Q

Was ist eine integrierten Entwicklungsumgebung (IDE)?

A

Definition: Kombinieren verschiedene Entwicklungswerkzeuge in einer Umgebung.

Beispiele: Eclipse, Visual Studio, NetBeans.

20
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
21
Q

Was sind Texteditoren?

A

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

22
Q

Was sind Compiler und Interpreter?

A

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

23
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.

24
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.

25
Q

Was sind Versionsverwaltungssysteme?

A

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

26
Q

Was sind Build Automation Tools?

A

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

27
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.

28
Q

Was sind Codegeneratoren?

A

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

29
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.

30
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.

31
Q

Was sind Schritte 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.
32
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.
33
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).
34
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.
35
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.
36
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.