Analyse der Softwareanforderungen anhand eines Beispiels

โšก Intelligente Zusammenfassung

Die Software-Anforderungsanalyse unterteilt die Bedรผrfnisse der Stakeholder in funktionale und nicht-funktionale Aussagen, ordnet sie auf Geschรคfts-, Architektur- und Systemebene ein und prรผft dann jede einzelne anhand von Qualitรคtsmerkmalen, um Testbarkeit zu gewรคhrleisten. traceable, priorisierte Spezifikation.

  • ๐Ÿ“ Anforderungstypen: Geschรคftliche, architektonische und gestalterische sowie System- und Integrationsanforderungen bilden die drei Ebenen, die jede Softwarespezifikation strukturieren.
  • ๐Ÿ”€ Funktional vs. Nicht-funktional: Funktionale Aussagen beschreiben, was das System leisten muss, wรคhrend nicht-funktionale Aussagen messbare Ziele fรผr Leistung, Sicherheit und Benutzerfreundlichkeit festlegen.
  • ๐Ÿ“š Alternative Quellen: Kollegen, frรผhere Versionen, รคltere Anforderungsdokumente, Fehlerberichte und Installationsanleitungen liefern die Anforderungen, wenn formale Vorgaben fehlen.
  • โœ… Qualitรคtsmerkmale: Atomic, eindeutig identifiziert, vollstรคndig, konsistent, tracUmsetzbar, priorisierbar und testbar sind die sieben Attribute, die jede Anforderung erfรผllen muss.
  • ๐Ÿ”— Ende zu Ende TracFรคhigkeit: Die Geschรคftsanforderungen werden dem Design, das Design dem Code und der Code den Testfรคllen zugeordnet, sodass Umfang und Abdeckung wรคhrend des gesamten Projekts transparent bleiben.
  • ๐ŸŽฏ Testbarer Wortlaut: Ersetzen Sie vage Begriffe wie โ€žjede Seiteโ€œ und โ€žakzeptable Zeitโ€œ durch benannte Seiten und messbare Zielvorgaben wie 5 Sekunden.

Software-Anforderungsanalyse

Eine Softwareanforderung ist ein funktionales oder nicht-funktionales Bedรผrfnis, das im System umgesetzt werden muss. Funktional bedeutet, dem Benutzer einen bestimmten Dienst bereitzustellen.

Beispielsweise besteht die funktionale Anforderung im Kontext einer Banking-Anwendung darin, dass ein Kunde, wenn er โ€žKontostand anzeigenโ€œ auswรคhlt, seinen aktuellen Kontostand einsehen kรถnnen sollte.

Eine Softwareanforderung kann auch nicht-funktionaler Natur sein, wie beispielsweise eine Leistungsanforderung. So kรถnnte eine nicht-funktionale Anforderung besagen, dass jede Seite des Systems innerhalb von 5 Sekunden fรผr die Benutzer geladen werden soll.

Also im Wesentlichen Softwareanforderung ist a

  • Funktional oder
  • Nicht funktionsfรคhig

technische Das muss in das System implementiert werden. Softwareanforderungen werden รผblicherweise als Aussagen formuliert.

Arten von Anforderungen

GeschรคftsanforderungenDies sind รผbergeordnete Anforderungen, die dem Business Case des Projekts entnommen wurden. Beispielsweise bietet ein mobiles Banking-System Bankdienstleistungen in Sรผdostasien an. Die fรผr Indien festgelegte Geschรคftsanforderung umfasst Kontoรผbersicht und Geldtransfer, wรคhrend sie fรผr China Kontoรผbersicht und Rechnungszahlung beinhaltet.

Land auswรคhlen Unternehmen, das Bankfunktionen oder -dienstleistungen bereitstellt
Indien Kontoรผbersicht und Geldtransfer
China, Kambodscha Kontoรผbersicht und Bill Zahlung

Architechnische und gestalterische AnforderungenDiese Anforderungen sind detaillierter als Geschรคftsanforderungen und bestimmen die Lรถsungsarchitektur. Sie legen das Gesamtdesign fest, das zur Umsetzung der Geschรคftsanforderungen erforderlich ist. Typische Anwendungsfรคlle fรผr Architektur und Design in einer Bildungseinrichtung umfassen Login, Kursdetails und Einschreibung. Die Anforderungen wรคren wie folgt:

Anwendungsfall Banking Anforderung
Bill Zahlung Dieser Anwendungsfall beschreibt, wie sich ein Kunde beim Net Banking anmelden und das nutzen kann Bill Zahlungsfunktion. Der Kunde kann ein Dashboard mit offenen Rechnungen registrierter Rechnungssteller einsehen. Er kann Rechnungssteller hinzufรผgen, bearbeiten und lรถschen. Zudem kann er SMS- und E-Mail-Benachrichtigungen fรผr verschiedene Abrechnungsvorgรคnge konfigurieren und seine Zahlungshistorie einsehen. Diese Anwendung wird von Bankkunden oder Supportmitarbeitern genutzt.

System- und IntegrationsanforderungenAuf der untersten Ebene finden sich die System- und Integrationsanforderungen. Diese liefern eine detaillierte Beschreibung jeder einzelnen Anforderung. Sie lassen sich in Form von User Stories in verstรคndlicher Geschรคftssprache festhalten. Die Anforderungen sind so detailliert, dass die Entwickler direkt mit der Programmierung beginnen kรถnnen. Bill Das unten stehende Beispiel des Zahlungsmoduls zeigt die Anforderung zum Hinzufรผgen eines Rechnungsstellers.

Bill Zahlung Voraussetzungen:
Speichern BillERS Name des Versorgungsunternehmens, Kundennummer, Automatische Zahlungen โ€“ Ja/Nein, Gesamtbetrag bezahlen Bill โ€“ Ja/Nein, Limit fรผr automatische Zahlungen โ€“ Nicht zahlen, wenn Bill liegt รผber dem angegebenen Betrag

Manchmal erhalten Sie fรผr ein Projekt keine Anforderungen oder Dokumente. Auch dann gibt es andere Informationsquellen, auf die Sie sich bei der Entwicklung Ihrer Software oder Ihres Testdesigns stรผtzen kรถnnen. Diese Informationsquellen sind unten aufgefรผhrt.

Andere Anforderungsquellen

  • Wissenstransfer von Kollegen oder Mitarbeitern, die bereits an diesem Projekt arbeiten
  • Besprechen Sie das Projekt mit dem Business Analysten, dem Produktmanager, dem Projektleiter und den Entwicklern.
  • Analysieren Sie die vorherige Version des bereits implementierten Systems.
  • ร„ltere Anforderungsdokumente aus dem Projekt analysieren
  • RevSehen Sie sich frรผhere Fehlerberichte an; einige Fehlerberichte werden in Verbesserungsvorschlรคge umgewandelt, die mรถglicherweise in der aktuellen Version umgesetzt werden.
  • Prรผfen Sie, falls verfรผgbar, die Installationsanleitung, um zu erfahren, welche Installationen erforderlich sind.
  • Analysieren Sie das Domรคnen- oder Branchenwissen, das das Team implementieren mรถchte.

Unabhรคngig davon, welche Anforderungsquelle Sie verwenden, dokumentieren Sie die Anforderungen in einem gemeinsamen Format und lassen Sie sie von erfahrenen Teammitgliedern รผberprรผfen.

So analysieren Sie Anforderungen

Nehmen wir als Beispiel ein Lernsoftwaresystem, in dem sich ein Student fรผr verschiedene Kurse anmelden kann.

Lassen Sie uns untersuchen, wie die Anforderungen analysiert werden. Jede Anforderung muss eine Reihe von Standardqualitรคtsmerkmalen aufweisen, darunter die folgenden:

  • Atomic
  • Eindeutig identifiziert
  • Komplett
  • Konsequent und eindeutig
  • Rรผckverfolgbar
  • Priorisiert
  • Testbar

Anforderungen analysieren

Die folgende Tabelle veranschaulicht jedes Attribut anhand von drei Spalten:

  1. Die erste Spalte gibt an: โ€žAnforderungsqualitรคtโ€œ
  2. Die zweite Spalte gibt an: โ€žschlechte Anforderung mit einigen Problemenโ€œ
  3. In der dritten Spalte wird dieselbe Anforderung โ€žin eine gute Anforderung umgewandeltโ€œ dargestellt.
Anforderungsqualitรคt Beispiel fรผr eine schlechte Anforderung Beispiel fรผr eine gute Anforderung
Atomic Studierende kรถnnen sich fรผr Bachelor- und Postgraduiertenstudiengรคnge anmelden Studierende kรถnnen sich fรผr Bachelorstudiengรคnge anmelden. Studierende kรถnnen sich fรผr Masterstudiengรคnge anmelden.
Eindeutig identifiziert 1. Studierende kรถnnen sich fรผr Bachelorstudiengรคnge einschreiben. 1. Studierende kรถnnen sich fรผr Masterstudiengรคnge einschreiben. Kursanmeldung. Studierende kรถnnen sich fรผr Bachelor-Kurse anmelden. Studierende kรถnnen sich fรผr Master-Kurse anmelden.
Komplett Ein Professor-Benutzer meldet sich beim System an, indem er seinen Benutzernamen, sein Passwort und andere relevante Informationen angibt Ein Professor-Benutzer meldet sich beim System an, indem er seinen Benutzernamen, sein Passwort und seinen Abteilungscode angibt
Konsequent und eindeutig Ein Student wird entweder Grundstudiengรคnge oder Aufbaustudiengรคnge belegen, jedoch nicht beides. Einige Kurse stehen sowohl Bachelor- als auch Postgraduierten-Studierenden offen Ein Student hat entweder einen Bachelor- oder einen Postgraduiertenabschluss, aber nicht beides
Rรผckverfolgbar Studenteninformationen beibehalten, die der BRD-Anforderungs-ID zugeordnet sind? Pflegen Sie Studenteninformationen โ€“ zugeordnet zu BRD-Anforderungs-ID 4.1
Priorisiert Registrierter Student โ€“ โ€‹โ€‹Prioritรคt 1. Benutzerinformationen verwalten โ€“ Prioritรคt 1. Kurse belegen โ€“ Prioritรคt 1. Zeugnis einsehen โ€“ Prioritรคt 1 Schรผlerregistrierung โ€“ Prioritรคt 1. Benutzerinformationen verwalten โ€“ Prioritรคt 2. Kurse belegen โ€“ Prioritรคt 1. Zeugnis einsehen โ€“ Prioritรคt 3.
Testbar Jede Seite des Systems wird in einem akzeptablen Zeitrahmen geladen Die Seiten โ€žStudenten registrierenโ€œ und โ€žKurse anmeldenโ€œ des Systems werden innerhalb von 5 Sekunden geladen

Lassen Sie uns jedes dieser Merkmale genauer betrachten, beginnend mit AtomNS.

Atomic

Atomic

Jede Anforderung sollte atomar sein, d. h. sie muss auf der kleinstmรถglichen Detailebene formuliert sein und darf nicht weiter in Komponenten zerlegt werden. Die folgenden Beispiele vergleichen atomare und nicht-atomare Anforderungen.

Um beim Beispiel des Bildungssystems zu bleiben: Die fehlerhafte Anforderung lautet: โ€žStudierende kรถnnen sich sowohl fรผr Bachelor- als auch fรผr Masterstudiengรคnge einschreiben.โ€œ Diese Anforderung ist fehlerhaft, da sie nicht atomar ist โ€“ sie vermischt Bachelor- und Masterstudiengรคnge. Die entsprechende korrekte Anforderung trennt sie in zwei separate Anforderungen: eine fรผr die Einschreibung in Bachelorstudiengรคnge und eine fรผr die Einschreibung in Masterstudiengรคnge.

Eindeutig identifiziert

Eindeutig identifiziert

Das nรคchste Qualitรคtsmerkmal ist die eindeutige Identifizierung. Im ungรผnstigen Beispiel teilen sich zwei separate Anforderungen dieselbe ID#1. Wenn ein Team eine Anforderung anhand ihrer ID referenziert, ist unklar, welche der beiden gemeint ist. Die korrekte Anforderung gruppiert sie unter Abschnitt 1 โ€“ Kurseinschreibung โ€“ mit den Unteranforderungen 1.1 (Einschreibung in Bachelorstudiengรคnge) und 1.2 (Einschreibung in Masterstudiengรคnge).

Komplett

Komplett

Jede Anforderung sollte vollstรคndig sein. Beispielsweise lautet die fehlerhafte Anforderung hier: โ€žEin Professor meldet sich im System an, indem er seinen Benutzernamen, sein Passwort und weitere relevante Informationen angibt.โ€œ โ€žWeitere relevante Informationenโ€œ ist ungenau. Eine vollstรคndige Anforderung listet die exakten Felder auf, wie beispielsweise den Fachbereichscode, die der Professor angeben muss.

Konsequent und eindeutig

Konsequent und eindeutig

Jede Anforderung sollte einheitlich und eindeutig sein. Im negativen Beispiel heiรŸt es in einer Anforderung: โ€žEin Student belegt entweder Kurse im Bachelor- oder im Masterstudium, aber nicht beidesโ€œ, wรคhrend in einer anderen Anforderung steht: โ€žEinige Kurse stehen sowohl Bachelor- als auch Masterstudierenden offenโ€œ.

Die erste Anforderung impliziert, dass die Kurse in zwei sich gegenseitig ausschlieรŸende Kategorien unterteilt werden, die zweite Anforderung widerspricht dem jedoch, indem sie einige Kurse fรผr beide Gruppen รถffnet.

Die positive Anforderung lรถst den Konflikt, indem sie klarstellt, dass jeder Kurs entweder als Bachelor- oder Masterkurs gekennzeichnet ist und ein Student sich nur in Kurse einer Kategorie einschreiben kann.

Rรผckverfolgbar

Rรผckverfolgbar

Jede Anforderung muss erfรผllt sein traceable, da Anforderungen auf mehreren Ebenen existieren: Geschรคftsebene, Architektur- und Designebene sowie System- und Integrationsebene.

Wenn Sie eine Geschรคftsanforderung in Architektur- und Designanforderungen oder Architektur- und Designanforderungen in System- und Integrationsanforderungen umwandeln, tracDie Funktionalitรคt muss erhalten bleiben. Jede Geschรคftsanforderung sollte einer oder mehreren Architektur- und Designanforderungen zugeordnet werden. Im negativen Beispiel โ€žStudenteninformationen pflegen โ€“ Zuordnung zur BRD-Anforderungs-ID?โ€œ fehlt die Anforderungs-ID.

Die korrekte Anforderung enthรคlt dieselbe Aussage, ist aber explizit der BRD-Anforderungs-ID 4.1 zugeordnet. Jede Anforderung muss eine tracFรคhigkeitskartepingSystem- und Integrationsanforderungen sollten auch dem Code, der sie implementiert, und den Testfรคllen, die sie รผberprรผfen, zugeordnet werden.

TracDie Funktionalitรคt erstreckt sich daher durch das gesamte Projekt.

Priorisiert

Jede Anforderung muss priorisiert werden, damit das Team weiรŸ, was zuerst umgesetzt werden muss und was warten kann. Im negativen Beispiel haben die Funktionen โ€žStudent registrierenโ€œ, โ€žBenutzerinformationen verwaltenโ€œ, โ€žKurse belegenโ€œ und โ€žZeugnis anzeigenโ€œ alle die Prioritรคt 1. Da nicht alles Prioritรคt 1 haben kann, mรผssen die Anforderungen realistisch eingestuft werden. Im positiven Beispiel erhalten โ€žStudent registrierenโ€œ und โ€žKurse belegenโ€œ die hรถchste Prioritรคt 1, โ€žBenutzerinformationen verwaltenโ€œ Prioritรคt 2 und โ€žZeugnis anzeigenโ€œ Prioritรคt 3.

Testbar

Jede Anforderung sollte testbar sein. Das schlechte Beispiel โ€žJede Seite des Systems wird in einem akzeptablen Zeitraum geladenโ€œ ist aus zwei Grรผnden nicht testbar. Erstens kann โ€žjede Seiteโ€œ Dutzende von Seiten bedeuten, was den Testaufwand enorm erhรถht. Zweitens ist der Begriff โ€žakzeptabler Zeitraumโ€œ nicht definiert โ€“ akzeptabel fรผr wen und anhand welcher Kriterien? Die gute Anforderung behebt beide Probleme, indem sie die spezifischen Seiten benennt (โ€žStudentenregistrierungโ€œ und โ€žKursanmeldungโ€œ) und ein messbares Ziel von 5 Sekunden festlegt.

Hรคufig gestellte Fragen

KI-Tools bรผndeln das Feedback der Stakeholder, kennzeichnen mehrdeutige Formulierungen und erkennen doppelte oder fehlende Anforderungen in groรŸen Anforderungslisten. Business-Analysten รผberprรผfen weiterhin jeden Vorschlag anhand des Anforderungsprotokolls, bevor er in den genehmigten Anforderungssatz aufgenommen wird.

GitHub Copilot und GPT erstellen anhand kurzer Vorgaben User Stories, Akzeptanzkriterien und Geschรคftsregeln. Ein Business Analyst prรผft jedes Ergebnis anhand von Qualitรคtsmerkmalen wie Atomaritรคt, Testbarkeit und โ€ฆ traceable, bevor es zu einer genehmigten Anforderung wird.

Eine Software-Anforderungsspezifikation (SRS) ist ein formales Dokument, das funktionale und nicht-funktionale Anforderungen, Schnittstellen und Einschrรคnkungen fรผr das System auflistet. Die meisten Teams orientieren sich bei der Erstellung einer SRS an den Standards IEEE 830 und ISO 29148.

Die Anforderungserhebung, auch Anforderungsanalyse genannt, sammelt die grundlegenden Bedรผrfnisse der Stakeholder. AnschlieรŸend werden diese Bedรผrfnisse durch die Anforderungsanalyse strukturiert, verfeinert und anhand der sieben Qualitรคtsmerkmale รผberprรผft, sodass das Entwicklungsteam klare und รผberprรผfbare Anforderungen erhรคlt.

Nutzen Sie Techniken wie MoSCoW (Muss, Sollte, Kรถnnte, Wรผrde), die Kano-Analyse, gewichtete Bewertung oder die Kosten-der-Verzรถgerung-Methode. Kombinieren Sie den Geschรคftswert mit dem Aufwand und dem Risiko der Umsetzung und stimmen Sie die Reihenfolge mit dem Auftraggeber und dem Produktverantwortlichen ab, bevor die Entwicklung beginnt.

Anforderungen TracDie Machbarkeitsmatrix verknรผpft jede Anforderung mit ihrem Designelement, ihrer Codekomponente und ihrem Testfall. Sie liefert Vorwรคrts-, Rรผckwรคrts- und bidirektionale Ergebnisse. tracFunktionalitรคt, damit nichts รผbersehen, รผberdimensioniert oder ohne entsprechenden Test ausgeliefert wird.

Unklare Formulierungen, unpriorisierte Rรผckstรคnde, fehlende tracUnzulรคnglichkeiten, die Vermischung von Lรถsungsideen mit Geschรคftsanforderungen und das Einfrieren des Projektumfangs ohne ร„nderungskontrolle sind die Fehler, die die meisten Nacharbeiten, Verzรถgerungen im Zeitplan und Produktionsfehler verursachen.

Zu den gรคngigen Tools gehรถren Jama Connect, IBM TรœREN, Modern Requirements fรผr Azure DevOps, Jira mit XrayVisure Requirements ALM und Blueprint. Teams wรคhlen eine Plattform basierend auf regulatorischen Anforderungen, TeamgrรถรŸe und Komplexitรคt. tracErforderliche Fรคhigkeiten.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: