216 lines
9.7 KiB
TeX
216 lines
9.7 KiB
TeX
|
\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}
|