1 Nichtfunktionale Anforderungen
Erinnern sie sich zurück an den SWT-TV sender:
Der Fernsehsender SWT-TV möchte eine online Mediathek bereitstellen. Hier soll es möglich sein Live-TV zu sehen, aber auch Serien, Filme und Podcasts On-Demand zu konsumieren. SWT-TV bietet dabei einen Gratisbereich mit limitiertem Umfang des On-Demand Angebots. Eingeloggte Premium Kunden haben Zugriff auf das volle Angebot.
Auf die Frage: “Nenne mir 5 Nichtfunktionale Anforderungen die das beschriebene System haben könnte.” antwortet ChatGPT wie folgt:
Nichtfunktionale Anforderungen:
- NF1 Leistung: Die Plattform muss schnell und responsiv sein, um eine optimale Benutzererfahrung zu gewährleisten, auch bei hoher Last und Bandbreitenauslastung.
- NF2 Sicherheit: Es müssen strenge Sicherheitsmaßnahmen implementiert werden, um Benutzerdaten, Zahlungsinformationen und Inhalte vor unbefugtem Zugriff oder Diebstahl zu schützen.
- NF3 Skalierbarkeit: Das System sollte skalierbar sein, um eine wachsende Anzahl von Benutzern und Inhalten ohne Beeinträchtigung der Leistung zu unterstützen.
- NF4 Kompatibilität: Die Plattform muss auf verschiedenen Geräten und Betriebssystemen reibungslos funktionieren, einschließlich PCs, Smartphones, Tablets und Smart-TVs.
- NF5 Benutzerfreundlichkeit: Die Benutzeroberfläche sollte intuitiv und benutzerfreundlich gestaltet sein, um eine einfache Navigation und Interaktion mit dem Inhalt zu ermöglichen, selbst für technisch weniger versierte Benutzer.
💡 Best Practices für Nichtfunktionale Anforderungen
💡 Best Practices für Nichtfunktionale Anforderungen
- Klarheit und Präzision:
Formulieren Sie Anforderungen eindeutig und verständlich. Vermeiden Sie vage Begriffe wie „schnell“ oder „zuverlässig“ und nutzen Sie stattdessen konkrete und überprüfbare Angaben.- Messbarkeit:
Jede nichtfunktionale Anforderung sollte anhand objektiver Kriterien überprüfbar sein (z. B. „Antwortzeit von maximal 500ms“ oder „Systemverfügbarkeit von 99,9% pro Monat“).- Technologieunabhängigkeit:
Beschreiben Sie die Anforderungen unabhängig von spezifischen Implementierungsdetails oder Technologien, um Flexibilität bei der Umsetzung zu gewährleisten.- Relevanz:
Fokussieren Sie sich auf Anforderungen, die den spezifischen Kontext des Systems betreffen, und vermeiden Sie überflüssige Details, die den Entwicklungsprozess unnötig belasten könnten.- Realistische Zielsetzung:
Anforderungen sollten ambitioniert, aber realistisch und erreichbar sein, basierend auf den Ressourcen, der Zeit und dem Umfang des Projekts.- Priorisierung:
Ordnen Sie Anforderungen nach ihrer Wichtigkeit und Dringlichkeit, um sicherzustellen, dass kritische Anforderungen zuerst berücksichtigt werden.- Standardkonformität:
Orientieren Sie sich an bewährten Standards oder Richtlinien (z. B. ISO/IEC 25010), um die Qualität und Nachvollziehbarkeit der Anforderungen zu gewährleisten.- Zukunftsfähigkeit:
Berücksichtigen Sie, dass das System skalierbar und wartbar sein sollte, um zukünftige Anforderungen und Änderungen handhaben zu können.- Barrierefreiheit und Benutzerfreundlichkeit:
Achten Sie auf eine barrierefreie und benutzerfreundliche Gestaltung, um das System für alle Zielgruppen zugänglich und einfach nutzbar zu machen.- Regelmäßige Überprüfung und Anpassung:
Anforderungen sollten während des gesamten Projekts überprüft und bei Bedarf aktualisiert werden, um den aktuellen Gegebenheiten zu entsprechen.
🔑 Beispiel für eine ideale nichtfunktionale Anforderung
- Leistung:
„Das System muss innerhalb von 2 Sekunden auf Nutzeraktionen reagieren, selbst bei einer Last von bis zu 5.000 gleichzeitigen Benutzern.“- Sicherheit:
„Datenübertragungen müssen mit einer AES-256-Verschlüsselung gesichert sein, und es sind halbjährlich Sicherheitsprüfungen durchzuführen.“- Kompatibilität:
„Das System muss auf allen gängigen Betriebssystemen (Windows, macOS, Linux) und Browsern (Chrome, Firefox, Safari, Edge) reibungslos funktionieren.“
Zusammenfassung:
Nichtfunktionale Anforderungen definieren die Rahmenbedingungen für Qualität, Skalierbarkeit und Benutzerfreundlichkeit Ihres Systems. Durch präzise Formulierung und sorgfältige Planung sorgen Sie dafür, dass das Endprodukt zuverlässig, zukunftssicher und nutzerorientiert ist. 🚀
a) Kritisieren Sie die Liste von ChatGPT. Warum sind die Anforderungen nicht gut?
Die Anforderungen sind sehr vage gehalten. Ich habe unten meine Kritikpunkte ein wenig mehr ausgearbeitet
NF1: Geschwindigkeit
- Was bedeutet “schnell” konkret?
- Sind 500ms ausreichend?
- Muss es schneller sein, oder reicht auch eine Sekunde?
NF2: Sicherheitsmaßnahmen
- Was genau sind “strenge Sicherheitsmaßnahmen”?
- Sollten Nutzer Regelungen beim Erstellen ihres Passworts erhalten?
- Soll eine Zwei-Faktor-Authentifizierung (2FA) implementiert werden?
- Welche Verschlüsselung sollte verwendet werden?
NF3: Skalierung
- Was soll genau skaliert werden?
- Ab wann soll skaliert werden?
NF4: Reibungsloses Funktionieren
- Was bedeutet “reibungsloses Funktionieren”?
- Beispiel: Beim Downgraden von Desktop- zu Mobilansicht müssen möglicherweise Informationen aus Platzgründen versteckt werden (z. B. Veröffentlichungsname bei Blogs oder Nachrichten).
- Welche Geräte sollen abgedeckt werden?
- Welche Aspect Ratios sollten spezifisch berücksichtigt werden?
- Soll die Anwendung zum Beispiel auch auf SmartWatches, SmartFridges etc. aufrufbar sein?
NF5: Intuitive und benutzerfreundliche Bedienung
- Was verstehen wir unter “intuitiv” und “benutzerfreundlich”?
- Beispiel: Eine Hamburger-Navigation ist für internetaffine Nutzer intuitiver.
- Eine NavBar mit beschrifteten Links könnte für weniger internetaffine Nutzer, wie Rentner, geeigneter sein.
- Eine Spezifikation durch User-Stories könnte hilfreich sein.
b) Formulieren Sie die Anforderungen so um, dass sie den Qualitätskriterien aus dem Buch entsprechen.
Korrigierte Nichtfunktionale Anforderungen:
• NF1 Leistung: Die Plattform muss innerhalb von 500ms den nötigen API-Request durchführen, um eine optimale Benutzererfahrung zu gewährleisten, auch bei hoher Last von mehr als 10.000 gleichzeitigen Nutzern und Bandbreitenauslastung von über 50MB/s pro Nutzer. Zusätzlich sollte die Systemverfügbarkeit mindestens 99,9% betragen, um eine kontinuierliche Verfügbarkeit des Dienstes sicherzustellen.
• NF2 Sicherheit: Es müssen strenge Sicherheitsmaßnahmen implementiert werden, wie die Überprüfung von Passwort-Best-Practices bei der Erstellung von Passwörtern, um Benutzerdaten, Zahlungsinformationen und Inhalte vor unbefugtem Zugriff oder Diebstahl zu schützen. Es sollten verschlüsselte JSON Web Tokens (JWTs) verwendet werden, um sicherheitskritische Daten zu behandeln. Darüber hinaus sind regelmäßige Sicherheitsüberprüfungen und Penetrationstests durchzuführen, um potenzielle Schwachstellen frühzeitig zu erkennen und zu beheben.
• NF3 Skalierbarkeit: Das System sollte skalierbar sein, um eine wachsende Anzahl von Benutzern und Inhalten ohne Beeinträchtigung der Leistung zu unterstützen. Dies kann erreicht werden durch die Nutzung skalierbarer Infrastrukturen und Architekturen, die eine flexible Anpassung der Rechenleistung ermöglichen. Zudem muss das System in der Lage sein, sowohl horizontal als auch vertikal zu skalieren, um flexibel auf unterschiedliche Lastanforderungen reagieren zu können.
• NF4 Kompatibilität: Die Plattform muss auf verschiedenen Geräten und Betriebssystemen reibungslos funktionieren in allen gängigen Aspect Ratios (16:9, 16:10, 4:3), einschließlich PCs, Smartphones, Tablets und Smart-TVs. Dabei sollte die Anwendbarkeit ausgiebig auf verschiedenen Herstellern und Modellen getestet werden, um eine breite Kompatibilität sicherzustellen. Zusätzlich sollte die Kompatibilität mit den neuesten Versionen der gängigen Webbrowser (z.B. Chrome, Firefox, Safari, Edge) gewährleistet sein.
• NF5 Benutzerfreundlichkeit: Die Benutzeroberfläche sollte intuitiv und benutzerfreundlich gestaltet sein, um eine einfache Navigation und Interaktion mit dem Inhalt zu ermöglichen, selbst für technisch weniger versierte Benutzer. Dies sollte erreicht werden durch eine konsistente und klare Gestaltung der Benutzeroberfläche, die sowohl Text als auch verständliche Icons in angemessener Weise verwendet. Zudem sollten Barrierefreiheitsstandards eingehalten werden, um Nutzern mit unterschiedlichen Fähigkeiten den Zugang zur Plattform zu erleichtern.
2 Anforderungserhebung
Damit eine Produktion in der Mediathek für die Zuschauer:innen sichtbar wird, muss sie von einer vorgesetzten Person freigegeben werden. Das SWT-TV Mediathek soll dafür um interne Prozesse erweitert werden. So soll es z. B. möglich sein, dass Mitarbeiter:innen des Schnitt-Teams Videos mit anderen Mitarbeiter:innen und Vorgesetzten teilen können. Dabei soll der Zugriff über interne Zugriffsrechte geregelt sein, genauer soll limitiert sein, welche Mitarbeiter:innen auf den rohen Schnitt einsehen können und welche Mitarbeiter:innen den finalen Schnitt bearbeiten können.
Sie sind als Requirements Engineer beauftragt die Anforderungen für dieses Feature zu erheben, jedoch sind sie kein Spezialist für die Filmindustrie.
a) Wägen Sie die Vor- und Nachteile der folgenden Erhebungsmethoden in diesem Szenario ab:
💡 Erhebungsmethoden: Interviews und Ethnographische Analyse
Interviews
- Vorteile:
- Bieten gezielte Einblicke in die Meinungen, Bedürfnisse und Erwartungen der Befragten.
- Flexibilität ermöglicht das Stellen spontaner oder spezifischer Fragen, die tiefere Erkenntnisse liefern.
- Besonders effektiv, um qualitative Daten und Expertenwissen zu sammeln.
- Nachteile:
- Können zeit- und ressourcenintensiv sein, sowohl bei der Vorbereitung als auch bei der Durchführung.
- Antworten der Teilnehmer sind subjektiv und können durch soziale Erwünschtheit beeinflusst sein.
- Begrenzter Kontext: Keine direkte Beobachtung der Nutzung oder des Umfelds.
Ethnographische Analyse
- Vorteile:
- Beobachtet Menschen in ihrer natürlichen Umgebung, was authentische und kontextbezogene Einblicke liefert.
- Macht unbewusste Verhaltensmuster und Barrieren sichtbar, die in Interviews nicht erfasst werden.
- Hilft, soziale und kulturelle Einflüsse auf die Nutzung von Produkten oder Systemen zu verstehen.
- Nachteile:
- Sehr zeitaufwändig, da längere Beobachtungsphasen erforderlich sind.
- Interpretation der Ergebnisse kann subjektiv und von der Perspektive des Forschers abhängig sein.
- Logistisch anspruchsvoll, da Zugang zu natürlichen Nutzungskontexten benötigt wird.
Fazit:
Interviews und ethnographische Analysen ergänzen sich hervorragend: Während Interviews gezielte Informationen liefern, deckt die ethnographische Analyse unbewusste Verhaltensweisen auf. Beide Methoden sind jedoch ressourcenintensiv und erfordern eine gute Planung, um aussagekräftige Ergebnisse zu erzielen.
- i) Interviews
- Vorteile:
- Direkte Kommunikation mit den Mitarbeitern
- Detaillierter Einblick in die individuellen Perspektiven und Anforderungen
- Mitarbeiter können beim Gespräch bei der Entwicklung einer Lösung direkte Vorschläge und Wünsche einbringen.
- Nachteile:
- Zeitintensiv, da man mit Mitarbeitern einzeln reden sollte und im Vorhinein sich Fragen ausdenken muss und im Nachhinein die Ausarbeitung der Antworten und Auswertung aller Interviews
- Mitarbeiter können bei einem direkten Gespräch eventuell nicht ihre komplette subjektive Wahrnehmung Preis geben, da sie sich eventuell nicht wohl fühlen zu sagen was sie zur Zeit stört um nicht inkompetent zu wirken oder weil sie einfach nicht die richtigen Worte finden.
- Man hat keine direkte Beobachtung wie der Mitarbeiter mit seiner Umgebung arbeitet, wie sein Workflow ist und muss dementsprechend seiner Antworten vertrauen, die Lückenhaft sein können und eventuell wo manche Schritte die Routinehaft aber wichtig sind vergessen werden zu erwähnen
- Vorteile:
- ii) Ethnographische Analyse
- Vorteile:
- Man beobachtet den Mitarbeiter in seiner Arbeitsumgebung und kann genau sehen, welche Arbeitsabläufe er hat ohne aktiv ihn am arbeiten zu hindern wie bei den Interviews.
- Beobachtet auch unbewusste Verhaltensmuster von Mitarbeitern, wie unbewusste Routinen etc. die bei Interviews eventuell vergessen werden könnten zu erwähnen
- Nachteile:
- Sehr zeitaufwändig, da man eine lange Beobachtung einer Arbeitsphase bei idealerweise mehreren Mitarbeitern durchführen muss.
- Beobachter muss selbst sehr gebildet in dem Beobachtungsgebiet sein, um zu erkennen was verbessert werden kann und Schlüsse zu ziehen im Gegensatz zu dem einfachen Fragenkatalog bei Interviews
- Kein Dialog mit Mitarbeiter, welcher als Anwender eventuell spezifische Wünsche oder Anforderungen an das Feature haben könnte
- Vorteile:
b) Welche Stakeholder würden Sie in diesem Szenario befragen, bzw. beobachten?
💡Stakeholder in der Softwaretechnik
- Definition: Stakeholder sind alle Personen oder Gruppen, die ein Interesse am Erfolg eines Softwareprojekts haben, z. B. Kunden, Entwickler oder Regulierungsbehörden.
- Warum wichtig?: Sie beeinflussen Anforderungen, Prioritäten und Ziele. Ein frühzeitiges Einbeziehen erhöht die Chance, dass das Produkt ihren Erwartungen entspricht.
- Beispiele:
- Interne Stakeholder: Entwickler, Tester, Projektmanager, UX-Designer.
- Externe Stakeholder: Kunden, Endbenutzer, Investoren, Regulierungsbehörden.
- Spezifische Kontexte:
- E-Commerce: Shop-Betreiber, Käufer, Lieferdienste.
- Banking-App: Bankkunden, Sicherheitsanalysten, Bankenaufsicht.
- ERP-System: Mitarbeiter, IT-Administratoren, Berater.
- Schlüsselprinzipien:
- Anforderungen klären und Konflikte ausgleichen.
- Klare Kommunikation und regelmäßiges Feedback.
- Fazit: Stakeholder sind essenziell für den Projekterfolg. Gute Zusammenarbeit mit ihnen bedeutet, ihre Bedürfnisse in das Projekt zu integrieren und gemeinsam Ziele zu erreichen.
Zu beobachtende Stakeholder:
- Mitarbeiter im Schnitt-Team
- Vorgesetzte des Schnitt Teams
- IT-Abteilung (Für Zugriffsrechte)
c) Schreiben Sie eine User Story die das System aus der Sicht einer Mitarbeiter:in des Schnitt-Teams beschreibt. In der Story sollen Sie schildern, wie die Mitarbeiter:in das System nutzt um einen Schnitt freigeben zu lassen.
- ”Nachdem ich Zugriff auf einen Rohnschnitt erhalten habe und das Video geschnitten habe, kann ich meine Version durch Drag n Drop oder per aussuchen in meiner Ordnerstruktur auf der internen Seite hochladen. Ich gebe hierbei den Schnittnamen, und weitere nötigen Informationen wie meinen Namen und meinen Vorgesetzten an. Ich werde nach Upload bestätigt, dass meine Anfrage zur Bestätigung an meinen Vorgestzten weitergeleitet wurde und sehe den Status dieser Anfrage auf der Seite unter dem Reiter ‘aktive Anfragen’. Falls es Probleme mit dem Absenden gab, bekomme ich eine Fehlermeldung, woran es lag.”
K Anwendungsfalldiagramm
Im Folgenden ist eine Systembeschreibung sowie ein unvollständiges Anwendungsfalldiagramm für eine “Paketstation” angegeben.
Es gibt zwei Arten von Benutzern: Kunden und Kuriere. Bei der Benutzung kann sich jeder die Hilfe anzeigen lassen. Kunden können Pakete abholen, welche direkt an die Paketstation adressiert wurden und dort von einem Kurier hinterlegt wurden. Zudem können Kunden auch Pakete einstellen, welche dann von einem Kurier abgeholt werden. Damit eine Abholung, egal ob von Kurier oder Kunde, oder ein Einstellen eines Pakets gelingt, muss man sich an der Paketstation authentifizieren. Dies geschieht entweder durch Einscannen der passenden Bescheinigung oder mittels Magnetstreifenkarte mit zugehörigem Passwort. Nach der Einstellung eines Paketes kann man sich dafür an der Paketstation einen Einlieferungsbeleg ausdrucken lassen. Ein Kurier kann sowohl Pakete vom Lieferfahrzeug in die Paketstation umladen als auch von Benutzern eingestellte Pakete abholen, um diese ins Lieferfahrzeug zu laden.
a) Identifizieren Sie die Aktoren in diesem Szenario.
• Primäre Aktoren: Kunde, Kurier • Sekundärer Akteur: Paketstation (optional)