diff --git a/chapters/anforderungserfassung.tex b/chapters/anforderungserfassung.tex index 2ac5d9b..aff2df8 100644 --- a/chapters/anforderungserfassung.tex +++ b/chapters/anforderungserfassung.tex @@ -93,7 +93,8 @@ Weitere wichtigste Erkenntnisse des Interviews sind: \item[Endgerät für Scanning und Scanneranwendung]\hfill\\ Gescannt wird von Mobiltelefonen mit einer QR-Code-App wie QRBot. QRBot ermöglicht es Nutzern für jeden aufgerufenen QR-Code eine Vorlagen-URL aufzurufen, - um den gescannten Wert als Teil der URl, z.B. als Get-Parameter, zu übergeben \cite{bib:qrbot}. + um den gescannten Wert als Teil der URL zu übergeben \cite{bib:qrbot}. + \clearpage Das ist prädestiniert für API-ähnliche Webseitenaufrufe, um Weine einzuchecken. \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 diff --git a/chapters/einleitung.tex b/chapters/einleitung.tex index ad0dcea..318eb84 100644 --- a/chapters/einleitung.tex +++ b/chapters/einleitung.tex @@ -2,8 +2,8 @@ \label{chap:einleitung} Der Regionalverband für Weine \ac{WM} lässt Weine in organisierten Weinproben, sog. Jahresauswahlproben, von Juroren bewerten. Teilnehmende Weingüter registrieren ihre Weine in verschiedenen Kategorien und schicken diese auf dem Postweg ein. -Dieser Prozess bildet sich in Form ausgedruckter Formulare, die von Hand ausgefüllt und von Hand in eine -Excel-Tabelle übertragen werden, ab. +Dieser Prozess bildet sich in Form ausgedruckter Formulare ab, die von Hand ausgefüllt und von Hand in eine +Excel-Tabelle übertragen werden. \section{Problemstellung} \label{chap:einleitung-problemstellung} diff --git a/chapters/ergebnisse.tex b/chapters/ergebnisse.tex index 6f1823d..8f71b6e 100644 --- a/chapters/ergebnisse.tex +++ b/chapters/ergebnisse.tex @@ -26,7 +26,7 @@ Diese Antworten zeigen auf, wie die Anmeldung und Zustellung von Weinen für Wei für Weine in der Weinregion Mosel effizient und profitabel durch eine TYPO3-Erweiterung realisiert werden können. \clearpage -\paragraph*{Nach welcher Methodik sollten Digitalisierungsprojekte im Maßstab des behandelten Projektes entwickelt werden, um effizient und profitabel zu sein?} +\subsection*{Nach welcher Methodik sollten Digitalisierungsprojekte im Maßstab des behandelten Projektes entwickelt werden, um effizient und profitabel zu sein?} In der Literaturrecherche zur Wahl von Methodiken in der Softwareentwicklung und Digitalisierung im Kontext der effizienten und profitablen Umsetzung des hier behandelten Projektes stellten sich komplexe und aufwändige Modelle als @@ -34,16 +34,16 @@ ungeeignet heraus. Vielmehr beeindruckten simple, agile Modelle durch ihren geri der bei kleinen Projekten, wie der hier beleuchteten Aufgabenstellung, unabdinglich ist, um eine effiziente und profitable Umsetzung gewährleisten zu können. -\paragraph*{Welche Anforderungen sind an die TYPO3-Erweiterung gestellt?} +\subsection*{Welche Anforderungen sind an die TYPO3-Erweiterung gestellt?} Um ein Pflichtenheft für die hier beleuchtete TYPO3-Erweiterung zu erarbeiten, wurde eine Anforderungsanalyse in Form eines Interviews mit dem \ac{PO} durchgeführt. Auch wurde eine quantitative Studie in Form eines Online-Fragebogens bezüglich der Bedürfnisse der Teilnehmer angestrengt, die ohne Ergebnisse verblieb. Dieses Pflichtenheft zeigt unter anderem auf, dass Mitglieder sowie Nichtmitglieder Teilnehmer sein können, wie die Nutzerführung aussieht, welche Werkzeuge \ac{WM}-Mitarbeitern zur Verfügung stehen und wie verschiedene Schnittstellen aussehen. Auch ist eine wichtige Erkenntnis, dass regelmäßige Statusmeetings mit dem \ac{PO} durchgeführt werden sollten. -Das vollständige Ergebnis dieser Anforderungsanalyse liegt im Anhang anbei, unter fullref{chap:anhang-pflichtenheft}. +Das vollständige Ergebnis dieser Anforderungsanalyse liegt im Anhang anbei, unter \fullref{chap:anhang-pflichtenheft}. -\paragraph*{Welche QR-Code-Bibliothek ist für das behandelte Projekt gut geeignet?} +\subsection*{Welche QR-Code-Bibliothek ist für das behandelte Projekt gut geeignet?} Um die Anmeldung und Zustellung von Weinen digital umsetzen zu können, ist lt. Anforderungen ein QR-Code-Generator notwendig. Generell sollten erwägte Bibliotheken aktiv gepflegt, einen gewissen Grad an Funktionalität aufweisen und für den angedachten Workflow geeignet sein. Das ist wichtig, damit sich dieser @@ -51,17 +51,17 @@ effizient, schnell und somit kostengünstig integrieren lässt. Vergleiche zwischen sechs QR-Code-Bibliotheken legen nahe, dass \textit{chillerlan/php-qrcode} die beste Eignung der betrachteten QR-Code-Generatoren aufweist. -\paragraph*{Wie wird sichergestellt, dass sich der digitalisierte Teilprozess der Weinanmeldung und -zustellung nahtlos mit dem verbleibenden Prozess integriert?} +\subsection*{Wie wird sichergestellt, dass sich der digitalisierte Teilprozess der Weinanmeldung und -zustellung nahtlos mit dem verbleibenden Prozess integriert?} Es ist essenziell, die Schnittstelle zwischen dem digitalisierten Teilprozess und dem verbleibenden analogen Teilprozess zu schützen. Das wird sichergestellt, indem die Ausgabe des digitalisierten Teilprozesses der Ausgabe des vorherigen, analogen Teilprozesses gleicht. Ist das gegeben, kann der neue, digitale Teilprozess effizient in den Geschäftsprozess der Jahresauswahlproben integriert werden, dies weil die darauf aufbauenden Schritte mit der Ausgabe der digitalisierten Schritte kompatibel sind. -%\paragraph*{Wie können unangemessen hohe Entwicklungskosten vermieden werden?} +%\subsection*{Wie können unangemessen hohe Entwicklungskosten vermieden werden?} %Vermeidbarer Aufwand in der Entwicklung ohne ausreichende Vorteile (Kosten-Nutzen-Rechnung) fällt zulasten der Effizienz. \section{Diskussion} -\paragraph*{Nach welcher Methodik sollten Digitalisierungsprojekte im Maßstab des behandelten Projektes entwickelt werden, um effizient und profitabel zu sein?} +\subsection*{Nach welcher Methodik sollten Digitalisierungsprojekte im Maßstab des behandelten Projektes entwickelt werden, um effizient und profitabel zu sein?} Um eine Entwicklungsmethodik für die Umsetzung einer wie in der Problemstellung beschriebenen TYPO3-Erweiterung auszuwählen, wurde eine Literaturrecherche durchgeführt. Diese Literaturrecherche lässt darauf schließen, dass sich simple, agile Methodiken, ohne nennenswerten Mehraufwand, @@ -78,7 +78,7 @@ Bei Einbezug anderer Projekttypen und -beschaffenheiten weichen die geeigneten E Eine Empfehlung für weitere Forschung ist es daher, ähnliche Literaturrecherchen bezüglich angemessener Entwicklungsmethodiken für abweichende Projekttypen und -beschaffenheiten durchzuführen. -\paragraph*{Welche Anforderungen sind an die TYPO3-Erweiterung gestellt?} +\subsection*{Welche Anforderungen sind an die TYPO3-Erweiterung gestellt?} Um detaillierte Anforderungen an die TYPO3-Erweiterung in Erfahrung zu bringen, wurde eine Anforderungsanalyse durch verschiedene Befragunstechniken durchgeführt. Die verwendeten Befragunstechniken sind \enquote{Interview} und \enquote{Online-Fragebogen}. Es ist wichtig zu erwähnen, dass der Online-Fragebogen unbeantwortet blieb. @@ -90,10 +90,10 @@ Da diese Anforderungsanalyse lediglich die Anmeldung und Zustellung von Weinen b des Jahresauswahlprobenwerkzeuges Forschungen bezüglich darauf aufbauender Anforderungen durchzuführen. -\paragraph*{Welche QR-Code-Bibliothek ist für das behandelte Projekt gut geeignet?} +\subsection*{Welche QR-Code-Bibliothek ist für das behandelte Projekt gut geeignet?} Im Interesse eine Bibliothek zur Generierung von QR-Codes für die Umsetzung dieses Softwareprojektes zu finden, die sich effizient, schnell und somit kostengünstig integrieren lässt, -wurden sechs QR-Code-Bibliotheken einander gegenübergestellt und in drei verschiedenen Bewertungskategorien verglichen. +wurden sechs QR-Code-Biblio\-theken einander gegenübergestellt und in drei verschiedenen Bewertungskategorien verglichen. Diese Bewertungskategorien sind \enquote{Funktionalität}, \enquote{Gepflegtheit} und \enquote{Workflow-Eignung}. Jede dieser Kategorien wurde mit null bis zehn Punkten bewertet. Jede Bibliothek konnte maximal 30 Punkte erhalten. Die Bewertung erfolgte nach subjektiver Einschätzung des Autors, basierend auf Faktoren wie dem Zustand der Github-Seite, @@ -109,20 +109,20 @@ Der Autor empfielt ähnliche Vergleiche für andere Arbeitsumgebungen durchzufü Projektkontexte angemessen sind. Ebenso nimmt dieser Vergleich nur sechs QR-Code-Bibliotheken in Betracht. Eine weitere Forschungsempfehlung ist es daher, weitere Vergleiche mit mehr Bibliotheken durchzuführen. -\paragraph*{Wie wird sichergestellt, dass sich der digitalisierte Teilprozess der Weinanmeldung und -zustellung nahtlos mit dem verbleibenden Prozess integriert?} +\subsection*{Wie wird sichergestellt, dass sich der digitalisierte Teilprozess der Weinanmeldung und -zustellung nahtlos mit dem verbleibenden Prozess integriert?} Im Zuge der praktischen Umsetzung der in dieser Forschungsfrage beschriebenen TYPO3-Erweiterung zeigte sich das Problem der Integration der digitalisierten Weinanmeldung und -zustellung in den restlichen, von dieser Ausarbeitung unberührten Geschäftsprozess der Jahresauswahlprobe. Diese Umsetzung zeigt auf, dass es für eine nahtlose Integration in den existierenden Geschäftsprozess unabdinglich ist, dass die Ausgabe des digitalisierten Teilprozesses der Ausgabe des ersetzten, manuellen Teilprozesses gleicht. Dieser Aspekt wurde zuvor nicht bedacht. Das könnte daran liegen, dass diese Schnittstelle nicht der primäre und auch nicht -der sekundäre Fokus der Umsetzung ist. Sie wird nicht benötigt, damit das umgesetzte Produkt intrinsisch funktioniert, +der sekundäre Fokus in der Umsetzung ist. Sie wird nicht benötigt, damit das umgesetzte Produkt intrinsisch funktioniert, ist aber dennoch unverzichtlich für eine reibungslose, praktische Verwendung. Hierbei muss jedoch berücksichtigt werden, dass es sich um ein einzelnes, konkretes Projekt handelt und sich aus diesem Grund nicht unbedingt allgemeingültige Schlüsse ableiten lassen. Eine Forschungsempfehlung ist es daher, weitere Möglichkeiten zur Integration verschiedener Teilprozesse zu recherchieren und zu evaluieren. -%\paragraph*{Welche Endgeräte verwenden Weingüter und was sind ihre Bedürfnisse bezüglich der Jahresauswahlproben?} +%\subsection*{Welche Endgeräte verwenden Weingüter und was 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. %Dieses Online-Formular wurde über den Zeitraum eines Monats angeboten und mit der Bitte um Weiterleitung an Weingüter an \ac{WM} @@ -133,4 +133,4 @@ zur Integration verschiedener Teilprozesse zu recherchieren und zu evaluieren. %Es könnte auch sein, dass die Stakeholdergruppe schlicht kein Interesse an einer Teilnahme hatte. %Daher wird die Forschungsempfehlung ausgesprochen, dieselbe Studie erneut in einer Art und Weise durchzuführen, die eine regere Teilnahme begünstigt. -%\paragraph*{Wie können unangemessen hohe Entwicklungskosten vermieden werden?} +%\subsection*{Wie können unangemessen hohe Entwicklungskosten vermieden werden?} diff --git a/chapters/fazit.tex b/chapters/fazit.tex index ab98d0b..d672607 100644 --- a/chapters/fazit.tex +++ b/chapters/fazit.tex @@ -17,7 +17,7 @@ Es wurde begründet, dass die Durchführung einer Anforderungsanalyse wichtig is \\ Durch diese Forschung wurde somit erwiesen, dass die Anmeldung und Zustellung von Weinen für Weinproben des Regionalverbunds für Weine in der Weinregion Mosel effizient und profitabel durch eine TYPO3-Erweiterung realisiert werden kann, indem für die technische -Umsetzung \enquote{extreme-programming}-Entwicklungsmethodiken herangezogen werden, durch eine Anforderungsanalyse ein Pflichtenheft ausarbeitet wird, +Umsetzung \enquote{extreme-programming}-Entwicklungsmethodiken herangezogen werden, durch eine Anforderungsanalyse ein Pflichtenheft ausgearbeitet wird, \break\textit{chillerlan/php-qrcode} als QR-Code-Bibliothek verwendet wird und die Schnittstelle zu den verbleibenden Teilprozessen geschützt wird. \section{Ausblick} diff --git a/chapters/konzeption-entwicklung.tex b/chapters/konzeption-entwicklung.tex index cb6c545..3134d2d 100644 --- a/chapters/konzeption-entwicklung.tex +++ b/chapters/konzeption-entwicklung.tex @@ -2,16 +2,18 @@ \label{chap:umsetzung} Infolge der Anforderungsanalyse befasst sich das Kapitel \enquote{Konzeption und Umsetzung} mit der Implementation der Anforderungen in dem -Brown-Field Projekt \cite{bib:schwarzer-vorlesung-swa} in Form einer TYPO3-Erweiterung. +Brown-Field Projekt \cite{bib:schwarzer-vorlesung-swa} in Form einer TYPO3-\break{}Erweiterung. Es ist anzumerken, dass das aus \fullref{chap:anforderungserfassung} hervorgehende Pflichtenheft im Rahmen geplanter und opportunistischer Gespräche mit dem \ac{PO} geringfügige Änderungen erfahren wird. \section{Setup der TYPO3-Erweiterung} -TYPO3-Erweiterungen werden via Composer installiert \break\cite{bib:typo3-docs-managing-extensions}. +TYPO3-Erweiterungen werden via Composer installiert +\break\cite{bib:typo3-docs-managing-extensions}. Um eine TYPO3-Erweiterung zu erstellen, muss also ein Composer-Paket erstellt werden. Um vermeidbare Komplexität zu verhindern, wird das Composer-Paket, welches die hier betrachtete TYPO3-Erweiterung darstellt, lokal in den versionierten Ordner \enquote{packages} gelegt. -Dieses Verzeichnis wird als Quelle für Composer-Pakete in der +Dieses Verzeichnis wird als Quelle für +\break{}Composer-Pakete in der Haupt-composer.json-Datei hinterlegt. Somit wird ein Composer-Paket nur für dieses Projekt bereitgestellt, ohne den Aufwand zu betreiben, der üblicherweise mit dem Bereitstellen eines Paketes einhergeht. @@ -45,12 +47,12 @@ vier Komponenten: \end{description} \cite{bib:typo3-docs-extbase-reference}. -Im Folgenden wurde ein semiformales Diagramm der Objekte und ihren Relationen +Im Folgenden wird ein semiformales Diagramm der Objekte und ihren Relationen angefertigt und in Rücksprache mit dem \ac{PO} finalisiert. \begin{nicepic} \includegraphics[width=1\textwidth]{images/objektrelationen-weinlandmosel-einlieferungswerkzeug.png} - \captionof{figure}{Objektrelationen: Weinland Mosel Einlieferungswerkzeug, Quelle: Eigene Darstellung} + \captionof{figure}{Objektrelationen: Weinland Mosel Jahresauswahlprobenwerkzeug, Quelle: Eigene Darstellung} \label{fig:objektrelationen} \end{nicepic} @@ -58,7 +60,7 @@ Nachdem in Erfahrung gebracht wird, welche konkreten Datenobjekte benötigt werd werden Attribute dieser Objekte dem Pflichtenheft entnommen. Diese werden in einem formalen Klassendiagramm festgehalten und in Rücksprache mit dem \ac{PO} weiter bis zu festen Datentypen und Auswahlmöglichkeiten konkretisiert. -Beispielsweise dass Wettbewerbskategorien durch TYPO3-Categories repräsentiert werden. +Beispielsweise dass Probenkategorien durch TYPO3-Categories repräsentiert werden. Das hat den Vorteil, dass TYPO3-Categories bereits native Bestandteile eines TYPO3-Redaktionssystemes sind und alle relevanten Attribute anbieten. Diese sind Titel, Parentkategorie und Beschreibung. @@ -73,8 +75,8 @@ Ziel dessen ist, dass sich Nutzer für einen vorgefertigten, nominalen Eintrag i entscheiden müssen und dass diese Auswahlmöglichkeiten im TYPO3-Backend pflegbar sind. Weinlagen sind im Brown-Field-Projekt bereits vorhanden, also sollen hierfür existierende Daten wiederverwendet werden. -Je Wein sollen beliebig viele Weineigenschaften auswählbar sein. Wettbewerbskategorien, -Geschmacksrichtung, etc, sind jeweils nur ein Element. +Je Wein sollen beliebig viele Weineigenschaften auswählbar sein. Probenkategorie, +Geschmacksangabe, etc, sind jeweils nur ein Element. Weitere Notizen zu diesem Gespräch sind im Anhang unter \fullref{chap:anhang-notizen-digitization} zu finden. \\ @@ -190,14 +192,16 @@ Für alle funktionalen Belange wird ein TYPO3-Pluginobjekt registriert. Dieses P ActionController, der Nutzeranfragen an PHP-Funktionen (\enquote{Actions}) bindet. In diesen Actions werden Fehlerbehandlungen durchgeführt, Datenmodelle der Domäne erstellt und in der -Datenbank persistiert sowie Daten für die Anzeige im Frontend aufbereitet \cite{bib:typo3-docs-extbase}. +Datenbank persistiert sowie Daten für die Anzeige im Frontend der Webseite aufbereitet +\break\cite{bib:typo3-docs-extbase}. Neue Datenobjekte werden in Repository-Objekten registriert -\break\cite{bib:typo3-docs-extdev-tut-tea-repositories}. Diese Repositories sind Aggregate des Controllers, +\cite{bib:typo3-docs-extdev-tut-tea-repositories}. Diese Repositories sind Aggregate des Controllers, werden jedoch nach dem \enquote{Inversion of Control}-Prinzip via Dependency Injection instanziiert und -ActionController-Objekten über Methoden übergeben \cite{bib:typo3-docs-di}. +\break{}ActionController-Objekten über öffentliche Methoden übergeben +\break\cite{bib:typo3-docs-di}. Als problematisch erweisen sich hierbei bidirektionale Verbindungen zwischen Datenmodellen, wenn die Foreign Keys über das SQL-Schlüsselwort -\break\enquote{AUTO\_INCREMENT} in der Datenbank generiert werden. +\enquote{AUTO\_INCREMENT} in der Datenbank generiert werden. Beispielsweise muss ein Masterrecord, der Betriebsinformationen speichert, bidirektional an ein Teilnehmerobjekt gebunden werden. Hierzu wird jedem der Elemente jeweils der Foreign Key des anderen übergeben. Als Foreign Keys werden hierfür die jeweiligen \acp{UID} herangezogen, da diese Werte durch @@ -257,7 +261,8 @@ Die Formfeldwerte können unverändert in der Datenbank persistiert werden. \paragraph*{SelectSingle} sind Formfelder, die dem Nutzer eine Auswahl aus $n$ Elementen aus anderen Datenbanktabellen geben. Der Nutzer muss sich für genau ein Element entscheiden. Beispiele für SelectSingle-Formfelder sind: Weinlage, Qualitätsstufe, Rebsorte und Geschmacksangabe. -\break{}SelectSingle-Formfelder werden durch Select-HTML-Tags abgebildet. Der TYPO3-Form-ViewHelper für +\break{}SelectSingle-Formfelder werden durch Select-HTML-Tags abgebildet. +\break{}Der TYPO3-Form-ViewHelper für \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 diff --git a/chapters/stand-der-technik.tex b/chapters/stand-der-technik.tex index 3becdb2..08a1d27 100644 --- a/chapters/stand-der-technik.tex +++ b/chapters/stand-der-technik.tex @@ -82,7 +82,7 @@ Die Bibliothek verwendet die MIT-Lizenz. \subsubsection*{Bacon/BaconQrCode} \enquote{Bacon/BaconQrCode} ist eine PHP-Bibliothek zur Generierung von QR-Codes, bereitgestellt von Ben Scholzen, hinter -der Github-Organisation \enquote{Bacon}, dessen einziges Mitglied Scholzen darstellt. Verlinkt ist eine Homepage, +der Github-\break{}Organisation \enquote{Bacon}, dessen einziges Mitglied Scholzen darstellt. Verlinkt ist eine Homepage, die zu einer Nginx-\enquote{Hello World}-Seite führt. Begleitet wird \enquote{BaconQrCode} von etlichen weiteren \enquote{Bacon-Projekten} wie Beispielsweise \enquote{BaconPdf}, \enquote{BaconStringUtils} und \enquote{BaconUser} um nur einige zu nennen. Insgesamt machen die stichprobenartig betrachteten Projekte einen desolaten Eindruck mit zuteils aktuellesten Commits @@ -249,7 +249,7 @@ Dadurch werden drei Punkte einer vollkommenen Workflow-Eignung abgezogen, wodurc \subsection{Fazit} Nach Evaluation der verschiedenen QR-Code-Bibliotheken im Kontext der vorliegenden Problemstellung erweist sich aus Sicht des Autors -\break\enquote{chillerlan/php-qrcode} mit 30 Gesamtpunkten als die am besten geeignetste Bibliothek. +\break\enquote{chillerlan/php-qrcode} mit 30 Gesamtpunkten als die am besten geeignetste Bibliothek unter den Betrachteten. Somit wird \enquote{chillerlan/php-qrcode} als QR-Code Technologie in der Lösung dieser Problemstellung verwendet. \begin{table}[htbp] diff --git a/config.tex b/config.tex index cbd202d..d17fedb 100644 --- a/config.tex +++ b/config.tex @@ -10,7 +10,7 @@ \newcommand{\cfgDocClassification}{Thesis zur Erlangung des akademischen Grades} % Document version -\newcommand{\cfgDocVersion}{2.9.5} +\newcommand{\cfgDocVersion}{3} % Last modification date \newcommand{\cfgDateLastModification}{31. März 2023} diff --git a/main.pdf b/main.pdf index fdc952e..02eaf62 100644 Binary files a/main.pdf and b/main.pdf differ