From 7fcdc1c788725f866de71fc9dfd8c4d1cb132b57 Mon Sep 17 00:00:00 2001 From: Orangerot Date: Fri, 24 May 2024 17:42:08 +0200 Subject: Initial commit --- 00-pflichtenheft/sections/produktfunktionen.tex | 215 ++++++++++++++++++++++++ 1 file changed, 215 insertions(+) create mode 100644 00-pflichtenheft/sections/produktfunktionen.tex (limited to '00-pflichtenheft/sections/produktfunktionen.tex') diff --git a/00-pflichtenheft/sections/produktfunktionen.tex b/00-pflichtenheft/sections/produktfunktionen.tex new file mode 100644 index 0000000..12c5b56 --- /dev/null +++ b/00-pflichtenheft/sections/produktfunktionen.tex @@ -0,0 +1,215 @@ +\section{ Produktfunktionen } + +\subsection{ Registrierung } +\label{f:registrierung} + +\begin{description} + \item[Anwendungsfall:] Der Nutzer möchte sich registrieren. + \item[Anforderungen:] \ref{r:login} + \item[Test:] \ref{t:register}, \ref{t:pw-req} + \item[Ziel:] Der Nutzer hat einen funktionierenden Account. + \item[Vorbedingung:] - + \item[Nachbedingung Erfolg:] Erfolgreiche Registrierung. + \item[Nachbedingung Fehlschlag:] Registrierung/Verbindungsaufbau zum Server schlägt + fehl. + \item[Akteure:] Nutzer, Server + \item[Auslösendes Ereignis:] Drücken des \enquote{Registrieren}-Buttons. + \item[Beschreibung:] \mbox{} + \begin{enumerate} + \item Öffnen der Webseite. + \item Drücken auf \enquote{Registrieren}-Option. + \item E-Mail-Adresse und zwei Mal neues Passwort eingeben. + \item \enquote{Registrieren}-Button drücken. + \item Bestätigungs-E-Mail wird an angegebene E-Mail-Adresse gesendet. + \item Nutzer öffnet Bestätigungs-Link. + \item Nutzer wird auf Login-Seite weitergeleitet. Der Bestätigungs-Link verfällt. + \end{enumerate} + \item[Erweiterung:] Wenn der Link nach 24 Stunden noch nicht angeklickt wurde, verfällt \\ + dieser. +\end{description} + +\newpage + +\subsection{ Anmelden } +\label{f:anmelden} + +\begin{description} + \item[Anwendungsfall:] Der Nutzer möchte sich anmelden + \item[Anforderungen:] \ref{r:login}, \ref{r:login-provider} + \item[Test:] \ref{t:login} + \item[Ziel:] Der Nutzer ist eingeloggt. + \item[Vorbedingung:] Der Nutzer hat einen funktionierenden Account. + \item[Nachbedingung Erfolg:] Erfolgreiche Anmeldung + \item[Nachbedingung Fehlschlag:] Anmeldung/Verbindungsaufbau zum Server schlägt + fehl. + \item[Akteure:] Nutzer, Server + \item[Auslösendes Ereignis:] Drücken des \enquote{Anmelden}-Buttons. + \item[Beschreibung:] \mbox{} + \begin{enumerate} + \item Öffnen der Webseite. + \item E-Mail-Adresse und Passwort eingeben. + \item Option \enquote{Passwort merken} aus-/abwählen. + \item \enquote{Anmelden}-Button drücken. + \item Nutzer wird zu seinem \Gls{dashboard} weitergeleitet. + \end{enumerate} + \item[Erweiterung:] Wenn die Option \enquote{Passwort merken} aktiviert ist, bleibt der Nutzer \\ + sitzungsübergreifend in seinem Account eingeloggt. + \item[Alternativen:] \mbox{} + \begin{enumerate} + \item Falls sich der Browser einen vorherigen Login gemerkt hat, + wird der Nutzer beim Aufruf der Seite direkt zu seinem + \Gls{dashboard} weitergeleitet. + \item Der Nutzer meldet sich mit einem \Gls{oauth} Dienst an. + \end{enumerate} +\end{description} + +\newpage + +\subsection{ Passwort vergessen } +\label{f:pwreset} + +\begin{description} + \item[Anwendungsfall:] Der Nutzer hat sein Passwort vergessen und möchte es zurücksetzen. + \item[Anforderungen:] \ref{r:reset-pw} + \item[Test:] \ref{t:pw-req}, \ref{t:forgot-pw} + \item[Ziel:] Der Nutzer hat ein neues Passwort. + \item[Vorbedingung:] Der Nutzer hat einen bestehenden Account und Zugriff auf seine E-Mail-Adresse + \item[Nachbedingung Erfolg:] Erfolgreiche Passwort Zurücksetzung. + \item[Nachbedingung Fehlschlag:] Zurücksetzung des Passworts / Verbindungsaufbau zum Server + schlägt fehl. + \item[Akteure:] Nutzer, Server + \item[Auslösendes Ereignis:] Drücken der \enquote{Passwort-Vergessen} Option auf der Login-Seite. + \item[Beschreibung:] \mbox{} + \begin{enumerate} + \item Öffnen der Webseite. + \item \enquote{Passwort-Vergessen} Option auswählen. + \item Weiterleitung auf \enquote{Passwort zurücksetzen} Seite. + \item E-Mail-Adresse des Accounts eingeben. Falls kein Account mit dieser + Adresse existiert, wird dieser Schritt wiederholt. + \item Bestätigungs-E-Mail mit Zurücksetzungs-Link wird an die angegebene + E-Mail-Adresse gesendet. + \item Der Nutzer öffnet den Zurücksetzungs-Link. + \item Ein Neues Passwort zweimal eingeben. + \item Auf den \enquote{Passwort-Zurücksetzen}-Button klicken. + \item Weiterleitung auf Login-Seite. + \end{enumerate} +\end{description} + +\newpage + +\subsection{ Passwort ändern } +\label{f:pwchange} + +\begin{description} + \item[Anwendungsfall:] Der Nutzer möchte sein Passwort ändern. + \item[Anforderungen:] \ref{r:reset-pw} + \item[Test:] \ref{t:pw-req}, \ref{t:change-pw} + \item[Ziel:] Der Nutzer hat ein neues Passwort. + \item[Vorbedingung:] Der Nutzer ist in seinem Account angemeldet. + \item[Nachbedingung Erfolg:] Erfolgreiche Passwort Änderung. + \item[Nachbedingung Fehlschlag:] Änderung des Passworts / Verbindungsaufbau zum Server + schlägt fehl. + \item[Akteure:] Nutzer, Server + \item[Auslösendes Ereignis:] Betätigen des \enquote{Passwort-Ändern}-Buttons. + \item[Beschreibung:] \mbox{} + \begin{enumerate} + \item Öffnen der Webseite. + \item Anmelden + \item Auf Account-Einstellungen gehen. + \item Bisheriges Passwort und zweimal neues Passwort in dafür vorgesehene Felder + eintippen. + \item \enquote{Passwort-Ändern}-Button betätigen. + \end{enumerate} +\end{description} + +\newpage + +\subsection{ Hörfortschritt synchronisieren } +\label{f:hörfortschrittSync} + +\begin{description} + \item[Anwendungsfall:] Der Nutzer hört mit einem verknüpften + \Gls{podcatcher} eine \Gls{episode} bis zu + einem gewissen Zeitpunkt. + Der Hörfortschritt soll mit dem Server und allen anderen Geräten synchronisiert werden. + \item[Anforderungen:] \ref{r:sync}, \ref{r:store}, \ref{r:persistent-storage}, \ref{r:gpodder} + \item[Test:] \ref{t:sync-episode} + \item[Ziel:] Der Hörfortschritt wird auf den Server und alle verknüpften Geräte übertragen. + \item[Vorbedingung:] Der Nutzer hat seinen Account mit einem \Gls{podcatcher} verknüpft und verwendet + diesen im Folgenden. + \item[Nachbedingung Erfolg:] Erfolgreiche Synchronisation des Hörfortschritts. + \item[Nachbedingung Fehlschlag:] Verbindungsaufbau zum Server schlägt + fehl. +\item[Akteure:] Nutzer, \Gls{podcatcher}, Server +\item[Auslösendes Ereignis:] Anhören einer \Gls{episode} bis zu einem gewissen Zeitpunkt. + \item[Beschreibung:] \mbox{} + \begin{enumerate} + \item Der Nutzer hört innerhalb eines \Gls{podcatcher}s eine + \Gls{episode}. + \item Der Hörfortschritt wird dem Server über die \Gls{gpodder} mitgeteilt. + \item Der Server aktualisiert den Hörfortschritt im entsprechenden Datensatz + des Nutzeraccounts zur \Gls{episode}. + \end{enumerate} + \item[Erweiterung:] Wenn sich ein weiterer \Gls{podcatcher} aktualisiert, ruft dieser + die neuen Hörfortschritte des Nutzers vom Server über die \Gls{gpodder} ab und wendet diese an. +\end{description} + +\newpage + +\subsection{ Abonnements synchronisieren} +\label{f:abonnentsSync} + +\begin{description} + \item[Anwendungsfall:] Der Nutzer fügt auf einem verknüpften + \Gls{podcatcher} ein \Gls{abo} hinzu bzw. löscht ein \Gls{abo}. + Dieses soll mit dem Server und allen anderen Geräten synchronisiert werden. + \item[Anforderungen:] \ref{r:sync}, \ref{r:store}, \ref{r:persistent-storage}, \ref{r:gpodder} + \item[Test:] \ref{t:sync-sub}, \ref{t:sync-unsub} + \item[Ziel:] Das (De-)\Gls{abo} wird auf den Server und alle verknüpften Geräte übertragen. + \item[Vorbedingung:] Der Nutzer hat seinen Account mit einem \Gls{podcatcher} verknüpft und verwendet + diesen im Folgenden. +\item[Nachbedingung Erfolg:] Erfolgreiche Synchronisation des \Glspl{abo}. + \item[Nachbedingung Fehlschlag:] Verbindungsaufbau zum Server schlägt + fehl. +\item[Akteure:] Nutzer, \Gls{podcatcher}, Server +\item[Auslösendes Ereignis:] (De-)Abonnieren eines \Glspl{podcast} innerhalb + eines \Gls{podcatcher}. + \item[Beschreibung:] \mbox{} + \begin{enumerate} + \item Der Nutzer (de-)abonniert innerhalb eines \Gls{podcatcher}s einen + \Gls{podcast}. + \item Die Änderung wird dem Server über die \Gls{gpodder} mitgeteilt. + \item Der Server fügt das neue \Gls{abo} persistent zum Datensatz des Nutzers + auf dem Server hinzu / löscht das \Gls{abo} vom Datensatz auf + dem Server. + \end{enumerate} + \item[Erweiterung:] Wenn sich ein weiterer \Gls{podcatcher} aktualisiert, holt dieser + die aktuelle Liste der \Glspl{abo} des Nutzers vom Server über die + \Gls{gpodder} (Client Pull). +\end{description} + +\newpage + +\subsection{ Account löschen} +\label{f:deleteAccount} + +\begin{description} + \item[Anwendungsfall:] Der Nutzer möchte seinen Account löschen. + \item[Anforderungen:] \ref{r:delete-acc} + \item[Test:] \ref{t:delete-acc} + \item[Ziel:] Der Account und alle Nutzerdaten werden vom Server gelöscht. + \item[Vorbedingung:] Der Nutzer ist angemeldet und befindet sich auf der Einstellungsseite. + \item[Nachbedingung Erfolg:] Der Account wurde gelöscht. + \item[Nachbedingung Fehlschlag:] Verbindungsaufbau zum Server schlägt + fehl. + \item[Akteure:] Nutzer, Server + \item[Auslösendes Ereignis:] Der Nutzer drückt auf den \enquote{Account löschen} Knopf. + \item[Beschreibung:] \mbox{} + \begin{enumerate} + \item Der Nutzer drückt auf den \enquote{Account löschen}-Knopf. + \item Der Nutzer wird dazu aufgefordert sein Passwort als Bestätigung der Löschung + einzugeben. + \item Der Server löscht den Account und alle dazugehörigen Daten. + \item Der Nutzer wird auf die Login-Seite weitergeleitet. + \end{enumerate} +\end{description} -- cgit v1.2.3