Add new stuff

pull/3/head
Jonas Franz 2 years ago
parent c66b43ea64
commit 3fb5939fec
  1. 22
      bibliography.bib
  2. 26
      chapters/analyse/analyse.tex
  3. 1
      frontbackmatter/Acronyms.tex

@ -220,5 +220,27 @@ url="https://doi.org/10.1007/978-3-8274-2247-7_16"
urldate={2022-02-08}
}
@article{mi,
author = {Welker, Kurt D. and Oman, Paul W. and Atkinson, Gerald G.},
title = {Development and Application of an Automated Source Code Maintainability Index},
journal = {Journal of Software Maintenance: Research and Practice},
volume = {9},
number = {3},
pages = {127-159},
keywords = {software metrics, source code degradation, maintainability index, software quality assurance, re-engineerng, maintainability case studies},
doi = {https://doi.org/10.1002/(SICI)1096-908X(199705)9:3<127::AID-SMR149>3.0.CO;2-S},
url = {https://onlinelibrary.wiley.com/doi/abs/10.1002/%28SICI%291096-908X%28199705%299%3A3%3C127%3A%3AAID-SMR149%3E3.0.CO%3B2-S},
eprint = {https://onlinelibrary.wiley.com/doi/pdf/10.1002/%28SICI%291096-908X%28199705%299%3A3%3C127%3A%3AAID-SMR149%3E3.0.CO%3B2-S},
year = {1997}
}
@misc{miDart,
author = {Krutskikh, Dmitry},
title = {Maintainability Index - Dart Code Metrics},
year = {2021},
url = {https://dartcodemetrics.dev/docs/metrics/maintainability-index},
urldate = {2022-01-11}
}
@Comment{jabref-meta: databaseType:bibtex;}

@ -70,11 +70,33 @@ Ausgehend von der Prüfung dieser Eigenschaften, wird eine Bewertung von einer S
\subsection{Effizienz}
Erfolgt das neu-bauen von Widgets nur, wenn dies wirklich notwendig ist
Die Effizienz eines Zustandsverwaltungssystem lässt sich auch dadurch messen, wie effizient es das Neubauen von Widgets nach Veränderungen orchestriert. So sollte ein Widget nur dann neugebaut werden, wenn dies durch eine das Widget betreffende Änderung des Zustands es verlangt. Andere Betrachtungen der Performance sind nur schwer zu messen, da sich andere Variablen wie die Architektur oder Verwendung innerhalb der Anwendung einen großen Einfluss darauf haben.
Geprüft werden soll dieses Verhalten an x verschiedenen Prüfstellen in der Anwendung, indem durch Breakpoints untersucht wird, wann das Widget neu gebaut wird. Davon ausgehend wird eine Bewertung in einer Prozentskala gewählt, die sich an den bestandenen Prüfungen orientiert.
\subsection{Komplexität / Wartbarkeit}
Kombination mit quantitativer Bewertung
Zur Messung der Komplexität ist es auch möglich, die Komplexität eine Anwendung quantiativ zu messen. Für diesen Anwendungsfall werden in der Literatur diverse Verfahren und Metriken beschrieben. Die Metrik \ac{mi} kombiniert dabei diverse Metriken und gewichtet sie. Im Detail wird wie in \autoref{eqn:mi} dargestellt, das durchschnittliche Halstead-Volumen ($aveV$), die durchschnittliche zyklomatische Komplexität ($aveVG2$) und die durchschnittliche Anzahl der Quelltextzeilen ($aveLOC$) verwendet. \autocite[133]{mi} Aufbauend auf dieser Kombination von Metriken soll eine ein-wertige Metrik geschaffen werden, die zum Ausdruck bringt, wie wartbar eine Software ist. \autocite[129]{mi}
\begin{equation}
\begin{split}
\label{eqn:mi}
\text{Maintainability index} = 171 - 5,2 * ln(aveV) \\- 0,23*aveVG2 \\- 16,2*ln(aveLOC)
\end{split}
\end{equation}
Um diese Metrik für die einzelnen Systeme zu bestimmen, wird das Werkzeug \textit{Dart Code Metrics} eingesetzt, welches diverse Metriken für Dart-Quelltext bestimmen kann. Der von dem Werkzeug berechnete Wert wird leicht abweichend , wie in \autoref{eqn:miImproved} zu sehen, von der Original-Formel auf eine Skala von 0-100 abgebildet. \autocite{miDart}
\begin{equation}
\begin{split}
\label{eqn:miImproved}
\text{Maintainability index} = max(0, (171 \\- 5,2 * log(HALVOL) \\- 0,23 * log(CYCLO) \\- 16,2 * log(SLOC)) * 100 / 171)
\end{split}
\end{equation}
Kombination mit quantitativer
Bewertung
https://dartcodemetrics.dev/docs/metrics/maintainability-index
\subsection{Verständlichkeit / Lesbarkeit}

@ -12,5 +12,6 @@
% Insert your acronyms here
\begin{acronym}[BLoC]
\acro{bloc}[BLoC]{Business Logic Components}
\acro{mi}[MI]{Maintainability Index}
\end{acronym}
\cleardoublepage

Loading…
Cancel
Save