Analyse & Design
Last updated
Last updated
Was versteht ihr unter Analyse & Design?
Wer hat schon an Kundensoftware gearbeitet?
Analyse: WAS muss das System kรถnnen? Design: WIE soll das System gebaut werden?
Wie wir bereits gestern besprochen haben, ist eines der essentiellen Aufgaben, zu verstehen, was der Kunde oder die Kundin wirklich mรถchte.
In der Anforderungsanalyse findet aber bereits sehr viel Kommunikation statt. Es gibt Diskussionen, grobe Besprechungen in Workshops, Interviews oder sogar Beobachtung von Endbenutzern am Arbeitsplatz. Das alles muss auch dokumentiert sein.
Nun geht es darum, Anforderungen von Kunden zu analysieren und in Formen zu bringen bzw. so Abzubilden, wie sie uns fรผr die Umsetzung mรถglichst nรผtzlich sind. Dafรผr gibt es zahlreiche Tools und Methoden.
Eine Mรถglichkeit, um sehr schnell und abstrakt einen รberblick รผber die Anforderungen zu erhalten, ist das UML Use Case Diagramm.
Dieses Use Case Diagramm zeigt die Use Cases eines Online Shops, der zwei verschiedene Anwendertypen hat. Ein Verkรคufer, der Artikel erfasst und Bestellungen verarbeitet und einen Kunden, welcher Artikel auswรคhlt und bestellt.
Ein Use Case Diagramm stellt keine Logik dar, z.B. dass der Kunde zuerst Artikel auswรคhlen muss, bevor er eine Bestellung abschicken kann. Darum geht es aber auch nicht im Use Case Diagramm. Es geht nur darum, schnell einen รberblick รผber die Funktionen einer Software zu erhalten.
"User Stories beschreiben die Anforderungen an ein Produkt oder Service aus Sicht des Nutzers. Als Format ist die User Story ein zentrales Werkzeug in der Zusammenarbeit agiler Teams. Ihr Einsatzgebiet reicht von der Validierung von Kundenbedรผrfnissen bis zur Anforderungsformulierung in Scrum Teams." - Andreas Diehl
User Stories sind einerseits dazu da, die Kundenbedรผrfnisse / Anforderungen abzubilden, dienen zugleich aber auch als Arbeitspakete fรผr die Entwickler, und kรถnnen durch Aufwandschรคtzung auch als Basis einer Offerte dienen. Das macht sie sehr wertvoll.
User Stories (dt. Nutzer- oder Anwendererzรคhlung) haben ihren Ursprung in der agilen Softwareentwicklung. Im Gegensatz zu einer klassischen Spezifikation beschreibt die User Story ausschlieรlich die Erwartungen des Nutzers an die Funktionalitรคt einer Software und nicht etwa WIE die Anforderung umzusetzen ist.
Heute sind User Stories auch รผber die Softwareentwicklung hinaus eines der zentralen Werkzeuge, um Anforderungen zu formulieren und zu diskutieren. Dabei bilden mehrere User Stories gemeinsam einen Use Case.
Der User Case ist wiederum, was wir im Use Case Diagramm modellierten.
Die Beschreibung einer User Story ist wie folgt aufgebaut:
Als <Nutzer> mรถchte ich <Funktion>, um <Wert>
Das heiรt, eine User Story beantwortet die Fragen WER mรถchte WAS und WARUM. Lass uns auf die drei Bestandteile im Einzelnen schauen.
Wie detailliert Du den Platzhalter <Nutzer> fรผllst, ist von der User Story selbst, aber auch von der Reife deines Vorhabens abhรคngig. Fรผr den passenden Detaillierungsgrad gibt es kein richtig oder falsch. Das Wichtigste ist, dass fรผr Dich und dein Team mit dem gewรคhlten <Nutzer> eine fรผr Dich aussagekrรคftige User Story entsteht.
Den Platzhalter <Funktion> ersetzt Du mit der Erwartung, den Zielen und Wรผnschen des <Nutzers>. Damit beantwortest Du die Frage, WAS der Kunde braucht und erwartet. Wenn du bereits ein Produkt am Markt anbietest, erhรคltst Du sicher viele gewรผnschte Funktionen direkt vom Nutzer. In frรผheren Phasen deines Projektes kannst Du basierend auf deiner Erfahrung Annahmen formulieren, welche <Funktion> der <Nutzer> erwartet.
Der Platzhalter <Wert> beantwortet die Frage nach dem WARUM. Auch wenn der Satzbau dazu verleitet diesen Nebensatz weg zu lassen, ist eine User Story ohne diesen Zusatz nicht komplett.
Das heiรt, erst mit dem <Wert> bringst Du zum Ausdruck, warum die Erreichung der <Funktion> fรผr den <Nutzer> รผberhaupt wichtig ist und welchen Mehrwert die Erfรผllung der User Story schafft. Spรคtestens an dieser Stelle bietet Dir die User Story eine ehrliche Reflektion, wie gut Du Dich bereits mit den Anforderungen deiner Kunden auseinander gesetzt hast. Anforderungen aufzunehmen ist einfach (z.B. weil der Kunde nach einer Funktion schreit). Zu verstehen warum es fรผr ihn wichtig ist, gibt Dir und deinem Team aber erst den notwendigen Kontext.
In der Praxis trifft man meist auf User Stories, die nebst der Beschreibung nach dem obigen Schema auch Abnahmekriterien (auch Akzeptanzkriterien oder Acceptance Criteria genannt) definiert haben. Sie dienen dazu, wรคhrend eines Sprints die Story als "Abgeschlossen" anzuschauen, nรคmlich dann, wenn die Punkte unter Abnahmekriterien alle zutreffen.
Beispiel:
Die Abnahmekriterien kรถnnen teilweise etwas das "WIE" (Design) beschreiben, denn sie werden meist erst kurz vor der Umsetzung verfasst, wenn mehr technische Informationen vorhanden sind. Das ist der Moment, in dem die User Story auch als Arbeitspaket verwendet werden kann.
Wenn ein Entwickler eine Story fรผr sich abgeschlossen hat, wird im Code Review meist auch auf die Abnahmekriterien eingegangen, um zu sehen, ob die Story auch wirklich abgeschlossen ist.
Es ist wichtig, Funktionalitรคt in einer guten Granularitรคt auf User Stories aufzuteilen. Eine User Story pro Funktionalitรคt.
Ist Beispielsweise ein Login in einem System gewรผnscht, in welchem man auch gleich einen neuen Benutzer hinzufรผgen kann und das Passwort zurรผcksetzen kann, wenn man es vergessen hat, macht es keinen Sinn, das alles in eine User Story zu packen.
Hier kรถnnte man Beispielsweise drei User Stories erstellen:
Story 1: Login Als registrierter Benutzer mรถchte ich mich im System einloggen kรถnnen, damit ich das System mit meinen Berechtigungen verwenden kann.
Story 2: Passwort Vergessen Als registrierter Benutzer mรถchte ich mein Passwort zurรผcksetzen kรถnnen, damit ich das System weiterhin verwenden kann, wenn ich das Passwort vergessen habe.
Story 3: Benutzer Erstellen Als nicht registrierter Benutzer mรถchte ich ein Benutzerkonto erstellen, damit ich mich im System einloggen kann.
Das macht auch spรคter fรผr die Umsetzung Sinn. Gibt es mehrere Entwickler im Team, kรถnnten diese drei Stories parallel entwickelt werden.
Wie auch das Use Case Diagramm, ist das Aktivitรคtsdiagramm ein UML Diagramm.
Aktivitรคtsdiagramme sind eine Mรถglichkeit, um Programmablรคufe zu dokumentieren. Diese Diagrammart wird nun kurz vorgestellt:
Die Ausfรผhrung einer Aktivitรคt beginnt beim Startknoten und endet beim Endknoten (Eselsbrรผcke: wie eine Zielscheibe). Es sind auch mehrere Endknoten mรถglich.
Der wichtigste Baustein im Aktivitรคtsdiagramm ist die Aktion, als Rechteck mit abgerundeten Ecken dargestellt. Aktionen stellen die einzelnen Schritte dar, aus denen eine Aktivitรคt besteht. Man kรถnnte sagen, sie sind die kleinste, nicht mehr zerlegbare Einheit einer Aktivitรคt.
Alle Aktionen zusammengenommen stellen einen schrittweisen Ablauf dar wie etwa den eines Use-Case oder einer Funktion (oder einer User Story). Im Rechteck mit den abgerundeten Ecken wird jeweils eine kurze Beschreibung der Aktion angegeben. Diese Beschreibung sollte wie bei Use-Cases kurz, knapp und prรคzise sein.
Verzweigungen ermรถglichen es je nach Situation als nรคchsten Schritt verschiedene Aktionen auszufรผhren. Die Bedingung fรผr die jeweilige Verzweigung kann direkt auf den entsprechenden Pfeil geschrieben werden (sh. Beispiel im nรคchsten Slide).
Eine Gabelung synchronisiert zwei oder mehrere separate Pfade (oder teilt sie).
Zu was fรผr einem Use Case kรถnnte dieses Aktivitรคtsdiagramm gehรถren?
Wie kรถnnte eine User Story dazu und die dazugehรถrigen Abnahmekriterien aussehen?
Kommunikation ist alles! Wenn der Kunde von Anfang an miteinbezogen wird und durch eine auch in jedem Schritt beteiligt ist, sind Missverstรคndnisse viel unwahrscheinlicher oder kรถnnen schon sehr frรผh aus dem Weg gerรคumt werden.
Nachfolgende Texte sind (z.T, leicht angepasste) Ausschnitte aus dem Artikel:
Den Platzhalter <Nutzer> fรผllst Du mit Rollen bzw. deinen Personas. Eine . Die Rolle des Nutzers kann auch durch den jeweiligen Kontext definiert sein. So kann die gleiche Rolle z.B. fรผr unterschiedliche Personas gelten und das Verhรคltnis zu deinem Produkt beschreiben.
Quelle: