diff --git a/chapters/konzeption-entwicklung.tex b/chapters/konzeption-entwicklung.tex index b894111..fbcda84 100644 --- a/chapters/konzeption-entwicklung.tex +++ b/chapters/konzeption-entwicklung.tex @@ -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. diff --git a/dexes/acrodex.tex b/dexes/acrodex.tex index 24f6d60..0e488da 100644 --- a/dexes/acrodex.tex +++ b/dexes/acrodex.tex @@ -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} diff --git a/images/ux-flow-teilnahme.drawio b/images/ux-flow-teilnahme.drawio index 6afcb79..7a724ef 100644 --- a/images/ux-flow-teilnahme.drawio +++ b/images/ux-flow-teilnahme.drawio @@ -1 +1 @@ -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 \ No newline at end of file +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 \ No newline at end of file diff --git a/images/ux-flow-teilnahme.png b/images/ux-flow-teilnahme.png index 03737df..f41dcf0 100644 Binary files a/images/ux-flow-teilnahme.png and b/images/ux-flow-teilnahme.png differ diff --git a/main.pdf b/main.pdf index 0171fa3..79ad711 100644 Binary files a/main.pdf and b/main.pdf differ