diff --git a/chapters/anforderungserfassung.tex b/chapters/anforderungserfassung.tex index f9dfc7f..2951acf 100644 --- a/chapters/anforderungserfassung.tex +++ b/chapters/anforderungserfassung.tex @@ -22,15 +22,15 @@ Wie oben erwähnt, sind bereits die Constraints und einige funktionale und nicht \hdashline Constraint & Nutzer-UI im Frontend\\ \hdashline - \ac{NFA} & \makecell[l]{Aus dem Papierformular soll ein\\Webformular werden}\\ + \ac{NFA} & \makecell[l]{Aus dem Papierformular soll ein\\Webformular werden.}\\ \hdashline - \ac{NFA} & \makecell[l]{Angaben zum Weingut des Weines\\sollen aus dem Accountdatensatz anstatt\\aus dem Webform kommen}\\ + \ac{NFA} & \makecell[l]{Angaben zum Weingut des Weines\\sollen aus dem Accountdatensatz anstatt\\aus dem Webform kommen.}\\ \hdashline - \ac{NFA} & \makecell[l]{Registrierte Weinteilnahmen\\bestehen aus einem Wein und einem Zustand\\(Ausstehend,Eingegangen,Abgelehnt).}\\ + \ac{NFA} & \makecell[l]{Registrierte Weinteilnahmen\\bestehen aus einem Wein und einem Zustand\\(ausstehend,eingegangen,abgelehnt).}\\ \hdashline - \ac{FA} & \makecell[l]{Beim Erstellen einer Weinteilnahme\\soll ein QR-Code als PDF generiert werden,\\der den Wein identifiziert}\\ + \ac{FA} & \makecell[l]{Beim Erstellen einer Weinteilnahme\\soll ein QR-Code als PDF generiert werden,\\der den Wein identifiziert.}\\ \hdashline - \ac{FA} & \makecell[l]{Durch scannen des QR-Codes auf dem\\mit einer Weinteilnahme erstellten PDFs soll\\dem Wein der Status \enquote{Eingegangen}\\ zugewiesen werden}\\ + \ac{FA} & \makecell[l]{Durch scannen des QR-Codes auf dem\\mit einer Weinteilnahme erstellten PDFs soll\\dem Wein der Status \enquote{Eingegangen}\\ zugewiesen werden.}\\ \hline \end{tabular} \caption{Initial bekannte Anforderungen} @@ -42,7 +42,7 @@ Um nähere Anforderungen zu ermitteln, werden die Befragungstechniken \enquote{I \section{Interview mit Product Owner} Zunächst wird ein Interview mit dem \ac{PO} geführt. Ziel dieses Interviews ist -es, konkrete Fragen zu Anforderungen zu beantworten und somit konkrete Anforderungen zu formulieren. +es, konkrete Fragen zu Anforderungen zu klären und somit konkrete Anforderungen zu formulieren. Aufgrund der individuellen Gesprächsführung wurde sich für ein \enquote{Teil-standardisiertes Interview} entschieden. Bei einem Teil-standardisiertem Interview gibt es vordefinierte Fragen, aber auch Freiraum für Improvisation und Persönlichkeit. @@ -83,7 +83,7 @@ Aus dem Interview mit dem \ac{PO} ergibt sich ein Pflichtenheft. Das Pflichtenheft und das Protokoll zum Interview sind im Anhang unter je \fullref{chap:anhang-pflichtenheft} und \fullref{chap:anhang-interview-protokoll} zu finden. -Ergebnis dieses Interviews sind zahlreiche Anforderungen und Ideen. Eine der wichtigsten Ideen stellt das +Ergebnisse dieses Interviews sind zahlreiche Anforderungen und Ideen. Eine der wichtigsten Ideen stellt das projektbezogene, wöchentliche Statusmeeting dar: Jeden Donnerstag soll um 9:30 Uhr der aktuelle Stand des Projektes vorgestellt, diskutiert und Rücksprache gehalten werden. @@ -97,7 +97,7 @@ Die wichtigsten Erkenntnisse des Interviews sind: \item[Trennung von Weinen nach Jahresauswahlproben im Frontend]\hfill\\ Da es $n$ Jahresauswahlproben gibt und Weine immer genau einer Jahresauswahlprobe zugeordnet sein müssen, macht es wenig Sinn alle Weine eines Nutzers auf einmal anzuzeigen. So ist es eine Anforderung, dass die - Weinansicht in zwei Ebenen unterteilt ist: Die erste Ebene soll eine Auflistung aller Jahresauswahlprobe sein + Weinansicht in zwei Ebenen unterteilt ist: Die erste Ebene soll eine Auflistung aller Jahresauswahlproben sein und in der Einzelansicht der Jahresauswahlproben sollen alle Weine aufgelistet sein, die dieser Jahresauswahlprobe angehören. Diese Weine sind ebenso anklickbar und führen zu einer Einzelansicht der Weine. \item[Genaue Nutzerführung für Teilnehmer]\hfill\\ @@ -111,8 +111,8 @@ Die wichtigsten Erkenntnisse des Interviews sind: Sonstige Aktionen sind im TYPO3-Backend mit nativen Werkzeugen erreichbar. \item[Verschiedene Web-Ansichten]\hfill \begin{itemize} - \item Jahreauswahlproben-ListView - \item Jahreauswahlproben-SingleView + \item Jahreauswahlproben-Listenansicht + \item Jahreauswahlproben-Detailansicht \item Wein-Registrierungsformular \item PDF-Url für Versandbriefe \item Registrierungsseite mit mehreren Schritten diff --git a/chapters/ergebnisse.tex b/chapters/ergebnisse.tex index f4152bf..c5cbbdd 100644 --- a/chapters/ergebnisse.tex +++ b/chapters/ergebnisse.tex @@ -102,4 +102,8 @@ Hierbei muss jedoch berücksichtigt werden, dass es sich hierbei um nur ein konk verallgemeinerbare Schlüsse gezogen werden können. Eine Forschungsempfehlung ist es daher, weitere Möglichkeiten zur Integration verschiedener Teilprozesse zu recherchieren. +%\paragraph*{Welche Endgeräte verwenden Weingüter und sind ihre Bedürfnisse bezüglich der Jahresauswahlproben?} +%Um zu beleuchten, welche Endgeräte Weingüter im Kontext der Weinanmeldung verwenden und was ihre individuellen Bedürfnisse +%im Kontext der Jahresauswahlproben sind, wurde versucht eine quantitative Studie in Form eines Online-Formulares abzuhalten. + %\paragraph*{Wie können unangemessen hohe Entwicklungskosten vermieden werden?} diff --git a/chapters/konzeption-entwicklung.tex b/chapters/konzeption-entwicklung.tex index 184900e..1164b01 100644 --- a/chapters/konzeption-entwicklung.tex +++ b/chapters/konzeption-entwicklung.tex @@ -14,7 +14,7 @@ TYPO3-Extension darstellt, lokal in den versionierten Ordner \enquote{packages} Dieses Verzeichnis wird als Quelle für Composer-Pakete in der Haupt-composer.json-Datei hinterlegt. Somit wird ein Composer-Paket nur für dieses Projekt bereitgestellt, -ohne den Aufwand zu haben, der üblicherweise mit dem Bereitstellen eines Paketes einhergeht. +ohne den Aufwand zu betreiben, der üblicherweise mit dem Bereitstellen eines Paketes einhergeht. \\ \\ Um das grundlegende Setup einer Extension effizient durchzuführen, wurde eine @@ -31,15 +31,15 @@ Das bedeutet, dass in dieser Phase Datenobjekte definiert und implementiert werd Ein Datenobjekt besteht nach firmeninternen Konventionen aus zumindest vier Komponenten: \begin{description} - \item{Datenbanktabelle} \\ + \item{\textbf{Datenbanktabelle}} \\ Die Datenbanktabelle persistiert Informationen. - \item{Domain Model} \\ + \item{\textbf{Domain Model}} \\ Das Domain Model (auch Model genannt) ist eine PHP-Klasse, die jeweils die Daten einer Zeile der Datenbanktabelle abbildet. - \item{Repository} \\ + \item\textbf{{Repository}} \\ Ein Repository ist eine PHP-Klasse, die die Schnittstelle zwischen der Datenbank und der Model-Klasse darstellt. - \item{\ac{TCA}} \\ + \item{\textbf{\ac{TCA}}} \\ Der \ac{TCA} des Modells definiert, wie diese Objekte im TYPO3-Backend dargestellt werden und bearbeitbar sind. \end{description} @@ -72,10 +72,10 @@ Rebsorten, Geschmack, Weineigenschaften und Qualität sollen eigene Datentypen anstatt einfacher Zeichenfolgen sein. Ziel dessen ist, dass sich Nutzer für einen vorgefertigten, nominalen Eintrag in einem Dropdown-Menü entscheiden müssen und diese Auswahlmöglichkeiten immer noch im TYPO3-Backend pflegbar sind. -Weinlagen sind im Brown-Field-Projekt bereits vorhanden, also sollen hierfür existierenden Daten +Weinlagen sind im Brown-Field-Projekt bereits vorhanden, also sollen hierfür existierende Daten eingebunden werden. -Je Wein sollen beliebig viele Weineigenschaften auswählbar sein, Wettbewerbskategorien, -Geschmacksrichtung, etc, jeweils nur ein Element. +Je Wein sollen beliebig viele Weineigenschaften auswählbar sein. Wettbewerbskategorien, +Geschmacksrichtung, etc, sind jeweils nur ein Element. Weitere Notizen zu diesem Gespräch sind im Anhang unter \fullref{chap:anhang-notizen-digitization} zu finden. \\ @@ -130,7 +130,7 @@ anbei in \fullref{chap:anhang-anmeldeformular}. \label{fig:uxflow-registrierung} \end{nicepic} -Da das Brown-Field-Projekt bereits Accountlogins und -Registrierungen implementiert und nutzt, +Da das Brown-Field-Projekt bereits Accountlogins und -registrierungen implementiert und nutzt, werden auf diese Lösungen zurückgegriffen, um einen einheitlichen Workflow beizubehalten. Accountregistrierungen werden über den \enquote{femanager} \cite{bib:typo3-docs-femanager} realisiert, während Logins via TYPO3s nativem @@ -205,8 +205,8 @@ Es gilt also, dass ein MasterRecord $a$ die Teilnehmer\ac{UID} von einem Teilneh $b$ die MasterRecord\ac{UID} von $a$ hält. Die Problematik hierbei ist, dass diese \acp{UID} erst nach dem Persistieren in der Datenbank bekannt sind, da diese Werte erst im Zuge der Persistierung erstellt werden \cite{bib:w3schools-auto-increment}. -Die Lösung hierfür ist, beide Elemente zu erstellen und zu persistieren, erst danach ihre \acp{UID} gegenseitig -bekannt machen um sie danach erneut zu persistieren. +Die Lösung hierfür ist, beide Elemente zu erstellen und zu persistieren und erst danach ihre \acp{UID} gegenseitig +bekannt zu machen um sie anschließend erneut zu persistieren. \subsection{Weinregistrierung} Ein Basismerkmal des Jahresauswahlprobenwerkzeuges ist die Möglichkeit, Weine zu Jahresauswahlproben @@ -218,8 +218,8 @@ 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. +der seitens \ac{WM} für Anmeldungen geleistet 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 für andere Aufgaben genutzt werden kann. \begin{nicepic} \includegraphics[width=0.9\textwidth]{images/ux-flow-teilnahme.png} @@ -292,7 +292,7 @@ Das ist so, da das in der Rekursion weitergereichte Problem nicht kleiner wird, sondern gleich groß bleibt. Das verletzt die Bedingung $b>1$ des Master-Theorems, definiert als $T(n) = a*T(\frac{n}{b})+f(n)$ \cite{bib:schwarzer-vorlesung-alg}. -Der Algortihmus besteht aus $m, m \in \mathbb{N}$ verschachtelten For-Schleifen +Der Algorithmus besteht aus $m, m \in \mathbb{N}$ verschachtelten For-Schleifen gleicher Länge. Somit ist die Zeitkomplexität $O(n^m)$. Normiert dargestellt beträgt die Zeitkomplexität $O(n^2)$. Das lässt sich experimentell bestätigen. @@ -333,14 +333,14 @@ Formfeld-IDs des Formfeldparameter-Arrays heraus, die den Wert \enquote{