Add versuchsaufbau

pull/3/head
Jonas Franz 3 years ago
parent 6f6eebffe2
commit ed6d3a18c1
  1. BIN
      chapters/realisation/cart.png
  2. BIN
      chapters/realisation/product_list.png
  3. 35
      chapters/realisation/realisation.tex
  4. 1
      classicthesis-config.tex
  5. 1
      frontbackmatter/Acronyms.tex

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 KiB

@ -73,14 +73,45 @@ Hierfür wird das Versionsverwaltungssystem Git eingesetzt. Die einzelnen Anwend
Außerdem wird in dem gemeinsamen Arbeitszweig die Versuchsvorrichtung für die Effizienz-Messung bereits vorbereitet, damit für alle Zustandsverwaltungssysteme das gleiche Messverfahren zum Einsatz kommen kann.
Der gesamte Quelltext wird in einem Git-Repository \autocite{repo} öffentlich zur Verfügung gestellt.
\newpage
\section{Ergebnis der Beispielanwendung}
Die Beispielanwendung wurde im Material-Design mit Flutter in der Version 2.10.1 erstellt. Das Design weicht dabei nur leicht von dem in den Wireframes konzipierten Design ab, wie in \autoref{fig:realisation} zu sehen ist.
Die Funktionen sind abgesehen von der Navigation noch nicht implementiert, da dies, wie beschrieben, durch die Implementierung mit den Zustandsverwaltungssystemen erfolgt.
\begin{figure}[h]%
\centering
\subfloat[\centering Produktliste]{{\includegraphics[width=.4\linewidth]{chapters/realisation/product_list.png} }}%
\qquad
\subfloat[\centering Warenkorb]{{\includegraphics[width=.4\linewidth]{chapters/realisation/cart.png} }}%
\caption{Umsetzung der Wireframes in Flutter unter iOS}%
\label{fig:realisation}%
\end{figure}
\subsection{Versuchsaufbau}
Neben den sichtbaren Elementen der Anwendung wurde auch eine Infrastruktur zur Durchführung der Messung für die \nameref{sec:efficiency} und \nameref{sec:complexity} geschaffen.
Die Messung der \nameref{sec:complexity} erfolgt über die Metrik des \acl{mi}. Dieser Wert wird mit dem Tool \texttt{dart\_code\_metrics} ermittelt. Um die Berechnung unabhängig von der Laufzeitumgebung zu machen, wird die Berechnung in einem Docker-Container mit einem \ac{ci} durchgeführt. Die einzelnen Durchführungsschritte sind dabei in der \ac{ci}-Konfigurationsdatei \autocite[.drone.yml]{repo} im Unterschritt \texttt{generate\_metrics} dokumentiert. Die vollständigen Testergebnisse sind dieser Ausarbeitung im Anhang beigefügt.
Für die Messung der \nameref{sec:efficiency} wird an zwei Messpunkten gemessen, wie oft ein Widget neu gebaut werden muss. Dazu wird ein Zähler erhöht, wenn die Build-Methode des entsprechenden Widgets aufgerufen worden ist. Zur Messung wird ein automatisierter Test \autocite[test/efficiency\_bechmark\_test.dart]{repo} durchgeführt, welcher mehrere Produkte zum Warenkorb hinzufügt und wieder entfernt, und die An- und Abmeldung des Benutzenden auslöst. Im letzten Schritt wird zur Warenkorbansicht navigiert.
Die beiden Messpunkte wurden dabei an folgenden Stellen angebracht. Der erste Messpunkt \texttt{cartButton} wird ausgelöst beim Rendern des Warenkorb-Buttons und der zweite Messpunkt \texttt{userSwitch} wird ausgelöst beim Rendern des Schalters zum An- und Abmelden. Diese beiden Widgets wurden gewählt, da sie von Zustandsänderungen betroffen sind, allerdings nicht von allen Zustandsänderungen der Anwendung und außerhalb einer Listenansicht sind.
Beim Ausführen des Tests für die beschriebene Basisanwendung ohne Zustandsverwaltung wurde folgendes Ergebnis ermittelt:
Anzahl der Render-Vorgänge:
\begin{itemize}
\item \texttt{cartButton}: 1
\item \texttt{userSwitch}: 2
\end{itemize}
Diese Ergebnisse stellen die Minimalwerte für den Test dar.
% * Anforderungen an die Beispielanwendung (/)
% * Beschreibung der Beispielanwendung (/)
% * Skizze der Beispielanwendung (/)
% * Vorgehen beim Implementieren (/)
% * Ergebnis der Beispielanwendung
% * Ergebnis der Beispielanwendung (/)
% * Beschreibung des Versuchsaufbaus

@ -112,6 +112,7 @@
\usepackage{scrhack} % fix warnings when using KOMA with listings package
\usepackage{xspace} % to get the spacing after macros right
\usepackage{mparhack} % get marginpar right
\usepackage{subfig}
%\usepackage{fixltx2e} % fixes some LaTeX stuff --> since 2015 in the LaTeX kernel (see below)
% \usepackage[latest]{latexrelease} % emulate newer kernel version if older is detected
\PassOptionsToPackage{printonlyused,smaller}{acronym}

@ -13,5 +13,6 @@
\begin{acronym}[BLoC]
\acro{bloc}[BLoC]{Business Logic Components}
\acro{mi}[MI]{Maintainability Index}
\acro{ci}[CI]{Continous-Integration-System}
\end{acronym}
\cleardoublepage

Loading…
Cancel
Save