SlideShare una empresa de Scribd logo
1 de 77
Descargar para leer sin conexión
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
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
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
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
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
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
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
Falle 1
Ineffiziente Meetings

Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst

Seite 9 / 76
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
Falle 2
Faule Kompromisse

Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst

Seite 11 / 76
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
Falle 3
Designfehler bei Geschäftsobjekten

Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst

Seite 13 / 76
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
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
Falle 4
Unklare Fachbegriffe

Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst

Seite 16 / 76
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
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
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
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
Nichts Halbes, nichts Ganzes

Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst

Seite 21 / 76
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
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
Falle 5
Unverständliche Formulierungen

Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst

Seite 24 / 76
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
Falle 6
Versteckte Annahmen

Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst

Seite 26 / 76
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
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
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
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
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
Beispiel
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst

Seite 32 / 76
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
Funktionale Anforderungen – Illustriert

+

+

≈

+

≈ …
…

Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst

Seite 34 / 76
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
… war nicht testet und …
Abnahme: Der Nikolausganz glücklich.

Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst

Seite 36 / 76
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
Falle 7
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst

Seite 38 / 76
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
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
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
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
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
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
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
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
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
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
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
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
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
Kosten von RE-Fehlern bezogen auf Projektphasen

Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst

Seite 52 / 76
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
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
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
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
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
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
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
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
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
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
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
Ideale Welt

RE-Tool

Modellierung

"Ausfalldatum"

Fachklassen

RE-Tool

Lösung

RE-Tool

Source

Suchergebnis
Verarbeitung
Anforderung

Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst

Seite 64 / 76
Die Realität
Source

DB-Tool

Word

Source-Code-Analysen können das zig-fache an Zeit kosten!
Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst

Seite 65 / 76
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
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
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
Warum ist RE wirtschaftlich?

Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst

Seite 69 / 76
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
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
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
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
Bildernachweise
Folie 9:

http://openclipart.org/image/800px/svg_to_png/169415/discussion.png
http://openclipart.org/image/800px/svg_to_png/169418/go-round.png

Folie 13:

http://www.clker.com/cliparts/7/1/a/f/11949851591518961590dodge_neon_green_ganson.svg.med.png

Folie 19:

http://www.clker.com/clipart-15442.html

Folie 29:

http://upload.wikimedia.org/wikipedia/commons/thumb/d/d0/Lage-_und_Verhältnisbestimmung_Zahn.jpg/
800px-Lage-_und_Verhältnisbestimmung_Zahn.jpg

Folie 32:

http://openclipart.org/detail/1956/santa-and-his-bag-by-johnny_automatic

Folie 33:

http://www.wpclipart.com/people/children/girls/girls_3/girl_with_pigtails.png.html
http://www.wpclipart.com/people/children/boys/little_boy.png.html
http://www.wpclipart.com/holiday/Christmas/gifts/gift_box_silver.png.html
http://www.wpclipart.com/holiday/Christmas/gifts/gift_black.png.html
…

Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst

Seite 74 / 76
Bildernachweise
Folie 33:

http://www.wpclipart.com/holiday/Christmas/gifts/gifts_w_tags.png.html
http://www.wpclipart.com/holiday/Christmas/gifts/gift_box_blue_ribbon/package_blue_ribbon_and_blue.png.html
http://www.wpclipart.com/holiday/valentines/candy_and_gifts/valentine_gift_box.png.html

Folie 38:

http://www.doktoranden-netz.de/Idee.GIF

Folie 55:

http://openclipart.org/detail/29647/quality-control:-rejected-by-stijnbern

Folie 63:

http://docs.typo3.org/flow/TYPO3FlowDocumentation/_images/DomainModel-2.png

Folie 64:

http://openclipart.org/image/800px/svg_to_png/94723/db.png

Sämtliche hier nicht aufgeführte Bilder bzw. Grafiken wurden vom Autor selbst erstellt.

Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst

Seite 75 / 76
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
Fragen?
www.iks-gmbh.com

Más contenido relacionado

Destacado

Collaboratives entwickeln in Bachelorprojekten
Collaboratives entwickeln in BachelorprojektenCollaboratives entwickeln in Bachelorprojekten
Collaboratives entwickeln in BachelorprojektenManuel Blechschmidt
 
Colegio nacional nicolás esguerra
Colegio nacional nicolás esguerraColegio nacional nicolás esguerra
Colegio nacional nicolás esguerrachecho98
 
Planung und Realisierung eines Wohnhauses
Planung und Realisierung eines WohnhausesPlanung und Realisierung eines Wohnhauses
Planung und Realisierung eines WohnhausesFengshui und Geomantie
 
Carteras, wallets y bolígrafos
Carteras, wallets y bolígrafosCarteras, wallets y bolígrafos
Carteras, wallets y bolígrafosRacos028
 
Eumelis Acosta Procesos de Gerencia
Eumelis Acosta Procesos de GerenciaEumelis Acosta Procesos de Gerencia
Eumelis Acosta Procesos de GerenciaEUMELIS ACOSTA
 
Diferentes tipos de máquina para acoplar a un generador
Diferentes tipos de máquina para acoplar a un generadorDiferentes tipos de máquina para acoplar a un generador
Diferentes tipos de máquina para acoplar a un generadorjosevilera
 
Urlaubsempfehlungen
UrlaubsempfehlungenUrlaubsempfehlungen
UrlaubsempfehlungenAnja Angeli
 
1. DE QUE CENTROS ESTA COMPUESTA LA REGIONAL2. PROGRAMA DE GESTION AMBIENTAL ...
1. DE QUE CENTROS ESTA COMPUESTA LA REGIONAL2. PROGRAMA DE GESTION AMBIENTAL ...1. DE QUE CENTROS ESTA COMPUESTA LA REGIONAL2. PROGRAMA DE GESTION AMBIENTAL ...
1. DE QUE CENTROS ESTA COMPUESTA LA REGIONAL2. PROGRAMA DE GESTION AMBIENTAL ...alecasanova
 
Was Das Hirn So Alles Kann
Was Das Hirn So Alles KannWas Das Hirn So Alles Kann
Was Das Hirn So Alles KannGruenderszene
 
Guía para principiantes sobre optimización para motores de búsqueda
Guía para principiantes sobre optimización para motores de búsquedaGuía para principiantes sobre optimización para motores de búsqueda
Guía para principiantes sobre optimización para motores de búsquedaAritz Pérez
 
Jan van helsing hände weg von diesem buch (2004)
Jan van helsing   hände weg von diesem buch (2004)Jan van helsing   hände weg von diesem buch (2004)
Jan van helsing hände weg von diesem buch (2004)engineroom
 

Destacado (20)

02 la llaga
02   la llaga02   la llaga
02 la llaga
 
Collaboratives entwickeln in Bachelorprojekten
Collaboratives entwickeln in BachelorprojektenCollaboratives entwickeln in Bachelorprojekten
Collaboratives entwickeln in Bachelorprojekten
 
Colegio nacional nicolás esguerra
Colegio nacional nicolás esguerraColegio nacional nicolás esguerra
Colegio nacional nicolás esguerra
 
Jezero, Jesen
Jezero, JesenJezero, Jesen
Jezero, Jesen
 
Planung und Realisierung eines Wohnhauses
Planung und Realisierung eines WohnhausesPlanung und Realisierung eines Wohnhauses
Planung und Realisierung eines Wohnhauses
 
Carteras, wallets y bolígrafos
Carteras, wallets y bolígrafosCarteras, wallets y bolígrafos
Carteras, wallets y bolígrafos
 
Cnm penal
Cnm penalCnm penal
Cnm penal
 
Die Datazwiebel
Die DatazwiebelDie Datazwiebel
Die Datazwiebel
 
Eumelis Acosta Procesos de Gerencia
Eumelis Acosta Procesos de GerenciaEumelis Acosta Procesos de Gerencia
Eumelis Acosta Procesos de Gerencia
 
Scratch
ScratchScratch
Scratch
 
Medicina familiar
Medicina familiar Medicina familiar
Medicina familiar
 
Diferentes tipos de máquina para acoplar a un generador
Diferentes tipos de máquina para acoplar a un generadorDiferentes tipos de máquina para acoplar a un generador
Diferentes tipos de máquina para acoplar a un generador
 
Softwarequalität Entwicklung - Test - Wartung
Softwarequalität Entwicklung -  Test - WartungSoftwarequalität Entwicklung -  Test - Wartung
Softwarequalität Entwicklung - Test - Wartung
 
Urlaubsempfehlungen
UrlaubsempfehlungenUrlaubsempfehlungen
Urlaubsempfehlungen
 
1. DE QUE CENTROS ESTA COMPUESTA LA REGIONAL2. PROGRAMA DE GESTION AMBIENTAL ...
1. DE QUE CENTROS ESTA COMPUESTA LA REGIONAL2. PROGRAMA DE GESTION AMBIENTAL ...1. DE QUE CENTROS ESTA COMPUESTA LA REGIONAL2. PROGRAMA DE GESTION AMBIENTAL ...
1. DE QUE CENTROS ESTA COMPUESTA LA REGIONAL2. PROGRAMA DE GESTION AMBIENTAL ...
 
Was Das Hirn So Alles Kann
Was Das Hirn So Alles KannWas Das Hirn So Alles Kann
Was Das Hirn So Alles Kann
 
Guía para principiantes sobre optimización para motores de búsqueda
Guía para principiantes sobre optimización para motores de búsquedaGuía para principiantes sobre optimización para motores de búsqueda
Guía para principiantes sobre optimización para motores de búsqueda
 
2 preguntas
2 preguntas2 preguntas
2 preguntas
 
Gestion de proyectos
Gestion de proyectosGestion de proyectos
Gestion de proyectos
 
Jan van helsing hände weg von diesem buch (2004)
Jan van helsing   hände weg von diesem buch (2004)Jan van helsing   hände weg von diesem buch (2004)
Jan van helsing hände weg von diesem buch (2004)
 

Similar a Mehr Softwarequalität: Requirements Engineering

Plone im Kontext des WCMS Marktes
Plone im Kontext des WCMS MarktesPlone im Kontext des WCMS Marktes
Plone im Kontext des WCMS MarktesAlexander Loechel
 
User Experience im Digital Banking
User Experience im Digital BankingUser Experience im Digital Banking
User Experience im Digital BankingJürg Stuker
 
Einführung in die Software-Qualitätssicherung
Einführung in die Software-QualitätssicherungEinführung in die Software-Qualitätssicherung
Einführung in die Software-QualitätssicherungChristian Baranowski
 
JavaScript und trotzdem Softwerker
JavaScript und trotzdem SoftwerkerJavaScript und trotzdem Softwerker
JavaScript und trotzdem SoftwerkerDennis Wilson
 
Tipps für Requirements Management Tools
Tipps für Requirements Management ToolsTipps für Requirements Management Tools
Tipps für Requirements Management ToolsMarkus Unterauer
 
Community Camp 2016: Die richtige Forensoftware
Community Camp 2016: Die richtige ForensoftwareCommunity Camp 2016: Die richtige Forensoftware
Community Camp 2016: Die richtige ForensoftwareFranziska Hauck
 
Das Ganze ist mehr als seine Teile: Die moderne Continuous-Delivery-Umgebung
Das Ganze ist mehr als seine Teile: Die moderne Continuous-Delivery-UmgebungDas Ganze ist mehr als seine Teile: Die moderne Continuous-Delivery-Umgebung
Das Ganze ist mehr als seine Teile: Die moderne Continuous-Delivery-UmgebungOPITZ CONSULTING Deutschland
 
Requirement Engineering & PDD
Requirement Engineering & PDDRequirement Engineering & PDD
Requirement Engineering & PDDCristina Vidu
 
IT-Kosten sparen mittels Open Source Software: Leeres Versprechen oder realis...
IT-Kosten sparen mittels Open Source Software: Leeres Versprechen oder realis...IT-Kosten sparen mittels Open Source Software: Leeres Versprechen oder realis...
IT-Kosten sparen mittels Open Source Software: Leeres Versprechen oder realis...Matthias Stürmer
 
Roadshow 2018 - Camunda in der Praxis: So geht's
Roadshow 2018 - Camunda in der Praxis: So geht'sRoadshow 2018 - Camunda in der Praxis: So geht's
Roadshow 2018 - Camunda in der Praxis: So geht'scamunda services GmbH
 
Clean Coding - Theorie und Praxis Guide.pptx
Clean Coding - Theorie und Praxis Guide.pptxClean Coding - Theorie und Praxis Guide.pptx
Clean Coding - Theorie und Praxis Guide.pptxkaftanenko
 
Vergleich Agentursoftware - So finden Sie die richtige Software!
Vergleich Agentursoftware - So finden Sie die richtige Software!Vergleich Agentursoftware - So finden Sie die richtige Software!
Vergleich Agentursoftware - So finden Sie die richtige Software!Because Software
 
Welche Prototyping-Methode passt zu meinen Anforderungen? – World Usability D...
Welche Prototyping-Methode passt zu meinen Anforderungen? – World Usability D...Welche Prototyping-Methode passt zu meinen Anforderungen? – World Usability D...
Welche Prototyping-Methode passt zu meinen Anforderungen? – World Usability D...Lena Königsberger
 
SaaS – Risiko oder Chance für Softwareanbieter?
SaaS – Risiko oder Chance für Softwareanbieter?SaaS – Risiko oder Chance für Softwareanbieter?
SaaS – Risiko oder Chance für Softwareanbieter?Uniserv
 
Datenanalysen in der Softwareentwicklung mit Software Analytics
Datenanalysen in der Softwareentwicklung mit Software AnalyticsDatenanalysen in der Softwareentwicklung mit Software Analytics
Datenanalysen in der Softwareentwicklung mit Software AnalyticsMarkus Harrer
 

Similar a Mehr Softwarequalität: Requirements Engineering (20)

Plone im Kontext des WCMS Marktes
Plone im Kontext des WCMS MarktesPlone im Kontext des WCMS Marktes
Plone im Kontext des WCMS Marktes
 
Mehr Softwarequalität: Team-Cleancoding
Mehr Softwarequalität: Team-CleancodingMehr Softwarequalität: Team-Cleancoding
Mehr Softwarequalität: Team-Cleancoding
 
Mehr Softwarequalität: Team Clean Coding
Mehr Softwarequalität: Team Clean CodingMehr Softwarequalität: Team Clean Coding
Mehr Softwarequalität: Team Clean Coding
 
Test-Alternativen
Test-AlternativenTest-Alternativen
Test-Alternativen
 
User Experience im Digital Banking
User Experience im Digital BankingUser Experience im Digital Banking
User Experience im Digital Banking
 
Einführung in die Software-Qualitätssicherung
Einführung in die Software-QualitätssicherungEinführung in die Software-Qualitätssicherung
Einführung in die Software-Qualitätssicherung
 
JavaScript und trotzdem Softwerker
JavaScript und trotzdem SoftwerkerJavaScript und trotzdem Softwerker
JavaScript und trotzdem Softwerker
 
Tipps für Requirements Management Tools
Tipps für Requirements Management ToolsTipps für Requirements Management Tools
Tipps für Requirements Management Tools
 
Community Camp 2016: Die richtige Forensoftware
Community Camp 2016: Die richtige ForensoftwareCommunity Camp 2016: Die richtige Forensoftware
Community Camp 2016: Die richtige Forensoftware
 
Das Ganze ist mehr als seine Teile: Die moderne Continuous-Delivery-Umgebung
Das Ganze ist mehr als seine Teile: Die moderne Continuous-Delivery-UmgebungDas Ganze ist mehr als seine Teile: Die moderne Continuous-Delivery-Umgebung
Das Ganze ist mehr als seine Teile: Die moderne Continuous-Delivery-Umgebung
 
Requirement Engineering & PDD
Requirement Engineering & PDDRequirement Engineering & PDD
Requirement Engineering & PDD
 
Lizenzmanagement in der Praxis
Lizenzmanagement in der PraxisLizenzmanagement in der Praxis
Lizenzmanagement in der Praxis
 
It Projekte
It  ProjekteIt  Projekte
It Projekte
 
IT-Kosten sparen mittels Open Source Software: Leeres Versprechen oder realis...
IT-Kosten sparen mittels Open Source Software: Leeres Versprechen oder realis...IT-Kosten sparen mittels Open Source Software: Leeres Versprechen oder realis...
IT-Kosten sparen mittels Open Source Software: Leeres Versprechen oder realis...
 
Roadshow 2018 - Camunda in der Praxis: So geht's
Roadshow 2018 - Camunda in der Praxis: So geht'sRoadshow 2018 - Camunda in der Praxis: So geht's
Roadshow 2018 - Camunda in der Praxis: So geht's
 
Clean Coding - Theorie und Praxis Guide.pptx
Clean Coding - Theorie und Praxis Guide.pptxClean Coding - Theorie und Praxis Guide.pptx
Clean Coding - Theorie und Praxis Guide.pptx
 
Vergleich Agentursoftware - So finden Sie die richtige Software!
Vergleich Agentursoftware - So finden Sie die richtige Software!Vergleich Agentursoftware - So finden Sie die richtige Software!
Vergleich Agentursoftware - So finden Sie die richtige Software!
 
Welche Prototyping-Methode passt zu meinen Anforderungen? – World Usability D...
Welche Prototyping-Methode passt zu meinen Anforderungen? – World Usability D...Welche Prototyping-Methode passt zu meinen Anforderungen? – World Usability D...
Welche Prototyping-Methode passt zu meinen Anforderungen? – World Usability D...
 
SaaS – Risiko oder Chance für Softwareanbieter?
SaaS – Risiko oder Chance für Softwareanbieter?SaaS – Risiko oder Chance für Softwareanbieter?
SaaS – Risiko oder Chance für Softwareanbieter?
 
Datenanalysen in der Softwareentwicklung mit Software Analytics
Datenanalysen in der Softwareentwicklung mit Software AnalyticsDatenanalysen in der Softwareentwicklung mit Software Analytics
Datenanalysen in der Softwareentwicklung mit Software Analytics
 

Más de IKS Gesellschaft für Informations- und Kommunikationssysteme mbH

Más de IKS Gesellschaft für Informations- und Kommunikationssysteme mbH (20)

Es wird Zeit KI zu nutzen - Wie es mit Azure KI Services und .NET MAUI gelingt
Es wird Zeit KI zu nutzen - Wie es mit Azure KI Services und .NET MAUI gelingtEs wird Zeit KI zu nutzen - Wie es mit Azure KI Services und .NET MAUI gelingt
Es wird Zeit KI zu nutzen - Wie es mit Azure KI Services und .NET MAUI gelingt
 
Thementag 2023 06 Dieses Mal machen wir alles richtig - 9 Hacks für wandelbar...
Thementag 2023 06 Dieses Mal machen wir alles richtig - 9 Hacks für wandelbar...Thementag 2023 06 Dieses Mal machen wir alles richtig - 9 Hacks für wandelbar...
Thementag 2023 06 Dieses Mal machen wir alles richtig - 9 Hacks für wandelbar...
 
Thementag 2023 04 Lindern, heilen oder gar fit machen.pdf
Thementag 2023 04 Lindern, heilen oder gar fit machen.pdfThementag 2023 04 Lindern, heilen oder gar fit machen.pdf
Thementag 2023 04 Lindern, heilen oder gar fit machen.pdf
 
Thementag 2023 05 Wer zu spät kommt, den bestraft das Leben - Modernisierung ...
Thementag 2023 05 Wer zu spät kommt, den bestraft das Leben - Modernisierung ...Thementag 2023 05 Wer zu spät kommt, den bestraft das Leben - Modernisierung ...
Thementag 2023 05 Wer zu spät kommt, den bestraft das Leben - Modernisierung ...
 
Thementag 2023 01 Mut zur Modernisierung - ein Praxisbeispiel.pdf
Thementag 2023 01 Mut zur Modernisierung - ein Praxisbeispiel.pdfThementag 2023 01 Mut zur Modernisierung - ein Praxisbeispiel.pdf
Thementag 2023 01 Mut zur Modernisierung - ein Praxisbeispiel.pdf
 
Thementag 2023 03 Einführung in die Softwaremodernisierung.pdf
Thementag 2023 03 Einführung in die Softwaremodernisierung.pdfThementag 2023 03 Einführung in die Softwaremodernisierung.pdf
Thementag 2023 03 Einführung in die Softwaremodernisierung.pdf
 
Thementag 2022 01 Verpassen Sie nicht den Anschluss.pdf
Thementag 2022 01 Verpassen Sie nicht den Anschluss.pdfThementag 2022 01 Verpassen Sie nicht den Anschluss.pdf
Thementag 2022 01 Verpassen Sie nicht den Anschluss.pdf
 
Thementag 2022 04 ML auf die Schiene gebracht.pdf
Thementag 2022 04 ML auf die Schiene gebracht.pdfThementag 2022 04 ML auf die Schiene gebracht.pdf
Thementag 2022 04 ML auf die Schiene gebracht.pdf
 
Thementag 2022 03 Ein Modell ist trainiert - und jetzt.pdf
Thementag 2022 03 Ein Modell ist trainiert - und jetzt.pdfThementag 2022 03 Ein Modell ist trainiert - und jetzt.pdf
Thementag 2022 03 Ein Modell ist trainiert - und jetzt.pdf
 
Thementag 2022 02 Der Deutschen Bahn in die Karten geschaut.pdf
Thementag 2022 02 Der Deutschen Bahn in die Karten geschaut.pdfThementag 2022 02 Der Deutschen Bahn in die Karten geschaut.pdf
Thementag 2022 02 Der Deutschen Bahn in die Karten geschaut.pdf
 
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine LearningDaten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
 
Erste Schritte in die neue Welt-So gelingt der Einstieg in Big Data und Machi...
Erste Schritte in die neue Welt-So gelingt der Einstieg in Big Data und Machi...Erste Schritte in die neue Welt-So gelingt der Einstieg in Big Data und Machi...
Erste Schritte in die neue Welt-So gelingt der Einstieg in Big Data und Machi...
 
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
 
Big Data und Machine Learning - Wer braucht das schon!?
Big Data und Machine Learning - Wer braucht das schon!?Big Data und Machine Learning - Wer braucht das schon!?
Big Data und Machine Learning - Wer braucht das schon!?
 
Erste Schritte in die neue Welt - So gelingt der Einstieg in Big Data und Mac...
Erste Schritte in die neue Welt - So gelingt der Einstieg in Big Data und Mac...Erste Schritte in die neue Welt - So gelingt der Einstieg in Big Data und Mac...
Erste Schritte in die neue Welt - So gelingt der Einstieg in Big Data und Mac...
 
Darf es ein bisschen mehr sein - Konzepte Strategien zur Bewältigung großer u...
Darf es ein bisschen mehr sein - Konzepte Strategien zur Bewältigung großer u...Darf es ein bisschen mehr sein - Konzepte Strategien zur Bewältigung großer u...
Darf es ein bisschen mehr sein - Konzepte Strategien zur Bewältigung großer u...
 
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine LearningDaten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
 
Big Data und Machine Learning - Wer braucht das schon!?
Big Data und Machine Learning - Wer braucht das schon!?Big Data und Machine Learning - Wer braucht das schon!?
Big Data und Machine Learning - Wer braucht das schon!?
 
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine LearningDaten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
 
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
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
  • 8. Falle 1 Ineffiziente Meetings Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Seite 9 / 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
  • 10. Falle 2 Faule Kompromisse Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Seite 11 / 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
  • 15. Falle 4 Unklare Fachbegriffe Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Seite 16 / 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
  • 23. Falle 5 Unverständliche Formulierungen Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Seite 24 / 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
  • 25. Falle 6 Versteckte Annahmen Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Seite 26 / 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
  • 63. Ideale Welt RE-Tool Modellierung "Ausfalldatum" Fachklassen RE-Tool Lösung RE-Tool Source Suchergebnis Verarbeitung Anforderung Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Seite 64 / 76
  • 64. Die Realität Source DB-Tool Word Source-Code-Analysen können das zig-fache an Zeit kosten! Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Seite 65 / 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
  • 73. Bildernachweise Folie 9: http://openclipart.org/image/800px/svg_to_png/169415/discussion.png http://openclipart.org/image/800px/svg_to_png/169418/go-round.png Folie 13: http://www.clker.com/cliparts/7/1/a/f/11949851591518961590dodge_neon_green_ganson.svg.med.png Folie 19: http://www.clker.com/clipart-15442.html Folie 29: http://upload.wikimedia.org/wikipedia/commons/thumb/d/d0/Lage-_und_Verhältnisbestimmung_Zahn.jpg/ 800px-Lage-_und_Verhältnisbestimmung_Zahn.jpg Folie 32: http://openclipart.org/detail/1956/santa-and-his-bag-by-johnny_automatic Folie 33: http://www.wpclipart.com/people/children/girls/girls_3/girl_with_pigtails.png.html http://www.wpclipart.com/people/children/boys/little_boy.png.html http://www.wpclipart.com/holiday/Christmas/gifts/gift_box_silver.png.html http://www.wpclipart.com/holiday/Christmas/gifts/gift_black.png.html … Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Seite 74 / 76
  • 74. Bildernachweise Folie 33: http://www.wpclipart.com/holiday/Christmas/gifts/gifts_w_tags.png.html http://www.wpclipart.com/holiday/Christmas/gifts/gift_box_blue_ribbon/package_blue_ribbon_and_blue.png.html http://www.wpclipart.com/holiday/valentines/candy_and_gifts/valentine_gift_box.png.html Folie 38: http://www.doktoranden-netz.de/Idee.GIF Folie 55: http://openclipart.org/detail/29647/quality-control:-rejected-by-stijnbern Folie 63: http://docs.typo3.org/flow/TYPO3FlowDocumentation/_images/DomainModel-2.png Folie 64: http://openclipart.org/image/800px/svg_to_png/94723/db.png Sämtliche hier nicht aufgeführte Bilder bzw. Grafiken wurden vom Autor selbst erstellt. Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Seite 75 / 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