Requirements Engineering Flashcards

1
Q

Was sind die Aufgaben des Requirements Engineering

A

Anforderungen an ein neues Softwareprodukt:

  1. ermitteln (systematisches Gewinnen der Anforderungen)
  2. spezifizieren (Beschreibung der Anforderungen unter Berücksichtigung von festgelegten Methoden)
  3. analysieren und validieren (Unklarheiten beseitigen)
  4. modellieren (aus Anforderungen fachliche Lösung ableiten)

(Der Weg vom Was (Anforderung) zum Wie (Lösung/Konzept))

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

Was ist eine Anforderung im Requirements Engineering?

A

Festlegung, welche Eigenschaften ein zu entwickelndes Softwaresystem besitzen/beschreiben sollen,
sodass damit das Problem gelöst wird.

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

Welche Schritte durchläuft die Anforderungsspezifikation (aus Kundensicht) bis hin zu der Programmiersicht?

A
  1. Anforderungsspezifikation des Kunden
  2. Modellierung einer fachlichen Lösung (Auftragnehmersicht)
  3. Entwurf einer technischen Lösung (Architektensicht)
  4. Implementierung des Systems (Programmiersicht)
  • Rückkopplung zwischen benachbarten Sichten führt zu Konkretisierung des Lösungsraums
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Was ist ein System in Bezug auf eine gegebene Problemstellung?

A

= Lösung des Problems

System ist Ausschnitt aus der realen/gedanklichen Welt,
bestehend aus Systemkomponenten bzw. Subsystemen,
die untereinander in verschiedenen Beziehungen stehen.

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

Warum müssen Anforderungen geändert werden?

A
  • Misskommunikation in der Kommunikation der Stakeholder
  • falsche Einschätzung der Machbarkeit
  • wachsende/ändernde Anforderungen an das Gesamtsystem
  • neue Erkenntnisse durch bspw. Prototypen/Pilotbetrieb
  • Änderung im Budget
  • ungenaue Formulierung
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Was sind typische Probleme bei der Kommunikation von Anforderungen seitens des Auftraggebers?
(Misverständnisse)

A
  • Auftraggeber weiß zu Projektbeginn nicht genau, was er will
  • Auftraggeber kann das, wovon er weiß, dass er es will, nicht vollständig mitteilen (implizite Erwartung)
  • Auftraggeber versteht nicht, was der Softwareentwickler außer den vorgelegten Beispielen noch leisten könnte
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Welche Artefakte werden unabhängig vom Prozessmodell im Requirements Engineering erstellt?

A
  1. Anforderungsspezifikation: alle ermittelten, spezifizierten, analysierten und validierten Anforderungen aus Auftraggebersicht
  2. Glossar: Sammlung der domänenspezifischen Fachbegriffe
  3. Fachliche Lösung/Produktmodell: analysierte + verifizierte Lösung aus Auftragnehmersicht
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Wer erstellt das Lastenheft und was steht darin?

A
  • Auftraggeber
  • Gesamtheit der Forderungen an Lieferungen und Leistungen des Auftragnehmers innerhalb eines Auftrags
    = Basis eines Angebots
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Wer erstellt das Pflichtenheft und was steht darin?

A
  • Auftragnehmer
  • erarbeitete Realisierungsvorgaben basierend auf einem vorgegebenen Lastenheft
    = typischerweise Inhalt des Angebots (+ Kalkulation und Projektplan)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Wann bedarf es keines Lasten-/Pflichtenhefts?

A
  • z.B. bei internen Kunden
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Was ist eine User Story und wann ist die Verwendung von User Stories sinnvoll?

A
  • schriftliche Beschreibung einer Teilfunktionalität, die für den Nutzer/Auftraggeber der Software wertvoll/wichtig ist
  • meist in semi-formaler Syntax “Als [Rolle] möchte ich [Funktionalität,…], sodass [Mehrwert]”

User Stories eignen sich, wenn:

  • der Kunde tief in den Entwicklungsprozess integriert werden kann
  • es vertraglich möglich ist eine Aufwandsschätzung “im Prozess” zu tun (Dienstvertrag/Werkvertrag je Sprint)
  • User Stories so genau definiert sind, dass Aufwandsschätzung durch Entwickler möglich ist
  • Abnahmekriterien sollten mit jeder Story (Kartenrückseite) dokumentiert werden

–> und somit vor allem in sprintbasierter, also agiler Softwareentwicklung eingesetzt

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

Nenne vier Ansätze des Requirement-Engineering

A
  • sequentiell
  • phasenbezogen (ohne Überlappungen)
  • entwicklungsbegleitend (RE findet auch nach Entwicklungsbeginn der Software noch statt)
  • produktübergreifend (ein projektunabhängiges RE als Basis für mehrere Software-Entwicklungen)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Was sind Stakeholder?

A

alle Personen und Organisationen,
die Interesse an einer Softwareentwicklung haben
und/oder von der Softwareentwicklung/dessen Einsatz betroffen sind

  • sind Ausgangspunkt für die Erstellung von Anforderungen (explizit: Auftraggeber, implizit: Erwartungshaltung von Nutzern, Verbände, …)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Beschreibe ein Hilfswerkzeug zur Klassifizierung von Stakeholdern

A

Stakeholder-Matrix:

  • je eine Achse für Konfliktpotenzial (bzw. Interesse) am Projekt und Einfluss auf das Projekt
  • wichtigste Stakeholder stehen im Quadranten oben rechts –> hohes Konfliktpotenzial und hoher Einfluss
  • usw.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Zwischen welchen zwei Kategorien von Anforderungen wird prinzipiell unterschieden?

A
  1. Funktionale Anforderungen (legen fest WAS ein System tun soll)
  2. Nichtfunktionale Anforderungen (legen das WIE fest)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Nenne mindestens vier Beispiele für nichtfunktionale Anforderungen

A
  • Verfügbarkeit
  • Nebenläufigkeit
  • Benutzbarkeit
  • Sicherheit
  • Effizienz
  • Portabilität
  • Wartbarkeit
17
Q

Welche Rahmenbedingungen tangieren die Spezifikation von Anforderungen?

A

organisatorische/technische Restriktionen für das Softwaresystem/ den Entwicklungsprozess

organisatorisch: Anwendungsbereich, Zielgruppe, Betriebsbedingungen
technisch:
- Software (Betriebssystem, DBS, …)
- Hardware (Rechnersysteme, I/O)
- Orgware (notwendige Schnittstellen, wie Internetzugang oder zu bestimmten Softwaresystemen)

-> bei mehrschichtigen Softwaresystemen sind die Rahmenbedingungen für jede Schicht zu erfassen

18
Q

In welche 6 übergeordnete Kategorien werden Anforderungen nach Qualitätsmodell ISO/IEC 9126 klassifiziert?

A
  1. Funktionalität
  2. Zuverlässigkeit
  3. Benutzbarkeit
  4. Effizienz
  5. Wartbarkeit
  6. Portabilität
19
Q

Was macht die Funktionalität nach Qualitätsmodell der ISO aus?

A
  • Angemessenheit (die Funktion ist geeignet)
  • Genauigkeit (die Funktion tut das was sie soll)
  • Interoperabilität
  • Sicherheit
  • Konformität der Funktionalität (Konventionen/ gesetzliche Bestimmungen eingehalten)
20
Q

Was macht die Zuverlässigkeit nach Qualitätsmodell der ISO aus?

A
  • Reife
  • Fehlertoleranz
  • Zuverlässigkeit
  • Wiederherstellbarkeit
  • Konformität der Zuverlässigkeit
21
Q

Was macht die Benutzbarkeit nach Qualitätsmodell der ISO aus?

A
  • Verständlichkeit
  • Erlernbarkeit
  • Bedienbarkeit
  • Attraktivität (ansprechende Gestaltung)
  • Konformität der Benutzbarkeit
22
Q

Was macht die Effizienz nach Qualitätsmodell der ISO aus?

A
  • Zeitverhalten (die Verarbeitungs/Anwortszeit ist nicht zu lang)
  • Verbrauchsverhalten (es frisst nicht zu viele Ressourcen)
  • Konformität der Effizienz
23
Q

Was macht die Wartbarkeit nach Qualitätsmodell der ISO aus?

A
  • Analysierbarkeit (Debug-bar)
  • Änderbarkeit
  • Stabilität
  • Testbarkeit
  • Konformität der Wartbarkeit
24
Q

Was macht die Portabilität nach Qualitätsmodell der ISO aus?

A
  • Anpassbarkeit
  • Installierbarkeit
  • Koexistenz
  • Austauschbarkeit
  • Konformität der Portabilität
25
Q

Was sind typische Attribute einer Anforderung?

A
  • ID
  • Anforderungstyp (funktional/nichtfunktional)
  • Beschreibung
  • Status
  • Abnahmekriterien
  • Priorität
  • Stabilität
  • Kritikalität
  • Aufwand
26
Q

Welche Ansätze kann man zur Formulierung/Beschreibung von Anforderungen befolgen?

A
  • formal (z.B. UML-Diagramme –> Semantik ist klar)

- semiformal/informal

27
Q

Welche Vor- und Nachteile birgt die semiformale/informale Beschreibung von Anforderungen

A

Vorteile:

  • einfach, wenn alle Stakeholder die Sprache beherrschen
  • flexibel -> abstrakte und auch konkrete Aspekte beschreibbar
  • universell, da für jede Anwendungsdomäne nutzbar

Nachteile:

  • lexikalische Mehrdeutigkeiten (Synonyme/Homonyme)
  • syntaktische Mehrdeutigkeit (z.B. die letzten 10 Buchungen und Stornierungen des Kunden –> sind das jetzt alle oder 10 Stornierungen)
  • semantische Mehrdeutigkeit (z.B. jeder Sensor mit einem Service verbunden –> heißt das mehrere Sensoren pro Service möglich?)
  • referentielle Mehrdeutigkeit (z.B. wenn dies nich korrekt ist…. –> was ist mit dies gemeint)
28
Q

Wie kann man versuchen die Mehrdeutigkeit semi-formaler Beschreibungen zu reduzieren?

A

z.B.: Glossar oder Anforderungsschablonen

–> Das System

mit Verb = { muss, soll, sollte in Zukunf }
Art der Systemaktivität = { , , }
Prozesswort = { anlegen, löschen, berechnen, informieren, … }

usw.

Beispiel:

Das System muss dem Kunden die Möglichkeit bieten, sich über Seminare und
Veranstaltungen zu informieren.

29
Q

Nenne Ermittlungstechniken zum Finden von Anforderungen

A

Befragungstechniken (Interview, Fragebögen, Präsenz eines Stakeholders im Team, Selbstaufschreibung)

Beobachtungstechniken (passive/ aktive Feldbeobachtung –> wie ein Stakeholder mit Software umgeht)

Altsysteme analysieren (anhand von Prozessbeschreibungen, alte Anforderungsdokumente, etc.)