garbarge in - garbage out: wie das anforderungsmanagement die softwarequalität beeinflusst

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

If you can't read please download the document

Upload: duard

Post on 10-Jan-2016

18 views

Category:

Documents


0 download

DESCRIPTION

Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalität beeinflusst. iks Thementag „Mehr Softwarequalität – Ausgewählte Themen“ 23.04.2013. Autor: Jörg Vollmer. Was stört Sie im IT-Alltag am meisten?. Befragt wurden 103 Software- Entwickler : - PowerPoint PPT Presentation

TRANSCRIPT

Folie 1

Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusst1ACHTUNG:

Diese Vorlage nur mit PPT-Versionen ab 2007 verwenden!!

Zwar knnen auch ltere Versionen diese Vorlage lesen, in der Bearbeitung gibt es aber schwerwiegende Probleme u.a. in Hinsicht auf den Folienmaster und auf die Seitenzahlen.

Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstiks Thementag Mehr Softwarequalitt Ausgewhlte Themen

23.04.2013

Autor:Jrg VollmerIch begre Sie zu der Prsentation Garbage-In - Garbage Out - Wie das Anforderungsmanagement die Software-Qualitt beeinflusst.

Anstatt Anforderungsmanagement verwendet man auch hufig den Begriff Requirements Engineering, und den, der dies tut, nennt man auch den Requirement Engineer, in der Prsentation huft mal mit RE abgekrzt.2Was strt Sie im IT-Alltag am meisten? Befragt wurden 103 Software-Entwickler:

Unklare Anforderungen 50.49 % Zu hufig & schnell wechselnde Anforderungen 40.78 % Schlechtes Projektmanagement 29.13 % Geringe oder fehlende Testabdeckung 28.16 % Unzureichende Kommunikation im Team 27.18 % Termindruck => Quick & Dirty 24.27 % Unverstndlicher Code 21.36 % Unntige Meetings & Diskussionen 19.42 % Ineffektive (Entwicklungs-) Prozesse 18.45 % Schlechte Teamstimmung 15.53 %

Quelle: http://www.clean-code.info/umfrageSeite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstAm Anfang des Jahres haben mein Kollege Reik Oberath und ich eine Umfrage durchgefhrt. Befragt wurden 103 Softwareentwickler: Was strt sie im IT-Alltag am meisten?

ber die Hlfte aller Entwickler beklagen sich ber unklare Anforderung. ber 40 % ber so hufig und schnell wechselnde Anforderungen. Das hat auch uns in der Tat berrascht.3Unklare Anforderungen(50.49%)Requirements Engineering = Unklare Anforderungen beseitigen!

Konstruktive ManahmenWelche Fertigkeiten des RE helfen dabei?

Sieben typische Fallen beim RE

Welchen Einfluss haben Werkzeuge auf das RE?

Analytische ManahmenKann das RE selbst qualitativ und quantitativ bewertet werden?

Wie lsst sich RE-Qualitt messen und sichern?

Wirkt sich RE-Qualitt auf die Software-Qualitt aus?

Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstBleiben wir mal bei dem "Platz 1" "Unklare Anforderungen". Wer oder was kann dagegen etwas tun? Eindeutige Antwort: Requirements Engineering, denn Requirements Engineering ist nichts anderes als "unklare Anforderungen beseitigen"; ok, die Dokumentation derer gehrt dann im Anschluss auch noch dazu - dazu kommen wir auch.

Offensichtlich wird Requirements Engineering zu wenig oder nicht gut genug betrieben. Wir wollen im Folgenden untersuchen, welche Manahmen und Best Practices existieren, um diese schlechte Situation zu verbessern.

Wir unterscheiden dabei zwischen konstruktiven Manahmen und den analytischen. Konstruktive Manahmen beruhen auf Erfahrung und dem gesunden Menschenverstand.Zu den konstruktive zhlen Dinge wie:1) Welche Fertigkeiten des RE helfen dabei?2) Sieben typische Fallen beim RE3) Welchen Einfluss haben Werkzeuge auf das RE?

Bei den analytischen Dingen ergeben sich folgenden Fragestellungen:1) Kann das RE selbst qualitativ und quantitativ bewertet werden?2) Wie lsst sich RE-Qualitt messen und sichern?3) Wirkt sich RE-Qualitt auf die Software-Qualitt aus?4Anforderungen aufnehmen

Dokumentieren von Anforderungen

Der Effekt von Akzeptanztests

Anforderungen vermessen und validieren

Verwalten von Anforderungen

Zusammenfassung

AgendaSeite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstDer Vortrag fhrt uns durch folgenden Agenda:Wir beginnen mit den konstruktiven Manahmen und betrachten zunchst das Aufnehmen, anschlieend das Dokumentieren von Anforderungen. Dabei untersuchen wir, welchen positiven Effekt das Erstellen von Akzeptanztests im RE haben kann. Danach kommen wir zu den analytischen Manahmen, dem Vermessen und Validieren von Anforderungen Und noch mal zurck zu den konstruktiven Manahmen, dem Verwalten von Anforderungen. 5Aufgaben zum ProjektbeginnEine initiale Bestandsaufnahme des Projektumfelds unverzichtbarauch im agilen Umfeld

Wichtige Aufgaben sind

Ziele des Produkts und dessen Nutzen ermitteln

Ermitteln aller Stakeholder

Systemkontext und -grenzen bestimmen

Qualittsanforderungen identifizieren

denn sonst bleiben sie unklar Unklare Anforderungen!Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstEine initiale Bestandsaufnahme des Projektumfelds zum Projektbeginn ist unverzichtbar. Dazu gehrt: Ziele des Produkts und deren Nutzen ermitteln, denn wir wollen ja nicht nur die Dinge richtig entwickeln, sondern auch die richtigen Dinge entwickeln.

Das Ermitteln aller Stakeholder: Da gehren beispielsweise auch die Leute aus dem Betrieb dazu. Es passiert schon mal, dass man whrend der Entwicklung selbstverstndlich von bestimmten Oracle-Features ausgeht und der Betrieb am Schluss sagt: Das untersttzen wir berhaupt nicht. Dann guckt man dumm.

Den System-Kontext und Grenzen bestimmen: Gerade bei Schnittstellen zu anderen System ist es wichtig zu wissen, wo die eigene Verantwortung aufhrt und die andere beginnt.

Schlussendlich ist es wichtig, Qualittsanforderungen zu identifizieren, denn sonst bleiben Sie unklar, und dann sind wir wieder bei den unklaren Anforderungen! Auch Qualittsanforderungen sind selbstverstndlich Anforderungen.6BeobachtungstechnikenApprenticing: 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 Geschftsprozessen verwoben.Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstWenn man als Requirements Engineer ein neues Projekt betritt, ist es sinnvoll, sich erst einmal einen berblick zu verschaffen. Beim sogenannten Apprenticing wird der RE wie ein Lehrling eingearbeitet. Dabei beobachtet er zurckhaltend den Betrieb und die Mitarbeiter und lernt hierbei schon einmal den Fachjargon kennen. Eine sptere Aufgabe wird sein, eine fr alle Stakeholder verstndliche Fachsprache zu etablieren. Ein weiteres Ziel seiner Beobachtung ist es, Arbeitsschritte zu hinterfragen und eventuell ineffiziente Prozesse zu entdecken.

Denn die neu zu erstellende Software wird eng mit den Geschftsprozessen verwoben sein. Ist die Planung der neuen Software zu weit fortgeschritten, lassen sich die Geschftsprozesse nur noch schwer ndern.

Kommen wir nun zum anfangs erwhnten Beseitigen von unklaren Anforderungen. 7Falle 1

Ineffiziente Meetings

Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstIm letzten Eclipse-Magazin war ein schner Artikel die beiden Produktivittskiller. Zum einen sind dies die Flle an E-Mails, zum zweiten Ineffiziente Meetings.8Unntige Meetings & Diskussionen (Platz 8)Der RE sollte wissen:

Jede Debatte, die nicht in fnf Minuten beigelegt werden kann, kann nicht durch Debattieren gelst werden (Kent Beck)

Selbstdarsteller machen andere ratlos und stumm

Hufig geht es dann nicht mehr um die beste Lsung

Moderationstechniken anwenden

Risiko von falschen Entscheidungen Software-Qualitt s. auch [bdw]

Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstMeetings und Interviews sind immer noch die hufigste Form von Befragungstechniken. Kann sehr produktiv sein, aber auch riskant werden. Kommt drauf an, wer teilnimmt.

Ich mchte mit einem Zitat von Kent Beck fortfahren: Jede Debatte, die nicht in 5 Minuten beigelegt werden kann, kann nicht durch Debattieren gelst werden. Dabei zielte er auf "unntige Meetings und Diskussionen", was im brigen bei unserer Umfrage auf Platz acht steht. Hufig hat man es in Diskussionen auch mit Selbstdarstellern zu tun und dann geht es meist auch nicht mehr um die beste Lsung.

Zitat: Die mit den schwchsten Stimmen haben oft die besten Ideen. [Sir Peter Ustinov|

In solchen Fllen, muss der RE besondere Moderationstechniken anwenden, was ich aber hier jetzt nicht weiter vertiefen mchte. Darber knnte man eine separate Prsentation halten.

Ich mchte betonen, dass es bei einem schlechtem Diskussionsstil ein hohes Risiko von falschen Entscheidungen gibt, die selbstverstndlich einen eklatanten negativen Einfluss auf die Software Qualitt haben knnen.

Andere Befragungstechniken: Fragebgen, Selbstaufschreibung, Interviews, Fokusgruppen, Konsensbildung, Workshops, Rollenspiele Vortrag Requirements Engineering

9Falle 2

Faule Kompromisse

Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstFalle 2: Faule Kompromisse.10Unzulssige VerallgemeinerungenStakeholder A:Bei einem Fehler muss das System anhalten

Stakeholder B:Bei einem Fehler muss das System neustarten

RE einigt sich mit A und B aufIm Fehlerfall wird eine Ausnahmeroutine veranlasst

Fauler Kompromiss!

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

Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstAngenommen, ein Stakeholder fordert: "Bei einem Fehler muss das System anhalten." Ein anderer Stakeholder behauptet: "Bei einem Fehler muss das System neustarten." Dann ist das erst mal ein unvereinbarer Konflikt. Der konfliktscheue RE knnte sich nun trotzdem mit beiden einigen, indem er festhlt: Im Fehlerfall wird eine Ausnahmeroutine veranlasst.

Das ist ein fauler Kompromiss und somit eine unzulssige Verallgemeinerung. Sptestens der Entwickler wird fragen, was genau bei der sog. Ausnahmeroutine zu machen ist. Schlimmstenfalls implementiert der Entwickler, was er sich denkt.

Auch schon bei de Marco findet man: Eine Mehrdeutigkeit in einem Anforderungsdokument steht oft fr einen Konflikt bei den Stakeholdern.

11Falle 3

Designfehler bei Geschftsobjekten

Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstFalle 3: Design-Fehler bei Geschftsobjekten12Ein Auto kann verschiedene Farben habenWas der RE verstand:

Was der Kunde wollte:

Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstDer RE verstand: Ein Auto kann verschiedene Farben haben. Der Kunde wollte aber, dass ein Auto verschiedene Farben haben kann. Diese Art von Fehlern ist mir schon mehrfach in Projekten begegnet und hat einen durchaus ernsten Hintergrund. Im ersten Fall hat das Objekt Auto ein Attribut Farbe, im zweiten Fall gibt es eine 1:n-Beziehung zu Farbe.13Unterschiede ziehen sich durch alle SchichtenDatenbankDatenmodellService-SchichtBenutzeroberflche

Fachobjekte und deren Beziehungen identifizieren (DDD)

Hohe Korrekturkosten es geht auf Kosten der SoftwarequalittSeite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstHier noch mal im UML-Diagramm zu erkennen. Es geht um die Kardinalitt zwischen Geschftsobjekten. Das ist Thema des sog. Domaine Driven Designs und behandelt die grundlegende Modellierung der Fachlichkeit. Fehler hierbei ziehen sich durch alle Schichten der Software: von der Datenbank ber die Service-Schicht bis hin zur Benutzeroberflche. Es geht hierbei darum, Geschftsobjekte und deren Beziehungen untereinander zu identifizieren

Solche Fehler erfordern entweder hohe Korrekturkosten, oder es geht auf Kosten der Software Qualitt, falls man sich mit einem Workaround zufriedengibt.14Falle 4

Unklare Fachbegriffe

Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstFalle 4: unklare Fachbegriffe15Unklare FachbegriffeWas meinte der Banker mit Engagement?Meinte er persnlichen Einsatz oderdoch eine vertragliche Verpflichtung wie beim Theater?

WikipediaRisiko bzw. Chance eines Kursverlusts oder -gewinns

Die FachabteilungDas, was die Bank verliert, wenn der Kunde bankrott ist.

Fachbegriffe analysieren, Glossar, ubiquitre SpracheSeite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstBei meinem letzten Projekt sa ich zusammen mit der Fachabteilung und hrte hufig den Begriff Engagement. Ich kannte den Begriff bislang nur in" der Bedeutung "persnlichen Einsatz" oder einer "vertraglichen Verpflichtung" wie beim Theater.Das konnte hierbei nicht gemeint sein. Als ich bei Wikipedia nachschaute, konnte ich lesen, dass damit im Finanz-Umfeld das Risiko beziehungsweise die Chance eines Kursverlustes oder Gewinns gemeint ist. Das machte aber auch in unserem Kontext keinen richtigen Sinn.Als ich dann mit der Fachabteilung telefonierte, erfuhr ich dass es das ist, was eine Bank verliert, wenn ein Bankkunde bankrott ist.Htte ich das vorher gewusst, htte ich vielleicht den Gesprchen folgen knnen.Aus diesem Grund ist es wichtig, die Fachbegriffe zu analysieren gegebenenfalls in einem Glossar zusammenzufassen und, wie schon vorher erwhnt, eine einheitliche Fachsprache bei allen Stakeholdern zu etablieren. Diese nennt man auch "ubiquitre Sprache".

Auch der Entwickler sollte unbedingt seine Bezeichner dahingehend im Code whlen.

(Ein zweites schnnes Beispiel ist das Default-Datum)16Best Practicesberprfen Sie:

Wurden Ihrer 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 Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstFassen wir noch einmal zusammen:

Wurden ihre Prozesse jemals untersucht und hinterfragt?Verlaufen ihre Meetings effizient und effektiv?Welche Stakeholder-Konflikte, beziehungsweise welches Stakeholder behindern Entscheidungsfindung?Sprechen alle Stakeholder eine gemeinsame Fachsprache?Existiert ein Glossar?

Falls dies alles bei Ihnen zutrifft, befinden Sie sich schon bei den oberen 3%.17Anforderungen aufnehmen

Dokumentieren von Anforderungen

Der Effekt von Akzeptanztests

Anforderungen vermessen und validieren

Verwalten von Anforderungen

Zusammenfassung

AgendaSeite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstKommen wir nun zu den beiden Themen "Dokumentieren von Anforderungen" und "der positive Effekt von Akzeptanz Tests".18Anforderungen dokumentierenAnforderungen aufschreiben, das kann doch jeder.

Aber: Meinungen zu bestehender Dokumentation

Versteht nur der, ders geschrieben hat

Ist nicht mehr aktuell

Die kniffligen Sonderflle fehlen

Bis man dort die richtige Stelle findet

Das Wichtigste ist die Telefonliste von Ansprechpartnern

Sehr viel Dokumentation wird gar nicht erst gelesen!Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstAnforderungen aufschreiben, das kann doch jeder, oder? Im krassen Gegensatz dazu stehen aber die landlufigen Meinungen zu bestehender Dokumentation:

Das versteht doch nur der es geschrieben hat. Die ist eh nicht mehr aktuell. Oder die kniffligen Sonderflle fehlen sowieso. Bis man dort die richtige Stelle findet.Oder das wichtigste ist sowieso die Telefon Liste von Ansprechpartnern.

Die Folge davon ist: Sehr viel Dokumentation wird gar nicht erst gelesen!19Nichts Halbes, nichts Ganzes

Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstIch finde, knappe Dokumentation kann sehr ntzlich sein in Form von Notizen von Informationen, die ich mir im Kopf nicht merken kann. Das praktiziere ich tglich mit meinem privaten Wiki. Vollstndige Dokumentation hat auch einen groen Nutzen, wenn auch ein unbedarfter Leser dort alles findet und verstehen kann. Mein Eindruck ist, dass die meiste Dokumentation sich leider irgendwo in der Mitte befindet. Dies gilt brigens auch fr die meisten Artikel in Fachmagazinen. Demjenigen, der schon mit dem Thema vertraut ist, ntzt die Doku nicht viel, weil er eh schon alles wei. Demjenigen, der noch nichts ber das Thema wei, nutzt die Doku dann auch nichts, weil fr ein Verstndnis zu wenig Informationen meist in Form von versteckten Annahmen enthalten sind.20Wie entsteht gute (Anforderungs-) Dokumentation?Es empfiehlt sich die Verwendung einer Standardgliederung / TemplateRUPIEEE 830V-ModellVolere

EinleitungZweck, StakeholderReferenzen

bersichtSystemumfeldArchitekturBenutzerRandbedingungen

AnforderungenFunktionalitt Qualittsanforderungen

AbnahmeAkzeptanzkriterienTestszenarien

AnhangGlossarIndexSeite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstWie entsteht nun gute Dokumentation? Zunchst empfiehlt es sich unbedingt, eine standardisierte Art der Gliederung zu verwenden. Dafr sind verschiedene Templates vorgeschlagen worden, von denen ich hier einmal vier aufgeschrieben habe. Ob man einer davon verwendet, sei jedem freigestellt. Viel wichtiger finde ich, dass man sich berhaupt auf eine einheitliche Gliederung einigt.21Dokumentation in Form von ProsatextVorteileWird von allen Beteiligten verstandenKein Stakeholder muss eine neue Notation erlernenThemenunabhngig universell einsetzbar

NachteileMehrdeutigkeit leicht mglichKann je nach Kontext verschieden interpretiert werden Es gehrt zum guten Ausdruck, die Wortwahl zu variieren Missverstndnisse

Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstDie meiste Dokumentation wird unbestritten in Form von Prosatext verfasst. Dies hat die Vorteile, dass es von allen Beteiligten zumindest syntaktisch verstanden wird. Kein Stakeholder muss eine neue Notation erlernen, und sie ist Themen-unabhngig universell einsetzbar. Es hat allerdings die Nachteile, dass eine Mehrdeutigkeit leicht mglich ist und dass ist je nach Kontext verschiedene Interpretationen mglich sind.Weiter gehrt das zum guten Ausdruck, die Wortwahl zu variieren was zu Missverstndnissen fhren kann. Man bekommt schon in der Schule fr das Verfassen von Aufstzen beigebracht, dass es schner klingt, z.B. nicht immer das Wort Auto zu benutzen, sondern auch mal PKW oder Fahrzeug. Gern zu Verwechslungen kommt es auch bei solchen Dingen wie Auftragsart oder Auftragstyp.Fr Dinge ist Prosa auch gar nicht gut geeignet. Versuchen Sie im einmal, nur mit Worten zu beschreiben, wie man einen Winzerknoten knotet.22Falle 5

Unverstndliche Formulierungen

Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstEine weitere Falle sind unverstndliche Formulierungen.23NegativbeispielAuszug aus eine Spezifikation:

Funktionalitt In einer Liste ber alle noch nicht zugeordneten Kunden werden alle Kunden aller Typen ungleich Typ 0 angezeigt, die bisher keinem Kunden vom Typ 0 zugeordnet wurden.

Satzstruktur zu komplexSeite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstIch habe mir die Erlaubnis eingeholt, den folgenden Ausschnitt aus einem Anforderungs-Dokument zu zitieren. Die Beschreibung der Funktionalitt beginnt mit folgendem Satz:

In einer bersicht ber alle noch nicht zugeordneten Geschftspartner werden alle Geschftspartner aller Mandanten ungleich Mandant 0 angezeigt, die bisher keinem Geschftspartner im Mandanten 0 zugeordnet wurden. Haben Sie das verstanden?

Zunchst ist die Satzstruktur viel zu komplex. Aber auch nach dem dritten Lesen ergeben sich viele Fragen:24Falle 6

Versteckte AnnahmenSeite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstUnd wir kommen gleich zu der nchsten Falle, den versteckten Annahmen. Hier die Zahnpasta-Story25NegativbeispielAuszug aus eine Spezifikation:

Funktionalitt In einer Liste ber alle noch nicht zugeordneten Kunden werden alle Kunden aller Typen ungleich Typ 0 angezeigt, die bisher keinem Kunden vom Typ 0 zugeordnet wurden.

Fragen:Was ist die ListeWo befindet sich diese?Wer ordnet was wem zu?Was ist Typ 0?

Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstNicht erklrt wird beispielsweise was eine bersicht ist wo befindet sich diese? Wer ordnet auch wem etwas zu dem Mandanten null? Was ist berhaupt der Mandant null? Im gesamten Dokument konnte man dies nicht herausfinden. Dies sind die sog. W-Fragen.Eine Gefahr fr den Requirements Engineer besteht auch darin, dass er irgendwann selbst so tief im Thema steckt und somit viele Dinge als selbstverstndlich voraussetzt.26Das Sophist-REgelwerkPassiv unterschlgt den TterBeispiel: Ein Auftrag kann storniert werden.Frage: Von wem? Von jedem, immer?

Analyse des ProzesswortesBeispiel: Das System zeigt das Ergebnis nach der Berechnung an.Prozesswort ist anzeigen. Fragen: Wem, Wie, Wann, Warum,

Vergleiche und SteigerungenBeispiel: Die GUI muss schneller reagieren als beim AltsystemFrage: Um wie viel schneller? Ist eine Millionstel Sek. auch gltig?

etc.

Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstSo haben sich die sog. Sophisten, so nennt sich die Mitarbeiter von Chris Rupp, einer bekannten deutschen RE, ein Regelwerk ausgedacht:

See schlagen vor, keine passiv setze zu benutzen, denn das Passiv unterschlgt den Tter. Beispiel: ein Auftrag kann storniert werden. Dann bleibt die Frage offen: Von wem? Von jedem, immer?Weiter soll das Prozesswort, also das Verb, analysiert werden. Ein Beispiel ist: Das System zeigt das Ergebnis nach der Berechnung an.Hierbei ist das Prozesswort anzeigen und der Text muss die sog. W-Fragen beantworten. Das sind also Fragen wie: Wem wird das System angezeigt, wie, wann, und vor allem, warum.Und so gibt es noch eine ganze Liste von weiteren Vorschlgen.27Vorschlag: SatzschablonenBeispiel: Die User-Story

Agile Methoden verwenden sog. User-StoriesAufbau:

As a I want so that

Als ein Autor will ich meine Prsentation speichern knnen, damit ich nicht noch einmal alles eingeben muss.

Das damit hinterfragt den Geschftswert

Man beantwortet somit das Wer, Was und Warum / Wozu

Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstDer Deutschlehrer mag das ganz gruselig finden, aber das verwenden von Satzschablonen ist fr Anforderungsdokumente von entscheidendem Vorteil.Dort schlagen die Sophisten auch grammatisch einfache Struktur vor, ich habe hier mal das Beispiel der sog. User-Story aufgeschrieben.Diese sind sehr beliebt bei den agieren Methoden und haben folgende Struktur: Als ein will ich damit

Als ein Autor will ich meine Prsentation speichern knnen, damit ich nicht noch einmal alles eingeben muss.

Das damit hinterfragt den Geschftswerts, was fr die eingehenden wichtig ist dass sie ihre Aufgaben nach der Priorisierung des Geschftswertes sortieren.Verwendet man diese Satzstruktur beantwortet man automatisch immer das "Wer", das "Was" und das "Warum".Wir werden spter auch noch eine andere Satzschablone kennen lernen.28Formale Spezifikationen, ModelleBeispiele: ER-Diagramme, UML, BPEL, BPMN, DSLs,

VorteileSind eindeutiger und aussagekrftigerKompaktere bersichtliche DarstellungFr den gebten Leser verstndlicher Der Implementierung bereits viel nherZum Teil lsst sich Code daraus generieren

NachteileSind nicht universell einsetzbarSyntax / Semantik muss vom Leser verstanden bzw. erlernt werdenZustzliche Tools mssen erlernt werden evtl. Schulungen

Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstAufgrund der Nachteile der Formulierungen in Prosa, haben sich die Informatiker schon seit langem darber Gedanken gemacht, wie man Anforderungen exakter spezifizieren kann.Dabei herausgekommen sind beispielsweise Entity-Relationship-Diagramme, die UML, die Business-Prozess-Sprachen und die Domnen-spezifische Sprachen.Letztere sind in der letzten Dekade modern geworden und sind eine kleine sehr Eingeschrnkte auf eine spezielle Domnen zugeschnittene Sprache.Kennen Sie zum Beispiel 1 4 approxymal, 1 6 distal? Das ist ein Beispiel fr eine Domnen spezifische Sprache eines Zahnarztes, die im brigen international standardisiert ist.Weitere Beispiele sind SQL zur Abfrage von Datenbanken, oder HTML zur Beschreibung von Webseiten. Auch die Notenschrift ist eine Domnen-spezifische Sprachen zur Beschreibung von Musik.Die Vorteile sind offensichtlich: Sind eindeutiger und aussagekrftiger.Sie ermglichen eine kompaktere und bersichtlicherer Darstellungen, die fr den gebten Leser sogar verstndlicher ist. Sie ist Implementierung bereits viel nher und zum Teil lsst sich sogar Code daraus generieren.

Es gibt natrlich auch Nachteile:Sind nicht universell einsetzbarSyntax / Semantik muss vom Leser verstanden bzw. erlernt werdenZustzliche Tools mssen erlernt werden, evtl. Schulungen29Die Mischung beider ergnzt sich positivVorteileModelle knnen durch natrlich-sprachliche Ergnzungen verstndlicher werden Prosatext kann durch Modelle eindeutiger und exakter werden

Beispiel: Mathematische TexteAus jeder nicht-negativen reellen Zahl lsst sich die Wurzel ziehen

Hufig verschwindet die (Beweis-) Idee hinter der Abstraktion Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstDie Mischung beider Methoden ergnzen sich positiv. Beispiele dieser Art findet man hufig bei mathematischen Texten. Auch Mathematikern benutzen eine Mischung aus Prosatext und ihrer Domne spezifischen Sprache, der Formelsprache, die sich seit Jahrhunderten weltweit bewhrt hat.

Nehmen wir hier ein Beispiel: Aus jeder nicht-negativen reellen Zahl lsst sich die Wurzeln ziehen. Derjenige, der wei, was Wurzelziehen ist, braucht sich die Formel nicht mehr anzuschauen. Aber fr denjenigen, dem das nicht klar ist, steht noch einmal unmissverstndlich die Aussage in Form dieses formalen Ausdrucks.

Allerdings gibt es auch hier bei Nachteile: So exakt und kompakt solche formalen Modelle auch sind, fr einen ungebten Leser sind sie doch zum Teil schwer verstndlich, und somit auch fehleranfllig. Hufig entdeckt man die Idee nicht mehr hinter der Abstraktionen.30Beispiel

Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstWozu das fhren kann, mchte ich anhand eines Beispiels erlutern.31Funktionale Anforderungen - ProsaDer 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 bei jedem Kind mglichst gleich sein.

Aufgabe: Eine Software soll bei Eingabe der Kinderzahl und der Geschenkwerte eine gerechte Verteilung berechnen.

Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstOstern ist gerade vorbei, d.h. bald steht der Nikolaus vor der Tr. Dieser hat am 6. Dezember eines jeden Jahres die Aufgabe Geschenke an Kinder zu verteilen.Ich habe versucht bei den folgenden Stzen, die Vorschlge der Sophisten zu bercksichtigen.Die Geschenke sind unterschiedlich viel wert. Jedes Kind bekommt einen oder mehrere Geschenke. Ziel dabei ist das der Summenwert der Geschenke bei geben Kind mglichst gleich sein soll. Sehen Sie wo die Hauptschwche bei dieser Anforderung liegt? Sie liegt in den beiden Wrtern mglichst gleich.

http://openclipart.org/detail/1956/santa-and-his-bag-by-johnny_automatic32Funktionale Anforderungen Illustriert

+

+

+Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstEin Bild sagt mehr als 1000 Worte. Vielleicht hilft ja diese Grafik weiter? Aber auch hier ist das Problem des ungefhr nicht gelst.

http://www.wpclipart.com/people/children/girls/girls_3/girl_with_pigtails.png.htmlhttp://www.wpclipart.com/people/children/boys/little_boy.png.htmlhttp://www.wpclipart.com/holiday/Christmas/gifts/gift_box_silver.png.htmlhttp://www.wpclipart.com/holiday/Christmas/gifts/gift_black.png.htmlhttp://www.wpclipart.com/holiday/Christmas/gifts/gifts_w_tags.png.htmlhttp://www.wpclipart.com/holiday/Christmas/gifts/gift_box_blue_ribbon/package_blue_ribbon_and_blue.png.htmlhttp://www.wpclipart.com/holiday/valentines/candy_and_gifts/valentine_gift_box.png.html33Funktionale Anforderungen - FormalVoraussetzung

Gegeben seien natrliche Zahlen

und eine Preisfunktion .

Aufgabe

Finde eine Partitionierung , sodass

minimal wird, wobei .

Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstAlso entschied sich der RE, dies formal exakt zu beschreiben. Ich mchte gar nicht mal, dass Sie dies auf Anhieb verstehen und dies auch gar nicht ganz im Detail erlutern, nur kurz zur Idee: Das Gro-P ist jeweils der Summenwert der Geschenke, den das i-te Kind erhlt. Dieser Ausdruck verlangt, dass die ungerechte Differenz der Geschenkwerte zwischen jeweils zwei Kinder mglichst klein wird, wobei hier jedes Kind mit jedem verglichen wird. Das klingt ganz gut oder?

34Abnahme: Der Nikolaus testet und war unglcklich

Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstDie Software wurde dann vom Entwickler implementiert, hier das Ergebnis: Nun testete der Nikolaus einige Flle durch und war nicht so recht zufrieden. Was war passiert?35Warum?Version 0.9

Die Lsungen waren anfangs z.T. vllig falsch. Der Entwickler hatte die Idee hinter der Formel zunchst 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 gleichmig verteilen!

Version 1.1

Der katastrophale Fall Kinderheim: 50 Geschenke, 20 Kinder:Die Anwendung antwortet nicht mehr!

Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstDie Beta-Version ging sofort zurck, da die Lsungen zum Teil falsch, was daran lag, dass der Entwickler die die Idee hinter der Formel zunchst nicht ganz verstanden, und so schlichen Fehler ein.

Nach einem Gesprch mit dem RE ging dem Entwickler dann ein Licht auf, und es kam zur Version 1.0, die die Formel korrekt umsetzte. Der Nikolaus war aber immer noch nicht glcklich. Angeblich bekamen manche Kinde viele wertlose Geschenke, whrend andere die teureren bekommen. Weiter an den Entwickler geleitet, sagte dieser: "Kann ich mir nicht vorstellen, nenn mal ein Beispiel!" "Nenn mal ein Beispiel" - ich mchte, dass Sie sich das mal im Hinterkopf behalten, das kommen wir gleich noch mal zu.

Angenommen, ich hab nur zwei Kinder, wenn ich acht mal die 1 eingibt, und zweimal die 4, dann erhlt das eine Kind acht minderwertige Geschenke und das andere zwei hochwertige. Ok, die Summe ist bei beiden acht, aber ich sagte doch, dass die Geschenke sich gleichmig verteilen sollen, und damit meine ich, dass beide Kinder ein 4-Euro-Geschenk bekommen und 4 Ein-Euro Geschenke.

Das ist nun aus RE-Sicht ein interessanter Fall, denn das ist eine verstecke Annahme des Nikolaus, die der RE anscheinend nicht mitbekommen und bedacht hat! Aber auch das lie sich nachbessern, dabei wurde die Formel noch komplizierter, und es kann zur Version 1.1.

Nun geschah das Schlimmste. Es war der 6.12, der Nikolaus kam bei einemKinderheim vorbei und wollte den 20 Kindern 50 Geschenke mitgeben. Was geschah: Die Anwendung antwortete nicht mehr. Ein sptere Analyse zeigte, sie htte geantwortet, aber erst nach Tagen.

Vielleicht kennt jemand von Ihnen diese Sorte von Problem. Diese gehren zu den schwersten in der Informatik und sind aller hchstwahrscheinlich nicht effizient lsbar. Die Begrndung lies der Nikolaus nicht zu, er zahlte keinen Penny: Das Projekt ist vor die Wand gefahren. Vielleicht ist dies der Grund, war heutzutage auf der Welt noch alles so ungerecht verteilt ist?36Falle 7

Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstDas bringt und zur letzten Falle 7 mit folgender Erkenntnis

37Erkenntnis

Selbst eine vollstndige und widerspruchsfreie Spezifikationen garantiert keine gute Software!Doch wie lsst sich das Problem bekmpfen?Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstSelbst eine vollstndige und widerspruchsfreie Spezifikation garantiert keine gute Software.Doch wie lsst sich das Problem bekmpfen? Ich hatte Sie doch gebeten, sich etwas im Hinterkopf zu merken: Dieser Satz: Nenn mir doch mal ein Beispiel:38Specification by ExampleZwei Kinder, 6 Geschenke im Wert von 1, 2, 2, 4, 6, 9 EuroLsung: 2 + 4 + 6 = 12 = 1 + 2 + 9Ungltig: 1 + 4 + 6 = 11 < 13 = 2 + 2 + 9

Zwei Kinder, 6 Geschenke im Wert von 1, 2, 2, 4, 5, 9 EuroLsung: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 EuroLsung: 1 + 1 + 1 + 1 + 4 = 8 = 1 + 1 + 1 + 1 + 4Schlecht:1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 8 = 4 + 4

20 Kinder, 50 Geschenke im Wert von jeweils 1 EuroLsung: 10 Kinder: 1 + 1,10 Kinder: 1 + 1 + 1 usw...

Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstDer RE htte mit dem Nikolaus noch mehr konkrete Beispiele durchdiskutieren sollen. Dann wre ihm sptestens bei einem solchen Fllen aufgefallen, dass es nicht damit getan ist, dass nur die Geschenksummen gleich sind. Und am besten htte der RE dies auch gleich mit dem Entwickler besprochen: Dem wre dann vielleicht bereits aufgefallen, dass es sich hierbei um ein schweres Problem handelt.39Klassisch: Stille PostKlassisches Vorgehen:

Kunde Requirements Engineer

Der RE abstrahiert und formuliert ein Spezifikation.

Entwickler Software

TesterTestflle

KundeAbnahme

anhand von Beispielenanhand der Spezifikationanhand der Spezifikationanhand von AkzeptanzkriterienSeite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstHier noch mal die Idee, Das klassische Vorgehen luft ein wenig wie Stille Post:1) Der Kunde bespricht sein Produkt-Idee mit dem RE hufig anhand von Beispielen2) Der RE abstrahiert dann und formuliert (Absicht: Formal oder Formel) eine Spezifikation3) Der Entwickler entwickelt dann auf der Basis der Spec4) Der Tester erstellt seine seine Testflle anhand der Spec5) Der Kunde nimmt die Software dann anhand seiner eigenen Akzeptanzkriterien ab.

Warum sollte man die Bespiele, ber die ganz am Anfang geredet wird, nicht bereits zu Testfllen machen? Diese knnen dann, wenn mglich sogar automatisiert ausgefhrt werden und zu automatisierten Akzeptanztests werden.40Idee des Acceptance Test Driven DevelopmentBeispieleTestsAnforderungenwerden zuverifizierenreflektierenSeite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstDas ist die Idee des sog. ATDD: Beispiele reflektieren zunchst die Anforderungen. Dann werden sie zu Tests, die dann mglichst automatisiert die Anforderungen verifizieren41Wer schreibt Akzeptanztests?RE und Entwickler erstellen zusammen Akzeptanztests.

Diese werden in natrlicher Sprache verfasst.

Vorrangiges Ziel ist ein gemeinsames Verstndnis der Anforderung!

Schn wre ein einheitliches Format (Satzschablone)...mit dem Ziel, daraus Test-Code generieren zu knnen.

Dies ist die Idee das sog. Behavior Driven Development (BDD)Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstWer schreibt nun Akzeptanztests? Die Idee beim ATDD ist, dass sich RE und Entwickler zusammensetzen und gemeinsam Akzeptanzkriterien besprechen und Tests ausarbeiten.

Diese werden in natrlicher Sprache verfasst

Vorrangiges Ziel ist ein gemeinsames Verstndnis der Anforderungen

Schn wre ein einheitliches Format in Form einer Satzschablone mit dem Ziel, daraus Test-Code generieren zu knnen.

Die ist die Idee des sog. Behavior Driven Developments 42Angenommen falls dann Ergnzend zur User-Story werden sog. Scenarios formuliert (zusammen bilden sie ein sog. Feature)

User Story

Als einNikolauswill ichdass meine Geschenke an Kinder gerecht verteilt werden,umEnttuschungen der Kinder zu vermeiden.

Scenario1:Zwei Kinder, vier Geschenke AngenommenNikolaus gibt 2 beim Feld Kinder ein,undNikolaus gibt 1, 2, 3, 4 beim Feld Geschenke ein.Falls Nikolaus auf Rechnen drckt,dannmuss im Feld Ergebnis erscheinen:Kind 1: 1 + 4, Kind 2: 2 + 3Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstDiese Satz-Schablone ist sehr einfach gehalten und besteht lediglich aus den Schlsselwrtern "Angenommen, wenn, dann, und" oder auf English: Given, when, then

Hier sehen wir eine User-Story zur Nikolaus-Aufgabe. Die Akzeptanzkriterien werden nun als sog. Scenarios in der sog,. Gherkin-Syntax ausgedrckt. Das geht dann so:

AngenommenUndFallsDann43Bespiel mit JBehaveDie Datei nikolaus.story:

Die Test-Klasse: Given Nikolaus gibt 2 beim Feld Kinder einGiven Nikolaus gibt 1,2,3,4 beim Feld Geschenke einWhen Nikolaus auf Rechnen druecktThen 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 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 Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstNun gibt es Tools, das bekannteste in wohl Cucumber, ich hab hier mal JBehave ausprobiert, die auf der Basis solcher Texteingabe Test ausfhren knnen. Man gibt diese Text genau so in Prosa ein. Wichtig sind lediglich die Schlsselwrter am Anfang.Nun lsst sich ein Java-Klasse generieren, die man natrlich noch ein wenig mit Leben fllen muss. Es muss das Rechenprogramm aufgerufen werden und dessen Ergebnisse mit den Sollvorgaben aus den Texteingaben vergleichen werden. 44Beispiel mit JBehaveDie Log-Datei im Erfolgsfall:

Die Log-Datei im Fehlerfall:

Running story com/javacook/nikolaus/nikolaus.story

Scenario: Given Nikolaus gibt 2 beim Feld Kinder einGiven Nikolaus gibt 1,2,3,4 beim Feld Geschenke einWhen Nikolaus auf Rechnen druecktThen muss im Feld Ergebnis erscheinen: Kind 1: 1 + 4 = 5, Kind 2: 2 + 3 = 9 (FAILED)(org.junit.ComparisonFailure: expected: but was:)Running story com/javacook/nikolaus/nikolaus.story

Scenario: Given Nikolaus gibt 2 beim Feld Kinder einGiven Nikolaus gibt 1,2,3,4 beim Feld Geschenke einWhen Nikolaus auf Rechnen druecktThen muss im Feld Ergebnis erscheinen: Kind 1: 1 + 4 = 5, Kind 2: 2 + 3 = 5Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstFalls man diesen Test nun ausfhrt, so erhlt man ein richtig schn lesbares Logfile. Damit man sieht, dass dies wirklich eine Testausfhrung und kein bloes Ausgeben des Textes ist, habe ich hier mal den Sollwert von 5 auf 9 gendert und erhalte folgende Ausgabe. 45Vergleich der Entwicklung: klassisch & BDDKunde wird interviewtRE spezifiziert AnforderungenImplementierungQA testetAuslieferung & AbnahmeKunde wird interviewtRE spezifiziert AnforderungenRE & Entwickl. AkzeptanztestImplementierungQA & autom. AkzeptanztestsAuslieferung & AbnahmeSeite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstNoch mal zum Vergleich: hier das klassische Vorgehen. In diesem Fall finden Akzeptanztest erst spt statt und es gibt bei Implementations-Fehlern einen Rckweg zur Entwicklung, bei Fachlichen Fehlern zum RE und bei einem grundstzlichen Infragestellen auch noch mal den Rckweg zum Kunden.

Im Vergleich dazu das ATDD-Vorgehen: Hier setzen sich RE und Entwicklung zusammen und entwickeln zusammen Akzeptanztests. Dadurch werden fachliche Fehler und generelle Inkonsistenzen bereits zu diesem Zeitpunkt erkannt, d.h. die Feedbackschleife ist krzer. Wenn alles optimal verluft, entdeckt die QA dann nur noch Implementierungsfehler. 46Fazit Das Erstellen von Akzeptanztests erzwingt eine detailliertere Auseinandersetzung bereits zu Beginn.

Es frdert die Kommunikation zwischen Auftraggeber, RE und Entwicklung

Es entstehen (nebenbei) automatisierte Tests,

die das System unmissverstndlich dokumentieren.

Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstDas Erstellen von Akzeptanztests erzwingt eine detailliertere Auseinandersetzung bereits zu Beginn.

Es frdert die Kommunikation zwischen Auftraggeber, RE und Entwicklung

Es entstehen (nebenbei) automatisierte Tests,

die das System unmissverstndlich dokumentieren.47Best Practicesberprfen Sie (stichprobenartig) einige Anforderungsdokumente

Sind die Dokumente auffindbar, versioniert?

Sind die Dokumente einheitlich strukturiert?

Ist der Text (auch fr Uneingeweihte) klar und verstndlich?

Wurden formale Methoden verwendet?

Enthalten sie Akzeptanzkriterien?

Sind in Ihren Dokumenten ausreichend Musterflle enthalten?

Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstAuch diesen lngeren Abschnitt mchte ich mit einigen Best Practices abschlieen:

Das Erstellen von Akzeptanztests erzwingt eine detailliertere Auseinandersetzung bereits zu Beginn.

Es frdert die Kommunikation zwischen Auftraggeber, RE und Entwicklung

Es entstehen (nebenbei) automatisierte Tests, die das System unmissverstndlich dokumentieren.48Anforderungen aufnehmen

Dokumentieren von Anforderungen

Der Effekt von Akzeptanztests

Anforderungen vermessen und validieren

Verwalten von Anforderungen

Zusammenfassung

AgendaSeite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstWo wir schon bei dem berprfen von Anforderungen sind, Kommen wir nun zu einer analytischen Manahme, dem Vermessen und Validieren von Anforderungen 49Anforderungen vermessen und validierenWarum?

Anforderungsdokumente sind hufig Grundlage fr Vertrge

Einen Qualittsstandard sicherstellen

Qualitt der Anforderungen wirkt sich auf die Software-Qualitt aus

Fehler & Mngel frhzeitig zu finden, denn

Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstWarum sollte ich das tun?

Das Erstellen von Akzeptanztests erzwingt eine detailliertere Auseinandersetzung bereits zu Beginn.

Es frdert die Kommunikation zwischen Auftraggeber, RE und Entwicklung

Es entstehen (nebenbei) automatisierte Tests,

die das System unmissverstndlich dokumentieren.50Kosten von RE-Fehlern bezogen auf Projektphasen

Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstdiese Grafik kennen wir bereits. Reparaturkosten aufgrund von Fehlern in den Anforderungen steigen berproportional je spter man sie entdeckt. 51Qualittsmerkmale fr AnforderungenWann ist eine Anforderungsspezifikation gut?

Aktualitt (insb. Kundenwunsch-konform)EindeutigkeitWiderspruchsfreiheitIdentifizierbarkeitVollstndigkeitnderbarkeitPrfbarkeitRealisierbarkeitVerstndlichkeit

Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstWas sind nun Qualittsmerkmale von Anforderungsspezifikationen? Ich habe mal einige aufgelistet. Wir sind ja hier bei den analytischen Manahmen. Also stellt sich die Frage: Wie kann ich denn beispielsweise das Qualittsmerkmal Eindeutigkeit ganz konkret mit einer Zahl versehen? 52Konkrete Qualittsmetriken

nach [RuppSoph]Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstDa haben sich die Sophisten die Mhe gemacht und fr jedes dieser Qualittsmerkmale eine Berechnung vorgeschlagen. Danach lsst sich in recht eindeutiger Weise jedes Dokument hin untersuchen. Dies sind Vorschlge, die man verwenden kann. Es ist genauso legitim, sich etwas eigenes auszudenken. Hauptsache man verwendet es ber eine lngere Zeit konstant. 53Review-PrfmethodenStellungnahmeEine weitere Person wird gebeten, das Dokument zu prfen

InspektionSehr strenger aufwndiger Prozess mit vielen Beteiligten (Moderator, Prfer, Termine, Checklisten, Abschlussbericht)

WalkthroughLeichtgewichtiges Review (Autor trgt vor, Prfer, Protokollant)

Automatisiert durch ToolsBefindet sich in der Forschung

Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstFr die berprfung selbst gibt es nun ganz unterschiedlich schwergewichtige Verfahren. Da gibt es die Stellungnahme: Das ist das Vieraugenprinzip, d.h. eine weitere Person wird gebeten, das Dokument zu prfen.

Inspektion wurde 1976 von Michael Fagan bei IBM eingefhrt und zhlt seitdem zu einer der wichtigsten Review-Techniken. Die Inspektion ist ein strenger formalisierter Prozess mit vielen Beteiligten (Moderator, Prfer, Termine, Checklisten, Abschlussbericht)

WalkthroughLeichtgewichtiges Review. Der Autor trgt vor, die Gutachter hren aufmerksam zu und haken berall dort ein, wo sie Mngel entdecken.

Automatisiert durch ToolsBefindet sich in der Forschung54PrfungsnachbereitungErgebnisse standardisiert dokumentieren

Bei Unterschreitungen der ToleranzgrenzeUrsachen bestimmen!Prozesse anpassenEvtl. nachschulen

Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstUm Aussage ber Verbesserungen oder Verschlechterung machen zu knnen, mssen die Messergebnisse ber eine lnger Zeit aufgezeichnet werden. Sinnvoll ist es, sich bereits zu Beginn eine Toleranzgrenze zu berlegen und auch Manahmen, die bei einer Unterschreitung einzuleiten sind.

Wichtig ist, die Ursachen zu bestimmen, ggf. die Prozesse anzupassen. oder auch ber Schulungen nachzudenken.

http://openclipart.org/detail/29647/quality-control:-rejected-by-stijnbern55Bezug zur Software-Qualitt (exemplarisch)FunktionalittKorrektheitWartbarkeitAktualittxEindeutigkeitxWiderspruchsfreiheitxIdentifizierbarkeitxVollstndigkeitxnderbarkeitxPrfbarkeitxxRealisierbarkeitxVerstndlichkeitxxSeite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstNun dreht es sich ja heute eigentlich um Software-Qualitt. Die Frage stellt sich: Wie hngen RE-Qualitt und Software-Qualitt zusammen? Das zeigt diese Abbildung. Auf der linken Seite stehen die anfangs gezeigten RE-Qualittsmerkmale, oben habe ich exemplarisch drei Merkmale der Software-Qualitt herausgesucht. Wo ein direkter Zusammenhang besteht hab ich mal ein Kreuzchen gemacht. Beispielsweise hat die Widerspruchsfreiheit natrlich einen Direkten Einfluss auf die Korrektheit. Oder die Verstndlichkeit hat einen direkten Einfluss auf die Wartbarkeit. 56Best-PracticesWerden Qualittsprfungen bzgl. der Anforderungen bei Ihnen durchgefhrt?

Planen Sie den Prozess sorgfltig und passen ihn gezielt auf Ihre Bedrfnisse an.

Qualittsprfungen sind bislang noch nicht die Regel.

Tun Sie es, nutzen Sie den Vorsprung!

Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstWerden Qualittsprfungen bzgl. der Anforderungen bei Ihnen durchgefhrt?

Planen Sie den Prozess sorgfltig und passen ihn gezielt auf Ihre Bedrfnisse an.

Qualittsprfungen sind bislang noch nicht die Regel.

Tun Sie es, nutzen Sie den Vorsprung!57Anforderungen aufnehmen

Dokumentieren von Anforderungen

Der Effekt von Akzeptanztests

Anforderungen vermessen und validieren

Verwalten von Anforderungen

Zusammenfassung

AgendaSeite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstWir kommen nun zu dem Verwalten von Anforderungen.58Anforderungen verwaltenIst eine Hauptaufgabe des agilen RE!

Wird umso wichtiger, jemehr Anforderungen zu verwalten sind,mehr Stakeholder auf die Informationen zugreifen,mehr nderungen zu erwarten sind,lnger das Produkts (erwartungsgem) in Betrieb ist.

Die Wahl des(r) richtigen Tools ist auerordentlich wichtig!

Entscheidend fr das Software-Qualittsmerkmal WartbarkeitSeite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstDies ist neben dem Beseitigen von unklaren Anforderungen die Hauptaufgabe vor allem des agilen RE, denn agile Projekte mssen definitionsgem mit einer greren Anzahl von schnell-wechselnden Anforderungen umgehen knnen. Und da ist die Wahl eines richtigen Tools von groer Bedeutung, was direkte Auswirkung auf das Qualittsmerkmal Wartung hat.59Erwartungen an ein Management-ToolNotwendige Eigenschaften:Anlegen, ndern, Lschen von AnforderungenStrukturierbarkeit (hierarchisch, verlinkbar)Gute Suchmglichkeiten (Volltext, unscharf, Stichwrter)Versionsverwaltung / VersionierungEinfache Handhabung von Grafiktypen (Einfgen, Bearbeiten)Verfolgbarkeit (Traceability)

WnschenswertKonfigurierbarkeit von Eingabemasken und WorkflowBenutzer- und RechteverwaltungAutomatische Analyse von Texten

Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstWir erwarten von einem guten RE-Tool, dass es neben den Standard-Funktionen wie Anlegen, ndern, Lschen eine gute Strukturierbarkeit und vor allem sehr gute Suchmglichkeiten vorsieht.Versionsverwaltung und eine einfache Handhabung von Grafiktypen sollten vorhanden sein. Viel wichtiger als frher schtze ich den Traceability ein. Dazu komme ich gleich noch.

Wnschenswert sind Konfigurierbarkeit von Eingabemasken und Workflows, eine Benutzerverwaltung und die Mglichkeit Texte automatisch zu analysieren.60ToolsWord & Excel: immer noch blichGrund: Wird von jedem beherrscht

Im Kommen: Jira & WikisGrund: Einfaches Erlernen, Einfache BedienungOffen fr den Aufbau einer Werkzeugkette

Auswahl verschiedener RE-Tools (alphabetisch):Caliber RMContour CradleDOORSDESIReEnterprise Architect HP Quality CenterIrQA Lotos Notes OptimalTrace ProRRequisiteProYAKINDU[VolereTools] enthlt eines weitaus grere bersichtSeite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstLeider sind immer noch Word und Excel die Haupt-Werkzeuge des REs, obwohl sie kaum eine einen der eben genannten Funktionen untersttzen. Der einzige Grund ist wohl, dass die Toolsvon jedem beherrscht werden. Mehr im Kommen sind Wikis und das Tool Jira von Atlassian:Grund: Einfaches Erlernen, Einfache BedienungOffen fr den Aufbau einer Werkzeugkette Beteiligt an dem Projekt Cloud9

Dann gibt es eine recht groe Anzahl von speziellen RE-Tools, von der ich hier einen Ausschnitt zeige. Meine Erfahrung ist, dass sie wenig eingesetzt werden, eine Ausnahme stellt wohl das Tool DOORS dar, was man recht hufig im Automotive-Bereich findet.

Grund: Jeder von uns wei die Vorteile eines Navigators zu schtzen. Aber wenn ich einen meiner Mutter schenke: Sie wrde in nicht benutzen! Bei den Tools lag der Fokus nicht so sehr auf der Useablity. 61Traceability - so wichtig und doch kaum vorhandenTypische 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 Abhngigkeiten gibt es zu anderen Daten?Wie gro sind die Risiken von nderungen?

Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstTraceability oder Verfolgbarkeit meint die Mglichkeit innerhalb eines RE-Tools oder sogar ber seine Grenzen hinaus zu einem Aspekt der Software alle Informationen finden zu knnen. Wenn das gut funktioniert, spart das bei Wartungsprojekten unheimlich Zeit. Angenommen der Kunde kommt mit einem Ticket: Im Risiko-Report vom 31.3 stimmt das Ausfalldatum nicht.

Wie findet der Entwickler die notwendigen Informationen? Woher stammt das Datum (Eingabe, Import)?In welchen Klassen wird es verarbeitet?Welche Datenbankfelder sind involviert?Welche fachlichen Abhngigkeiten gibt es zu anderen Daten?Wie gro sind die Risiken von nderungen?62Ideale WeltRE-Tool

Suchergebnis

SourceVerarbeitungLsung

RE-ToolAnforderung

RE-Tool"Ausfalldatum"ModellierungFachklassen

Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstIn einer idealen Welt she das so aus: Das Ausfalldatum kommt in folgenden Teilen vor:Optimal ist es, wenn man "Ausfalldatum" in das RE-Tool eintippt und man als Suchergebnis eine Anforderung und eine Lsung erhlt. Schn wre auch, wenn diese miteinander verlinkt wren. Noch schne wre es, wenn er eine Referenz zu einem anderen Tool gbe, beispielsweise zu einem Modellierungstool und eine Referenz (Link) in den SourceCode.63Die Realitt

SourceDB-Tool

Source-Code-Analysen knnen das zig-fache an Zeit kosten!Word

XSeite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstDie Realitt aber meist anders aus. Man knnte in einer mit Word verfassten Anforderung suchen, tut es aber nicht, denn bis man das richtige Dokument mit der richtigen Version findet und dort in dem Dokument die richtigen Stellen findet. Und hilft einem die Info dann berhaupt? Also beginnt der Entwickler meist sofort im Source-Code zu suchen, denn das ist ja sein Haupttool, in der Hoffnung dort die Stellen zu finden. GGf. zieht man ein DB-Tool hinzu. Solche Source-Code-Analysen knnen des zigfache an Zeit kosten!Wir haben jetzt einen Fall: Andy, der mich ablsen soll. Der

http://www.istockphoto.com/stock-illustration-7599184-computer-monitor.php?st=5e63291

64Vision: Traceability innerhalb der WerkzeugketteAnforderungs-managementIDEProjekt-managementBuild-ManagementIssue TrackingModellierungPersistenzDeliveryCollaborationBP-ManagementMonitoringConfiguration-ManagementSeite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstMeine Vision besteht darin, eine Traceability unter des verschiedensten Tools einer Werkzeugkette zu ermglichen. Da gibt's inzwischen gute Anstze, aber das geht jetzt schon ein wenig ber das RE hinaus.65Best PracticesPrfen Sie, ob bei Ihnen die passenden Werkzeugkette im Einsatz ist.

Erwgen Sie eine Neuanschaffung, so

nehmen Sie sich Zeit fr die richtige Wahl,

lassen Sie sich von Experten beraten,

planen Sie auch den Einsatz von Schulungen.

Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstPrfen Sie, ob bei Ihnen die passenden Werkzeugkette im Einsatz ist.

Erwgen Sie eine Neuanschaffung, so nehmen Sie sich Zeit fr die richtige Wahl,

lassen Sie sich von Experten beraten,

planen Sie auch den Einsatz von Schulungen.66Anforderungen aufnehmen

Dokumentieren von Anforderungen

Der Effekt von Akzeptanztests

Anforderungen vermessen und validieren

Verwalten von Anforderungen

ZusammenfassungAgendaSeite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstKommen wir zum Ende67Warum ist RE wirtschaftlich?

Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstWarum ist RE wirtschaftlich?68Zusammenfassung Einsparungen beim RE bewirken wenig Qualitt bei hohen Kosten!

Eine gute Anforderungsanalyse erfordert spezielle RE-Fertigkeitenmit direkten Auswirkungen auf die Softwarequalitt

Gute Dokumentation erfordert Talent, Technik und Disziplin Sprachkonventionen, Modelle, neue Verfahren (BDD)Ziel: Formales und systematisches VorgehenGute RE-Management-Tools helfen nennenswert

Auch Anforderungen lassen sich qualittsprfenZiel: Qualittssteigerungen durch kontinuierliches MessenQualitt bei den Anforderungen Software-Qualitt

Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstEinsparungen beim RE bewirken wenig Qualitt bei hohen Kosten!

Eine gute Anforderungsanalyse erfordert spezielle RE-Fertigkeiten mit direkten Auswirkungen auf die Softwarequalitt

Gute Dokumentation erfordert Talent, Technik und Disziplin Sprachkonventionen, Modelle, neue Verfahren (BDD)Ziel: Formales und systematisches VorgehenGute RE-Management-Tools helfen nennenswert.

Auch Anforderungen lassen sich qualittsprfenZiel: Qualittssteigerungen durch kontinuierliches MessenQualitt bei den Anforderung -> Software-Qualitt

Vielen Dank frs Zuhren69[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

ReferenzenSeite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstKlaus 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 fr Softwareent-wickler; 2. Auflage, Dpunkt Verlag, 2010, ISBN: 978-3898646710

Rainer Gerlich; 111 Thesen zur erfolgreichen Softwareentwicklung; 1. Auflage, Springer, 2005, ISBN: 978-3540209102

Weiterfhrende LiteraturSeite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstMr. 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

Weiterfhrende LiteraturSeite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusstFolie 9:http://openclipart.org/image/800px/svg_to_png/169415/discussion.pnghttp://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_Verhltnisbestimmung_Zahn.jpg/800px-Lage-_und_Verhltnisbestimmung_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.htmlhttp://www.wpclipart.com/people/children/boys/little_boy.png.htmlhttp://www.wpclipart.com/holiday/Christmas/gifts/gift_box_silver.png.htmlhttp://www.wpclipart.com/holiday/Christmas/gifts/gift_black.png.html

BildernachweiseSeite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusst73Clean CodeFolie 33:http://www.wpclipart.com/holiday/Christmas/gifts/gifts_w_tags.png.htmlhttp://www.wpclipart.com/holiday/Christmas/gifts/gift_box_blue_ribbon/package_blue_ribbon_and_blue.png.htmlhttp://www.wpclipart.com/holiday/valentines/candy_and_gifts/valentine_gift_box.png.html

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

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

Smtliche hier nicht aufgefhrte Bilder bzw. Grafiken wurden vom Autor selbst erstellt.

BildernachweiseSeite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusst74Clean CodeAbkrzungenATDDAcceptance Test Driven DevelopmentBDDBehavior Driven DevelopmentBPEBusiness Process Execution LanguageBPMNBusiness Process Model and NotationDDD Domain-Driven DesignDSLDomain-Specific LanguageEREntity RelationshipQAQuality AssuranceQSQualittssicherungRERequirements Engineering bzw. Requirements Engineer TDDTest-Driven DevelopmentUMLUnified Modeling Language

Seite Nr. / 75Garbarge in - garbage out: Wie das Anforderungsmanagement die Softwarequalitt beeinflusst75

Fragen?www.iks-gmbh.com