4 Detailaufgaben im Entwicklungsprozess Flashcards

1
Q

Was ist Requirements Engineering?

A

Requirements Engineering (RE) ist der Prozess der systematischen Ermittlung, Spezifikation, Validierung und Verwaltung von Anforderungen an ein System oder eine Software.

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

Welche Phasen umfasst Requirements Engineering?

A
  1. Elicitation: Sammeln von Anforderungen von Stakeholdern durch Interviews, Umfragen, Workshops usw.
  2. Specification: Dokumentation der Anforderungen in klarer und präziser Sprache, oft mit Modellen wie UML oder SysML.
  3. Validation: Überprüfung, ob die Anforderungen korrekt und vollständig sind.
  4. 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
  • relevante Stakeholder identifizieren
  • deren Anforderungen aufnehmen
    o Sonst Risiko Erfolg des Systems durch Nichtbeachtung einzelner Interessensgruppen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Methoden für das Erheben und Dokumentieren von Anforderungen

A

o Abfrage über einfache Templates oder Formulare
o Interviews oder Workshops
o Stakeholdern erste Visualisierungen und Prototypen gezeigt werden, um weitere Anforderungen zu entlocken.

wireframes, mockup, szenarien

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

Dokumentationsformen von Anforderungen

A

o einfache Listen
o Use Cases (Beschreibung eines bestimmten Anwendungsszenarios)
o User Stories (oft im agilen Umfeld genutzt, beschreibt Anforderungen zielorientiert aus der Sicht des Nutzers in alltäglicher Sprache).

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

Anforderungsermittlung Wasserfall vs. Agil

A

o Wasserfallmodell versucht vollständige Dokumentation aller Anforderungen zu erreichen
o Agiles Vorgehen alle relevanten Anforderungen so detailliert kennen, Lösung darauf basieren zu lassen

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

Was ist eine User Story?

A
  • kurze, informelle Beschreibung einer Softwarefunktion aus der Perspektive des Endnutzers
  • in agilen Softwareentwicklung, um Anforderungen zu spezifizieren
  • Format: “Als [Rolle], möchte ich [Ziel/Wunsch], um [Nutzen].” Zum Beispiel: “Als Kunde möchte ich meine Bestellung online verfolgen können, um sicherzustellen, dass sie rechtzeitig ankommt.”

Beispiel: “Als Kunde möchte ich meine Bestellung online verfolgen können, um sicherzustellen, dass sie rechtzeitig ankommt.”

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

Was beschreibt 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
  • Umfasst alle Schritte und Interaktionen, die der Nutzer durchläuft, einschließlich Emotionen und Herausforderungen
  • Beispiel: Ein Kunde sucht nach einem neuen Laptop, informiert sich über verschiedene Modelle, liest Bewertungen, kauft schließlich den Laptop und gibt nach dem Kauf Feedback.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Welche Anforderungskategorien gibt es?

A
  • Funktionale Anforderungen: tatsächlich benötigte Verhaltensweisen der Software
    o Bsp: Möglichkeit ein Dokument elektronisch zu signieren
  • Nicht-funktionale Anforderungen: besonderen Aspekte neben der reinen Funktionalität
    o Bsp: Leistungs- und Qualitätsanforderungen (Benutzerfreundlichkeit, Geschwindigkeit, Datenmengen, usw.)
    o Randbedingungen (einzuhaltende Gesetze, Sicherheitsaspekte)
  • Übergreifende Projektanforderungen: Zeit und Kosten
    o Zieltermin Projekt oder Zwischenergebnisse, Budgethöhe

Beispiel: Möglichkeit ein Dokument elektronisch zu signieren.

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

Wie werden Anforderungen geprüft?

A
  • Wichtig bei größeren Vorhaben mit verschiedenen Stakeholdergruppen und größeren Projektteam
  • Prüfung, dass Anforderungen eindeutig, konsistent und korrekt sind
  • überschneidungs- und widerspruchsfrei in Bezug zu den restlichen Anforderungen
  • Priorisierung > kritische Funktionen zuerst entwickeln
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Was ist Anforderungsmanagement?

A
  • Umgehen mit Änderungen
  • klare Definition wie Änderungen an Anforderungen entschieden und dokumentiert (Stichwort Versionisierung) werden
  • Anforderungen über Lebenszyklus hinaus nachverfolgen
    o in Dokumentation Zusammenhang zwischen Anforderung, Stand der Umsetzung und Dokumentation von Tests einheitlich
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Zusammenhang von Agilen Methoden und RE

A

Agile Methoden und RE ergänzen sich, indem sie eine strukturierte Herangehensweise an die Anforderungsermittlung und -spezifikation mit der Flexibilität und Anpassungsfähigkeit der agilen Entwicklung kombinieren.

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

Was sind Software Design Patterns?

A
  • Abstrakte Lösungsansätze für wiederkehrende Probleme, die eine Art Lösungsschablone bieten.
  • 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
14
Q

3 Kategorien von Entwurfsmustern

A

o Erzeugungsmuster (Creational Patterns): Beschreiben die Objekterzeugung.
o Strukturmuster (Structural Patterns): Definieren Beziehungen zwischen Klassen.
o Verhaltensmuster (Behavioral Patterns): Beschreiben das Verhalten der Software.

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

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, , so dass Änderungen und Erweiterungen an jeweils einer der drei Komponenten weitgehend unabhängig von den anderen Komponenten vorgenommen werden kann

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

Was sind Frameworks?

A
  • Vorgabe der Architektur der Software durch vorgefertigte Klassen
  • Rahmen / Gerüst, in das Entwickler konkrete Funktionen integriert
  • Innerhalb Architekturvorgabe mehrere Design Patterns
17
Q

Vorteile von Frameworks

A

o Spart Entwicklungszeit und Kosten durch vorgefertigte Basisfunktionen (z. B. Bibliotheken, Datenbankkommunikation).
> Entwickler können sich auf spezifische Funktionen konzentrieren.

18
Q

Nachteile von Frameworks

A

o Eingeschränkte Flexibilität durch die vorgegebene Struktur.
o Potenzielle Fehler oder Sicherheitsprobleme des Frameworks können übernommen werden

19
Q

Arten von Frameworks

A

o Application Frameworks: Bieten breite Funktionen für eine Programmiersprache (z. B. Django, Angular).
o Test-Frameworks: Unterstützen Tests während der Entwicklung (z. B. JUnit).

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

Was ist eine integrierten Entwicklungsumgebung (IDE)?

A
  • Definition: Kombinieren verschiedene Entwicklungswerkzeuge in einer Umgebung.
  • Beispiele: Eclipse, Visual Studio, NetBeans.
22
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
23
Q

Was sind Texteditoren?

A

Unterstützen Quellcode-Erstellung durch:
- Syntaxhervorhebung
- Automatische Einrückung
- Codevervollständigung
- Einfacheres lesen, verstehen & schreiben

24
Q

Was sind Compiler/Interpreter?

A

Übersetzen Quellcode in ausführbaren Maschinencode:
- Compiler: vorab übersetzen
- Interpreter: zur Laufzeit (oder Just-in-Time-Compiler)

25
Q

Was sind Debugger?

A

Analyse und Beheben von Fehlern (Bugs):
- Haltepunkte (BreakPoints) setzen
- Variablenwerte bei Ausführung anzeigen
- Schrittweise Codeausführung > Fehler im Programmablauf schnell erkannt

26
Q

Was sind Refactoring-Tools?

A

Umstrukturierung von Quellcode zur besseren Lesbarkeit:
- Methoden/Klassen verschieben oder umbenennen
- Änderungen automatisch auf alle Stellen anwenden

27
Q

Was sind Versionsverwaltungssysteme?

A

Verwalten von Codeversionen:
- Änderungen protokollieren
- Alte Versionen wiederherstellen
- Unterstützung bei Teamarbeit

28
Q

Was sind Build Automation Tools?

A

Automatisieren den Build-Prozess:
- Reduzieren Fehler durch manuelle Prozesse
- Build: eigenständig ausführbares Programm, das aus den entsprechenden Quelldateien erstellt wird

29
Q

Was sind GUI-Builder?

A

Vereinfachen das Erstellen von Benutzeroberflächen:
- Elemente per Drag-and-Drop platzieren
- Ohne müssen grafische Oberflächen direkt im Quellcode konfiguriert werden > keine direkte optische Rückmeldung > erschwert Entwicklungsprozess

30
Q

Was sind Codegeneratoren?

A

Erstellen Quellcode aus formalen Beschreibungen (z. B. Diagrammen)
- Grundlage für Codeerstellung: formale Beschreibung der benötigten Funktionen, (Ablaufdiagramme)
- Codegenerator ist auf dieser Basis dazu in der Lage automatisch Quellcode zu generieren, der das Inputmodell abbildet

31
Q

Was ist Testautomatisierung?

A
  • Testfallerstellung: Automatisiertes Generieren von Testfällen
    o (vorher formales Modell für Grundlage für Erstellung von Tetsfällen)
  • Testdurchführung: Wiederholtes Ausführen von Tests
    o Vorbereitung Testfall selbst programmieren, dann aber immer wieder automatisiert
    o Vorteil bei häufigeren Änderungen der Software > schnell Prüfung ob eine Funktion noch wie zuvor korrekt abläuft (Regressionstest).
32
Q

was ist Qualitätskontrolle?

A

Sicherung der Qualität der entwickelten Software mit entsprechenden Tests nach Implementierung
(Ausnahme testgetriebene Entwicklung, bei der konsequent entsprechende Tests vor der jeweiligen Funktionalität implementiert werden)

33
Q

Was sind die Testphasen im Entwicklungsprozess?

A

Testphasen im Entwicklungsprozess
1. Testplanung: Planung der gesamten Testaktivitäten inklusive Ressourcen- und Zeitplanung, Definition der Teststrategie
2. Testdesign: Verfeinerung der Testplanung und Vorbereitung der Testaktivitäten (z. B. Testdaten, Testumgebung)
3. Testspezifikation: Beschreiben der Testfälle (Voraussetzungen, Eingaben, Ausgaben)
4. Testdurchführung: manuelle oder automatisierte Durchführung der zuvor definierten Testfälle
5. Testprotokollierung: Dokumentation der Testergebnisse und Vergleich von Soll- mit Ist-Ergebnissen
6. Testauswertung: Analyse von Testergebnissen und Teststatistiken, ableiten von weiteren Schritten bzw. Entscheidungen

34
Q

Testarten

A
  1. Modultests (Unittests):
    - Test einzelner Funktionseinheiten.
    - frühe Teststufe, begrenzter Umfang, Entwickler selbst, prüft die jeweils entwickelte Funktionalität auf ihre Korrektheit
    - klar definierter Umfang mit wenigen Schnittstellen, geeignet zur Automatisierung
  2. Integrationstest:
    - Test des Zusammenspiels / Intreaktion verschiedener Module inklusive Schnittstelle in verschiedenen Szenarien
    - Strategien:
  3. Bottom-Up: Testung Stück für Stück Integration einzelner Komponenten
  4. Top-Down: Testung Integration aller Module
  5. Systemtest:
    - Test des gesamten Systems in einer Testumgebung auf korrekte Funktionsweise.
    - Testfälle sollten nah an echten Anwendungsfällen sein (Testdaten realitätsnah)
    - Durchführung von Testszenarien zur Prüfung funktionaler und nicht-funktionaler Anforderungen
  6. Abnahmetest (User-Acceptance-Test / UAT):
    - Test durch den Kunden, um Software freizugeben.
    - erfolgreicher Abnahmetest Bedingung für eine Übergabe der Software und Bezahlung des Softwareentwicklers (bei externen Entwicklern)
35
Q

Kategorisierung von Testverfahren

A
  1. Statisch vs. Dynamisch:
    - Statisch: Kein Ausführen der Software (z. B. Code-Review, personen prüfen Code).
    - Dynamisch: Software wird ausgeführt (meiste Testmethoden).
  2. White-Box- vs. Black-Box-Test:
    - White-Box: Fokus auf Programmcode, Aufspüren von Fehlern (z. B. ablauforientiertes Testen: Prüfung Programm alle Quellcodezeilen abgelaufen werden (Zeilenüberdecken)
    - Black-Box: Programmcode wird nicht miteinbezogen, Test der Funktionalität, mithilfe Testfälle Anforderungen abdecken (z. B. Kundentests)
36
Q

Spezielle Testarten

A
  1. Stresstest:
    - Belastungstests über Systemgrenzen hinaus (z. B. Datenmengen, Nutzerzahl)
    - Bestimmung der Lastgrenze, Bestimmung der Fehlerfälle bei der es zu Überschreitung dieser Grenze kommt (Absturz, Antwortzeiten, Verarbeitungsfehler, etc.).
  2. Regressionstest:
    - Einsatz bei Änderungen von bereits genutzten Software
    - Verhaltensweisen und Ausgaben der älteren Programmversion als erwartete Ergebnisse der neuen Version definiert
    - Prüfung, ob unveränderte Funktionen nach Änderungen noch korrekt arbeiten
37
Q

Was ist bei Testaktivitäten zu beachten?

A
  • beliebig umfangreich und komplex
  • Aufwand und Zeitbedarf nicht zu unterschätzen
  • passendes Maß an Testaktivitäten kontextabhängig (Art von Software, Anwender, unterstützten Geschäftsprozesse, gesetzlichen Anforderungen, Verhältnis zwischen Entwickler und Kunde, usw.)
  • Wirtschaftlichkeit berücksichtigen > vollständige Fehlerfreiheit praktisch unmöglich