SlideShare uma empresa Scribd logo
1 de 77
Baixar para ler offline
Garbage in – garbage out:
Wie das Anforderungsmanagement die
Softwarequalität beeinflusst
iks Thementag
„Mehr Softwarequalität – Ausgewählte Themen“
22.05.2014
Autor:
Jörg Vollmer
Seite 3 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Was stört Sie im IT-Alltag am meisten?
Befragt wurden 142 Software-Entwickler:
1. Unklare Anforderungen 51.41 %
2. Zu häufig & schnell wechselnde Anforderungen 37.32 %
3. Termindruck => Quick & Dirty 30.99 %
4. Schlechtes Projektmanagement 28.87 %
5. Unverständlicher Code (z.B. hist. gewachsen) 28.17 %
6. Geringe oder fehlende Testabdeckung 28.17 %
7. Unzureichende Kommunikation im Team 25.35 %
8. Ineffektive (Entwicklungs-) Prozesse 21.13 %
9. Unnötige Meetings & Diskussionen 15.49 %
10. Nicht machbare Aufwandsschätzungen 14.79 %
Quelle: http://umfrage.clean-coder.de (Stand 14. Okt. 2013)
Seite 4 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
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?
Seite 5 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Agenda
Anforderungen aufnehmen
Dokumentieren von Anforderungen
Der Effekt von Akzeptanztests
Anforderungen vermessen und validieren
Verwalten von Anforderungen
Zusammenfassung
Seite 6 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Agenda
Anforderungen aufnehmen
Dokumentieren von Anforderungen
Der Effekt von Akzeptanztests
Anforderungen vermessen und validieren
Verwalten von Anforderungen
Zusammenfassung
Seite 7 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
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!
Seite 8 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
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
Seite 9 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Falle 1
Ineffiziente Meetings
Seite 10 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
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
 Moderationstechniken anwenden
Risiko von falschen Entscheidungen  Software-Qualität
s. auch [bdw]
Seite 11 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Falle 2
Faule Kompromisse
Seite 12 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
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)
Seite 13 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Falle 3
Designfehler bei Geschäftsobjekten
Seite 14 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Das Auto soll verschiedene Farben haben
Was der RE verstand:
Was der Kunde wollte:
Seite 15 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
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
Seite 16 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Falle 4
Unklare Fachbegriffe
Seite 17 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
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
Seite 18 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
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?
Seite 19 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Agenda
Anforderungen aufnehmen
Dokumentieren von Anforderungen
Der Effekt von Akzeptanztests
Anforderungen vermessen und validieren
Verwalten von Anforderungen
Zusammenfassung
Seite 20 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
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!
Seite 21 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Nichts Halbes, nichts Ganzes
Seite 22 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
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
Seite 23 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
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
Seite 24 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Falle 5
Unverständliche Formulierungen
Seite 25 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
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
Seite 26 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Falle 6
Versteckte Annahmen
Seite 27 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
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?
Seite 28 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
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.
Seite 29 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
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“
Seite 30 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
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
Seite 31 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
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
Seite 32 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Beispiel
Seite 33 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
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
Seite 34 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Funktionale Anforderungen – Illustriert
≈+ ≈+ +
…
…
Seite 35 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Funktionale Anforderungen – Formal
Voraussetzung
– Gegeben seien natürliche Zahlen
– und eine Preisfunktion .
Aufgabe
– Finde eine Partitionierung , sodass
minimal wird, wobei .
Geschenke Kinder
Gesamtgeschenkwert beim Kind n
Seite 36 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Abnahme: Der Nikolaus testet und …Abnahme: … war nicht ganz glücklich.
Seite 37 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
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!
Seite 38 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Falle 7
Seite 39 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Erkenntnis
Selbst eine vollständige
und widerspruchsfreie
Spezifikationen garantiert
keine gute Software!
Doch wie lässt sich das
Problem bekämpfen?
Seite 40 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
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 usw. …
Seite 41 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Klassisch: Stille Post
Klassisches Vorgehen:
Kunde Requirements Engineer
Der RE abstrahiert und formuliert eine Spezifikation
Entwickler Software
Tester Testfälle
Kunde Abnahme
anhand von Beispielen
anhand der Spezifikation
anhand der Spezifikation
anhand von Akzeptanzkriterien
Seite 42 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Idee des Acceptance Test Driven Development
Beispiele Tests
Anforderungen
werden zu
verifizierenreflektieren
Seite 43 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
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)
Seite 44 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Angenommen … falls … dann …
Ergänzend zur User-Story werden sog. Scenarios formuliert
(zusammen bilden sie ein sog. Feature)
User Story
Als ein Nikolaus
will ich dass meine Geschenke an Kinder gerecht verteilt werden,
um Enttäuschungen der Kinder zu vermeiden.
Scenario1: Zwei Kinder, vier Geschenke
Angenommen Nikolaus gibt »2« beim Feld Kinder ein,
und Nikolaus gibt »1, 2, 3, 4« beim Feld Geschenke ein.
Falls Nikolaus auf Rechnen drückt,
dann muss im Feld Ergebnis erscheinen:
»Kind 1: 1 + 4, Kind 2: 2 + 3«
Seite 45 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Beispiel mit JBehave
Die Datei nikolaus.story:
Die Test-Klasse:
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
@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);
}
s. auch [JBehave]
und [Cucumber]
Seite 46 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Beispiel mit JBehave
Die Log-Datei im Erfolgsfall:
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]>)
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
Seite 47 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Vergleich der Entwicklung: klassisch & BDD
Kunde wird interviewt
RE spezifiziert Anforderungen
Implementierung
QA testet
Auslieferung & Abnahme
Kunde wird interviewt
RE spezifiziert Anforderungen
RE & Entwickl. → Akzeptanztest
Implementierung
QA & autom. Akzeptanztests
Auslieferung & Abnahme
Seite 48 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
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
Seite 49 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
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?
Seite 50 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Agenda
Anforderungen aufnehmen
Dokumentieren von Anforderungen
Der Effekt von Akzeptanztests
Anforderungen vermessen und validieren
Verwalten von Anforderungen
Zusammenfassung
Seite 51 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
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…
Seite 52 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Kosten von RE-Fehlern bezogen auf Projektphasen
Seite 53 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
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
Seite 54 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Konkrete Qualitätsmetrik
nach [RuppSoph]
Prozessworteindeutigkeit in Satz i
Bezugspunkteindeutigkeit in Satz i
Begriffseindeutigkeit in Satz i
Eindeutigkeit
Anzahl aller Sätze
Seite 55 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
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
Seite 56 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Prüfungsnachbereitung
Ergebnisse standardisiert dokumentieren
Bei Unterschreitungen der Toleranzgrenze
– Ursachen bestimmen!
– Prozesse anpassen
– Evtl. nachschulen
Seite 57 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Bezug zur Software-Qualität (exemplarisch)
Funktionalität Korrektheit Wartbarkeit
Aktualität x
Eindeutigkeit x
Widerspruchsfreiheit x
Identifizierbarkeit x
Vollständigkeit x
Änderbarkeit x
Prüfbarkeit x x
Realisierbarkeit x
Verständlichkeit x x
...
Seite 58 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
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!
Seite 59 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Agenda
Anforderungen aufnehmen
Dokumentieren von Anforderungen
Der Effekt von Akzeptanztests
Anforderungen vermessen und validieren
Verwalten von Anforderungen
Zusammenfassung
Seite 60 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
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
Seite 61 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
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…
Seite 62 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
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
Seite 63 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
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?
– …
Seite 64 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Ideale Welt
RE-Tool
Suchergebnis
Source
Verarbeitung
Lösung
RE-Tool
Anforderung
RE-Tool
"Ausfalldatum"
Modellierung
Fachklassen
Seite 65 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Die Realität
Source DB-Tool
Source-Code-Analysen können das zig-fache an Zeit kosten!
Word
Seite 66 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Vision: Traceability innerhalb der Werkzeugkette
Anforderungs-
management
IDE
Projekt-
management
Build-
Management
Issue Tracking
Modellierung
Persistenz
Delivery
Collaboration
BP-
Management
Monitoring
Configuration-
Management
Seite 67 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
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
Seite 68 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Agenda
Anforderungen aufnehmen
Dokumentieren von Anforderungen
Der Effekt von Akzeptanztests
Anforderungen vermessen und validieren
Verwalten von Anforderungen
Zusammenfassung
Seite 69 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Warum ist RE wirtschaftlich?
Seite 70 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
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
Seite 71 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
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-der-
wissenschaft.de/bdw/bdwlive/heftarchiv/index2.php?object_id=32911270
Seite 72 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
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 Softwareent-
wickler; 2. Auflage, Dpunkt Verlag, 2010, ISBN: 978-3898646710
Rainer Gerlich; 111 Thesen zur erfolgreichen Softwareentwicklung;
1. Auflage, Springer, 2005, ISBN: 978-3540209102
Seite 73 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
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
Seite 74 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
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
…
Bildernachweise
Seite 75 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
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.
Bildernachweise
Seite 76 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst
Abkürzungen
ATDD Acceptance Test Driven Development
BDD Behavior Driven Development
BPEL Business Process Execution Language
BPMN Business Process Model and Notation
DDD Domain-Driven Design
DSL Domain-Specific Language
ER Entity Relationship
QA Quality Assurance
QS Qualitätssicherung
RE Requirements Engineering bzw. Requirements Engineer
TDD Test-Driven Development
UML Unified Modeling Language
Fragen?
www.iks-gmbh.com

Mais conteúdo relacionado

Destaque

Vincularte -tec-- completo
Vincularte  -tec-- completoVincularte  -tec-- completo
Vincularte -tec-- completoThanya Fuentes
 
Enriquez y tapie proyecto
Enriquez y tapie proyectoEnriquez y tapie proyecto
Enriquez y tapie proyectoLeidyEnriquez
 
Cap 1 de , el sistema social, exposición.
Cap 1 de , el sistema social, exposición.Cap 1 de , el sistema social, exposición.
Cap 1 de , el sistema social, exposición.Laura Diosa
 
Vier jahreszeiten
Vier jahreszeitenVier jahreszeiten
Vier jahreszeitenjuansojeda
 
Presentación bloq cierre fatla
Presentación bloq cierre fatlaPresentación bloq cierre fatla
Presentación bloq cierre fatlaRosaMarquezG
 
Other bangle s_07-02-2011_part-1
Other bangle s_07-02-2011_part-1Other bangle s_07-02-2011_part-1
Other bangle s_07-02-2011_part-1Surbhita Singh
 
Triangulos rectangulos solucion recuperacion
Triangulos rectangulos solucion recuperacionTriangulos rectangulos solucion recuperacion
Triangulos rectangulos solucion recuperacionmadara-32
 
Juegos olimpicos lonrdes 2012
Juegos olimpicos lonrdes 2012Juegos olimpicos lonrdes 2012
Juegos olimpicos lonrdes 2012milelamejor
 
Enriquez y tapie proyecto final
Enriquez y tapie proyecto finalEnriquez y tapie proyecto final
Enriquez y tapie proyecto finalLeidyEnriquez
 
Karriereschmiede Mittelstandskonzern
Karriereschmiede MittelstandskonzernKarriereschmiede Mittelstandskonzern
Karriereschmiede Mittelstandskonzernifm electronic gmbh
 
Educación ambiental
Educación  ambientalEducación  ambiental
Educación ambientalchecho98
 
Identidad
IdentidadIdentidad
IdentidadUNT
 
Clcgs prevencion riesgos 2
Clcgs prevencion riesgos 2Clcgs prevencion riesgos 2
Clcgs prevencion riesgos 2milena1016
 

Destaque (20)

Vincularte -tec-- completo
Vincularte  -tec-- completoVincularte  -tec-- completo
Vincularte -tec-- completo
 
Enriquez y tapie proyecto
Enriquez y tapie proyectoEnriquez y tapie proyecto
Enriquez y tapie proyecto
 
Cap 1 de , el sistema social, exposición.
Cap 1 de , el sistema social, exposición.Cap 1 de , el sistema social, exposición.
Cap 1 de , el sistema social, exposición.
 
Open Data
Open DataOpen Data
Open Data
 
Mata
MataMata
Mata
 
Vier jahreszeiten
Vier jahreszeitenVier jahreszeiten
Vier jahreszeiten
 
Presentación bloq cierre fatla
Presentación bloq cierre fatlaPresentación bloq cierre fatla
Presentación bloq cierre fatla
 
Other bangle s_07-02-2011_part-1
Other bangle s_07-02-2011_part-1Other bangle s_07-02-2011_part-1
Other bangle s_07-02-2011_part-1
 
Triangulos rectangulos solucion recuperacion
Triangulos rectangulos solucion recuperacionTriangulos rectangulos solucion recuperacion
Triangulos rectangulos solucion recuperacion
 
Juegos olimpicos lonrdes 2012
Juegos olimpicos lonrdes 2012Juegos olimpicos lonrdes 2012
Juegos olimpicos lonrdes 2012
 
Enriquez y tapie proyecto final
Enriquez y tapie proyecto finalEnriquez y tapie proyecto final
Enriquez y tapie proyecto final
 
Calculo mastarreno
Calculo mastarrenoCalculo mastarreno
Calculo mastarreno
 
Karriereschmiede Mittelstandskonzern
Karriereschmiede MittelstandskonzernKarriereschmiede Mittelstandskonzern
Karriereschmiede Mittelstandskonzern
 
Maquinas y mecanismos
Maquinas  y mecanismosMaquinas  y mecanismos
Maquinas y mecanismos
 
Scratch
ScratchScratch
Scratch
 
Educación ambiental
Educación  ambientalEducación  ambiental
Educación ambiental
 
Identidad
IdentidadIdentidad
Identidad
 
Clcgs prevencion riesgos 2
Clcgs prevencion riesgos 2Clcgs prevencion riesgos 2
Clcgs prevencion riesgos 2
 
Fracaso escolar
Fracaso escolarFracaso escolar
Fracaso escolar
 
Trabajo de Ciudadanía
Trabajo de Ciudadanía Trabajo de Ciudadanía
Trabajo de Ciudadanía
 

Semelhante a Mehr Softwarequalität: Requirements Engineering

Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-GroßprojekteAgil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-GroßprojekteQAware GmbH
 
Tipps für Requirements Management Tools
Tipps für Requirements Management ToolsTipps für Requirements Management Tools
Tipps für Requirements Management ToolsMarkus Unterauer
 
Software-Tests in PHP-Anwendungen
Software-Tests in PHP-AnwendungenSoftware-Tests in PHP-Anwendungen
Software-Tests in PHP-AnwendungenGjero Krsteski
 
Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-GroßprojekteAgil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-GroßprojekteQAware GmbH
 
Requirement Engineering & PDD
Requirement Engineering & PDDRequirement Engineering & PDD
Requirement Engineering & PDDCristina Vidu
 
JavaScript und trotzdem Softwerker
JavaScript und trotzdem SoftwerkerJavaScript und trotzdem Softwerker
JavaScript und trotzdem SoftwerkerDennis Wilson
 
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
 
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
 
Community Camp 2016: Die richtige Forensoftware
Community Camp 2016: Die richtige ForensoftwareCommunity Camp 2016: Die richtige Forensoftware
Community Camp 2016: Die richtige ForensoftwareFranziska Hauck
 
20191113 dev ops und continuous delivery_testautomatisierung ist trumpf
20191113 dev ops und continuous delivery_testautomatisierung ist trumpf20191113 dev ops und continuous delivery_testautomatisierung ist trumpf
20191113 dev ops und continuous delivery_testautomatisierung ist trumpfStefan Jobst
 
User Experience im Digital Banking
User Experience im Digital BankingUser Experience im Digital Banking
User Experience im Digital BankingJürg Stuker
 
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
 
ONE Konferenz: Von der Idee zur App
ONE Konferenz: Von der Idee zur AppONE Konferenz: Von der Idee zur App
ONE Konferenz: Von der Idee zur AppNetcetera
 
Kosten technischer Qualität in der Softwareentwicklung
Kosten technischer Qualität in der SoftwareentwicklungKosten technischer Qualität in der Softwareentwicklung
Kosten technischer Qualität in der SoftwareentwicklungSebastian Dietrich
 
Toolauswahl im IT Service Management – eine rationale Bauchentscheidung?
Toolauswahl im IT Service Management – eine rationale Bauchentscheidung?Toolauswahl im IT Service Management – eine rationale Bauchentscheidung?
Toolauswahl im IT Service Management – eine rationale Bauchentscheidung?Digicomp Academy AG
 
Werkstattgespräch Agile Requirements Engineering
Werkstattgespräch Agile Requirements EngineeringWerkstattgespräch Agile Requirements Engineering
Werkstattgespräch Agile Requirements EngineeringuxHH
 

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

Lizenzmanagement in der Praxis
Lizenzmanagement in der PraxisLizenzmanagement in der Praxis
Lizenzmanagement in der Praxis
 
Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-GroßprojekteAgil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
 
Tipps für Requirements Management Tools
Tipps für Requirements Management ToolsTipps für Requirements Management Tools
Tipps für Requirements Management Tools
 
Software-Tests in PHP-Anwendungen
Software-Tests in PHP-AnwendungenSoftware-Tests in PHP-Anwendungen
Software-Tests in PHP-Anwendungen
 
Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-GroßprojekteAgil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
 
Requirement Engineering & PDD
Requirement Engineering & PDDRequirement Engineering & PDD
Requirement Engineering & PDD
 
Mehr Softwarequalität: Team-Cleancoding
Mehr Softwarequalität: Team-CleancodingMehr Softwarequalität: Team-Cleancoding
Mehr Softwarequalität: Team-Cleancoding
 
JavaScript und trotzdem Softwerker
JavaScript und trotzdem SoftwerkerJavaScript und trotzdem Softwerker
JavaScript und trotzdem Softwerker
 
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!
 
Mehr Softwarequalität: Team Clean Coding
Mehr Softwarequalität: Team Clean CodingMehr Softwarequalität: Team Clean Coding
Mehr Softwarequalität: Team Clean Coding
 
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
 
Community Camp 2016: Die richtige Forensoftware
Community Camp 2016: Die richtige ForensoftwareCommunity Camp 2016: Die richtige Forensoftware
Community Camp 2016: Die richtige Forensoftware
 
20191113 dev ops und continuous delivery_testautomatisierung ist trumpf
20191113 dev ops und continuous delivery_testautomatisierung ist trumpf20191113 dev ops und continuous delivery_testautomatisierung ist trumpf
20191113 dev ops und continuous delivery_testautomatisierung ist trumpf
 
User Experience im Digital Banking
User Experience im Digital BankingUser Experience im Digital Banking
User Experience im Digital Banking
 
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
 
Test-Alternativen
Test-AlternativenTest-Alternativen
Test-Alternativen
 
ONE Konferenz: Von der Idee zur App
ONE Konferenz: Von der Idee zur AppONE Konferenz: Von der Idee zur App
ONE Konferenz: Von der Idee zur App
 
Kosten technischer Qualität in der Softwareentwicklung
Kosten technischer Qualität in der SoftwareentwicklungKosten technischer Qualität in der Softwareentwicklung
Kosten technischer Qualität in der Softwareentwicklung
 
Toolauswahl im IT Service Management – eine rationale Bauchentscheidung?
Toolauswahl im IT Service Management – eine rationale Bauchentscheidung?Toolauswahl im IT Service Management – eine rationale Bauchentscheidung?
Toolauswahl im IT Service Management – eine rationale Bauchentscheidung?
 
Werkstattgespräch Agile Requirements Engineering
Werkstattgespräch Agile Requirements EngineeringWerkstattgespräch Agile Requirements Engineering
Werkstattgespräch Agile Requirements Engineering
 

Mais de IKS Gesellschaft für Informations- und Kommunikationssysteme mbH

Mais 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“ 22.05.2014 Autor: Jörg Vollmer
  • 2. Seite 3 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Was stört Sie im IT-Alltag am meisten? Befragt wurden 142 Software-Entwickler: 1. Unklare Anforderungen 51.41 % 2. Zu häufig & schnell wechselnde Anforderungen 37.32 % 3. Termindruck => Quick & Dirty 30.99 % 4. Schlechtes Projektmanagement 28.87 % 5. Unverständlicher Code (z.B. hist. gewachsen) 28.17 % 6. Geringe oder fehlende Testabdeckung 28.17 % 7. Unzureichende Kommunikation im Team 25.35 % 8. Ineffektive (Entwicklungs-) Prozesse 21.13 % 9. Unnötige Meetings & Diskussionen 15.49 % 10. Nicht machbare Aufwandsschätzungen 14.79 % Quelle: http://umfrage.clean-coder.de (Stand 14. Okt. 2013)
  • 3. Seite 4 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst 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?
  • 4. Seite 5 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Agenda Anforderungen aufnehmen Dokumentieren von Anforderungen Der Effekt von Akzeptanztests Anforderungen vermessen und validieren Verwalten von Anforderungen Zusammenfassung
  • 5. Seite 6 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Agenda Anforderungen aufnehmen Dokumentieren von Anforderungen Der Effekt von Akzeptanztests Anforderungen vermessen und validieren Verwalten von Anforderungen Zusammenfassung
  • 6. Seite 7 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst 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!
  • 7. Seite 8 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst 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
  • 8. Seite 9 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Falle 1 Ineffiziente Meetings
  • 9. Seite 10 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst 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  Moderationstechniken anwenden Risiko von falschen Entscheidungen  Software-Qualität s. auch [bdw]
  • 10. Seite 11 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Falle 2 Faule Kompromisse
  • 11. Seite 12 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst 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)
  • 12. Seite 13 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Falle 3 Designfehler bei Geschäftsobjekten
  • 13. Seite 14 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Das Auto soll verschiedene Farben haben Was der RE verstand: Was der Kunde wollte:
  • 14. Seite 15 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst 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
  • 15. Seite 16 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Falle 4 Unklare Fachbegriffe
  • 16. Seite 17 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst 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
  • 17. Seite 18 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst 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?
  • 18. Seite 19 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Agenda Anforderungen aufnehmen Dokumentieren von Anforderungen Der Effekt von Akzeptanztests Anforderungen vermessen und validieren Verwalten von Anforderungen Zusammenfassung
  • 19. Seite 20 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst 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!
  • 20. Seite 21 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Nichts Halbes, nichts Ganzes
  • 21. Seite 22 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst 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
  • 22. Seite 23 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst 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
  • 23. Seite 24 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Falle 5 Unverständliche Formulierungen
  • 24. Seite 25 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst 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
  • 25. Seite 26 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Falle 6 Versteckte Annahmen
  • 26. Seite 27 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst 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?
  • 27. Seite 28 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst 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.
  • 28. Seite 29 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst 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“
  • 29. Seite 30 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst 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
  • 30. Seite 31 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst 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
  • 31. Seite 32 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Beispiel
  • 32. Seite 33 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst 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
  • 33. Seite 34 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Funktionale Anforderungen – Illustriert ≈+ ≈+ + … …
  • 34. Seite 35 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Funktionale Anforderungen – Formal Voraussetzung – Gegeben seien natürliche Zahlen – und eine Preisfunktion . Aufgabe – Finde eine Partitionierung , sodass minimal wird, wobei . Geschenke Kinder Gesamtgeschenkwert beim Kind n
  • 35. Seite 36 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Abnahme: Der Nikolaus testet und …Abnahme: … war nicht ganz glücklich.
  • 36. Seite 37 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst 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!
  • 37. Seite 38 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Falle 7
  • 38. Seite 39 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Erkenntnis Selbst eine vollständige und widerspruchsfreie Spezifikationen garantiert keine gute Software! Doch wie lässt sich das Problem bekämpfen?
  • 39. Seite 40 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst 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 usw. …
  • 40. Seite 41 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Klassisch: Stille Post Klassisches Vorgehen: Kunde Requirements Engineer Der RE abstrahiert und formuliert eine Spezifikation Entwickler Software Tester Testfälle Kunde Abnahme anhand von Beispielen anhand der Spezifikation anhand der Spezifikation anhand von Akzeptanzkriterien
  • 41. Seite 42 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Idee des Acceptance Test Driven Development Beispiele Tests Anforderungen werden zu verifizierenreflektieren
  • 42. Seite 43 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst 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)
  • 43. Seite 44 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Angenommen … falls … dann … Ergänzend zur User-Story werden sog. Scenarios formuliert (zusammen bilden sie ein sog. Feature) User Story Als ein Nikolaus will ich dass meine Geschenke an Kinder gerecht verteilt werden, um Enttäuschungen der Kinder zu vermeiden. Scenario1: Zwei Kinder, vier Geschenke Angenommen Nikolaus gibt »2« beim Feld Kinder ein, und Nikolaus gibt »1, 2, 3, 4« beim Feld Geschenke ein. Falls Nikolaus auf Rechnen drückt, dann muss im Feld Ergebnis erscheinen: »Kind 1: 1 + 4, Kind 2: 2 + 3«
  • 44. Seite 45 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Beispiel mit JBehave Die Datei nikolaus.story: Die Test-Klasse: 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 @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); } s. auch [JBehave] und [Cucumber]
  • 45. Seite 46 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Beispiel mit JBehave Die Log-Datei im Erfolgsfall: 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]>) 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
  • 46. Seite 47 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Vergleich der Entwicklung: klassisch & BDD Kunde wird interviewt RE spezifiziert Anforderungen Implementierung QA testet Auslieferung & Abnahme Kunde wird interviewt RE spezifiziert Anforderungen RE & Entwickl. → Akzeptanztest Implementierung QA & autom. Akzeptanztests Auslieferung & Abnahme
  • 47. Seite 48 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst 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
  • 48. Seite 49 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst 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?
  • 49. Seite 50 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Agenda Anforderungen aufnehmen Dokumentieren von Anforderungen Der Effekt von Akzeptanztests Anforderungen vermessen und validieren Verwalten von Anforderungen Zusammenfassung
  • 50. Seite 51 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst 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…
  • 51. Seite 52 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Kosten von RE-Fehlern bezogen auf Projektphasen
  • 52. Seite 53 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst 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
  • 53. Seite 54 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Konkrete Qualitätsmetrik nach [RuppSoph] Prozessworteindeutigkeit in Satz i Bezugspunkteindeutigkeit in Satz i Begriffseindeutigkeit in Satz i Eindeutigkeit Anzahl aller Sätze
  • 54. Seite 55 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst 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
  • 55. Seite 56 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Prüfungsnachbereitung Ergebnisse standardisiert dokumentieren Bei Unterschreitungen der Toleranzgrenze – Ursachen bestimmen! – Prozesse anpassen – Evtl. nachschulen
  • 56. Seite 57 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Bezug zur Software-Qualität (exemplarisch) Funktionalität Korrektheit Wartbarkeit Aktualität x Eindeutigkeit x Widerspruchsfreiheit x Identifizierbarkeit x Vollständigkeit x Änderbarkeit x Prüfbarkeit x x Realisierbarkeit x Verständlichkeit x x ...
  • 57. Seite 58 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst 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!
  • 58. Seite 59 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Agenda Anforderungen aufnehmen Dokumentieren von Anforderungen Der Effekt von Akzeptanztests Anforderungen vermessen und validieren Verwalten von Anforderungen Zusammenfassung
  • 59. Seite 60 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst 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
  • 60. Seite 61 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst 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…
  • 61. Seite 62 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst 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
  • 62. Seite 63 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst 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? – …
  • 63. Seite 64 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Ideale Welt RE-Tool Suchergebnis Source Verarbeitung Lösung RE-Tool Anforderung RE-Tool "Ausfalldatum" Modellierung Fachklassen
  • 64. Seite 65 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Die Realität Source DB-Tool Source-Code-Analysen können das zig-fache an Zeit kosten! Word
  • 65. Seite 66 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Vision: Traceability innerhalb der Werkzeugkette Anforderungs- management IDE Projekt- management Build- Management Issue Tracking Modellierung Persistenz Delivery Collaboration BP- Management Monitoring Configuration- Management
  • 66. Seite 67 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst 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
  • 67. Seite 68 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Agenda Anforderungen aufnehmen Dokumentieren von Anforderungen Der Effekt von Akzeptanztests Anforderungen vermessen und validieren Verwalten von Anforderungen Zusammenfassung
  • 68. Seite 69 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Warum ist RE wirtschaftlich?
  • 69. Seite 70 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst 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
  • 70. Seite 71 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst 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-der- wissenschaft.de/bdw/bdwlive/heftarchiv/index2.php?object_id=32911270
  • 71. Seite 72 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst 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 Softwareent- wickler; 2. Auflage, Dpunkt Verlag, 2010, ISBN: 978-3898646710 Rainer Gerlich; 111 Thesen zur erfolgreichen Softwareentwicklung; 1. Auflage, Springer, 2005, ISBN: 978-3540209102
  • 72. Seite 73 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst 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
  • 73. Seite 74 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst 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 … Bildernachweise
  • 74. Seite 75 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst 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. Bildernachweise
  • 75. Seite 76 / 76Garbage in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst Abkürzungen ATDD Acceptance Test Driven Development BDD Behavior Driven Development BPEL Business Process Execution Language BPMN Business Process Model and Notation DDD Domain-Driven Design DSL Domain-Specific Language ER Entity Relationship QA Quality Assurance QS Qualitätssicherung RE Requirements Engineering bzw. Requirements Engineer TDD Test-Driven Development UML Unified Modeling Language