feat: begründung profit

This commit is contained in:
Leon Etienne 2023-03-23 16:09:48 +01:00
parent 4cb4175a95
commit d1f6345306
Signed by: leonetienne
SSH Key Fingerprint: SHA256:hs2AZKjRTbd2kYg44u89rM19UT2LyBOpSbIShsdkkfg
5 changed files with 22 additions and 6 deletions

View File

@ -102,6 +102,8 @@ erforderlichen Geschäftsprozesse beschrieben.
\subsection{Teilnehmerregistrierung}
Ein essenzieller Teil des Jahresauswahlprobenwerkzeuges ist die Registrierung von Teilnehmern.
Dieses Modul repräsentiert den ersten Berührungspunkt der Winzer mit dem System.
Hiervon profitiert \ac{WM}, weil registrierte Benutzer der Webseite eine Grundvorausetzung
für die Onlineregistrierung von Weinen zu \acp{JAP} sind.
Dem Pflichtenheft ist zu entnehmen, dass es zwei Kategorien von Teilnehmerregistrierungen gibt:
\begin{enumerate}
\item Nutzer ist \ac{WM}-Mitglied
@ -217,6 +219,16 @@ Frontend-Nutzer der Nutzergruppe \enquote{Teilnehmer} benötigt. Dieser Nutzer h
Zugriff auf eine Auflistung aller zeitlich freigegebenen Jahresauswahlproben.
Soweit der Registrierungszeitraum dieser Jahresauswahlprobe den aktuellen Zeitpunkt miteinschließt,
wird eine \enquote{Jetzt Wein anmelden}-Schaltfläche angeboten.
Dadurch, dass Anmeldeformulare elektronisch und automatisiert verarbeitet werden, sinkt der Aufwand,
der seitens \ac{WM} für Anmeldungen gestemmt werden muss. Das ist so, da diese Formular nun nicht mehr von
Mitarbeitern bearbeitet werden müssen. Davon profitiert \ac{WM}, da diese Zeit nun anderweitig genutzt werden kann.
\begin{nicepic}
\includegraphics[width=0.9\textwidth]{images/ux-flow-teilnahme.png}
\captionof{figure}{UX-Flow: Weinanmeldung}
\caption*{Quelle: Eigene Darstellung}
\label{fig:uxflow-weinanmeldung}
\end{nicepic}
\subsubsection*{IT-Sicherheit}
Es ist wichtig zu erwähnen, dass solche Überprüfungen,
@ -224,8 +236,8 @@ wie das Aktivsein eines Registrierungszeitraumes einer \ac{JAP}, grundsätzlich
auf der betroffenen Webseite (in diesem Beispiel der Weinanmeldungsseite) durchgeführt werden.
Das Verstecken der zugehörigen
Schaltfläche im Frontend dient lediglich der User-Experience und stellt keine Sicherheitsvorkehrung dar.
Das ist essenziell, da eine URL, auch wenn für sie keine Schaltfläche existiert, dennoch aufgerufen werden könnte.
Da Jahresauswahlprobennummern (uids) fortlaufend generiert werden, ist es trivial URLs für Weinanmeldungen
Das ist essenziell, da eine URL, auch wenn für sie keine Schaltfläche existiert, dennoch aufgerufen werden kann.
Da Jahresauswahlprobennummern (\acp{UID}) fortlaufend sind, ist es trivial URLs für Weinanmeldungen
beliebiger Jahresauswahlproben herzuleiten. Insofern ist es von großer Wichtigkeit sicherzustellen,
dass der Server solche Anfragen grundsätzlich selbst prüft und gegebenenfalls verneint.
@ -250,7 +262,7 @@ SelectSingle-Formfelder werden durch Select-HTML-Tags abgebildet. Der TYPO3-Form
\enquote{Select} akzeptiert eine Liste an Auswahlmöglichkeiten und erstellt selbstständig Option-HTML-Tags
für diese.
Die Formfeldwerte von SelectSingle-Formfeldern sind die
UIDs des jeweils ausgewähltem Elementes \cite{bib:typo3-docs-fluid-form-viewhelpers}.
\acp{UID} des jeweils ausgewähltem Elementes \cite{bib:typo3-docs-fluid-form-viewhelpers}.
\\
\\
Aufgrund dessen, dass das Weinlagen-Drop-Down-Menü über 170 Einträge führt, wurde eine Suchmöglichkeit implementiert. Diese ist lediglich ein Textfeld, das bei jeder Eingabe allen Option-Tags der Weinlage,
@ -272,6 +284,7 @@ Damit sieht das Drop-Down-Menü aus wie eine Baumstruktur.
\\
\\
Diese Herangehensweise erzeugt schlüssigen und lesbaren Programmcode und lässt sich unkompliziert umsetzen.
Das senkt Entwicklungskosten und erhöht den Profit des Endkunden, da hierdurch weniger Zeit aufgewandt wird.
Rekursiv aufgerufene For-Schleifen, die sich selbst erneut für alle Elemente aufrufen,
können jedoch zu einem Performanzproblem führen \cite{bib:schwarzer-vorlesung-alg}.
Daher wird im Folgenden die Zeitkomplexität dieser Rekursionsfunktion betrachtet.
@ -320,6 +333,6 @@ Wert tragen, extrahiert werden. D.h., der Funktionsaufruf filtert alle Keys und
aller Formfeld-IDs der Checkboxen des SelectMultiples, die angehakt wurden.
Mit der eingebauten PHP-Funktion \enquote{array\_map} wenden wir nun eine Operation auf alle Schlüssel
der Liste an, die \enquote{strlen('formfeldname-')} Zeichen, von links ausgehend, von der Formfeld-ID
entfernt. Somit wird beispielsweise die Formfeld-ID \enquote{winekind-18} zu \enquote{18} transformiert. Übrig bleiben die UIDs aller angehakten Elemente $a$, in Form einer Zeichenkente.
entfernt. Somit wird beispielsweise die Formfeld-ID \enquote{winekind-18} zu \enquote{18} transformiert. Übrig bleiben die \acp{UID} aller angehakten Elemente $a$, in Form einer Zeichenkente.
Über die eingebaute PHP-Funktion \enquote{intval} ist es trivial diese zu Zahlen zu übersetzen,
wodurch die tatsächlichen Objekte aus der Datenbank angefragt werden können.

View File

@ -31,8 +31,11 @@
\acro{PO}[PO]{Product Owner}
\acroplural{PO}[POs]{Product Owner}
\acro{UID}[UID]{Uinique Identifier}
\acro{UID}[UID]{Unique Identifier}
\acroplural{UID}[UIDs]{Unique Identifier}
\acro{PID}[PID]{Parent Identifier}
\acroplural{PID}[PIDs]{Parent Identifier}
%
%
\end{acronym}

View File

@ -1 +1 @@
<mxfile host="Electron" modified="2023-02-23T17:11:48.640Z" agent="5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/20.8.16 Chrome/106.0.5249.199 Electron/21.4.0 Safari/537.36" etag="13i6K3uAkC3erjQaRiNs" version="20.8.16" type="device"><diagram name="Seite-1" id="OQF_a6zVYjKttAf1AJ-S">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</diagram></mxfile>
<mxfile host="Electron" modified="2023-03-23T14:49:19.151Z" agent="5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/20.8.16 Chrome/106.0.5249.199 Electron/21.4.0 Safari/537.36" etag="9qRytuOhA2HWE540xQnN" version="20.8.16" type="device"><diagram name="Seite-1" id="OQF_a6zVYjKttAf1AJ-S">5Vnbkto4EP0aHr0FNhh4HK5JFlLZIruT5WVL2MJWEJJXlrnM10ey5bu5BYiTylQxhVotu9V9+qhbNIzh9jBlwHPn1Ia4oTftQ8MYNXS912uL/1JwjAStbrcfSRyGbCVLBQv0BpWwqaQBsqGfU+SUYo68vNCihECL52SAMbrPq60pzr/VAw4sCRYWwGXpK7K5q/ald1P5O4gcN35zy1T724JYWe3Ed4FN9xmRMW4YQ0Ypj75tD0OIpfNiv0TrJidmE8MYJPyaBYsZ607n3ocFWAxhb/cneZ2ONcNQxvFjvGNoCweoIWXcpQ4lAI9T6YDRgNhQPrYpRqnOjFJPCFtC+BVyflTRBAGnQuTyLVazwmJ2/KLWh4N/5eCPTjwcHbKTo2Mysl9kTMVwham1iUQThLFSKPtEucmnAbPgGUfoCluAOZCfc5iKpvRS5g3K5VNIt1BYLBQYxICjXR5GQKHRSfTUUrEtcMwoeBQR7mee/EkKhIJKLL2n7IjzSu/kg3+bvvgSWRCPMltJRSGgbgCX8ukO4EC54TNEmEB3C5nMkMbQaAxMy+WwoZtYeH2wEnLTkd9eISLSH2QLsQ1JCaUpBiWg9i7icOGBMMR7wUR5vK0p4QqMLeHRgYOB7yvI+JzRTZLbUjtJVDm9FuAaUkxZ+FoDhn/JssyMYRp9wz6HwR1kHB7Ogiaebeaj1VfDfcpALVPJ3Az7dJunYZYJ9e2RbJci+TGMz53UkQlRBWFUEks2lK1rKEGMlH7vcrQxWEE8ANbGCQ2Nw0sogXfQ1klEXCSROFtVXG/jlJQEYhW6XvuC3c4SRScPveTd8TMihlSrCrB6AGeYJaQpJkA+L7MEIA4MCYL/3gTR+pEM8Y5M/+Pdzse+Nl/Z683m8zKYaq1SAH7iOiIb7hvqikK6fl+hERcQFyuN9r2FxV2MH5uZSUR5XPfN9Vpwod78AFwGfRD4e+Bij9EVJNpM5CgkgPhInOn3JeQDciQ5NWs4RN8PR/3BgQ7Acj7o2NPFYWb14hTJelQRmo12MaMlHJdznvl/QENpcjRpVsQsL/KtBHEEcLRaacbP+/uLNsEC2XpTEx/JpVFJFRAn8zaxn1XRAiGrsOuJpkrjMBD6c+qHXeRYjBFcQyaM9feQbd5g4JwzOT0YTm3iJCabVxwSGaZXFUGe5JXwAdgtQFdrlbGrV2HXfBa919smJoNfgN7719K7WSu990tkNAnbsSHGUBGFVk6rERAE7wP+Jm0K/No5vl1sa2uvg/Q6EqVOwLfjW7mLNyf9OgHfrjx91QmkWoyX5LIhntDmwN9U3E7sKKmsgSoOovCOQxZNd95hPCFbak+W/m+XLOaVyVLr4dAuN+ETyrYBBvLaDqx8y0XW5icAdLFO+qH0H/D5+OX4z3Jpf2pZ+OvyLzbrVNT4CxFr0QxNxsT2ArJ53EVF7xe4p2jrhQCV49OtCI/+rPCUb6RfNhzRx10v3xiUB7i4U7wKqtvFp9tc6afKXrHcC15cIic0P3S67Ct73qG6pxTJB8MfEoJ1pieMHntF85hXLB5WGCPPh5cBkk/EPFoeAYFiFfw0CIhh+oNldOWb/uxrjL8B</diagram></mxfile>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 KiB

After

Width:  |  Height:  |  Size: 30 KiB

BIN
main.pdf

Binary file not shown.