diff --git a/chapters/anforderungserfassung.tex b/chapters/anforderungserfassung.tex index dd44278..6528221 100644 --- a/chapters/anforderungserfassung.tex +++ b/chapters/anforderungserfassung.tex @@ -6,7 +6,7 @@ Hierbei ist es wichtig, kein exzessives Pflichtenheft aufzubauen, denn letztendl Nicht, wie viele gar nicht benötigte Anforderungen umgesetzt wurden. \enquote{\textit{Zu viele oder falsche Anforderungen ruinieren Budgets, Termine und die Qualität.}} \cite{bib:christoph-ebert-vorwort-systematisches-re}. -Die Anforderungen eines Produktes sind in drei Kategorien einzuteilen: \acp{FA}, \acp{NFA}, +Die Anforderungen eines Produktes sind in drei Kategorien einzuteilen: \acp{FA}, \acp{NFA} und Constraints \cite{bib:heinemann-vorlesung-re}. Wie oben erwähnt, sind bereits die Constraints und einige funktionale und nichtfunktionale Anforderungen bekannt. Diese sind: \begin{table}[htbp] @@ -65,7 +65,7 @@ Ebenso ist es wichtig, die wichtigsten Fragen am Anfang zu stellen, da Formulare \cite{bib:kleine-re-fibel}. Sämtliche Fragen an die Stakeholdergruppe \enquote{Mitarbeiter \ac{WM}} wurden bereits im Interview mit dem Product Owner beantwortet und als Anforderungen festgehalten. Insofern gibt es schlichtweg keine offnen Fragen, die diese Stakeholdergruppe -beantworten könnten. Damit fällt ein Onlinefragebogen für \enquote{Mitarbeiter \ac{WM}} weg. +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} diff --git a/chapters/stand-der-forschung.tex b/chapters/stand-der-forschung.tex index 8dabc5f..6e72daa 100644 --- a/chapters/stand-der-forschung.tex +++ b/chapters/stand-der-forschung.tex @@ -1,6 +1,6 @@ \chapter{Stand der Forschung} \label{chap:stand-der-forschung} -Der Stand der Forschung beleuchtet verschiedene Erkenntnisse zur Digitalisierung und zur Digitalen Transformation. +Der Stand der Forschung beleuchtet verschiedene Erkenntnisse zur Digitalisierung und zur digitalen Transformation. \section{Modell nach Parviainen et al} \quotecite{The importance of digitalization is becoming understood, @@ -42,7 +42,7 @@ Aus diesem Szenario werden schließlich die Ziele der Digitalisierung abgeleitet \end{nicepic} \paragraph*{Im zweiten Schritt} wird der Ist-Zustand des Unternehmens ermittelt. Dazu wird die aktuelle -Positionierung des Unternehmens im Hinblick auf den Zielzustand mit Fokus auf die Digitalisierungsziele betrachtet. Dazu wird +Positionierung des Unternehmens im Hinblick auf den Zielzustand mit Fokus auf den Digitalisierungszielen betrachtet. Dazu wird der Ist-Zustand im Kontext des Soll-Zustandes anhand definierter Fragen bewertet. Die Auswahl der Fragen unterscheidet sich je nach Art der Ziele. Der gesamte Fragenkatalog kann im Detail der Ausarbeitung von Parviainen et al. entnommen werden. @@ -54,20 +54,20 @@ Lücke zu schließen. Wenn zum Beispiel ein Treiber \enquote{interne Effizienz} Werkzeuge zu integrieren. Schließlich werden diese Schritte analysiert und priorisiert. Prädestiniert dafür sind Kosten-Nutzen-Analysen, Analysen der Umsetzbarkeit, des Wartungsaufwands und der Mitarbeiterschulung. -\paragraph*{Der vierte Schritt} Der vierte Schritt befasst sich mit der Umsetzung der in Schritt 3 geplanten Maßnahmen und +\paragraph*{Der vierte Schritt} befasst sich mit der Umsetzung der in Schritt 3 geplanten Maßnahmen und der Bewertung der erzielten Ergebnisse. Diese Bewertung der Ergebnisse sollte z.B. soziokulturelle Barrieren berücksichtigen, die sich aus den Reaktionen bestimmter Stakeholder ergeben, die möglicherweise negativ auf bestimmte Veränderungen reagieren oder Schwierigkeiten bei der Einführung neuer Technologien haben. Wenn diese Analyse zeigt, dass die Ziele der Digitalisierung nicht erreicht wurden, sollten Korrekturmaßnahmen in früheren Phasen ergriffen -werden.\cite{bib:Parviainen_Tihinen_Kaariainen_Teppola_2022}. +werden \cite{bib:Parviainen_Tihinen_Kaariainen_Teppola_2022}. \section{Modell nach Verhoef et al} Nach Verhoef et al lässt sich der hier so genannte \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 Modelle in digitale Datenmodelle, -so dass diese digital, z.B. in Form von Nullen und Einsen, gespeichert und elektronisch weiterverarbeitet werden können +Die Phase \textit{Digitization} befasst sich mit der Umwandlung analoger Datenstrukturen und Modellen in digitale Datenmodelle, +sodass diese digital, z.B. in Form von Nullen und Einsen, gespeichert und elektronisch weiterverarbeitet werden können \cite{bib:dougherty, bib:loebbecke}. \textit{Digitalisierung} beschreibt den Prozess der Veränderung bestehender Geschäftsprozesse, um mit digitalen Werkzeugen und Datenmodellen zu arbeiten \cite{bib:fengli}. diff --git a/chapters/stand-der-technik.tex b/chapters/stand-der-technik.tex index 1ce63c0..985f060 100644 --- a/chapters/stand-der-technik.tex +++ b/chapters/stand-der-technik.tex @@ -2,7 +2,7 @@ \label{chap:stand-der-technik} Der Stand der Technik bezieht sich auf bestehende praktische Umsetzungen der erforderlichen Technologien. Im Wesentlichen gibt es zwei Arten von Technologien, die untersucht werden müssen: Die bestehende Website von \ac{WM} und -eine PHP-Bibliothek zur Erzeugung von QR-Codes. +eine Bibliothek zur Erzeugung von QR-Codes. \section{Die bestehende Webseite} Als Mitentwickler des Projektes ist dem Author dieser Ausarbeitung bekannt, dass die bestehende Webseite von @@ -11,8 +11,8 @@ Webpack ist ein Modulbundler \cite{bib:smashmagazine-webpack} und Sass ein CSS-P \section{QR-Codes erstellen} Um mit QR-Codes zu arbeiten, ist es unabdinglich, QR-Codes zu erstellen, da dieselben sonst nicht vorhanden sind. -Prinzipiell gibt es zwei Möglichkeiten QR-Codes zu erstellen: Auf Browserseite in JavaScript und auf Serverseite in PHP. -Das ist so, da es lediglich diese zwei Domänen gibt. +Im Folgenden werden einige Implementationen von QR-Code-Generator-Bibliotheken im Detail betrachtet. Es wird sich +auf bereits verwendete Programmiersprachen begrenzt. \subsection{Javascript-Implementationen} \subsubsection*{jquery-qrcode} @@ -40,7 +40,7 @@ und detailreichen Erklärungen. Der letzte Commit ist zu diesem Zeitpunkt knapp Projekt einen moderat gepflegten Eindruck. Die Readme-Datei verweist auf Unit Tests bei Travis, jedoch lief die letzte Pipeline vor circa zwei Jahren, Februar 2021, durch und schlug zudem fehl. Einige Pull-Requests und Issues werden seit Jahren ignoriert \cite{bib:soldair-node-qrcode}. -Die Bibliothek wurde 74 Millionen mal heruntergeladen mit 6308 Sternen markiert. +Die Bibliothek wurde 74 millionen mal heruntergeladen und mit 6308 Sternen markiert. Soldair/node-qrcode ist MIT-lizensiert \cite{bib:npmjs-soldair-node-qrcode}. \subsection{PHP-Implementationen} @@ -49,9 +49,9 @@ Eine arrivierte Lösung für QR-Code Generierung in PHP ist \textit{chillerlan/p Eugen Rochko und weitere. Das zeigt sich durch den zu diesem Zeitpunkt auf 5 Millionen stehendem Downloadzähler, mehrere Entwickler und den letzten Commit, der zu diesem Zeitpunk nicht älter als einen Monat ist. Insgesamt erfolgten bis dato 808 Commits von 6 Entwicklern. Das Projekt verfügt über Unit-Tests, -die 90\% der Zeilen in der Codebase abdecken. Rochko übernahm Teile der Codebase aus +die 90\% der Zeilen der Codebase abdecken. Rochko übernahm Teile der Codebase aus dem Java-Projekt \enquote{ZXing} und übersetzte diese zu PHP. -Issues und Pull Requests sind alle bearbeitet. Es gibt zu diesem Zeitpunkt keine unbeantworteten Issues oder Pull-Requests. +Es gibt zu diesem Zeitpunkt keine unbeantworteten Issues oder Pull-Requests. \textit{chillerlan/php-qrcode} basiert auf einer angepassten Version von \textit{kazuhikoarase/qrcode-generator}. Einzig auffällig sind die Commitnachrichten, die zuteils nur aus einem (1) Emoji bestehen. \textit{chillerlan/php-qrcode} wurde von 1212 Github-Nutzern mit einem Stern markiert. Die Bibliothek ist MIT-lizensiert @@ -62,9 +62,9 @@ Einzig auffällig sind die Commitnachrichten, die zuteils nur aus einem (1) Emoj \textit{Kreative Software}, R.G. Bettencourt. Diese Implementation umfasst eine Vielzahl an Barcode-Formaten und unterstützt eine Vielzahl an Anpassungsmöglichkeiten. Das Projekt wurde bis zum heutigen Tage 189 mal mit einem Stern markiert \cite{bib:kreativkorp-barcode}. -Die letzte Codeänderung dieses Projektes ist auf 2018 datiert \cite{bib:kreativkorp-barcode}. Das liegt zu diesem Zeitpunkt -vier Jahre in der Vergangenheit. Vier von den sechs Commits erfolgten innerhalb von zwei Tagen in 2016. Ein weiterer +Vier von den sechs vorhandenen Commits erfolgten innerhalb von zwei Tagen in 2016. Ein weiterer Commit erfolte wenige Tage später. Der aktuellste Commit wurde knapp zwei Jahre später, 2018, veröffentlicht. +Das liegt zu diesem Zeitpunkt vier Jahre in der Vergangenheit. Damit ist diese Bibliothek de-facto sechseinhalb Jahre alt und wurde seitdem ein mal um Featuers erweitert. Issues und Pull-Requests werden weitestgehend ignoriert. Die Bibliothek verwendet die MIT-Lizenz @@ -76,25 +76,25 @@ der Github-Organisation \enquote{Bacon}, dessen einziges Mitglied Scholzen darst die zu einer Nginx-\enquote{Hello World}-Seite führt. Begleitet wird BaconQrCode von etlichen weiteren Bacon-Applikationen wie Beispielsweise \textit{BaconPdf}, \textit{BaconStringUtils} und \textit{BaconUser} um nur einige zu nennen. Insgesamt machen die stichprobenartig betrachteten Projekte einen desolaten Eindruck mit zuteils aktuellesten Commits -von vor 10 Jahren. BaconQrCode stellt das beliebteste und gepflegteste Projekt mit 1508 Sterne-Markierungen und -einem aktuellsten Commit von vor zwei Monaten dar. BaconQrCode erfreut sich an 17 Entwicklern, die jeweils zumindest +von vor zehn Jahren. BaconQrCode stellt das beliebteste und gepflegteste Projekt von Scholzen mit 1508 Sterne-Markierungen und +einem aktuellsten Commit von vor zwei Monaten dar. BaconQrCode erfreut sich an siebzehn Entwicklern, die jeweils zumindest einen Commit beigetragen haben. Insgesamt fanden zu diesem Zeitpunkt 177 Commits statt. Githubs DependencyGraph verzeichnet -nahezu 80.000 Projekte die BaconQrCode verwenden\cite{bib:bacon-baconqrcode} und Packagist spricht von 50 Millionen Downloads +nahezu 80.000 Projekte die BaconQrCode verwenden \cite{bib:bacon-baconqrcode} und Packagist spricht von 50 Millionen Downloads \cite{bib:packagist-baconqrcode}. Eine Dokumentation neben der Readme-Datei existiert nicht und die -diese ist bescheiden. BaconQrCode kann QR-Codes als Rasterbild und Vektorgrafiken (SVG und EPS) generieren. +diese ist bescheiden. BaconQrCode kann QR-Codes als Rasterbilder und Vektorgrafiken (SVG und EPS) generieren. Spezielle Styles sind nicht erwähnt. Ein Großteil der Issues und Pull-Requests wurden behandelt. BaconQrCode ist mit einer BSD-2-Clause-Lizenz lizensiert \cite{bib:bacon-baconqrcode}. \subsection{Vergleich in Bezug auf die Problemstellung} -Um eine Bibliothek als \enquote{die Beste} für einen Anwendungsfall zu kurieren, +Um eine Bibliothek als \enquote{die Beste} für einen Anwendungsfall kurieren zu können, müssen die konkreten Anforderungen und Constraints für diesen Anwendungsfall beachtet werden. Das ist so, da verschiedene Eigenschaften der Bibliotheken verschiedene Auswirkung in Gewichtung und Richtung je nach Anwendungsfall aufweisen. Hierfür werden die zuvor vorgestellten Bibliotheken zur Erstellung von QR-Codes in den folgenden Attributen gegenübergestellt: \begin{description} \item [Funktionialität] \hfill \\ - Der Umfang der für diese Problemstellung relevanten Funktionen in Annahme dessen, dass die Bibliothek + Der Umfang, der für diese Problemstellung relevanten Funktionen in Annahme dessen, dass die Bibliothek syntaktisch und pragmatisch korrekt \cite{bib:heinemann-vorlesung-re} ist. \item [Gepflegtheit] \hfill \\ @@ -114,7 +114,7 @@ Hierfür werden den verschiedenen Bibliotheken Punkte ($[0,10]$) in den zuvor ge Die Kumulativpunktzahl einer Bibltiothek beschreibt deren Gesamteignung. \subsubsection*{kjua} -Kjua ist funktionell für dieses Projekt gut aufgestellt, da es optisch ansprechende QR-Codes mit Logo unterstützt. Das wird +Kjua ist funktional für dieses Projekt gut aufgestellt, da es optisch ansprechende QR-Codes mit Logo unterstützt. Das wird mit acht Punkten in \enquote{Funktionalität} bemessen. Kjua macht andererseits einen eher desolaten Eindruck und lässt somit begründete Zweifel an dessen Zukunftssicherheit zu. Eine knappe Dokumentation ist verfügbar. Für die Dokumentation werden zwei Punkte in \enquote{Gepflegtheit} angerechnet. @@ -123,13 +123,6 @@ da der QR-Code in einem PDF eingebunden werden soll. Hierfür wäre ein serverse Kjuas Lizenz erlaubt Verwendung in kommerziellen, Closed-Source Projekten \cite{bib:opensource-license-mit}. Die Exklusivität für Nutzung in Webbrowsern schließt eine Einbindung in den Workflow aus. -\begin{nicepic} - \includegraphics[width=1\textwidth]{images/qrlib-compare-barchart.png} - \captionof{figure}{Vergleichsergebnisse QR-Code Bibliotheken} - \caption*{Quelle: Eigene Darstellung} - \label{fig:qrlib-compare-barchart} -\end{nicepic} - \subsubsection*{soldair/node-qrcode} Soldairs Lösung sieht dokumentativ und funktional vielversprechend aus. Hieraus bilden sich 8 Punkte in \enquote{Funktionalität}. @@ -152,7 +145,7 @@ Bewertet wird das mit einer vollen Punktzahl in \enquote{Funktionalität}. Chillerlan/php-qrcode lässt sich nahtlos in das existierende Projekt eingliedern, da es als PHP-Bibliothek über Composer eingebunden werden kann und eine eigene API bereitstellt \cite{bib:chillerlan-php-qrcode}. Die von Rochko verwendete Lizenz gestattet eine unkomplizierte Verwendung. Chillerlan/php-qrcode funktioniert sowohl mit -PHP \^7.4 und \^8.0. Die Bibliothek benötigt zwei weitere Abhängigkeiten. Eine dieser Abhängigkeiten ist ebenfalls von Rochko +PHP $7.x$ und $8.x$. Die Bibliothek benötigt zwei weitere Abhängigkeiten. Eine dieser Abhängigkeiten ist ebenfalls von Rochko bereitgestellt \cite{bib:chillerlan-php-qrcode-composerjson} und weist eine ähnlich gute Projektpflege auf \cite{bib:chillerlan-php-settings-container}. Das wird mit der Maximalwertung in \enquote{Workflow-Eignung} berechnet. @@ -173,12 +166,19 @@ die andere Bibliotheken bereitstellen, werden lediglich fünf von 10 Punkten fü 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. Für die \enquote{Gepflegtheit} werden 8 Punkte vergeben. -Da es sich hierbei um eine PHP-Bibliothek handelt, die über Composer in PHP- \^7.4 und \^8.0 Projekte geladen werden kann +Da es sich hierbei um eine PHP-Bibliothek handelt, die über Composer in PHP- $7.x$ und $8.x$ Projekte geladen werden kann und eine API bereitstellt, ist die \enquote{Workflow-Eignung} gut. Die BSD-2-Clause-Lizenz verkompliziert eine Integration, da dadurch eine Copyright-Notiz an Nutzer gezeigt werden muss \cite{bib:opensource-license-bsd-2}. Dadurch werden drei Punkte einer vollkommenen Workflow-Eignung abgezogen, wodurch sieben Punkte vergeben werden. \subsection{Fazit} +\begin{nicepic} + \includegraphics[width=1\textwidth]{images/qrlib-compare-barchart.png} + \captionof{figure}{Vergleichsergebnisse QR-Code Bibliotheken} + \caption*{Quelle: Eigene Darstellung} + \label{fig:qrlib-compare-barchart} +\end{nicepic} + Nach Evaluation der verschiedenen QR-Code-Bibliotheken im Kontext der vorliegenden Problemstellung erweist sich -\textit{chillerlan/php-qrcode} als die am besten geeignetste Bibliothek. Somit wird \textit{chillerlan/php-qrcode} -als QR-Code Technologie verwendet werden. +\textit{chillerlan/php-qrcode} mit 30 Gesamtpunkten als die am besten geeignetste Bibliothek. +Somit wird \textit{chillerlan/php-qrcode} als QR-Code Technologie in der Lösung dieser Problemstellung verwendet werden. diff --git a/dexes/acrodex.tex b/dexes/acrodex.tex index 0637c5c..75aaccc 100644 --- a/dexes/acrodex.tex +++ b/dexes/acrodex.tex @@ -16,8 +16,8 @@ \acro{FA}[FA]{Funktionale Anforderung} \acroplural{FA}[FAs]{Funktionale Anforderungen} -\acro{NFA}[NFA]{Nichtfunktionale Anforderung} -\acroplural{NFA}[NFAs]{Nichtfunktionale Anforderungen} +\acro{NFA}[NFA]{nichtfunktionale Anforderung} +\acroplural{NFA}[NFAs]{nichtfunktionale Anforderungen} \acro{ELN}[ELN]{Einlieferungsnummer} \acroplural{ELN}[ELNs]{Einlieferungsnummern} diff --git a/main.pdf b/main.pdf index 9d18741..0dfd693 100644 Binary files a/main.pdf and b/main.pdf differ