generated from leonetienne/LaTeX-Paper-template
feat: digitization
This commit is contained in:
@@ -41,7 +41,7 @@ Um nähere Anforderungen zu ermitteln, werden die Befragungstechniken \enquote{I
|
||||
\cite{bib:heinemann-vorlesung-re}.
|
||||
|
||||
\section{Interview mit Product Owner}
|
||||
Zunächst wird ein Interview mit dem Product Owner geführt. Ziel dieses Interviews ist
|
||||
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.
|
||||
Aufgrund der individuellen Gesprächsführung wurde sich für ein \enquote{Teil-standardisiertes Interview}
|
||||
entschieden. Bei einem Teil-standartisiertem Interview gibt es vordefinierte Fragen,
|
||||
@@ -63,13 +63,13 @@ Daher ist es wichtig für jede Stakeholdergruppe einen eigenen Fragebogen zu ent
|
||||
und die bestimmten Perspektiven beim Entwurf der Fragebögen zu beachten.
|
||||
Ebenso ist es wichtig, die wichtigsten Fragen am Anfang zu stellen, da Formulare nicht immer vollständig ausgefüllt werden
|
||||
\cite{bib:kleine-re-fibel}.
|
||||
Sämtliche Fragen an die Stakeholdergruppe \enquote{Mitarbeiter \ac{WM}} wurden bereits im Interview mit dem Product Owner
|
||||
Sämtliche Fragen an die Stakeholdergruppe \enquote{Mitarbeiter \ac{WM}} wurden bereits im Interview mit dem \ac{PO}
|
||||
beantwortet und als Anforderungen festgehalten. Insofern gibt es schlichtweg keine offnen Fragen, die diese Stakeholdergruppe
|
||||
beantworten könnte. Damit fällt ein Onlinefragebogen für \enquote{Mitarbeiter \ac{WM}} weg.
|
||||
Der Fragebogen der Stakeholdergruppe \enquote{teilnehmende Weingüter} liegt in \fullref{chap:anhang-fragebogen-extern} bei.
|
||||
|
||||
\section{Ergebnisse}
|
||||
Aus dem Interview mit dem Product Owner und dem Fragebogen an die Winzer ergibt ein Pflichtenheft.
|
||||
Aus dem Interview mit dem \ac{PO} und dem Fragebogen an die Winzer ergibt ein Pflichtenheft.
|
||||
Dieses ist im Anhang unter \fullref{chap:anhang-pflichtenheft} zu finden.
|
||||
Das Interviewprotokoll und Fragebogenergebnisse sind im Anhang unter
|
||||
\fullref{chap:anhang-interview-protokoll} und XXXX zu finden.
|
||||
|
@@ -42,4 +42,4 @@ in der TYPO3-Backend-Oberfläche implementiert werden.
|
||||
\\
|
||||
\\
|
||||
Somit lautet die \textbf{Forschungsfrage}:\\
|
||||
\textit{Wie kann die Anmeldung und Zustellung von Weinen für Weinproben des Regionalverbunds für Weine in der Weinregion Mosel am effektivsten durch eine TYPO3-Erweiterung realisiert werden, um einen maximalen Nutzen zu erzielen?}
|
||||
\textit{Wie kann 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?}
|
||||
|
@@ -1,2 +1,82 @@
|
||||
\chapter{Konzeption und Entwicklung}
|
||||
\label{chap:konzeption-entwicklung}
|
||||
\chapter{Umsetzung}
|
||||
\label{chap:umsetzung}
|
||||
Infolge der Anforderungsanalyse befasst sich das Kapitel \enquote{Umsetzung} mit der Implementation der Anforderungen in dem
|
||||
Brown-Field Projekt \cite{bib:schwarzer-vorlesung-swa} in Form einer TYPO3-Extension.
|
||||
|
||||
\section{Setup einer TYPO3-Extension}
|
||||
TYPO3-Extension werden via Composer installiert \cite{bib:typo3-docs-managing-extensions}.
|
||||
Um eine TYPO3-Extension zu erstellen muss also ein Composer-Paket erstellt werden.
|
||||
Um vermeidbare Komplexität zu verhindern wird das Composer-Paket das eine die hier betrachtete
|
||||
TYPO3-Extension darstellt, lokal in den versionierten Ordner \enquote{packages} gelegt.
|
||||
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, der mit dem Bereitstellen eines Paketes einhergeht, zu haben.
|
||||
\\
|
||||
\\
|
||||
Um das grundlegende Setup einer Extension effizient durchzuführen wurde eine
|
||||
existierende Extension vergleichbarem Funktionsumfanges kopiert, umbenannt, und eingefügt.
|
||||
Spezifisch ist der \enquote{vergleichbare Funktionsumfang}, dass es Datenmodelle und Plugins
|
||||
gibt.
|
||||
|
||||
\section{Digitization}
|
||||
Die Phase der Digitazion befasst sich mit der digitalen Abbildung von Objekten der realen Welt
|
||||
in einer Art und Weise sodass diese elektronisch weiterverarbeitet werden können \cite{bib:dougherty, bib:loebbecke}.
|
||||
Das bedeutet, dass in diese Phase Datenobjekte definiert und implementiert werden.
|
||||
Ein Datenobjekt besteht nach firmeninternen Konventionen aus zumindest
|
||||
vier Komponenten:
|
||||
\begin{description}
|
||||
\item{Datenbanktabelle} \\
|
||||
Die Datenbanktabelle persistiert Informationen.
|
||||
\item{Domain Model} \\
|
||||
Das Domain Model (auch Model genannt) ist eine PHP-Klasse,
|
||||
die jeweils die Daten einer Zeile der Datenbanktabelle abbildet.
|
||||
\item{Repository} \\
|
||||
Ein Repository ist eine PHP-Klasse, die die Schnittstelle
|
||||
zwischen der Datenbank und der Model-Klasse darstellt.
|
||||
\item{\ac{TCA}} \\
|
||||
Der \ac{TCA} des Modells definiert, wie diese Objekte im TYPO3-Backend dargestellt werden
|
||||
und bearbeitbar sind.
|
||||
\end{description}
|
||||
\cite{bib:typo3-docs-extbase-reference}.
|
||||
|
||||
Im Folgenden wurde ein semiformales Diagramm der Objekte und ihren Relationen nach dem
|
||||
Pflichtenheft 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}
|
||||
\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
|
||||
formalen Klassendiagramm festgehalten und in Rücksprache mit dem \ac{PO}
|
||||
weiter bis zu festen Datentypen und Auswahlmöglichkeiten konkretisiert.
|
||||
Beispielsweise, dass Wettbewerbskategorien als TYPO3-Categories verschachtelt gepflegt
|
||||
werden und dass Geschmacksrichtungen, Qualitätsstufen, Rebsorten, Weinlagen und
|
||||
Weineigenschaften eigene Datenobjekte
|
||||
sein sollen. Geschmack und Qualität sollen daher eigene Objekte sein, damit sich Nutzer
|
||||
für einen festen, nominalen Eintrag via einem Dropdown-Menü entscheiden müssen,
|
||||
diese allerdings immer noch im TYPO3-Backend pflegbar sind. Weinlagen sind allerdings im Brown-Field bereits vorhanden, also sollen hierfür
|
||||
existierenden Einträge verwendet werden. Weineigenschaften sollen pro Wein beliebig viele
|
||||
auswählbar sein, Wettbewerbskategorien, etc, jeweils genau ein Element.
|
||||
Notizen zu diesem Gespräch sind im Anhang unter \fullref{chap:anhang-notizen-digitization}
|
||||
zu finden.
|
||||
\\
|
||||
\\
|
||||
Da das Klassendiagramm gegeben lesbarer Schrift nicht auf eine Textseite passt,
|
||||
befindet es sich vollseitig im Anhang unter \fullref{chap:anhang-class-diagram}.
|
||||
Die weitere Implementation der Datenobjekte ist unkompliziert und besteht hauptsächlich aus
|
||||
repetitivem Schreiben von SQL-Tabellen, Domain-Model-Klassen und \acp{TCA}.
|
||||
Um $m,n$-Beziehungen wie Beispielsweise der Menge der für eine Probe zugelassenen Weinlagen
|
||||
\enquote{allowedVinesites} zwischen \enquote{Jahresauswahlprobe} und \enquote{Vineyardsite} zu
|
||||
ermöglichen, werden MM-Tabellen (many-to-many) benötigt, die diese Beziehungen in Form zweier
|
||||
Foreign Keys speichern. Die Repository-Klassen können \enquote{leer} gelassen werden,
|
||||
da zu diesem Zeitpunkt keine erweiterte Auswahllogik für Datenbankanfragen benötigt wird.
|
||||
Wichtig ist hierbei, dass eine Repository-Klasse existiert. Alle unverzichtbaren
|
||||
Schnittstellen werden über die Basisklasse \enquote{Repository} geerbt
|
||||
\cite{bib:typo3-docs-extdev-tut-tea-repositories}.
|
||||
Mit Abschluss der Digitization können alle Datenstrukturen im TYPO3-Backend händisch angelegt,
|
||||
eingesehen, gelöscht und bearbeitet werden.
|
||||
|
Reference in New Issue
Block a user