Add Anforderungen

pull/3/head
Jonas Franz 2 years ago
parent 39478d7fad
commit ea3f0d807b
  1. 12
      bibliography.bib
  2. 36
      chapters/analyse/analyse.tex
  3. 8
      nodes.md

@ -208,5 +208,17 @@ doi="10.1007/978-3-8274-2247-7_16",
url="https://doi.org/10.1007/978-3-8274-2247-7_16"
}
@article{rosenberg1997software,
title={Software quality metrics for object-oriented environments},
author={Rosenberg, Linda H and Hyatt, Lawrence E},
journal={Crosstalk journal},
volume={10},
number={4},
pages={1--6},
year={1997},
url={http://people.ucalgary.ca/~far/Lectures/SENG421/PDF/oocross.pdf},
urldate={2022-02-08}
}
@Comment{jabref-meta: databaseType:bibtex;}

@ -6,6 +6,8 @@ Nachdem nun die diversen existierenden Ansätze für die Zustandsverwaltung in F
Die grundlegende Anforderung für Zustandsverwaltungssysteme ist es, dass sie den Zustand einer Anwendung und bestimmter Teile einer Anwendung wie eines Widgets oder einer ganzen Seite verwalten können. Alle bereits vorgestellten Lösungsansätze können dies mit mehr oder weniger Aufwand auch erfüllen. Allerdings ist es neben der Aussage, ob ein System diese Anforderung umsetzen kann, auch wichtig wie und in welcher Qualität diese umgesetzt werden.
\subsection{Allgemeine Anforderungen}
Die Wahl eines Zustandsverwaltungssystems bestimmt die Architektur einer Anwendung signifikant mit. Daher sind die Anforderungen an eine gute Architektur oder ein gutes Software-Design auch in Teilen auf Zustandsverwaltungssysteme übertragbar. Um nun daraus Anforderungen zu konstruieren, ist es also erforderlich, sich anzuschauen, was ein gutes Software-Design überhaupt ausmacht.
Zur Bewertung von Software-Qualität wurden diverse Anforderungen und Kriterien entwickelt. Diese wurden mit der ISO-Norm 9126 standardisiert. Eines der Qualitätsmerkmale ist die Wartbarkeit von Software, die wie folgt beschrieben wird:
@ -14,6 +16,40 @@ Zur Bewertung von Software-Qualität wurden diverse Anforderungen und Kriterien
Daraus ergeben sich auch Anforderungen an die Quelltext-Qualität. Darunter wird beispielsweise die Anforderungen der \textcquote[470]{Balzert2009}{Änderbarkeit[...] [und] Testbarkeit} verstanden. Diese Anforderungen können auch für Zustandsverwaltungssysteme übernommen werden. Zustandsverwaltungssysteme und die Anwendungen, die diese verwenden, müssen effizient veränderbar und erweiterbar sein. Zusätzlich ist eine wichtige Anforderung diese, dass die resultierende Anwendung auch automatisiert testbar sein muss, um zu prüfen, ob sie den gewünschten Anforderungen entspricht.
Zusätzlich zu diesen beiden Anforderungen spielen auch noch weitere Anforderungen zur Sicherstellung von Software-Qualität eine Rolle wie in \citetitle{rosenberg1997software} beschrieben wird. So seien die Attribute der Effizienz, Komplexität, Verständlichkeit, Wiederverwendbarkeit und Testbarkeit/Wartbarkeit von Bedeutung. \Autocite[vgl.][1]{rosenberg1997software} Diese Anforderungen lassen sich auf den beschriebenen Evaluationsfall übertragen, müssen allerdings noch auf diesen Anwendungsfall hin angewandt werden.
Angewendet auf Zustandsverwaltungssysteme könnte die Effizienz dadurch beschrieben werden, wie effizient das Aktualisieren der Widgets im Widgetbaum erfolgt. Beispielsweise könnte hier untersucht werden, ob nur die Widgets neu erstellt werden, die von einer Änderung wirklich betroffen sind.
Die Verständlichkeit kann angewendet so gedeutet werden, ob die durch die Verwendung des Systems neu geschaffenen Strukturen auch einfach zu verstehen - also verständlich sind.
Die Wiederverwendbarkeit lässt sich nicht gut auf Zustandsverwaltungssysteme übertragen, da die geschaffenen Strukturen immer auf den spezifischen Anwendungsfall ausgerichtet sind, und somit eine Wiederverwendbarkeit keine hohe Relevanz hat.
Die Testbarkeit/Wartbarkeit wurden bereits bei der Erläutungen zum ISO-Standard berücksichtigt und lassen sich auch auf den Anwendungsfall wie beschrieben anwenden.
\subsection{Spezifische Anforderungen}
Neben diesen allgemeinen Anforderungen, stellen sich noch spezifische Anforderungen an die Zustandsverwaltungssysteme.
Für die Integration und Einbindung der Systeme durch Entwickler*innnen, ist es erforderlich, dass das System hinreichend dokumentiert ist, damit die Einbindung und Umsetzung erleichtert wird.
Gerade bei Anwendungen, die mit agilen Methoden entwickelt werden, wird oft iterativ vorgegangen und die Anwendung so schrittweise erweitert. Daraus ergibt sich die Anforderung, dass die Systeme mit den Wachstum der Anwendung mithalten können - also skalierbar sind. Dies erweitert die bereits beschriebene Anforderung der Änderbarkeit.
Da wie bereits erwähnt, die Zustandsverwaltung ein integraler und architekturbestimmender Teil der Anwendung ist, ist es bei der Entwicklung ebenfalls hilfreich, wenn durch dieses System bereits eine gewisse Struktur vorgegeben wird. Dies hilft dabei, auch bei größeren Projekte einheitliche Vorgehensweisen durchzusetzen und somit einen homogenen Quelltextstil zu forcieren.
\subsection{Zusammenfassung}
Wenn man nun die allgemeinen und spezifischen Anforderungen zusammenfasst, erhält man folgenden Anforderungskatalog:
\begin{itemize}
\item Änderbarkeit / Skalierbarkeit
\item Testbarkeit / Wartbarkeit
\item Effizienz
\item Komplexität
\item Verständlichkeit
\item Dokumentierung
\item Strukturbestimmung
\end{itemize}
% Lesbarkeit

@ -19,4 +19,10 @@
3.4. Bewertung der Ergebnisse
5. Fazit
4.1. Zusammenfassung der Ergebnisse aus (3)
4.2. Kommentar
4.2. Kommentar
TODOS:
Die Aufzählung der Werkzeuge für das State-Management ist ja schon recht gut ausgearbeitet. (Vielleicht könnten Sie hier noch mehr auf die jeweils zugrundeliegende Idee eingehen. Also z.B. warum wurde das Framework "erfunden"? Wie weit ist es verbreitet? -> Teilweise haben Sie das schon beschrieben).

Loading…
Cancel
Save