Die Qualitätsanforderungen an Individualsoftware sind hoch. Sie soll funktional, zuverlässig, benutzerfreundlich und wartbar sein. Nicht zuletzt muss die Kosten-Nutzen-Relation stimmen.
Weitere Vorträge, die wir auch gern in Ihrem Unternehmen halten, finden Sie unter: https://www.iks-gmbh.com/impulsvortraege
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
Mehr Softwarequalität: Requirements Engineering
1. Garbage in – garbage out:
Wie das Anforderungsmanagement die
Softwarequalität beeinflusst
iks Thementag
„Mehr Softwarequalität – Ausgewählte Themen“
12.11.2013
Autor:
Jörg Vollmer
2. Was stört Sie im IT-Alltag am meisten?
Befragt wurden 142 Software-Entwickler:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Unklare Anforderungen
Zu häufig & schnell wechselnde Anforderungen
Termindruck => Quick & Dirty
Schlechtes Projektmanagement
Unverständlicher Code (z.B. hist. gewachsen)
Geringe oder fehlende Testabdeckung
Unzureichende Kommunikation im Team
Ineffektive (Entwicklungs-) Prozesse
Unnötige Meetings & Diskussionen
Nicht machbare Aufwandsschätzungen
51.41 %
37.32 %
30.99 %
28.87 %
28.17 %
28.17 %
25.35 %
21.13 %
15.49 %
14.79 %
Quelle: http://umfrage.clean-coder.de (Stand 14. Okt. 2013)
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 3 / 76
3. Unklare Anforderungen (51.41%)
Requirements Engineering = Unklare Anforderungen beseitigen!
Konstruktive Maßnahmen
– Welche Fertigkeiten des RE helfen dabei?
– Sieben typische Fallen beim RE
– Welchen Einfluss haben Werkzeuge auf das RE?
Analytische Maßnahmen
– Kann das RE selbst qualitativ und quantitativ bewertet werden?
– Wie lässt sich RE-Qualität messen und sichern?
– Wirkt sich RE-Qualität auf die Software-Qualität aus?
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 4 / 76
4. Agenda
Anforderungen aufnehmen
Dokumentieren von Anforderungen
Der Effekt von Akzeptanztests
Anforderungen vermessen und validieren
Verwalten von Anforderungen
Zusammenfassung
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 5 / 76
5. Agenda
Anforderungen aufnehmen
Dokumentieren von Anforderungen
Der Effekt von Akzeptanztests
Anforderungen vermessen und validieren
Verwalten von Anforderungen
Zusammenfassung
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 6 / 76
6. Aufgaben zum Projektbeginn
Eine initiale Bestandsaufnahme des Projektumfelds ist
unverzichtbar
– Auch im agilen Umfeld
Wichtige Aufgaben sind
– Ziele des Produkts und dessen Nutzen ermitteln
– Ermitteln aller Stakeholder
– Systemkontext und -grenzen bestimmen
– Qualitätsanforderungen identifizieren
… denn sonst bleiben sie unklar Unklare Anforderungen!
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 7 / 76
7. Beobachtungstechniken
Apprenticing: Der RE wird wie ein Lehrling eingearbeitet
Der RE lernt hierbei den Fachjargon kennen
Arbeitsschritte hinterfragen und ineffiziente Prozesse entdecken! ...
Die (neue) Software ist eng mit den Geschäftsprozessen verwoben
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 8 / 76
9. Unnötige Meetings & Diskussionen
Der RE sollte wissen:
– Jede Debatte, die nicht in fünf Minuten beigelegt werden kann,
kann nicht durch Debattieren gelöst werden (Kent Beck)
– Selbstdarsteller machen andere ratlos und stumm
– Häufig geht es dann nicht mehr um die beste Lösung
s. auch [bdw]
Moderationstechniken anwenden
Risiko von falschen Entscheidungen Software-Qualität
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 10 / 76
11. Unzulässige Verallgemeinerungen
Stakeholder A:
– Bei einem Fehler muss das System anhalten
Stakeholder B:
– Bei einem Fehler muss das System neustarten
RE einigt sich mit A und B auf
– Im Fehlerfall wird eine Ausnahmeroutine veranlasst
Fauler Kompromiss!
Eine Mehrdeutigkeit in einem Anforderungsdokument steht oft
für einen Konflikt bei den Stakeholdern (de Marco)
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 12 / 76
12. Falle 3
Designfehler bei Geschäftsobjekten
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 13 / 76
13. Das Auto soll verschiedene Farben haben
Was der RE verstand:
Was der Kunde wollte:
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 14 / 76
14. Unterschiede ziehen sich durch alle Schichten
Datenbank
Datenmodell
Service-Schicht
Benutzeroberfläche
Fachobjekte und deren Beziehungen identifizieren (DDD)
Hohe Korrekturkosten ↔ es geht auf Kosten der Softwarequalität
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 15 / 76
16. Unklare Fachbegriffe
Was meinte der Banker mit „Engagement“?
– Meinte er persönlichen Einsatz oder
– doch eine vertragliche Verpflichtung wie beim Theater?
Wikipedia
– Risiko bzw. Chance eines Kursverlusts oder -gewinns
Die Fachabteilung
– Das, was die Bank verliert, wenn der Kunde bankrott ist
Fachbegriffe analysieren, Glossar, ubiquitäre Sprache
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 17 / 76
17. Best Practices
Überprüfen Sie:
– Wurden Ihre Prozesse jemals untersucht und hinterfragt?
– Verlaufen Ihre (RE-) Meetings effizient und effektiv?
– Welche Stakeholder-Konflikte behindern Entscheidungsfindungen?
– Sprechen alle Stakeholder eine gemeinsame Fachsprache?
– Existiert ein Glossar?
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 18 / 76
18. Agenda
Anforderungen aufnehmen
Dokumentieren von Anforderungen
Der Effekt von Akzeptanztests
Anforderungen vermessen und validieren
Verwalten von Anforderungen
Zusammenfassung
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 19 / 76
19. Anforderungen dokumentieren
Anforderungen aufschreiben, das kann doch jeder
Aber: Meinungen zu bestehender Dokumentation
– Versteht nur der, der‘s geschrieben hat
– Ist nicht mehr aktuell
– Die kniffligen Sonderfälle fehlen
– Bis man dort die richtige Stelle findet
– Das Wichtigste ist die Telefonliste von Ansprechpartnern
→ Sehr viel Dokumentation wird gar nicht erst gelesen!
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 20 / 76
20. Nichts Halbes, nichts Ganzes
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 21 / 76
21. Wie entsteht gute (Anforderungs-) Dokumentation?
Es empfiehlt sich die Verwendung
einer Standardgliederung / Template
–
–
–
–
RUP
IEEE 830
V-Modell
Volere
Einleitung
Zweck,
Stakeholder
Referenzen
Übersicht
Systemumfeld
Architektur
Benutzer
Randbedingungen
Anforderungen
Funktionalität
Qualitätsanforderungen
Abnahme
Akzeptanzkriterien
Testszenarien
Anhang
Glossar
Index
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 22 / 76
22. Dokumentation in Form von Prosatext
Vorteile
– Wird von allen Beteiligten „verstanden“
– Kein Stakeholder muss eine neue Notation erlernen
– Themenunabhängig universell einsetzbar
Nachteile
– Mehrdeutigkeit leicht möglich
– Kann je nach Kontext verschieden interpretiert werden
– Es gehört zum guten Ausdruck, die Wortwahl zu variieren
Missverständnisse
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 23 / 76
24. Negativbeispiel
Auszug aus einer Spezifikation:
– Funktionalität
In einer „Übersicht“ über alle noch nicht zugeordneten
Geschäftspartner werden alle Geschäftspartner aller Mandanten
ungleich Mandant 0 angezeigt, die bisher keinem Geschäftspartner im
Mandanten 0 zugeordnet wurden. …
Satzstruktur zu komplex
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 25 / 76
26. Negativbeispiel
Auszug aus einer Spezifikation:
– Funktionalität
In einer „Übersicht“ über alle noch nicht zugeordneten
Geschäftspartner werden alle Geschäftspartner aller Mandanten
ungleich Mandant 0 angezeigt, die bisher keinem Geschäftspartner
im Mandanten 0 zugeordnet wurden. …
Fragen:
– Was ist die „Übersicht“?
– Wo befindet sich diese?
– Wer ordnet was wem zu?
– Was ist Mandant 0?
– Was bedeutet „im Mandanten“ sprachlich?
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 27 / 76
27. Das Sophist-REgelwerk
Passiv unterschlägt den Täter
– Beispiel: Ein Auftrag kann storniert werden
– Frage: Von wem? Von jedem, immer?
Analyse des Prozesswortes
– Beispiel: Das System zeigt das Ergebnis nach der Berechnung an
– Prozesswort ist „anzeigen“. Fragen: Wem, Wie, Wann, Warum, …
Vergleiche und Steigerungen
– Beispiel: Die GUI muss schneller reagieren als beim Altsystem
– Frage: Um wie viel schneller? Ist eine Millionstel Sek. auch gültig?
… etc.
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 28 / 76
28. Vorschlag: Satzschablonen
Beispiel: Die User-Story
Agile Methoden verwenden sog. User-Stories
Aufbau:
– As a <role> I want <goal/desire> so that <benefit>
– Als ein Autor will ich meine Präsentation speichern können,
damit ich nicht noch einmal alles eingeben muss
Das „damit“ hinterfragt den Geschäftswert
Man beantwortet somit das „Wer“, „Was“ und „Warum / Wozu“
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 29 / 76
29. Formale Spezifikationen, Modelle
Beispiele: ER-Diagramme, UML, BPEL, BPMN, DSLs,…
Vorteile
– Sind eindeutiger und aussagekräftiger
– Kompaktere übersichtliche Darstellung
– Für den geübten Leser verständlicher
– Der Implementierung bereits viel näher
– Zum Teil lässt sich Code daraus generieren
Nachteile
– Sind nicht universell einsetzbar
– Syntax / Semantik muss vom Leser verstanden bzw. erlernt werden
– Zusätzliche Tools müssen erlernt werden evtl. Schulungen
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 30 / 76
30. Die Mischung beider ergänzt sich positiv
Vorteile
– Modelle können durch natürlich-sprachliche Ergänzungen
verständlicher werden
– Prosatext kann durch Modelle eindeutiger und exakter werden
Beispiel: Mathematische Texte
– Aus jeder nicht-negativen reellen Zahl lässt sich die Wurzel ziehen
–
Häufig verschwindet die (Beweis-) Idee hinter der Abstraktion
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 31 / 76
31. Beispiel
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 32 / 76
32. Funktionale Anforderungen – Prosa
Der Nikolaus verteilt am 6.12. eines jeden Jahres Geschenke an Kinder
Die Geschenke sind unterschiedlich viel wert
Jedes Kind bekommt ein oder mehrere
Geschenke
Ziel: Der Summenwert der Geschenke soll
für jedes Kind möglichst gleich sein
Aufgabe: Eine Software soll bei Eingabe der
Kinderzahl und der Geschenkwerte eine gerechte Verteilung berechnen
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 33 / 76
33. Funktionale Anforderungen – Illustriert
+
+
≈
+
≈ …
…
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 34 / 76
34. Funktionale Anforderungen – Formal
Geschenke
Kinder
Voraussetzung
– Gegeben seien natürliche Zahlen
– und eine Preisfunktion
.
Aufgabe
– Finde eine Partitionierung
, sodass
minimal wird, wobei
.
Gesamtgeschenkwert beim Kind n
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 35 / 76
35. … war nicht testet und …
Abnahme: Der Nikolausganz glücklich.
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 36 / 76
36. Warum?
Version 0.9
– Die Lösungen waren anfangs z.T. völlig falsch.
• Der Entwickler hatte die Idee hinter der Formel zunächst nicht ganz
verstanden.
Version 1.0
– Die Verteilung der Geschenke gefiel dem Nikolaus gar nicht:
• Manche Kinder bekamen viele „wertlose“ Geschenke.
• Die Geschenke sollten sich doch möglichst gleich verteilen!
Version 1.1
– Der katastrophale Fall „Kinderheim“:
• 50 Geschenke, 20 Kinder:
• Die Anwendung antwortet nicht mehr!
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 37 / 76
37. Falle 7
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 38 / 76
38. Erkenntnis
Selbst eine vollständige
Dochwiderspruchsfreie
und wie lässt sich das
Spezifikationen garantiert
Problem bekämpfen?
keine gute Software!
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 39 / 76
39. Specification by Example
Zwei Kinder, 6 Geschenke im Wert von 1, 2, 2, 4, 6, 9 Euro
– Lösung: 2 + 4 + 6 =
12
= 1+2+9
– Ungültig: 1 + 4 + 6 = 11 < 13 = 2 + 2 + 9
Zwei Kinder, 6 Geschenke im Wert von 1, 2, 2, 4, 5, 9 Euro
– Lösung: 2 + 4 + 5 = 11 < 12 = 1 + 2 + 9
Zwei Kinder, 10 Geschenke im Wert von 1, 1, 1, 1, 1, 1, 1, 1, 4, 4 Euro
– Lösung: 1 + 1 + 1 + 1 + 4 =
8 = 1+1+1+1+4
– Schlecht: 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 8 = 4 + 4
20 Kinder, 50 Geschenke im Wert von jeweils 1 Euro
– Lösung: 10 Kinder: 1 + 1, 10 Kinder: 1 + 1 + 1
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
usw. …
Seite 40 / 76
40. Klassisch: Stille Post
Klassisches Vorgehen:
Kunde
anhand von Beispielen
Requirements Engineer
Der RE abstrahiert und formuliert eine Spezifikation
Entwickler
Tester
Kunde
anhand der Spezifikation
anhand der Spezifikation
anhand von Akzeptanzkriterien
Software
Testfälle
Abnahme
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 41 / 76
41. Idee des Acceptance Test Driven Development
Beispiele
werden zu
Tests
verifizieren
reflektieren
Anforderungen
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 42 / 76
42. Wer schreibt Akzeptanztests?
RE und Entwickler erstellen zusammen Akzeptanztests
Diese werden in natürlicher Sprache verfasst
Vorrangiges Ziel ist ein gemeinsames Verständnis der Anforderung!
Schön wäre ein einheitliches Format (Satzschablone)…
...mit dem Ziel, daraus Test-Code generieren zu können
Dies ist die Idee das sog. Behavior Driven Development (BDD)
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 43 / 76
43. Angenommen … falls … dann …
Ergänzend zur User-Story werden sog. Scenarios formuliert
(zusammen bilden sie ein sog. Feature)
User Story
Als ein
will ich
um
Nikolaus
dass meine Geschenke an Kinder gerecht verteilt werden,
Enttäuschungen der Kinder zu vermeiden.
Scenario1:
Zwei Kinder, vier Geschenke
Angenommen
und
Falls
dann
Nikolaus gibt »2« beim Feld Kinder ein,
Nikolaus gibt »1, 2, 3, 4« beim Feld Geschenke ein.
Nikolaus auf Rechnen drückt,
muss im Feld Ergebnis erscheinen:
»Kind 1: 1 + 4, Kind 2: 2 + 3«
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 44 / 76
44. Beispiel mit JBehave
Die Datei nikolaus.story:
Given Nikolaus gibt 2 beim Feld Kinder ein
Given Nikolaus gibt 1,2,3,4 beim Feld Geschenke ein
When Nikolaus auf Rechnen drueckt
Then muss im Feld Ergebnis erscheinen: Kind 1: 1 + 4 = 5, Kind 2: 2 + 3 = 5
Die Test-Klasse:
@Given("Nikolaus gibt $kinder beim Feld Kinder ein")
public void eingabeKinder(int kinder) {
this.kinder = kinder;
}
@Given("Nikolaus gibt $geschenke beim Feld Geschenke ein")
public void eingabeGeschenke(List<Integer> geschenke) {
this.geschenke = geschenke;
}
@When("Nikolaus auf Rechnen drueckt")
public void rechnenDruecken() {
rechner = new Rechner(kinder, geschenke);
solution = rechner.calculate();
}
@Then("muss im Feld Ergebnis erscheinen: $ergebnis")
public void dasErgebnisMussSein(String ergebnis) {
String loesung = rechner.solutionToString(solution);
Assert.assertEquals(ergebnis, loesung);
}
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
s. auch [JBehave]
und [Cucumber]
Seite 45 / 76
45. Beispiel mit JBehave
Die Log-Datei im Erfolgsfall:
Running story com/javacook/nikolaus/nikolaus.story
Scenario:
Given Nikolaus gibt 2 beim Feld Kinder ein
Given Nikolaus gibt 1,2,3,4 beim Feld Geschenke ein
When Nikolaus auf Rechnen drueckt
Then muss im Feld Ergebnis erscheinen: Kind 1: 1 + 4 = 5, Kind 2: 2 + 3 = 5
Die Log-Datei im Fehlerfall:
Running story com/javacook/nikolaus/nikolaus.story
Scenario:
Given Nikolaus gibt 2 beim Feld Kinder ein
Given Nikolaus gibt 1,2,3,4 beim Feld Geschenke ein
When Nikolaus auf Rechnen drueckt
Then muss im Feld Ergebnis erscheinen: Kind 1: 1 + 4 = 5, Kind 2: 2 + 3 = 9 (FAILED)
(org.junit.ComparisonFailure:
expected:<... 5, Kind 2: 2 + 3 = [9]> but was:<... 5, Kind 2: 2 + 3 = [5]>)
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 46 / 76
46. Vergleich der Entwicklung: klassisch & BDD
Kunde wird interviewt
Kunde wird interviewt
RE spezifiziert Anforderungen Anforderungen
RE spezifiziert
RE & Entwickl. → Akzeptanztest
Implementierung Implementierung
QA testet & autom. Akzeptanztests
QA
Auslieferung & Abnahme
Auslieferung & Abnahme
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 47 / 76
47. Fazit
Das Erstellen von Akzeptanztests erzwingt eine detailliertere
Auseinandersetzung bereits zu Beginn
Es fördert die Kommunikation zwischen Auftraggeber, RE
und Entwicklung
Es entstehen (nebenbei) automatisierte Tests,
die das System unmissverständlich dokumentieren
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 48 / 76
48. Best Practices
Überprüfen Sie (stichprobenartig) einige Anforderungsdokumente
– Sind die Dokumente auffindbar, versioniert?
– Sind die Dokumente einheitlich strukturiert?
– Ist der Text (auch für Uneingeweihte) klar und verständlich?
– Wurden formale Methoden verwendet?
– Enthalten sie Akzeptanzkriterien?
– Sind in Ihren Dokumenten ausreichend Musterfälle enthalten?
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 49 / 76
49. Agenda
Anforderungen aufnehmen
Dokumentieren von Anforderungen
Der Effekt von Akzeptanztests
Anforderungen vermessen und validieren
Verwalten von Anforderungen
Zusammenfassung
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 50 / 76
50. Anforderungen vermessen und validieren
Warum?
– Anforderungsdokumente sind häufig Grundlage für Verträge
– Einen Qualitätsstandard sicherstellen
– Qualität der Anforderungen wirkt sich auf die Software-Qualität aus
– Fehler & Mängel frühzeitig zu finden, denn…
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 51 / 76
51. Kosten von RE-Fehlern bezogen auf Projektphasen
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 52 / 76
52. Qualitätsmerkmale für Anforderungen
Wann ist eine Anforderungsspezifikation gut?
– Aktualität (insb. Kundenwunsch-konform)
– Eindeutigkeit
– Widerspruchsfreiheit
– Identifizierbarkeit
– Vollständigkeit
– Änderbarkeit
– Prüfbarkeit
– Realisierbarkeit
– Verständlichkeit
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 53 / 76
53. Konkrete Qualitätsmetrik
Eindeutigkeit
Prozessworteindeutigkeit in Satz i
Bezugspunkteindeutigkeit in Satz i
Begriffseindeutigkeit in Satz i
Anzahl aller Sätze
nach [RuppSoph]
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 54 / 76
54. Review-Prüfmethoden
Stellungnahme
– Eine weitere Person (am besten fachfremd) wird gebeten,
das Dokument zu prüfen
Inspektion
– Sehr strenger aufwändiger Prozess mit vielen Beteiligten
(Moderator, Prüfer, Termine, Checklisten, Abschlussbericht)
Walkthrough
– Leichtgewichtiges Review (Autor trägt vor, Prüfer, Protokollant)
Automatisiert durch Tools
– Befindet sich in der Forschung
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 55 / 76
55. Prüfungsnachbereitung
Ergebnisse standardisiert dokumentieren
Bei Unterschreitungen der Toleranzgrenze
– Ursachen bestimmen!
– Prozesse anpassen
– Evtl. nachschulen
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 56 / 76
56. Bezug zur Software-Qualität (exemplarisch)
Funktionalität
Korrektheit
Aktualität
x
Widerspruchsfreiheit
...
x
Eindeutigkeit
Wartbarkeit
x
Identifizierbarkeit
Vollständigkeit
x
x
Änderbarkeit
x
Prüfbarkeit
Realisierbarkeit
Verständlichkeit
x
x
x
x
x
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 57 / 76
57. Best Practices
Werden Qualitätsprüfungen bzgl. der Anforderungen bei
Ihnen durchgeführt?
– Planen Sie den Prozess sorgfältig und passen ihn gezielt
auf Ihre Bedürfnisse an
– Qualitätsprüfungen sind bislang noch nicht die Regel
– Tun Sie es, nutzen Sie den Vorsprung!
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 58 / 76
58. Agenda
Anforderungen aufnehmen
Dokumentieren von Anforderungen
Der Effekt von Akzeptanztests
Anforderungen vermessen und validieren
Verwalten von Anforderungen
Zusammenfassung
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 59 / 76
59. Anforderungen verwalten
Ist eine Hauptaufgabe des agilen RE!
Wird umso wichtiger, je
–
–
–
–
mehr Anforderungen zu verwalten sind
mehr Stakeholder auf die Informationen zugreifen
mehr Änderungen zu erwarten sind
länger das Produkts (erwartungsgemäß) in Betrieb ist
Die Wahl des(r) richtigen Tools bringt entscheidende Vorteile
Entscheidend für das Software-Qualitätsmerkmal Wartbarkeit
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 60 / 76
60. Erwartungen an ein Management-Tool
Notwendige Eigenschaften:
– Anlegen, Ändern, Löschen von Anforderungen
– Strukturierbarkeit
– Gute Suchmöglichkeiten
– Versionsverwaltung / Versionierung
– Einfache Handhabung von Grafiktypen
– Verfolgbarkeit (Traceability)
Wünschenswert
– Konfigurierbarkeit von Eingabemasken und Workflow
– Benutzer- und Rechteverwaltung
– Automatische Analyse von Texten…
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 61 / 76
61. Tools
Word & Excel: immer noch üblich
– Grund: Wird von jedem beherrscht
Im Kommen: Issue-Tracker & Wikis
– Grund: Einfaches Erlernen, einfache Bedienung
– Offen für den Aufbau einer Werkzeugkette (!)
Auswahl verschiedener RE-Tools (alphabetisch):
– Caliber RM
Contour
Cradle
– DESIRe
DOORS
Enterprise Architect
– HP Quality Center IrQA
Lotus Notes
– OptimalTrace
ProR
RequisitePro
– YAKINDU
…
[VolereTools] enthält eine weitaus größere Übersicht
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 62 / 76
62. Traceability – so wichtig und doch kaum vorhanden
Typische Wartungsaufgabe:
– Im Risiko-Report vom 31.3 stimmt das Ausfalldatum nicht
Findet der Entwickler folgende Informationen effizient?
– Woher stammt das Datum (Eingabe, Import)?
– In welchen Klassen wird es verarbeitet?
– Welche Datenbankfelder sind involviert?
– Welche fachlichen Abhängigkeiten gibt es zu anderen Daten?
– Wie groß sind die Risiken von Änderungen?
– …
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 63 / 76
65. Vision: Traceability innerhalb der Werkzeugkette
Issue Tracking
Projektmanagement
Collaboration
Anforderungsmanagement
IDE
Monitoring
Modellierung
BuildManagement
Delivery
BPManagement
ConfigurationManagement
Persistenz
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 66 / 76
66. Best Practices
Prüfen Sie, ob bei Ihnen die passenden Werkzeugkette
im Einsatz ist
Erwägen Sie eine Neuanschaffung:
– Nehmen Sie sich Zeit für die richtige Wahl
– Lassen Sie sich von Experten beraten
– Planen Sie auch den Einsatz von Schulungen
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 67 / 76
67. Agenda
Anforderungen aufnehmen
Dokumentieren von Anforderungen
Der Effekt von Akzeptanztests
Anforderungen vermessen und validieren
Verwalten von Anforderungen
Zusammenfassung
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 68 / 76
68. Warum ist RE wirtschaftlich?
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 69 / 76
69. Zusammenfassung
Einsparungen beim RE bewirken wenig Qualität bei hohen Kosten!
Eine gute Anforderungsanalyse erfordert spezielle RE-Fertigkeiten
– Mit direkten Auswirkungen auf die Softwarequalität
Gute Dokumentation erfordert Talent, Technik und Disziplin
– Sprachkonventionen, Modelle, neue Verfahren (BDD)
– Ziel: Formales und systematisches Vorgehen
– Gute RE-Management-Tools helfen nennenswert
Auch Anforderungen lassen sich qualitätsprüfen
– Ziel: Qualitätssteigerungen durch kontinuierliches Messen
– Qualität bei den Anforderungen Software-Qualität
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 70 / 76
70. Referenzen
[RuppSoph]
Chris Rupp, die SOPHISTen; Requirements-Engineering und –
Management, 5. Auflage, Hanser, 2009, ISBN: 978-3446418417
[VolereTools]
http://www.volere.co.uk/tools.htm
[Cucumber]
http://cukes.info
[Jbehave]
http://jbehave.org
[bdw]
http://www.bild-derwissenschaft.de/bdw/bdwlive/heftarchiv/index2.php?object_id=32911270
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 71 / 76
71. Weiterführende Literatur
Klaus Pohl, Chris Rupp; Basiswissen Requirements Engineering;
2. Auflage, Dpunkt Verlag, 2010, ISBN: 978-3898646130
S. Robertson, J. Robertson; Mastering the Requirements Process;
Addison Wesley, 1999, ISBN: 978-0201360462
U. Vigenschow, B.Schneider, I. Meyrose; Soft Skills für Softwareentwickler; 2. Auflage, Dpunkt Verlag, 2010, ISBN: 978-3898646710
Rainer Gerlich; 111 Thesen zur erfolgreichen Softwareentwicklung;
1. Auflage, Springer, 2005, ISBN: 978-3540209102
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 72 / 76
72. Weiterführende Literatur
Mr. Malcolm Tredinnick, Behaviour Driven Development,
http://www.youtube.com/watch?v=XXHknWKuG2U
Gojko Adzic; Bridging the Communication Gap: Specification by Example
and Agile Acceptance Testing;
Neuri Limited, 2009, ISBN: 978-0955683619
Gojko Adzic; Specification by Example: How Successful Teams Deliver
the Right Software;
Manning, Juni 2011, ISBN: 978-1617290084
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 73 / 76
75. Abkürzungen
ATDD
BDD
BPEL
BPMN
DDD
DSL
ER
QA
QS
RE
TDD
UML
Acceptance Test Driven Development
Behavior Driven Development
Business Process Execution Language
Business Process Model and Notation
Domain-Driven Design
Domain-Specific Language
Entity Relationship
Quality Assurance
Qualitätssicherung
Requirements Engineering bzw. Requirements Engineer
Test-Driven Development
Unified Modeling Language
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Seite 76 / 76