generated from leonetienne/LaTeX-Paper-template
feat: probelesen
This commit is contained in:
@@ -16,15 +16,15 @@ Wie oben erwähnt, sind bereits die Constraints und einige funktionale und nicht
|
||||
\textbf{Art der Anforderung} & \textbf{Anforderungsbeschreibung}\\
|
||||
\hline
|
||||
\hline
|
||||
\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 Web-Formular kommen.}\\
|
||||
\hdashline
|
||||
\ac{NFA} & \makecell[l]{Aus dem Papierformular soll ein\\Webformular werden.}\\
|
||||
\ac{NFA} & \makecell[l]{Aus dem Papierformular soll ein\\Web-Formular werden.}\\
|
||||
\hdashline
|
||||
\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.}\\
|
||||
\hdashline
|
||||
Constraint & Einbau in brown-field TYPO3\\
|
||||
Constraint & Einbau in Brown-Field TYPO3\\
|
||||
\hdashline
|
||||
Constraint & Mitarbeiter-UI in TYPO3-Backend\\
|
||||
\hdashline
|
||||
@@ -43,7 +43,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 klären und somit konkrete Anforderungen zu formulieren.
|
||||
es, konkrete Fragen zu Anforderungen zu klären und somit klare 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.
|
||||
@@ -75,8 +75,8 @@ beantworten könnte. Somit fällt ein Onlinefragebogen für die Stakeholdergrupp
|
||||
Der Fragebogen der Stakeholdergruppe \enquote{teilnehmende Weingüter} liegt im Anhang unter
|
||||
\fullref{chap:anhang-fragebogen-extern} bei.
|
||||
Um den Aufwand und somit die Hemmschwelle des Ausfüllens
|
||||
eines solchen Online-Fragebogens zu minimieren, gibt es lediglich sechs quantitative Fragen
|
||||
zuzüglich einem optionalen Freitextfeld, um sonstige Wünsche zum Ausdruck zu bringen.
|
||||
eines solchen Online-Fragebogens zu minimieren, werden lediglich sechs quantitative Fragen
|
||||
zuzüglich einem optionalen Freitextfeld, um sonstige Wünsche zum Ausdruck zu bringen, gestellt.
|
||||
Eine Anmeldung über Google für Google-Forms ist nicht erforderlich.
|
||||
Der Link zu diesem Online-Fragebogen wurde \ac{WM} mit der Bitte um Weitergabe an
|
||||
die Probenteilnehmer übergeben.
|
||||
@@ -93,7 +93,7 @@ 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, z.B. als Get-Parameter, zu übergeben \cite{bib:qrbot}.
|
||||
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
|
||||
@@ -103,7 +103,7 @@ Weitere wichtigste Erkenntnisse des Interviews sind:
|
||||
Diese Weine sind ebenso anklickbar und führen zu einer Einzelansicht der Weine.
|
||||
\item[Nutzerführung für \ac{WM}-Angestellte]\hfill\\
|
||||
Gescanne QR-Codes von Weinen sollen den Wein als eingegangen markieren und anschließend dem
|
||||
Mitarbeiter zeigen, welcher Wein eingechecked wurde. Somit dient das Scannen eines Codes ebenso zur
|
||||
Mitarbeiter zeigen, welcher Wein eingecheckt wurde. Somit dient das Scannen eines Codes ebenso zur
|
||||
Einsicht der Details der gelagerten Flaschen.
|
||||
Es soll ein Backendmodul \cite{bib:typo3-docs-modules} geben, das für den Export von CSV-Daten zuständig ist.
|
||||
Sonstige Aktionen sind im TYPO3-Backend mit nativen Werkzeugen erreichbar.
|
||||
@@ -112,11 +112,10 @@ Weitere wichtigste Erkenntnisse des Interviews sind:
|
||||
\item Jahresauswahlproben-Listenansicht
|
||||
\item Jahresauswahlproben-Detailansicht
|
||||
\item Wein-Registrierungsformular
|
||||
\item PDF-Url für Versandbriefe
|
||||
\item PDF-URL für Versandbriefe
|
||||
\item Registrierungsseite mit mehreren Schritten
|
||||
\item Mitarbeiterseite für gescannte QR-Codes
|
||||
\item Listenansicht der Jahresauswahlproben im CSV-Exporter im Backend
|
||||
\item Detailansicht der Jahresauswahlprobe im CSV-Exporter im Backend
|
||||
\item Listen- und Detailansicht der Jahresauswahlproben im CSV-Exporter im Backend
|
||||
\end{itemize}
|
||||
|
||||
\end{description}
|
||||
@@ -130,13 +129,13 @@ der gewünschte Geschäftsprozess der Jahresauswahlprobe nach Fertigstellung die
|
||||
Hierbei ist es wichtig, die Schnittstelle zwischen den gleichbleibenden Arbeitsschritten und den zu digitalisierenden
|
||||
Arbeitsschritten zu beachten. Diese Schnittstelle sollte unverändert bleiben,
|
||||
um eine nahtlose Integration in den restlichen, bestehenden Workflow von \ac{WM} zu gewährleisten.
|
||||
Diese Schnittstelle stellt eine Excel-Tabelle dar. Zuvor wurde diese Excel-Tabelle von Hand aus den
|
||||
Anmeldeformularen erstellt. Nach Fertigstellung dieses Projektes soll diese Tabelle in Form
|
||||
Diese Schnittstelle stellt eine Excel-Tabelle dar. Zuvor wurde diese Excel-Tabelle von Hand, aus den
|
||||
Anmeldeformularen, erstellt. Nach Fertigstellung dieses Projektes soll diese Tabelle in Form
|
||||
von CSV-Daten aus dem Redaktionssystem exportiert werden können. Diese können Mitarbeiter von \ac{WM} in Excel
|
||||
importieren und in kommenden Planungsschritten der Jahresauswahlprobe ohne Umstellung weiter verwenden.
|
||||
Das ist wichtig, da solche Umstellungen, ohne nennenswerte Verbesserungen des restlichen, von dieser
|
||||
Ausarbeitung unberührten Workflows, Zeit kostet, ohne Vorteile zu erbringen.
|
||||
Dieser Zeitverlust würde den durch die Digitalisierung erzielten Gewinn schädigen.
|
||||
Ausarbeitung unberührten Workflows, Zeit kosten, ohne Vorteile zu erbringen.
|
||||
Dieser Zeitverlust würde den durch die Digitalisierung erzielten Vorteil schmälern.
|
||||
|
||||
\begin{nicepic}
|
||||
\includegraphics[width=1\textwidth]{images/geschäftsprozess-nachher.png}
|
||||
|
@@ -14,9 +14,9 @@ Hierbei werden sämtliche auf das Weingut bezogene Daten redundant ausgefüllt.
|
||||
Eigenschaften der Weine, sondern die des Weingutes selbst sind.
|
||||
Da sich das Weingut zwischen den Weinen nicht ändert,
|
||||
ändern sich die darauf bezogenen Daten auch nicht. Sie müssen aber für jeden Wein erneut ausgefüllt werden.
|
||||
Abgesehen davon, dass solche Redundanzen auf Weinguts- und verbandsseite die hedonische Qualität schädigen,
|
||||
Abgesehen davon, dass solche Redundanzen auf Weinguts- und Verbandsseite die hedonische Qualität schädigen,
|
||||
bietet ein solcher Workflow Freiraum für Fehler und Inkonsistenzen.
|
||||
Dieser Workflow, mit den zuvor genannten Nachteilen, wird auf verbandsseite, nach Zustellung der Weine, weiter fortgeführt:
|
||||
Dieser Workflow, mit den zuvor genannten Nachteilen, wird auf Verbandsseite, nach Zustellung der Weine, weiter fortgeführt:
|
||||
\ac{WM} erfährt erstmalig mit der Zustellung eines Weines von dessen Teilnahme. Das erschwert die Planung der Logistik,
|
||||
da im Voraus keine konkrete Zahl der zu erwartenden Flaschen bekannt ist. Geht eine Flasche auf dem Postweg verloren,
|
||||
könnte das unbemerkt bleiben, da der Prozess für das Weingut mit dem Versand endet und der Prozess für \ac{WM}
|
||||
@@ -26,7 +26,7 @@ Kommt ein teilnehmender Wein bei \ac{WM} an, wird das beiliegende Formular von H
|
||||
Diese Schnittstelle ist besonders resourcenaufwändig und fehleranfällig, da es oft vorkommt, dass die teils
|
||||
dysgraphisch verfassten Formulare nur schwer, mehrdeutig, oder gar nicht dechiffriert werden können.
|
||||
In diesem Prozess wird der Teilnahme des Weines eine inkrementell aufsteigende \ac{ELN} zugewiesen,
|
||||
die anschließend in Form eines Aufklebers an der Flasche befestigt wird. Darauffolgend wird die Flasche im Lager verstaut.
|
||||
die anschließend in Form eines Aufklebers auf der Flasche angebracht wird. Darauffolgend wird die Flasche im Lager verstaut.
|
||||
|
||||
\begin{nicepic}
|
||||
\includegraphics[width=1\textwidth]{images/geschäftsprozess-vorher.png}
|
||||
|
@@ -4,13 +4,13 @@
|
||||
\section{Praktische Ergebnisse}
|
||||
Die TYPO3-Erweiterung ist umgesetzt und erfüllt die vereinbarten Anforderungen.
|
||||
Mitglieder und Nichtmitgleder können Teilnehmernutzer anlegen und Weine zu Jahresauswahlproben anmelden.
|
||||
Teilnehmer bekommen ein PDF-Dokument mit einem QR-Code zur späteren Zuordnung bereitgestellt.
|
||||
Teilnehmer bekommen ein PDF-Dokument mit Weindaten und einem QR-Code zur späteren Zuordnung bereitgestellt.
|
||||
\ac{WM}-Mitarbeiter können diesen QR-Code einscannen, um Weine als \enquote{angekommen} zu markieren.
|
||||
Redakteure von \ac{WM} können Zugriffsrechte und Verhalten der Jahresauswahlproben auf verschiede Weisen einschränken.
|
||||
Sie können den Sichtbarkeitszeitraum, den Anmeldezeitraum und den Probezeitraum festlegen, der definiert ab
|
||||
wann teilnehmende Weine öffentlich sind.
|
||||
Sie können Jahresauswahlproben und damit deren Anmeldeformulare auf festgelegte Wettebwerbskategorien beschränken.
|
||||
Mitarbeiter können Weindatensätze, getrennt nach Jahresauswahlproben, als CSV-Dokument exportieren und somit
|
||||
Sie können Jahresauswahlproben und damit deren Anmeldeformulare auf festgelegte Probenkategorien beschränken.
|
||||
Mitarbeiter können Weindatensätze, getrennt nach Jahresauswahlproben, als CSV-Dokumente exportieren und somit
|
||||
den verbleibenden Geschäftsprozess wie gehabt fortsetzen.
|
||||
Praktische Präsentationen gegenüber dem \ac{PO} bestätigen die Umsetzung der Anforderungen und stellen die Basis
|
||||
für weitere Iterationen der Entwicklung dar.
|
||||
@@ -35,10 +35,13 @@ der bei kleinen Projekten, wie der hier beleuchteten Aufgabenstellung, unabdingl
|
||||
Umsetzung gewährleisten zu können.
|
||||
|
||||
\paragraph*{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. Dieses Pflichtenheft zeigt unter anderem auf, dass Mitglieder sowie Nichtmitglieder Teilnehmer sein können,
|
||||
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.
|
||||
Das vollständige Ergebnis dieser Anforderungsanalyse liegt im Anhang anbei, unter \fullref{chap:anhang-pflichtenheft}.
|
||||
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}.
|
||||
|
||||
\paragraph*{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.
|
||||
@@ -78,7 +81,7 @@ angemessener Entwicklungsmethodiken für abweichende Projekttypen und -beschaffe
|
||||
\paragraph*{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, dass der Online-Fragebogen unbeantwortet blieb.
|
||||
Es ist wichtig zu erwähnen, dass der Online-Fragebogen unbeantwortet blieb.
|
||||
Das Ergebnis dieser Anforderungsanalyse ist ein detailliertes Pflichtenheft, das die Anforderdungen an die TYPO3-Erweiterung detailliert beschreibt.
|
||||
Dieses zeigt unter anderem auf, dass Mitglieder und Nichtmitglieder Teilnehmer sein können,
|
||||
wie detaillierte Konzepte der Nutzerführung und verschiedene Schnittstellen aussehen und welche Werkzeuge \ac{WM}-Mitarbeitern zur Verfügung stehen.
|
||||
@@ -99,7 +102,7 @@ Funktionsumfang. Dieser Vergleich deutet darauf hin, dass \enquote{chillerlan/ph
|
||||
die beste Eignung der verglichenen Bibliotheken aufweist. Es wurde davon ausgegangen, dass \enquote{chillerlan/php-qrcode} eine gute Wahl sei,
|
||||
da diese Bibliothek bereits firmenintern nahegelegt wurde. Der abgehaltene Vergleich bestätigt
|
||||
diese Empfehlung. Dieser Erfolg erklärt sich durch ein aktiv gepflegtes Softwareprodukt mit einer Vielzahl an Entwicklern,
|
||||
Empfehlungen, Verwendungen, aktueller Versionsunterstützung, guter Dokumentation und projektspezifischer Eignung.
|
||||
Verwendungen, aktueller Versionsunterstützung, guter Dokumentation und projektspezifischer Eignung.
|
||||
Es muss jedoch beachtet werden, dass dieser Vergleich das spezifische Projekt als wichtigen Faktor mit einbezieht.
|
||||
Somit ist dieser Vergleich nur gültig, um eine QR-Code-Bibliothek für ein PHP-Projekt mit dem Composer-Paketmanager zu evaluieren.
|
||||
Der Autor empfielt ähnliche Vergleiche für andere Arbeitsumgebungen durchzuführen, um zu bestimmen, welche QR-Code-Bibliotheken für andere
|
||||
@@ -113,8 +116,8 @@ 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 in der Umsetzung ist. Sie wird nicht benötigt, damit das umgesetzte Produkt intrinsisch funktioniert,
|
||||
ist aber dennoch unverzichtlich für eine praktische Verwendung.
|
||||
der sekundäre Fokus 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.
|
||||
|
@@ -16,9 +16,9 @@ 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. Dies indem für die technische
|
||||
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,
|
||||
\textit{chillerlan/php-qrcode} als QR-Code-Bibliothek verwendet wird und die Schnittstelle zu den verbleibenden Teilprozessen geschützt wird.
|
||||
\break\textit{chillerlan/php-qrcode} als QR-Code-Bibliothek verwendet wird und die Schnittstelle zu den verbleibenden Teilprozessen geschützt wird.
|
||||
|
||||
\section{Ausblick}
|
||||
\label{chap:ausblick}
|
||||
@@ -49,6 +49,6 @@ der in einer Jahresauswahlprobenkategorie für trockene Weine antreten soll.
|
||||
Ziel ist es, dass das Weinanmeldeformular fehlerhafte
|
||||
Anmeldeversuche als solche erkennt und verhindert.
|
||||
Kompliziert wird diese Technik dadurch, dass Kategorien beliebig viele Restriktionen haben können
|
||||
und diese von Redakteuren, im TYPO3-Backend, gepflegt können werden sollen. Ein komplexeres, realistisches Beispiel wäre eine
|
||||
und diese von Redakteuren, im TYPO3-Backend, gepflegt werden sollen. Ein komplexeres, realistisches Beispiel wäre eine
|
||||
Kategorie, die nur vegane Barriqueweine der Rebsorte Merlot zulässt, die einen Mindest- und Maximalrestzuckeranteil, einen Maximalalkoholanteil und
|
||||
einen Maximalpreis erfüllen.
|
||||
|
@@ -6,8 +6,8 @@ Brown-Field Projekt \cite{bib:schwarzer-vorlesung-swa} in Form einer TYPO3-Erwei
|
||||
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 einer TYPO3-Erweiterung}
|
||||
TYPO3-Erweiterungs werden via Composer installiert \break\cite{bib:typo3-docs-managing-extensions}.
|
||||
\section{Setup der TYPO3-Erweiterung}
|
||||
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.
|
||||
@@ -17,7 +17,7 @@ Somit wird ein Composer-Paket nur für dieses Projekt bereitgestellt,
|
||||
ohne den Aufwand zu betreiben, der üblicherweise mit dem Bereitstellen eines Paketes einhergeht.
|
||||
\\
|
||||
\\
|
||||
Um das grundlegende Setup einer TYPO3-Erweiterung effizient durchzuführen, wurde eine
|
||||
Um das grundlegende Setup einer TYPO3-Erweiterung effizient durchzuführen, wird eine
|
||||
existierende Erweiterung mit vergleichbarem Funktionsumfang kopiert, umbenannt und eingefügt.
|
||||
Spezifisch ist dieser \enquote{vergleichbare Funktionsumfang}, dass es ebenfalls Datenmodelle und hochpersonalisierte
|
||||
Frontendlogik in Bezug auf die zuvor genannten Datenmodelle gibt.
|
||||
@@ -28,6 +28,7 @@ in einer Art und Weise, die ermöglicht, dass diese elektronisch weiterverarbeit
|
||||
Des Weiteren befasst sich diese Phase mit der Automatisierung und Befüllung dieser Daten,
|
||||
wie zum Beispiel durch Web-Formulare \cite{bib:verhoef}.
|
||||
Das bedeutet, dass in dieser Phase Datenobjekte definiert und implementiert werden.
|
||||
Ebenfalls werden anhand der Papier-Formulare Web-Formulare gebaut, damit Nutzer diese Datenobjekte erstellen können.
|
||||
Ein Datenobjekt besteht nach firmeninternen Konventionen aus zumindest
|
||||
vier Komponenten:
|
||||
\begin{description}
|
||||
@@ -50,28 +51,28 @@ angefertigt und in Rücksprache mit dem \ac{PO} finalisiert.
|
||||
|
||||
\begin{nicepic}
|
||||
\includegraphics[width=1\textwidth]{images/objektrelationen-weinlandmosel-einlieferungswerkzeug.png}
|
||||
\captionof{figure}{Objektrelationen}
|
||||
\caption*{Quelle: Eigene Darstellung: Weinland Mosel Einlieferungswerkzeug}
|
||||
\captionof{figure}{Objektrelationen: Weinland Mosel Einlieferungswerkzeug}
|
||||
\caption*{Quelle: Eigene Darstellung}
|
||||
\label{fig:objektrelationen}
|
||||
\end{nicepic}
|
||||
|
||||
Nachdem in Erfahrung gebracht wurde, welche konkreten Datenobjekte benötigt werden,
|
||||
wurden Attribute dieser Objekte dem Pflichtenheft entnommen. Diese wurden in einem
|
||||
Nachdem in Erfahrung gebracht wird, welche konkreten Datenobjekte benötigt werden,
|
||||
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.
|
||||
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.
|
||||
Das Parent-Attribut ist benötigt, da $n$ dieser Attribute einen Attributbaum bilden
|
||||
Das Parent-Attribut ist nötig, da $n$ dieser Attribute einen Attributbaum bilden
|
||||
\cite{bib:typo3-docs-sys-category}.
|
||||
Somit ist es möglich, Unterkategorien zu erstellen. Beispiele hierfür sind die
|
||||
Unterkategorien \enquote{Trockener Riesling} und \enquote{Halbtrockener Riesling} für die Überkategorie
|
||||
\enquote{Riesling}.
|
||||
Rebsorten, Geschmack, Weineigenschaften und Qualität sollen eigene Datentypen,
|
||||
Rebsorte, Geschmacksangabe, Weineigenschaften und Qualitätsstufe 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 im TYPO3-Backend pflegbar sind.
|
||||
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,
|
||||
@@ -103,10 +104,10 @@ Dem Pflichtenheft ist zu entnehmen, dass es zwei Kategorien von Teilnehmerregist
|
||||
\item Nutzer ist \ac{WM}-Mitglied
|
||||
\item Nutzer ist kein \ac{WM}-Mitglied
|
||||
\end{enumerate}
|
||||
Der primäre Unterschied zwischen Mitgliedern und Nicht-Mitgliedern ist, dass Mitglieder bereits einen
|
||||
Der primäre Unterschied zwischen Mitgliedern und Nichtmitgliedern ist, dass Mitglieder bereits einen
|
||||
Stammdatensatz hinterlegt haben.
|
||||
Dieser Stammdatensatz bildet die Angaben zum Weingut des zu digitalisierenden Anmeldeformulares ab.
|
||||
Nicht-Mitglieder sind dem System noch gänzlich unbekannt und müssen im Zuge der Registrierung ihres Nutzers
|
||||
Nichtmitglieder sind dem System noch gänzlich unbekannt und müssen im Zuge der Registrierung ihres Nutzers
|
||||
ihre Stammdaten angeben, während sich Mitglieder lediglich einloggen müssen und eine Schaltfläche
|
||||
\enquote{Teilnehmer werden} betätigen.
|
||||
Der mit dem \ac{PO} ausgearbeitete UX-Flow der Registrierung sieht vor, dass der Nutzer zunächst gefragt wird,
|
||||
@@ -114,7 +115,7 @@ ob er Mitglied sei oder nicht. Hierzu gibt es je einen Button. Ist der Nutzer ei
|
||||
wird er auf ein Loginformular, mit der Option zur Registrierung weitergeleitet.
|
||||
Nach erfolgreichem Login, wird ein Teilnehmerobjekt erstellt.
|
||||
Wählt der Nutzer \enquote{Nein, ich bin kein Mitglied}, wird er auf ein Registrierungsformular
|
||||
weitergeleitet, um einen Nicht-Mitgliederaccount anzulegen. Im Zuge dieser Registrierung werden
|
||||
weitergeleitet, um einen Nichtmitgliederaccount anzulegen. Im Zuge dieser Registrierung werden
|
||||
Stammdaten zum Weingut angefragt.
|
||||
Dieser Schritt übersetzt unter anderem den \enquote{Einreicher}-Teil des ursprünglichen Anmeldeformulares,
|
||||
anbei in \fullref{chap:anhang-anmeldeformular}.
|
||||
@@ -130,7 +131,7 @@ Da das Brown-Field-Projekt bereits Accountlogins und -registrierungen implementi
|
||||
wird 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
|
||||
Frontend-Nutzer-Login gelöst werden. Das ist explizit von \enquote{femanager} so angedacht:
|
||||
Frontend-Nutzer-Login gelöst werden. Das ist explizit von \enquote{femanager} angedacht:
|
||||
\quotecite{Note: Login and a I forgot my password function is part of the core and not part of femanager.}
|
||||
\cite{bib:typo3-docs-femanager}.
|
||||
Im Folgenden wird der Registrierungsprozess im Detail beschrieben:
|
||||
@@ -196,9 +197,10 @@ Datenbank persistiert sowie Daten für die Anzeige im Frontend aufbereitet \cite
|
||||
Neue Datenobjekte werden in Repository-Objekten registriert
|
||||
\break\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
|
||||
der ActionController-Klasse über eine Methode übergeben \cite{bib:typo3-docs-di}.
|
||||
ActionController-Objekten über Methoden übergeben \cite{bib:typo3-docs-di}.
|
||||
Als problematisch erweisen sich hierbei bidirektionale Verbindungen zwischen Datenmodellen, wenn die Foreign Keys
|
||||
über das SQL-Schlüsselwort \enquote{AUTO\_INCREMENT} in der Datenbank generiert werden.
|
||||
über das SQL-Schlüsselwort
|
||||
\break\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
|
||||
@@ -216,7 +218,7 @@ Ein Basismerkmal des Jahresauswahlprobenwerkzeuges ist die Möglichkeit, Weine z
|
||||
anzumelden. Dieser Schritt übersetzt unter anderem die verbleibenden Formfelder des
|
||||
ursprünglichen Anmeldeformulares, anbei in \fullref{chap:anhang-anmeldeformular}, in den digitalen Workflow.
|
||||
Für die Weinanmeldung spielt die Mitgliedsschaft eines Teilnehmers keine Rolle. Es wird lediglich ein
|
||||
Frontend-Nutzer der Nutzergruppe \enquote{Teilnehmer} benötigt. Dieser Nutzer hat, wenn angemeldet,
|
||||
Frontend-Nutzer der Nutzergruppe \enquote{Teilnehmer} erfordert. Dieser Nutzer hat, wenn angemeldet,
|
||||
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.
|
||||
@@ -295,7 +297,7 @@ Daher wird im Folgenden die Zeitkomplexität dieser Rekursionsfunktion betrachte
|
||||
Für diese Funktion kann kein Master-Theorem angewandt werden,
|
||||
da es sich hierbei nicht um einen \enquote{Divide-and-Conquer-Algorithmus} handelt.
|
||||
Das ist so, da das in der Rekursion weitergereichte Problem nicht kleiner wird,
|
||||
sondern gleich groß bleibt.
|
||||
sondern gleich groß bleibt. Demnach ist $b = 1$.
|
||||
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 Algorithmus besteht aus $m \in \mathbb{N}$ verschachtelten For-Schleifen
|
||||
@@ -309,7 +311,7 @@ Somit ist die Zeitkomplexität $O(n^m)$. Normiert dargestellt beträgt die Zeitk
|
||||
\label{fig:timecomplexity-category}
|
||||
\end{nicepic}
|
||||
|
||||
Auf Optgroup-HTML-Tags wurde bewusst verzichtetet.
|
||||
Auf Optgroup-HTML-Tags wird bewusst verzichtetet.
|
||||
Grund dafür ist, dass Optgroup-Elemente an sich nicht im Dropdown-Menü auswählbar sind.
|
||||
Das stellt ein Problem dar, da beispielsweise die Kategorie \enquote{Riesling},
|
||||
die die Unterkategorien \enquote{Trockener Riesling} und \enquote{Halbtrockener Riesling} beinhalten könnte,
|
||||
@@ -323,23 +325,26 @@ Datenbanktabelle geben. Der Nutzer kann sich für eine beliebige Auswahl dieser,
|
||||
Ein Beispiel für SelectMultiple-Formfelder sind Weineigenschaften.
|
||||
TYPO3-Fluid implementiert hierfür keinen ViewHelper
|
||||
\cite{bib:typo3-docs-fluid-form-viewhelpers},
|
||||
also wurde eine eigene Lösung entworfen: Der Nutzer soll aus einer Menge $A$ wählen.
|
||||
also wird eine eigene Lösung entworfen: Der Nutzer soll aus einer Menge $A$ wählen.
|
||||
Für alle Elemente $a \in A$
|
||||
wird ein Checkbox-Feld erstellt. Dieses Element trägt den Anzeigewert \enquote{<a.title>} und den
|
||||
Wert \enquote{<formfeldname>-true}.
|
||||
Ist also eine dieser Checkboxen angehakt, hat sie den zuvor genannten Wert. Falls nicht, trägt sie keinen Wert.
|
||||
Weil alle angehakten Checkboxen dieses Formfeldes den selben Wert tragen, ist es PHP-seitig trivial
|
||||
eine Liste aller angehakten Checkbox-Ids dieses Formfeldes aus der Liste aller Formfeldparameter zu extrahieren.
|
||||
wird ein Checkbox-Feld erstellt. Dieses Element trägt den Anzeigewert \enquote{<a.title>},
|
||||
den ID- und Namenswert \enquote{<formfeldname>-<a.uid>} und den
|
||||
Formularwert \enquote{<formfeldname>-true}.
|
||||
Ist also eine dieser Checkboxen angehakt, hat sie den zuvor genannten Formularwert. Falls nicht, trägt sie keinen Formularwert.
|
||||
Weil alle angehakten Checkboxen dieses Formfeldes den selben Namenswert tragen, ist es phpseitig trivial
|
||||
eine Liste aller angehakten Checkbox-Namen dieses Formfeldes aus der Liste aller Formfeldparameter zu extrahieren.
|
||||
Hierfür wird die eingebaute PHP-Funktion \enquote{array\_keys} verwendet. Diese Funktion gibt alle
|
||||
Keys eines Arrays in Form eines numerisch indizierten Arrays zurück.
|
||||
Der optionale Parameter \enquote{filter\_values} bestimmt, dass ausschließlich die Keys
|
||||
der Key-Value-Pairs, die einen bestimmten
|
||||
Wert tragen, extrahiert werden \cite{bib:php-array-keys}. D.h., der Funktionsaufruf filtert alle Keys und somit alle
|
||||
Wert (der Formwert) tragen, extrahiert werden \cite{bib:php-array-keys}. D.h., der Funktionsaufruf filtert alle Keys und somit alle
|
||||
Formfeld-IDs des Formfeldparameter-Arrays heraus, die den Wert \enquote{<formfeldname>-true} haben. Das ist eine Liste
|
||||
aller Formfeld-IDs der Checkboxen des SelectMultiples, die angehakt wurden.
|
||||
Mit der eingebauten PHP-Funktion \enquote{array\_map} wird nun eine Operation auf alle Schlüssel
|
||||
der Liste angewandt, 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 \acp{UID} aller angehakten Elemente $a$, in Form einer Zeichenkette.
|
||||
aller Formfeld-Namen der Checkboxen des SelectMultiples, die angehakt wurden.
|
||||
Mit der eingebauten PHP-Funktion \enquote{array\_map} wird nun eine Operation auf alle Werte
|
||||
der Liste angewandt, die
|
||||
\break\enquote{strlen('<formfeldname>-')} Zeichen, von links ausgehend, vom Formfeld-Name
|
||||
entfernt. Somit wird beispielsweise der Formfeld-Name \enquote{winekind-18} zu \enquote{18} transformiert.
|
||||
Übrig bleiben die extrahierten \acp{UID} aller angehakten Elemente $a$, in Form einer Zeichenkette.
|
||||
Ü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.
|
||||
|
||||
@@ -355,9 +360,9 @@ Generierung dieses PDFs die Bibliotheken \enquote{chillerlan/php-qrcode} und
|
||||
\subsubsection{QR-Code-Generierung}
|
||||
Der QR-Code beinhaltet lediglich die Wein-\ac{UID} anstatt einer vollständigen URL. Hintergrund dessen ist, dass
|
||||
die benötigte URL, um einen Wein einzuscannen, bis auf die Wein-\ac{UID} immer identisch ist.
|
||||
Somit wird redundanz vermieden.
|
||||
Somit wird Redundanz vermieden.
|
||||
Es ist Aufgabe der QR-Code-App, die den Code einscannt, aus der Wein-\ac{UID} eine vollständige URL herzuleiten.
|
||||
Um effizient zu arbeiten, wird der QR-Code zu einem base64-kodiertem Bild gerendert.
|
||||
Um effizient zu arbeiten, wird der QR-Code zu einem base64-kodierten Bild gerendert.
|
||||
Das ist der Standardrückgabewert des QR-Code-\break{}Generators
|
||||
und erfordert somit keine nähere Konfiguration. Ebenfalls lässt sich ein base64-kodiertes Bild als Quell-URL eines
|
||||
IMG-HTML-Tags angeben, womit das Bild eingebettet ist. Das spart Arbeitszeit,
|
||||
@@ -385,6 +390,7 @@ Um dieses PDF-Dokument über die Verbindung an den Nutzer zu übertragen, wird e
|
||||
Über dieses Response-Objekt werden einige Header gesetzt und direkt übertragen. Diese Header sind Content-Type und Content-Length.
|
||||
Abschließend werden als Response-Body die Bytes des generierten PDFs übertragen. Damit ist die Verbindung beendet und das
|
||||
PDF zum Nutzer übertragen.
|
||||
\clearpage
|
||||
|
||||
\subsection{Jahresauswahlproben- und Wein-Detailansichten}
|
||||
Weine und Jahresauswahlproben sollen unter bestimmten Gegebenheiten einsehbar sein.
|
||||
@@ -395,7 +401,7 @@ Die Detailansichten für Jahresauswahlproben und Weine benötigen spezielle Auto
|
||||
Diese sind: Jahresauswahlproben sind nur einsichtig, wenn sich das aktuelle Datum innerhalb des
|
||||
Sichtbarkeitszeitraumes der Jahresauswahlprobe befindet.
|
||||
Detailansichten für Weine sind immer für den zugehörigen Teilnehmer einsichtig.
|
||||
Nach Abschluss ihrer Jahresauswahlprobe sind alle ihr angehörigen Weine öffentlich einsichtig.
|
||||
Nach Abschluss einer Jahresauswahlprobe sind alle ihr angehörigen Weine öffentlich einsichtig.
|
||||
Das hat den Hintergrund, dass Jahresauswahlproben Blindverkostungen sind
|
||||
und niemand die Möglichkeit haben sollte, im Voraus Informationen über die teilnehmenden Weine in Erfahrung zu bringen.
|
||||
Die Ergebnisse der Jahresauswahlproben sind öffentlich, also sind es die Weine nach Abschluss einer Jahresauswahlprobe auch.
|
||||
@@ -408,11 +414,9 @@ zu anderen Ansichten generiert. Diese ViewHelper übergeben Parameter. Die hierf
|
||||
Ansichten sind beispielsweise Wein-\acp{UID} und Jahresauswahlproben-\acp{UID}. Um Informationen über den angemeldeten Nutzer,
|
||||
wie beispielsweise seiner Teilnehmernummer oder seiner Nutzergruppenzugehörigkeit, zu erlangen, wird sich
|
||||
der Extbase-nativen Domain-Model-FrontendUser-Klasse bedient \cite{bib:typo3-ref-extbase-model-feuser}.
|
||||
\pagebreak
|
||||
|
||||
Mit Abschluss der Phase der Digitization können alle Datenstrukturen im TYPO3-Backend händisch angelegt,
|
||||
eingesehen, gelöscht und bearbeitet werden.
|
||||
|
||||
eingesehen, gelöscht, bearbeitet und im Frontend von Nutzern befüllt werden.
|
||||
|
||||
\section{Digitalization}
|
||||
In der Phase \textit{Digitalization} werden bestehende Geschäftsprozesse so verändert,
|
||||
@@ -435,7 +439,7 @@ Wird ein Wein als \enquote{eingegangen} markiert, wird der betroffene Teilnehmer
|
||||
Hierzu wird die FluidEmail-Klasse des TYPO3-Cores herangezogen.
|
||||
Sollte ein Wein bereits als \enquote{eingegangen} markiert sein, wird keine Email verschickt und dem Mitarbeiter kommuniziert,
|
||||
dass keine Änderungen vorgenommen wurden.
|
||||
Abschließend werden im Frontend allgemeine Daten über den Wein angezeigt, damit sich Mitarbeiter sicher sein können,
|
||||
Abschließend werden im Frontend allgemeine Daten zum Wein angezeigt, damit sich Mitarbeiter sicher sein können,
|
||||
den richtigen Wein eingescanned zu haben.
|
||||
|
||||
\subsection{CSV-Export}
|
||||
@@ -459,7 +463,7 @@ Das CSV-Dokument wird über die PHP-native Funktion \enquote{fputcsv} generiert.
|
||||
numerisch indizierten Array und schreibt eine darauf basierende CSV-Zeile in eine Datei \cite{bib:php-fputcsv}.
|
||||
Um gut wartbaren PHP-Code zu erzeugen, werden alle CSV-Zeilen in einem zweidimensionalen Array,
|
||||
der das gesamte CSV-Dokument darstellt,
|
||||
durch alphanumerisch indizierte, innere Arrays abgebildet. Somit ist bei jeder Wertzuweisung der zugehörige Spaltenname ersichtlich.
|
||||
durch alphanumerisch indizierte, innere Arrays abgebildet. Somit ist bei jeder Wertzuweisung der zugehörige Spaltenname als Array-Key ersichtlich.
|
||||
Über die nativen PHP-Funktionen \enquote{array\_keys} und \enquote{array\_values} wird dieser zwar gut lesbare,
|
||||
aber mit \enquote{fputcsv} inkompatible
|
||||
Array zu einer Reihe kompatibler Array konvertiert. Hierbei werden durch \enquote{array\_keys} die Kopfzeile und durch
|
||||
@@ -471,12 +475,12 @@ Um \ac{WM} weitere Arbeitszeit zu ersparen, wird eine Download-Funktion für CSV
|
||||
angeboten. Das erspart das manuelle Kopieren und Abspeichern von CSV-Zeichenketten durch IT-Fachfremde, reduziert damit die Anzahl
|
||||
an benötigten Übergangsschritten in weitere Prozesse und reduziert somit die Komplexität der Umstellung.
|
||||
Auch im Interesse, Arbeitszeit in der Umsetzung zu sparen,
|
||||
wurde diese Downloadfunktion JavaScript-seitig umgesetzt.
|
||||
wird diese Downloadfunktion javascript-seitig umgesetzt.
|
||||
Dadurch ist der Download in derselben Action, die CSV für das Textarea-Feld generiert, implementiert.
|
||||
Somit muss weder abstrahiert werden, noch ein weiterer CSV-Exporter gebaut werden.
|
||||
Hierfür wird ein EventHandler auf den Download-Button angewandt, der bei Betätigung ein vestecktes
|
||||
\enquote{a}-Element erstellt, über das HTML-Attribut \enquote{download} des \enquote{a}-Elementes den Download-Dateinamen
|
||||
festlegt und als \enquote{href}-HTML-Attribut
|
||||
eine Blob-URL zuweist. Diese Blob-URL wird über ein Blob-Objekt generiert.
|
||||
Wird nun der Download-Button gedrückt, wird JavaScript-seitig eine Datei erzeugt und gespeichert
|
||||
Wird nun der Download-Button gedrückt, wird javascript-seitig eine Datei erzeugt und gespeichert
|
||||
\cite{bib:tutorialspoint-js-save-text}.
|
||||
|
@@ -1,6 +1,6 @@
|
||||
\chapter{Stand der Forschung}
|
||||
\label{chap:stand-der-forschung}
|
||||
Der Stand der Forschung beleuchtet verschiedene Entwicklunsmethodiken zur Digitalisierung und zur digitalen Transformation.
|
||||
Der Stand der Forschung beleuchtet verschiedene Entwicklunsmethodiken zur Digitalisierung.
|
||||
|
||||
\section{Modell nach Parviainen et al.}
|
||||
\quotecite{The importance of digitalization is becoming understood,
|
||||
@@ -65,7 +65,7 @@ werden \cite{bib:Parviainen_Tihinen_Kaariainen_Teppola_2022}.
|
||||
Nach Verhoef et al. lässt sich der hier sogenannte \enquote{Prozess der Digitalisierung} in drei Phasen unterteilen.
|
||||
Diese drei Phasen sind \textit{Digitization}, \textit{Digitalization} und \textit{Digital Transformation}
|
||||
\cite{bib:verhoef}.
|
||||
Die Phase \textit{Digitization} befasst sich mit der Umwandlung analoger Datenstrukturen und Modellen in digitale Datenmodelle,
|
||||
Die Phase \textit{Digitization} befasst sich mit der Umwandlung analoger Datenstrukturen und Modelle in digitale Datenmodelle,
|
||||
sodass diese digital, in Form von Nullen und Einsen, gespeichert und elektronisch\break weiterverarbeitet werden können
|
||||
\cite{bib:dougherty}\break\cite{bib:loebbecke}.
|
||||
\quotecite{Examples concern the use of digital forms in ordering processes, the use of digital surveys, or the use digital applications for internal financial declarations.} \cite{bib:verhoef}.
|
||||
@@ -76,11 +76,11 @@ Ergründungen neuer Geschäftsmodelle mit sich bringen könnte \cite{bib:pagani}
|
||||
|
||||
\section{Abwägung in Bezug auf die Problemstellung}
|
||||
In Bezug auf die hier betrachteten Methodiken ist es wichtig zu erwähnen, dass der betrachtete Kontext
|
||||
lediglich die Digitalisierungs \textbf{eines} Geschäftsprozesses behandelt.
|
||||
lediglich die Digitalisierung \textbf{eines} Geschäftsprozesses behandelt.
|
||||
Diese Ausarbeitung befasst sich nicht
|
||||
mit firmenweiten Veränderungen, wie sie von den nahegelegten Modellen abgedeckt ist.
|
||||
Daher sind geringfügige Anpassungen der Methodiken unabdinglich.
|
||||
Des Weiteren ist Resourcenintensivität ein relevanter Gesichtspunkt dieser Abwägung, da eine solche Digitalisierung
|
||||
Des Weiteren ist Ressourcenintensität ein relevanter Gesichtspunkt dieser Abwägung, da eine solche Digitalisierung
|
||||
effizient und profitabel sein soll.
|
||||
|
||||
\subsection{Parviainen et al.}
|
||||
|
@@ -1,7 +1,7 @@
|
||||
\chapter{Stand der Technik}
|
||||
\label{chap:stand-der-technik}
|
||||
Der Stand der Technik bezieht sich auf bestehende, praktische Umsetzungen der erforderlichen Technologien.
|
||||
Im Wesentlichen gibt es drei Arten von Technologien, die untersucht werden müssen: Die bestehende Website von \ac{WM},
|
||||
Im Wesentlichen gibt es drei Arten von Technologien, die untersucht werden müssen: Die bestehende Webseite von \ac{WM},
|
||||
Bibliotheken zur Erzeugung von QR-Codes und Bibliotheken zur Erzeugung von PDF-Dateien.
|
||||
|
||||
\section{Die bestehende Webseite}
|
||||
@@ -46,7 +46,7 @@ Issues scheinen ignoriert zu werden. \enquote{Kjua} ist MIT-lizensiert \cite{bib
|
||||
serverseitig, als Kommandozeilenwerkzeug, sowohl auch browserseitig an. Die Readme-Datei ist umfangreich, reich an Beispielen
|
||||
und detailreichen Erklärungen. Der letzte Commit ist zu diesem Zeitpunkt knapp älter als ein halbes Jahr. Somit macht das
|
||||
Projekt einen moderat gepflegten Eindruck. Die Readme-Datei verweist auf Unit-Tests bei Travis, jedoch lief die letzte Pipeline
|
||||
vor etwa zwei Jahren durch, Februar 2021 und schlug fehl. Einige Pull-Requests und Issues werden seit Jahren ignoriert
|
||||
vor etwa zwei Jahren, Februar 2021, durch und schlug fehl. Einige Pull-Requests und Issues werden seit Jahren ignoriert
|
||||
\cite{bib:soldair-node-qrcode}.
|
||||
Die Bibliothek wurde 74 Millionen mal heruntergeladen und mit 6.308 Sternen markiert.
|
||||
\enquote{Soldair/node-qrcode} ist MIT-lizensiert \cite{bib:npmjs-soldair-node-qrcode}.
|
||||
@@ -61,14 +61,14 @@ Insgesamt erfolgten bis dato 808 Commits von 6 Entwicklern. Das Projekt verfügt
|
||||
die 90\% der Zeilen der Codebase abdecken. Rochko übernahm Teile der Codebase aus
|
||||
dem Java-Projekt \enquote{ZXing} und übersetzte diese zu PHP.
|
||||
Es gibt zu diesem Zeitpunkt keine unbeantworteten Issues oder Pull-Requests.
|
||||
\enquote{Chillerlan/php-qrcode} basiert auf einer angepassten Version von \textit{kazuhikoarase/qrcode-generator}.
|
||||
\enquote{Chillerlan/php-qrcode} basiert auf einer angepassten Version von \enquote{kazuhikoarase/qrcode-generator}.
|
||||
Einzig auffällig sind die Commitnachrichten, die zuteils nur aus einem Emoji bestehen.
|
||||
\enquote{Chillerlan/php-qrcode} wurde von 1.212 Github-Nutzern mit einem Stern markiert.
|
||||
Die Bibliothek ist MIT-\break{}lizensiert
|
||||
\cite{bib:chillerlan-php-qrcode}.
|
||||
|
||||
\subsubsection*{Kreativekorp/barcode}
|
||||
\enquote{kreativekorp/barcode} ist eine PHP-Bibliothek zur Generierung von QR-Codes, bereitgestellt von
|
||||
\enquote{Kreativekorp/barcode} ist eine PHP-Bibliothek zur Generierung von QR-Codes, bereitgestellt von
|
||||
\enquote{Kreative Software}, R.G. Bettencourt.
|
||||
Diese Implementation umfasst etablierte Barcode-Formate und unterstützt eine Vielzahl an Anpassungsmöglichkeiten.
|
||||
Das Projekt wurde bis zum heutigen Tag 189 mal mit Sternen markiert \cite{bib:kreativkorp-barcode}.
|
||||
@@ -84,7 +84,7 @@ Die Bibliothek verwendet die MIT-Lizenz.
|
||||
\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,
|
||||
die zu einer Nginx-\enquote{Hello World}-Seite führt. Begleitet wird \enquote{BaconQrCode} von etlichen weiteren \enquote{Bacon-Projekten}
|
||||
wie Beispielsweise \enquote{BaconPdf}, \textit{BaconStringUtils} und \textit{BaconUser} um nur einige zu nennen.
|
||||
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
|
||||
von vor zehn Jahren. \enquote{BaconQrCode} stellt das beliebteste und gepflegteste Projekt von Scholzen mit 1.508 Sterne-Markierungen und
|
||||
einem aktuellsten Commit von vor zwei Monaten dar. \enquote{BaconQrCode} fällt mit siebzehn Entwicklern auf, die jeweils zumindest
|
||||
@@ -109,7 +109,7 @@ Hierfür werden die zuvor vorgestellten Bibliotheken zur Erstellung von QR-Codes
|
||||
\begin{description}
|
||||
\item [Funktionialität] \hfill \\
|
||||
Der Umfang, der unterstützten Funktionen, in Annahme dessen, dass die Bibliothek
|
||||
syntaktisch und pragmatisch korrekt ist\\\cite{bib:heinemann-vorlesung-re}.
|
||||
syntaktisch und semantisch korrekt ist\\\cite{bib:heinemann-vorlesung-re}.
|
||||
|
||||
\item [Gepflegtheit] \hfill \\
|
||||
Das Ausmaß, in dem das Projekt aktiv gepflegt wird und ordnungsgemäß entwickelt zu sein scheint.
|
||||
@@ -203,7 +203,7 @@ bereitgestellt \cite{bib:chillerlan-php-qrcode-composerjson} und weist eine ähn
|
||||
\subsubsection*{Kreativekorp/barcode}
|
||||
Kreativekorp beeindruckt in der Readme-Datei durch Nutzungsbeispiele und Dokumentation,
|
||||
sowie einer Vielzahl unterstützter Barcode-Formate, darunter auch QR-Codes und einiger improvisierter Tests.
|
||||
In Anbetracht dessen, dass die Bibliothek de-facto sechseinhalb Jahre alt ist und seit vier Jahren nicht mehr
|
||||
In Anbetracht dessen, dass die Bibliothek de facto sechseinhalb Jahre alt ist und seit vier Jahren nicht mehr
|
||||
angepasst wurde, wird eine geringe Wertung von drei Punkten in \enquote{Gepflegtheit} vergeben.
|
||||
Null Punkte in \enquote{Workflow-Eignung} rechtfertigen sich durch die Abwesenheit jeglicher
|
||||
Unterstützung für Paketmanager, wodurch eine saubere Verwendung in dem Brown-Field-Projekt
|
||||
@@ -228,10 +228,11 @@ Es werden Rasterbilder und verschiedene Vektorformate als Renderziel unterstütz
|
||||
die andere Bibliotheken bereitstellen, werden lediglich fünf von zehn Punkten in \enquote{Funktionalität} vergeben.
|
||||
Die Projektgepflegtheit ist inkonsistent. Manche Stellen, beispielsweise die Mitwirkenden, Alter des neuesten Commits, Tests
|
||||
und Nutzerzahlen machen einen guten Eindruck, während Punkte wie die Dokumentation, die Organisationswebseite und andere
|
||||
Projekte Sorgen begründen. Weil der Programmcode an sich gut gepflegt aussieht und große Downloadzahlen von
|
||||
Projekte von Scholzen Sorgen begründen. Weil der Programmcode an sich gut gepflegt aussieht und große Downloadzahlen von
|
||||
häufiger Verwendung sprechen, werden für die \enquote{Gepflegtheit} acht Punkte vergeben.
|
||||
Da es sich hierbei um eine PHP-Bibliothek handelt, die über Composer in PHP- $7.x$ und $8.x$ Projekte geladen werden kann
|
||||
und das Projekt eine API bereitstellt, ist die technische Workflow-Eignung gut. Die BSD-2-Clause-Lizenz verkompliziert eine Integration,
|
||||
und das Projekt eine API bereitstellt, ist die technische Workflow-Eignung gut.
|
||||
Die BSD-2-Clause-Lizenz verkompliziert eine Integration,
|
||||
da somit eine Copyright-Notiz an Nutzer gezeigt werden müsste \cite{bib:opensource-license-bsd-2}.
|
||||
Dadurch werden drei Punkte einer vollkommenen Workflow-Eignung abgezogen, wodurch sieben Punkte vergeben werden.
|
||||
\begin{table}[htbp]
|
||||
@@ -253,7 +254,7 @@ Somit wird \enquote{chillerlan/php-qrcode} als QR-Code Technologie in der Lösun
|
||||
|
||||
\begin{table}[htbp]
|
||||
\centering
|
||||
\begin{tabular}{|l||l|l||l|l|}
|
||||
\begin{tabular}{|l|l|l|l|l|}
|
||||
\hline
|
||||
\textbf{Bibliothek} & \textbf{Funkt.} & \textbf{Gepflegtht.} & \textbf{WF.-Eignung} & \textbf{$\Sigma$}\\
|
||||
\hline
|
||||
|
Reference in New Issue
Block a user