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.
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
Die folgende Tabelle veranschaulicht jedes Attribut anhand von drei Spalten:
- Die erste Spalte gibt an: โAnforderungsqualitรคtโ
- Die zweite Spalte gibt an: โschlechte Anforderung mit einigen Problemenโ
- 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
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
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
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
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
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.






