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


                          iks Thementag

„Mehr Softwarequalität – Best practices für alle Entwicklungsphasen“



                            19.06.2012
                               Autor:
                            Jörg Vollmer
Agenda

      Anforderungen aufnehmen

      Dokumentieren von Anforderungen

      Anforderungen vermessen und validieren

      Verwalten von Anforderungen

      Paradigmenwechsel: Vom Vorarbeiter zum Mitarbeiter

      Zusammenfassung




iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out   Seite 3 / 58
Vorgehen

Im Folgenden soll untersucht werden:

      Konstruktiv
       – Welche Fertigkeiten des RE beeinflussen die Software-Qualität?

      Analytisch
       – 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?

      Mit neuen RE-Techniken zu besserer Qualität (?)



iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out         Seite 4 / 58
Standardprobleme zu Projektbeginn

      Unklare Zielvorstellungen

      Veränderliche Anforderungen

      Stakeholder stehen nicht zur Verfügung

      Kommunikationsbarrieren

      Hohe Komplexität




iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out   Seite 5 / 58
Qualitätseigenschaften des Requirements Engineers

      Moderationsfertigkeiten

      Eloquenz

      Perspektivenwechsel

      Diplomatie

      Sorgfalt

      Ausdauer

      Spezielle RE-Techniken (gleich…)



   Analytisch unmessbar, aber Auswirkung auf die Softwarequalität

iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out   Seite 6 / 58
Agenda

      Anforderungen aufnehmen

      Dokumentieren von Anforderungen

      Anforderungen vermessen und validieren

      Verwalten von Anforderungen

      Paradigmenwechsel: Vom Vorarbeiter zum Mitarbeiter

      Zusammenfassung




iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out   Seite 7 / 58
Aufgaben zum Projektbeginn

      Die initiale Bestandsaufnahme des Projektumfelds ist unverzichtbar
       – Auch im agilen Umfeld

      Wichtige Aufgaben sind
       – Ermitteln aller Stakeholder
       – Ziele des Produkts und deren Nutzen ermitteln
       – Systemkontext und -grenzen bestimmen
       – Qualitätsanforderungen (des Produkts) identifizieren




    Fehler hierbei werden später teuer bezahlt

iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out   Seite 8 / 58
Beobachtungstechniken

      Apprenticing: Der RE wird wie ein Lehrling eingearbeitet

      Der RE lernt hierbei den Fachjargon kennen

      Arbeitsschritte hinterfragen und ineffiziente Prozesse entdecken ...




   …die Chance, somit die Qualität zu verbessern, ist schnell verspielt

iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out    Seite 9 / 58
1. Falle: Diskussionen in Meetings

      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
       – Eine Gruppe orientiert sich viel schwerer um als ein Einzelner
                                                                    s. auch [bdw]




 Moderationstechniken anwenden



    Risiko von falschen Entscheidungen  Software-Qualität

iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out         Seite 10 / 58
2. Falle: Faule Kompromisse

      Stakeholder A:
       – Bei einem Fehler muss das System anhalten

      Stakeholder B:
       – Bei einem Fehler muss das System neu starten

      RE einigt sich mit A und B auf
       – Im Fehlerfall wird eine Ausnahmeroutine veranlasst

Schlecht!

Eine Mehrdeutigkeit in einem Anforderungsdokument steht oft für
einen Konflikt bei den Stakeholdern (de Marco)


iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out   Seite 11 / 58
3. Falle: Ein Auto kann verschiedene Farben haben

Was der RE verstand:




Was der Kunde wollte:




iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out   Seite 12 / 58
Unterschiede ziehen sich durch alle Schichten

      Datenbank
      Datenmodell
      Service-Schicht
      Benutzeroberfläche




 Fachobjekte und deren Beziehungen identifizieren (DDD)


    Fehler hierbei sind teuer!

iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out   Seite 13 / 58
4. Falle: 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


iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out      Seite 14 / 58
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?




iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out   Seite 15 / 58
Agenda

      Anforderungen aufnehmen

      Dokumentieren von Anforderungen

      Anforderungen vermessen und validieren

      Verwalten von Anforderungen

      Paradigmenwechsel: Vom Vorarbeiter zum Mitarbeiter

      Zusammenfassung




iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out   Seite 16 / 58
Anforderungen dokumentieren

      Anforderungen aufschreiben, das kann doch jeder

      Aber: Meinungen zu bestehender Dokumentation
       – Versteht nur der, der‘s geschrieben hat
       – Ist nach kurzer Zeit überholt
       – Bis man dort die richtige Stelle findet
       – Die interessanten Sonderfälle fehlen eh




 Sehr viel Dokumentation wird gar nicht erst gelesen


iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out   Seite 17 / 58
Wie entsteht gute (Anforderungs-) Dokumentation?
                                                                    Einleitung
      Es empfiehlt sich die Verwendung                                   Zweck,
      einer Standardgliederung / Template                                Stakeholder
       – RUP                                                             Referenzen

       – IEEE 830                                                   Übersicht
                                                                         Systemumfeld
       – V-Modell                                                        Architektur
       – Volere                                                          Benutzer
                                                                         Randbedingungen
                                                                         Annahmen

                                                                    Anforderungen
                                                                         Funktionalität
                                                                         Qualitätsanforderungen

                                                                    Anhang
                                                                         Verzeichnisse
                                                                         Glossar
                                                                         Index

iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out                                 Seite 18 / 58
Dokumentation in Form von Prosatext

      Vorteile
       – Wird von alle 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




iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out    Seite 19 / 58
Negativbeispiel

      Original
       – Wenn das Feld kundeVorhanden 'J' entspricht, dann wird über
          kunde.item.sector das Feld branche gesetzt.

      Besser
       – Falls das Feld kundeVorhanden 'J' ist, dann erhält branche
         den Wert von kunde.item.sector.


      Formaler
       – Ist kundeVorhanden = 'J', so setze
             branche:= kunde.item.sector.



iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out   Seite 20 / 58
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

iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out   Seite 21 / 58
Eine Mischung ist optimal

      Vorteile
       – Modelle können durch natürlich-sprachliche Ergänzungen
         verständlicher werden
       – Prosatext kann durch Modelle eindeutiger und exakter werden
       – D.h. beide Arten können die Schwächen der anderen kompensieren



      Vorbild: Mathematische Texte
       – Aus jeder nicht-negativen reellen Zahl lässt sich die Wurzel ziehen
       – Es seien x, y  IR. Dann gilt y  0  x : x 2  y.




iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out       Seite 22 / 58
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, Wie oft, etc.

      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.

iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out        Seite 23 / 58
Satzschablonen, z.B. die der User-Story
       Agile Methoden verwenden sog. User-Stories
       Aufbau:
        – As a <role> I want <goal/desire> so that <benefit>

       Beispiel:
        – Als Autor möchte ich meine Präsentation speichern können,
          damit ich nicht noch einmal alles eingeben muss

       „so that <benefit>“ hinterfragt den Geschäftswert

       Kurzfassung des klassischen Use-Case

       Akzeptanztests kompensieren den knappen Inhalt (dazu später…)



iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out     Seite 24 / 58
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?

        – Wenn nicht, warum nicht?  Schulungen




iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out        Seite 25 / 58
Agenda

      Anforderungen aufnehmen

      Dokumentieren von Anforderungen

      Anforderungen vermessen und validieren

      Verwalten von Anforderungen

      Paradigmenwechsel: Vom Vorarbeiter zum Mitarbeiter

      Zusammenfassung




iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out   Seite 26 / 58
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…




iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out       Seite 27 / 58
Kosten von RE-Fehlern bezogen auf Projektphasen




iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out   Seite 28 / 58
Qualitätsmerkmale für Anforderungen

      Wann ist eine Anforderungsspezifikation gut?
        –    Aktualität (insbesondere Kundenwunsch-konform)
        –    Eindeutigkeit
        –    Widerspruchsfreiheit
        –    Identifizierbarkeit
        –    Vollständigkeit
        –    Änderbarkeit
        –    Prüfbarkeit
        –    Realisierbarkeit
        –    Verständlichkeit


   All diese Merkmale beeinflussen die Software-Qualität!

iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out   Seite 29 / 58
Zusammenhang 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



iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out                               Seite 30 / 58
Konkrete Qualitätsmetriken

                                u  PE  v  BPE  w  BE
 Eindeutigk eit                                          100, wobei u  v  w  1
                                  # Anforderungssätze

   PE  Prozessworteindeutigkeit
  BPE  Bezugspunkteindeutigkeit
   BE  Begriffsei ndeutigkei t


    A zu t
  PEi 1 Fragen
  A), , alle
   ), BEi JA
   BPE beant
  ( ( (0
  i  i A
       )falls
        ,
           A
           mit
        sonst
              sind




                                                                         nach [RuppSoph]


iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out                Seite 31 / 58
Review-Prüfmethoden

      Stellungnahme
       – Eine weitere Person 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


iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out       Seite 32 / 58
Prüfungsvorbereitungen

      Qualitätsmerkmale auswählen

      Qualitätsmetriken auswählen

      Sollwerte festlegen (Indikatoren)

      Prüfzeitpunkte festlegen

      Prüfer gezielt auswählen
       – Qualifikation!




iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out   Seite 33 / 58
Prüfungsnachbereitung

      Ergebnisse standardisiert dokumentieren




      Bei Unterschreitungen der Toleranzgrenze
       – Ursachen bestimmen
       – Prozesse anpassen
       – Evtl. nachschulen

iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out   Seite 34 / 58
Prozesse anpassen, Vorschläge

      Verwendung von Bugtrackern auch bei Anforderungen
       – Beispiele: Jira, Mantis, Bugzilla, Trac
       – Wird bislang kaum praktiziert. Warum eigentlich nicht?
       – Zudem ist die Anzahl der Tickets (normiert) eine Qualitäts-Metrik

      Definition of Done
       – Qualitätsrichtlinien festlegen
       – Stellungnahme gehört „zum Done“ dazu




iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out       Seite 35 / 58
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!




iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out    Seite 36 / 58
Agenda

      Anforderungen aufnehmen

      Dokumentieren von Anforderungen

      Anforderungen vermessen und validieren

      Verwalten von Anforderungen

      Paradigmenwechsel: Vom Vorarbeiter zum Mitarbeiter

      Zusammenfassung




iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out   Seite 37 / 58
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 Produkt (erwartungsgemäß) in Betrieb ist.

      Die Wahl des richtigen Tools ist außerordentlich wichtig!




   Entscheidend für das Software-Qualitätsmerkmal Wartbarkeit

iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out   Seite 38 / 58
Erwartungen an ein Management-Tool

      Notwendige Eigenschaften:
       – Anlegen, Ändern, Löschen von Anforderungen
       – Strukturierbarkeit (hierarchisch, verlinkbar)
       – Gute Suchmöglichkeiten (Volltext, unscharf, Stichwörter)
       – Versionsverwaltung / Versionierung
       – Einfache Handhabung von Grafiktypen (Einfügen, Bearbeiten)
       – Verfolgbarkeit (Traceability)

      Wünschenswert
       – Konfigurierbarkeit von Eingabemasken und Workflow
       – Benutzer- und Rechteverwaltung
       – Automatische Analyse von Texten und Generieren von Fragen
       – …

iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out     Seite 39 / 58
Automatisches Erzeugen von Fragen

      Gegeben sei die User-Story
       – Als Nutzer möchte ich meine Präsentation speichern, damit
         ich nicht noch einmal alles eingeben muss

      Exemplarisch generiertes Fragen-Set
        –    Wer muss speichern?
        –    Wann soll speichern stattfinden?
        –    Wann ist speichern komplett abgeschlossen?
        –    Wie häufig / oft / groß / schnell soll speichern sein?
        –    Wo / wie kann geprüft werden, ob speichern durchgeführt wurde?
        –    Was geschieht, wenn man nicht speichern kann?
        –    Was könnte speichern verhindern, und was wird dann erwartet?
        –    Welche mögl. Fehleingaben müssen im Zusammenhang mit speichern abgefangen werden?
        –    Welche Inhalte kommen in Präsentation vor?
        –    Welche optionalen / verpflichtenden Aspekte gelten für Präsentation?
        –    Wie sieht das Layout von Präsentation aus?

iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out                  Seite 40 / 58
Tools

      Word & Excel: immer noch üblich
       – Grund: Werden von jedem beherrscht

      Mehr im Kommen: Jira & Wikis
       – Grund: Einfaches Erlernen, einfache Bedienung

      Auswahl verschiedener Tools:
       – Caliber RM        Cradle                                   Contour
       – DOORS             DESIRe                                   Enterprise Architect
       – HP Quality Center IRQA                                     Lotus Notes
       – OptimalTrace      RequisitePro

        – [VolereTools] enthält eine weitaus größere Übersicht

iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out                          Seite 41 / 58
Best practices

      Prüfen Sie, ob bei Ihnen das passende Tool im Einsatz ist

      Erwägen Sie eine Neuanschaffung, so…

        – nehmen Sie sich Zeit für die richtige Wahl,

        – lassen Sie sich von Experten beraten,

        – planen Sie auch den Einsatz von Schulungen.




iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out   Seite 42 / 58
Agenda

      Anforderungen aufnehmen

      Dokumentieren von Anforderungen

      Anforderungen vermessen und validieren

      Verwalten von Anforderungen

      Paradigmenwechsel: Vom Vorarbeiter zum Mitarbeiter

      Zusammenfassung




iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out   Seite 43 / 58
Probleme des bisherigen RE-Ansatzes

      Das Wissen des Auftraggebers gelangt über folgende
      Transformationen hin zur Software
        – Kundenvorstellung  Anforderung (teils modelliert)
        – Anforderung        Software-Design
        – Software-Design  Programmcode


      Ähnliches gilt für Tests
        – Kundenvorstellung  Anforderung
        – Anforderung        Test-Design
        – Test-Design        Testcode




iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out   Seite 44 / 58
Probleme der Transformationen

      Diese Transformation ist zu komplex:
       – Anforderung  Software-Design

      Gründe
       – Die Anforderung ist zu wenig formalisiert bzw. „algorithmisiert“
       – Hochmut der Entwickler (wir machen das eh noch mal anders)
       – Code-Styles (Übersetzung ins Englische)

      Folge
       – Man findet die Anforderung nicht mehr im Code wieder


    Qualitätseinfluss auf Korrektheit & Änderbarkeit

iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out           Seite 45 / 58
Probleme der Transformationen

      Diese Transformation bereitet ähnliche Schwierigkeiten
       – Anforderung  Test-Design

      Gründe
       – Die Anforderungen enthalten zu wenige (meist gar keine)
         Akzeptanzkriterien

      Folge
       – Der Tester muss die Sollwerte anhand der Anf. selbst ableiten
       – Gefahr besteht, dass Testszenarien ganz vergessen werden




iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out        Seite 46 / 58
Behavior-Driven Development

      Ziel
       – Systematisierung der Transformation
           Anforderung  Software-Design bzw. Test-Design

      Lösung
        – RE und Entwickler erstellen zusammen Akzeptanzkriterien
          und -tests (keine Unit-Tests!)

        – Sie werden zum Bestandteil der Anforderungsspezifikation
          (der User-Story)

        – Sie haben ein einheitliches Format…

        – Ziel: Automatisierung!


iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out    Seite 47 / 58
Given When Then

      Ergänzend zur User-Story werden in der ubiquitären
      Sprache sog. Szenarien formuliert:

     As a:                     Rechenmuffel
     I want:                   dass ein Rechner Zahlen addiert                  Story
     In order to:              vermeiden von dummen Kopfrechenfehlern

     Scenario1:                Addieren von Zahlen
     Given:                    Rechenmuffel gab „27“ in den Rechner ein,
     And:                      Rechenmuffel gab „39“ in den Rechner ein,
     And:                      Rechenmuffel gab „11“ in den Rechner ein,
     When:                     Rechenmuffel „Summe” drückt,
     Then:                     muss Rechner „77“ als Ergebnis anzeigen.

                                                                       Mehr dazu z.B. bei [Cucumber]
     Scenario2:                 …
iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out                         Seite 48 / 58
Testgetriebenes Requirements Engineering

      Standard
        1.    Kunde wird interviewt
        2.    RE spezifiziert Anforderungen (und erwartet Schätzung)
        3.    Architekt / Entwickler erstellen Software-Design
        4.    Entwickler implementieren Software und (Unit- & Integrations-) Tests
        5.    QA testet meist von Hand  Iteration zu 1, 2, 3, 4
        6.    Abnahmetests

      Neu
        1.    Kunde wird interviewt
        2.    RE spezifiziert Anforderungen
        3.    RE spezifiziert zusammen mit Entwicklung Akzeptanztests (Iteration zu 1, 2)
        4.    Schätzung
        5.    Entwickler erstellen Software, Tests und Akzeptanztests (automatisierte)
        6.    QA testet  Bugfix-Iteration zu 5 (idealisiert)
        7.    Abnahmetests (Ziel: starke Einsparung)
iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out                      Seite 49 / 58
Fazit

      Szenarien erhöhen die Qualitätsmerkmale Verständlichkeit,
      Eindeutigkeit und Prüfbarkeit der Anforderungen signifikant

      Mit Hilfe von neuen Frameworks lassen sich diese Strukturen
      halbautomatisch in Code überführen

      Das führt zu ausführbaren Akzeptanztests




iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out   Seite 50 / 58
Agenda

      Motivation

      Anforderungen aufnehmen

      Dokumentieren von Anforderungen

      Verwalten von Anforderungen

      Anforderungen vermessen und validieren

      Paradigmenwechsel: Vom Vorarbeiter zum Mitarbeiter

      Zusammenfassung




iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out   Seite 51 / 58
Warum ist RE wirtschaftlich?




iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out   Seite 52 / 58
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 auf Qualität prüfen
       – Ziel: Qualitätssteigerungen durch kontinuierliches Messen
       – Gute Anforderungsqualität  gute Software-Qualität

iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out    Seite 53 / 58
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

[EbertDumke]
   Christof Ebert, Reiner Dumke; Software-Metriken in der Praxis,
   Springer, 1996, ISBN: 978-3540603726


iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out   Seite 54 / 58
Referenzen

[Deißendorfer]
   F. Deißendörfer (Diss. 2009),
   Continuous Quality Control of Long-Lived Software Systems
   http://mediatum2.ub.tum.de/doc/737380/737380.pdf

[Sanego]
   http://www.sanego.de

[StandishGroup]
   http://www.standishgroup.com

[bdw]
      http://www.bild-der-wissenschaft.de/bdw/bdwlive/heftarchiv/index2.php?object_id=32911270


iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out                      Seite 55 / 58
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

      Mr. Malcolm Tredinnick, Behavior Driven Development,
      http://www.youtube.com/watch?v=XXHknWKuG2U
iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out       Seite 56 / 58
Bildnachweise
Folie 10:       http://openclipart.org/image/800px/svg_to_png/169415/discussion.png
                http://openclipart.org/image/800px/svg_to_png/169418/go-round.png

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


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

Folie 34:       http://openclipart.org/image/800px/svg_to_png/29647/QualityControl_rejected2.png

Folie 35:       http://openclipart.org/image/800px/svg_to_png/29641/1267371838.png



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




iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out                                        Seite 57 / 58
Abkürzungen

      BDD                       Behavior-Driven Development
      BPE                       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



iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out             Seite 58 / 58
Fragen?
www.iks-gmbh.com

Softwarequalität: Garbage in - garbage out

  • 1.
    Garbage in -garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst iks Thementag „Mehr Softwarequalität – Best practices für alle Entwicklungsphasen“ 19.06.2012 Autor: Jörg Vollmer
  • 2.
    Agenda Anforderungen aufnehmen Dokumentieren von Anforderungen Anforderungen vermessen und validieren Verwalten von Anforderungen Paradigmenwechsel: Vom Vorarbeiter zum Mitarbeiter Zusammenfassung iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 3 / 58
  • 3.
    Vorgehen Im Folgenden solluntersucht werden: Konstruktiv – Welche Fertigkeiten des RE beeinflussen die Software-Qualität? Analytisch – 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? Mit neuen RE-Techniken zu besserer Qualität (?) iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 4 / 58
  • 4.
    Standardprobleme zu Projektbeginn Unklare Zielvorstellungen Veränderliche Anforderungen Stakeholder stehen nicht zur Verfügung Kommunikationsbarrieren Hohe Komplexität iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 5 / 58
  • 5.
    Qualitätseigenschaften des RequirementsEngineers Moderationsfertigkeiten Eloquenz Perspektivenwechsel Diplomatie Sorgfalt Ausdauer Spezielle RE-Techniken (gleich…) Analytisch unmessbar, aber Auswirkung auf die Softwarequalität iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 6 / 58
  • 6.
    Agenda Anforderungen aufnehmen Dokumentieren von Anforderungen Anforderungen vermessen und validieren Verwalten von Anforderungen Paradigmenwechsel: Vom Vorarbeiter zum Mitarbeiter Zusammenfassung iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 7 / 58
  • 7.
    Aufgaben zum Projektbeginn Die initiale Bestandsaufnahme des Projektumfelds ist unverzichtbar – Auch im agilen Umfeld Wichtige Aufgaben sind – Ermitteln aller Stakeholder – Ziele des Produkts und deren Nutzen ermitteln – Systemkontext und -grenzen bestimmen – Qualitätsanforderungen (des Produkts) identifizieren Fehler hierbei werden später teuer bezahlt iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 8 / 58
  • 8.
    Beobachtungstechniken Apprenticing: Der RE wird wie ein Lehrling eingearbeitet Der RE lernt hierbei den Fachjargon kennen Arbeitsschritte hinterfragen und ineffiziente Prozesse entdecken ... …die Chance, somit die Qualität zu verbessern, ist schnell verspielt iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 9 / 58
  • 9.
    1. Falle: Diskussionenin Meetings 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 – Eine Gruppe orientiert sich viel schwerer um als ein Einzelner s. auch [bdw]  Moderationstechniken anwenden Risiko von falschen Entscheidungen  Software-Qualität iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 10 / 58
  • 10.
    2. Falle: FauleKompromisse Stakeholder A: – Bei einem Fehler muss das System anhalten Stakeholder B: – Bei einem Fehler muss das System neu starten RE einigt sich mit A und B auf – Im Fehlerfall wird eine Ausnahmeroutine veranlasst Schlecht! Eine Mehrdeutigkeit in einem Anforderungsdokument steht oft für einen Konflikt bei den Stakeholdern (de Marco) iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 11 / 58
  • 11.
    3. Falle: EinAuto kann verschiedene Farben haben Was der RE verstand: Was der Kunde wollte: iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 12 / 58
  • 12.
    Unterschiede ziehen sichdurch alle Schichten Datenbank Datenmodell Service-Schicht Benutzeroberfläche  Fachobjekte und deren Beziehungen identifizieren (DDD) Fehler hierbei sind teuer! iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 13 / 58
  • 13.
    4. Falle: UnklareFachbegriffe 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 iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 14 / 58
  • 14.
    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? iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 15 / 58
  • 15.
    Agenda Anforderungen aufnehmen Dokumentieren von Anforderungen Anforderungen vermessen und validieren Verwalten von Anforderungen Paradigmenwechsel: Vom Vorarbeiter zum Mitarbeiter Zusammenfassung iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 16 / 58
  • 16.
    Anforderungen dokumentieren Anforderungen aufschreiben, das kann doch jeder Aber: Meinungen zu bestehender Dokumentation – Versteht nur der, der‘s geschrieben hat – Ist nach kurzer Zeit überholt – Bis man dort die richtige Stelle findet – Die interessanten Sonderfälle fehlen eh  Sehr viel Dokumentation wird gar nicht erst gelesen iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 17 / 58
  • 17.
    Wie entsteht gute(Anforderungs-) Dokumentation? Einleitung Es empfiehlt sich die Verwendung Zweck, einer Standardgliederung / Template Stakeholder – RUP Referenzen – IEEE 830 Übersicht Systemumfeld – V-Modell Architektur – Volere Benutzer Randbedingungen Annahmen Anforderungen Funktionalität Qualitätsanforderungen Anhang Verzeichnisse Glossar Index iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 18 / 58
  • 18.
    Dokumentation in Formvon Prosatext Vorteile – Wird von alle 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 iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 19 / 58
  • 19.
    Negativbeispiel Original – Wenn das Feld kundeVorhanden 'J' entspricht, dann wird über kunde.item.sector das Feld branche gesetzt. Besser – Falls das Feld kundeVorhanden 'J' ist, dann erhält branche den Wert von kunde.item.sector. Formaler – Ist kundeVorhanden = 'J', so setze branche:= kunde.item.sector. iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 20 / 58
  • 20.
    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 iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 21 / 58
  • 21.
    Eine Mischung istoptimal Vorteile – Modelle können durch natürlich-sprachliche Ergänzungen verständlicher werden – Prosatext kann durch Modelle eindeutiger und exakter werden – D.h. beide Arten können die Schwächen der anderen kompensieren Vorbild: Mathematische Texte – Aus jeder nicht-negativen reellen Zahl lässt sich die Wurzel ziehen – Es seien x, y  IR. Dann gilt y  0  x : x 2  y. iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 22 / 58
  • 22.
    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, Wie oft, etc. 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. iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 23 / 58
  • 23.
    Satzschablonen, z.B. dieder User-Story Agile Methoden verwenden sog. User-Stories Aufbau: – As a <role> I want <goal/desire> so that <benefit> Beispiel: – Als Autor möchte ich meine Präsentation speichern können, damit ich nicht noch einmal alles eingeben muss „so that <benefit>“ hinterfragt den Geschäftswert Kurzfassung des klassischen Use-Case Akzeptanztests kompensieren den knappen Inhalt (dazu später…) iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 24 / 58
  • 24.
    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? – Wenn nicht, warum nicht?  Schulungen iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 25 / 58
  • 25.
    Agenda Anforderungen aufnehmen Dokumentieren von Anforderungen Anforderungen vermessen und validieren Verwalten von Anforderungen Paradigmenwechsel: Vom Vorarbeiter zum Mitarbeiter Zusammenfassung iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 26 / 58
  • 26.
    Anforderungen vermessen undvalidieren 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… iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 27 / 58
  • 27.
    Kosten von RE-Fehlernbezogen auf Projektphasen iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 28 / 58
  • 28.
    Qualitätsmerkmale für Anforderungen Wann ist eine Anforderungsspezifikation gut? – Aktualität (insbesondere Kundenwunsch-konform) – Eindeutigkeit – Widerspruchsfreiheit – Identifizierbarkeit – Vollständigkeit – Änderbarkeit – Prüfbarkeit – Realisierbarkeit – Verständlichkeit All diese Merkmale beeinflussen die Software-Qualität! iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 29 / 58
  • 29.
    Zusammenhang 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 iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 30 / 58
  • 30.
    Konkrete Qualitätsmetriken u  PE  v  BPE  w  BE Eindeutigk eit  100, wobei u  v  w  1 # Anforderungssätze PE  Prozessworteindeutigkeit BPE  Bezugspunkteindeutigkeit BE  Begriffsei ndeutigkei t A zu t PEi 1 Fragen A), , alle ), BEi JA BPE beant ( ( (0 i i A )falls , A mit sonst sind nach [RuppSoph] iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 31 / 58
  • 31.
    Review-Prüfmethoden Stellungnahme – Eine weitere Person 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 iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 32 / 58
  • 32.
    Prüfungsvorbereitungen Qualitätsmerkmale auswählen Qualitätsmetriken auswählen Sollwerte festlegen (Indikatoren) Prüfzeitpunkte festlegen Prüfer gezielt auswählen – Qualifikation! iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 33 / 58
  • 33.
    Prüfungsnachbereitung Ergebnisse standardisiert dokumentieren Bei Unterschreitungen der Toleranzgrenze – Ursachen bestimmen – Prozesse anpassen – Evtl. nachschulen iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 34 / 58
  • 34.
    Prozesse anpassen, Vorschläge Verwendung von Bugtrackern auch bei Anforderungen – Beispiele: Jira, Mantis, Bugzilla, Trac – Wird bislang kaum praktiziert. Warum eigentlich nicht? – Zudem ist die Anzahl der Tickets (normiert) eine Qualitäts-Metrik Definition of Done – Qualitätsrichtlinien festlegen – Stellungnahme gehört „zum Done“ dazu iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 35 / 58
  • 35.
    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! iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 36 / 58
  • 36.
    Agenda Anforderungen aufnehmen Dokumentieren von Anforderungen Anforderungen vermessen und validieren Verwalten von Anforderungen Paradigmenwechsel: Vom Vorarbeiter zum Mitarbeiter Zusammenfassung iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 37 / 58
  • 37.
    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 Produkt (erwartungsgemäß) in Betrieb ist. Die Wahl des richtigen Tools ist außerordentlich wichtig! Entscheidend für das Software-Qualitätsmerkmal Wartbarkeit iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 38 / 58
  • 38.
    Erwartungen an einManagement-Tool Notwendige Eigenschaften: – Anlegen, Ändern, Löschen von Anforderungen – Strukturierbarkeit (hierarchisch, verlinkbar) – Gute Suchmöglichkeiten (Volltext, unscharf, Stichwörter) – Versionsverwaltung / Versionierung – Einfache Handhabung von Grafiktypen (Einfügen, Bearbeiten) – Verfolgbarkeit (Traceability) Wünschenswert – Konfigurierbarkeit von Eingabemasken und Workflow – Benutzer- und Rechteverwaltung – Automatische Analyse von Texten und Generieren von Fragen – … iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 39 / 58
  • 39.
    Automatisches Erzeugen vonFragen Gegeben sei die User-Story – Als Nutzer möchte ich meine Präsentation speichern, damit ich nicht noch einmal alles eingeben muss Exemplarisch generiertes Fragen-Set – Wer muss speichern? – Wann soll speichern stattfinden? – Wann ist speichern komplett abgeschlossen? – Wie häufig / oft / groß / schnell soll speichern sein? – Wo / wie kann geprüft werden, ob speichern durchgeführt wurde? – Was geschieht, wenn man nicht speichern kann? – Was könnte speichern verhindern, und was wird dann erwartet? – Welche mögl. Fehleingaben müssen im Zusammenhang mit speichern abgefangen werden? – Welche Inhalte kommen in Präsentation vor? – Welche optionalen / verpflichtenden Aspekte gelten für Präsentation? – Wie sieht das Layout von Präsentation aus? iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 40 / 58
  • 40.
    Tools Word & Excel: immer noch üblich – Grund: Werden von jedem beherrscht Mehr im Kommen: Jira & Wikis – Grund: Einfaches Erlernen, einfache Bedienung Auswahl verschiedener Tools: – Caliber RM Cradle Contour – DOORS DESIRe Enterprise Architect – HP Quality Center IRQA Lotus Notes – OptimalTrace RequisitePro – [VolereTools] enthält eine weitaus größere Übersicht iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 41 / 58
  • 41.
    Best practices Prüfen Sie, ob bei Ihnen das passende Tool im Einsatz ist Erwägen Sie eine Neuanschaffung, so… – nehmen Sie sich Zeit für die richtige Wahl, – lassen Sie sich von Experten beraten, – planen Sie auch den Einsatz von Schulungen. iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 42 / 58
  • 42.
    Agenda Anforderungen aufnehmen Dokumentieren von Anforderungen Anforderungen vermessen und validieren Verwalten von Anforderungen Paradigmenwechsel: Vom Vorarbeiter zum Mitarbeiter Zusammenfassung iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 43 / 58
  • 43.
    Probleme des bisherigenRE-Ansatzes Das Wissen des Auftraggebers gelangt über folgende Transformationen hin zur Software – Kundenvorstellung  Anforderung (teils modelliert) – Anforderung  Software-Design – Software-Design  Programmcode Ähnliches gilt für Tests – Kundenvorstellung  Anforderung – Anforderung  Test-Design – Test-Design  Testcode iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 44 / 58
  • 44.
    Probleme der Transformationen Diese Transformation ist zu komplex: – Anforderung  Software-Design Gründe – Die Anforderung ist zu wenig formalisiert bzw. „algorithmisiert“ – Hochmut der Entwickler (wir machen das eh noch mal anders) – Code-Styles (Übersetzung ins Englische) Folge – Man findet die Anforderung nicht mehr im Code wieder Qualitätseinfluss auf Korrektheit & Änderbarkeit iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 45 / 58
  • 45.
    Probleme der Transformationen Diese Transformation bereitet ähnliche Schwierigkeiten – Anforderung  Test-Design Gründe – Die Anforderungen enthalten zu wenige (meist gar keine) Akzeptanzkriterien Folge – Der Tester muss die Sollwerte anhand der Anf. selbst ableiten – Gefahr besteht, dass Testszenarien ganz vergessen werden iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 46 / 58
  • 46.
    Behavior-Driven Development Ziel – Systematisierung der Transformation Anforderung  Software-Design bzw. Test-Design Lösung – RE und Entwickler erstellen zusammen Akzeptanzkriterien und -tests (keine Unit-Tests!) – Sie werden zum Bestandteil der Anforderungsspezifikation (der User-Story) – Sie haben ein einheitliches Format… – Ziel: Automatisierung! iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 47 / 58
  • 47.
    Given When Then Ergänzend zur User-Story werden in der ubiquitären Sprache sog. Szenarien formuliert: As a: Rechenmuffel I want: dass ein Rechner Zahlen addiert  Story In order to: vermeiden von dummen Kopfrechenfehlern Scenario1: Addieren von Zahlen Given: Rechenmuffel gab „27“ in den Rechner ein, And: Rechenmuffel gab „39“ in den Rechner ein, And: Rechenmuffel gab „11“ in den Rechner ein, When: Rechenmuffel „Summe” drückt, Then: muss Rechner „77“ als Ergebnis anzeigen. Mehr dazu z.B. bei [Cucumber] Scenario2: … iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 48 / 58
  • 48.
    Testgetriebenes Requirements Engineering Standard 1. Kunde wird interviewt 2. RE spezifiziert Anforderungen (und erwartet Schätzung) 3. Architekt / Entwickler erstellen Software-Design 4. Entwickler implementieren Software und (Unit- & Integrations-) Tests 5. QA testet meist von Hand  Iteration zu 1, 2, 3, 4 6. Abnahmetests Neu 1. Kunde wird interviewt 2. RE spezifiziert Anforderungen 3. RE spezifiziert zusammen mit Entwicklung Akzeptanztests (Iteration zu 1, 2) 4. Schätzung 5. Entwickler erstellen Software, Tests und Akzeptanztests (automatisierte) 6. QA testet  Bugfix-Iteration zu 5 (idealisiert) 7. Abnahmetests (Ziel: starke Einsparung) iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 49 / 58
  • 49.
    Fazit Szenarien erhöhen die Qualitätsmerkmale Verständlichkeit, Eindeutigkeit und Prüfbarkeit der Anforderungen signifikant Mit Hilfe von neuen Frameworks lassen sich diese Strukturen halbautomatisch in Code überführen Das führt zu ausführbaren Akzeptanztests iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 50 / 58
  • 50.
    Agenda Motivation Anforderungen aufnehmen Dokumentieren von Anforderungen Verwalten von Anforderungen Anforderungen vermessen und validieren Paradigmenwechsel: Vom Vorarbeiter zum Mitarbeiter Zusammenfassung iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 51 / 58
  • 51.
    Warum ist REwirtschaftlich? iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 52 / 58
  • 52.
    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 auf Qualität prüfen – Ziel: Qualitätssteigerungen durch kontinuierliches Messen – Gute Anforderungsqualität  gute Software-Qualität iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 53 / 58
  • 53.
    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 [EbertDumke] Christof Ebert, Reiner Dumke; Software-Metriken in der Praxis, Springer, 1996, ISBN: 978-3540603726 iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 54 / 58
  • 54.
    Referenzen [Deißendorfer] F. Deißendörfer (Diss. 2009), Continuous Quality Control of Long-Lived Software Systems http://mediatum2.ub.tum.de/doc/737380/737380.pdf [Sanego] http://www.sanego.de [StandishGroup] http://www.standishgroup.com [bdw] http://www.bild-der-wissenschaft.de/bdw/bdwlive/heftarchiv/index2.php?object_id=32911270 iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 55 / 58
  • 55.
    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 Mr. Malcolm Tredinnick, Behavior Driven Development, http://www.youtube.com/watch?v=XXHknWKuG2U iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 56 / 58
  • 56.
    Bildnachweise Folie 10: http://openclipart.org/image/800px/svg_to_png/169415/discussion.png http://openclipart.org/image/800px/svg_to_png/169418/go-round.png Folie 12: http://www.clker.com/cliparts/7/1/a/f/11949851591518961590dodge_neon_green_ganson.svg.med.png Folie 17: http://www.clker.com/clipart-15442.html Folie 34: http://openclipart.org/image/800px/svg_to_png/29647/QualityControl_rejected2.png Folie 35: http://openclipart.org/image/800px/svg_to_png/29641/1267371838.png Sämtliche hier nicht aufgeführte Bilder bzw. Grafiken wurden vom Autor selbst erstellt. iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 57 / 58
  • 57.
    Abkürzungen BDD Behavior-Driven Development BPE 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 iks Thementag: „Mehr Softwarequalität“ – Garbage in – garbage out Seite 58 / 58
  • 58.
  • 59.