%
% Chapter: Anforderungen
%

\chapter{Anforderungen}
\label{chap:anforderungen}
\section{Anforderungserfassung}
Obwohl bereits vor Beginn des Projektes einige Anforderungen bekannt sind,
müssen manche Details nachträglich in Erfahrung gebracht werden.
Hierfür wurde ein semistrukturiertes Interview mit dem Stakeholder durchgeführt.
Im Rahmen dieses Interviews wurden vorbereitete Fragen gestellt, dem Stakeholder aber auch die Möglichkeit
gegeben frei heraus zu sprechen und Wünsche zu äußern.
Notizen zu diesem Interview befinden sich im Anhang unter
\fullref{app:stakeholder-interview}.

\section{Ergebnisse}
Das Ergenis der Anforderungserfassung ist ein Lastenheft, das in constraints, funktionale und
nicht-funktioniale Anforderungen zu unterteilen ist.

\begin{table}[ht]
    \centering
    \renewcommand{\arraystretch}{1.5}
    \begin{tabular}{|p{14cm}|}
        \hline
        \textbf{Funktionale Anforderungen} \\ \hline
        Entwickler erhalten verschiedene Zugänge, definiert in einer YAML-Datei. \\ \hline
        Wildcard-Matching auf den \ac{1P}-Eintragstitel für zusammenhängende Einträge. \\ \hline
        \ac{1P}-Einträge sollen einzeln zuweisbar sein. \\ \hline
        Nicht im YAML gelistete Zugänge sollen bei Anwendung entfernt werden. \\ \hline
        Ansible Secrets müssen aus 1Password dereferenziert werden können. \\ \hline
        \textbf{Nicht-funktionale Anforderungen} \\ \hline
        Das System muss Berechtigungen von Entwicklern verwalten. \\ \hline
        Das System muss benutzerfreundlich sein. \\ \hline
        Das System darf nicht aufwändig zu pflegen sein. \\ \hline
        Die benötigte Zeit zur Ausführung der Anwendung soll nicht sehr lange sein. \\ \hline
        Das System muss robust gegenüber Misskonfigurationen sein, die zur Löschung
        der zugrunde liegenden \ac{1P}-Einträgen führen könnten.\\ \hline
        \textbf{Constraints} \\ \hline
        Nutzung von 1Password ist zwingend erforderlich. \\ \hline
    \end{tabular}
    \caption{Anforderungen}
\end{table}

