Konfigurationsunterstützung und Infrastrukturansatz für flexible Metrik-basierte Monitoring-Dashboards

Dokumente

Ausarbeitung

Hintergrund:

Metriken sind ein Mittel zur qualitativen Messung von Software und Softwareprozessen. Die Erhebung und Darstellung von Metriken ist ein Prozess der mit Aufwand verbunden ist und durch Softwaresysteme unterstützt werden sollte. Zu diesem Zweck wurde am Lehrstuhl für Software Construction der RWTH Aachen die schichten-basierte Enterprise Measurement Infrastructure (EMI) entwickelt. EMI stellt eine erweiterbare, wartbare und auf die Kundenbedürfnisse anpassbare Architektur zur Verfügung, die anstelle einer zentralen Datenspeicherung eine verteilte Erhebung und Speicherung verschiedener Daten erlaubt. Zur Visualisierung der Metriken in grafischer Form kommt SCREEN zu Einsatz, welches Teil der Visualisierungsschicht von EMI ist. Die Darstellung von Metriken erfolgt in SCREEN durch Dashboards, welche die Möglichkeit bieten mehrere Metriken grafisch darzustellen, miteinander zu vergleichen und zu analysieren.
SCREEN, ehemals MeDIC-Dashboard, bot in der ersten Version für Metriken verschiedene grafische Darstellungsarten, jedoch mangelte es zu diesem Zeitpunkt an einer Möglichkeit unterschiedliche Darstellungstypen oder Messwerte auszuwählen und die Visualisierung somit variabel zu gestalten. Zu diesem Zweck wurde in einer weiteren Arbeit ein Variabilitäts-Ansatz entwickelt, der SCREEN um die Funktionalität erweitert Messwerte und später auch die grafische Darstellung variabel durch den Benutzer zu gestalten. Durch diesen Ansatz wird eine hohe Flexibilität und Anpassbarkeit realisiert, die allerdings mit erhöhter Komplexität bei der Konfiguration verbunden ist. Für erfahrene Anwender ist eine hohe Flexibilität wünschenswert, wohingegen für unerfahrene ein Trade-off zwischen Flexibilität und Komplexität gewünscht ist. Zu diesem Zweck ist ein Mechanismus erforderlich der das Verhältnis zwischen Flexibilität und Komplexität balanciert. Dieser soll als Teil dieser Arbeit entwickelt und in Form von Frameworks umgesetzt werden.

Forschungsgegenstand:

Zur Adressierung des Problems des Komplexitätsmanagement von flexiblen Dashboards konnten bisher folgende Fragen ermittelt werden:

  • Ist es möglich den Variabilitätsansatz so zu erweitern das dieser auch auf die grafischen Elemente zur Darstellung von Metriken Anwendung findet?
  • Kann die Variabilität über einen auf Widgets basierenden Ansatz realisiert werden, ähnlich zu den Widgets des Google Web Toolkit (gwt) oder den UI Components von Primefaces (pri)?
  • Wie kann die durch Variabilität entstehende Komplexität reduziert bzw. abgekapselt werden ohne auf die Flexibilität dieser verzichten zu müssen?
  • Gibt es einen Weg Komplexität und Flexibilität an Benutzer oder Gruppen zu binden, um somit für Metrik-Experten eine hohe Flexibilität und für unerfahrene Nutzer eine geringe Komplexität zu bieten?
  • Können die Ansätze zur Abkapselung der Komplexität und der Widget-Ansatz mittels Frameworks realisiert werden, um so die Handhabung mit diesen zu erleichtern?
  • Können Widgets so realisiert werden das sie nur den Visualisierungsaspekt implementieren und die Aufbereitung der Daten und Kontrolle der Widgets über das SCREEN-Config Framework geschieht?

Aufgabe:

In dieser Arbeit sollen mehrere Frameworks entwickelt werden. Ein Konfigurationsframework welches durch die Einführung des Konzeptes der ?Frames? die Aufgabe zur Kapselung der Komplexität im Dashboard übernehmen soll und ein weiteres Framework das die Definition und Handhabung der Widgets erleichtern soll. Das Konfigurationsframework gliedert sich als Zwischenschicht zwischen Dashboards und den Metrik-Kernels ein und variiert so die angeforderten Daten. Das Widget-Framework hingegen bietet Komponenten die zum Rendern verschiedener Darstellungsarten verwendet werden können. Die geplante Einbettung der Frameworks in das bestehende System ist in Abbildung 1 zu sehen.

SCREEN Config
Abbildung 1: Einbettung der Frameworks in das vorhandene System

Frames sollen Komplexität abkapseln indem vorkonfigurierte Pakete definiert werden können, die die Varianten für Messwerte und Darstellungsarten setzen. Frames ermöglichen somit bspw. die Darstellung von Metriken als Balkendiagramm und Messintervallen in Form von Tagen, ohne diese Einstellungen separat in mehreren Schritten vornehmen zu müssen. Durch die Wahl eines entsprechenden Frames durch einen Nutzer sollen alle Varianten, die im Frame definiert sind, für Messwerte und Darstellungsart automatisch gesetzt werden. Abbildung 2 zeigt das Klassendiagramm wie der Ansatz der Frames durch die Verwendung von anwenderspezifischen Frames flexibel und individuell gestalten werden soll. Eine Definition von Frames für alle Nutzer, für spezifische Benutzergruppen und für einzelne Nutzer soll möglich sein. Erstere stehen allen Nutzern, GroupFrames nur bestimmten Gruppen und UserFrames nur einzelnen Nutzern zur Verfügung. Dadurch soll verhindert werden das alle im System vorhandenen Frames allen Nutzern zur Verfügung stehen und ein angemessener Trade-Off zwischen Flexibilität und Komplexität bei der Auswahl der Frames entsteht. Neben den vorkonfigurierten Frames soll ein Expertenmodus existieren der weiterhin die Möglichkeit bietet alle Varianten manuell auszuwählen. Dies soll gewährleisten, dass die Varianten den Bedürfnissen der Benutzer angepasst werden können ohne dabei nur auf die vordefinierten Frames angewiesen zu sein. Die Definition und Konfiguration von Frames soll durch Metrik-Experten in einer Administrationsansicht, die Teil von SCREEN-Config sein soll, vorgenommen werden. Neben der von den Metrik-Experten definierten Frames soll das System unabhängig davon eine Menge von Standard Frames bieten die basierend auf Erfahrungswerten ermittelt werden sollen.

FramesHirarchy
Abbildung 2: Klassendiagramm der anwenderspezifischen Frames

Die Variabilität beim Rendering von Metriken in grafischen Form soll im Dashboard über ?Widgets? adressiert werden. Widgets sollen als Komponenten in einem eigenen Framework definiert werden um in Widget-Containern im Dashboard eingebunden und nach Belieben ausgetauscht werden zu können. Durch die Definition und die Austauschbarkeit verschiedener Widgets soll die Darstellungsart von Metriken variabel gestaltbar sein. Bspw. können Widgets zur Darstellung von Balken-, Liniendiagrammen oder von mehreren Boxplots definiert und verwendet werden. Ein Widget soll zu diesem Zweck auf seine Bedürfnisse zugeschnittene Messwerte erhalten und aus diesen eine grafische Darstellungsform rendern, z.B. in Form eines Balkendiagrammes. Die Aufgabe die für die Widgets entsprechend aufbereiteten Daten bereit zu stellen soll nicht als Teil der Widgets, sondern als Teil des Konfigurationsframework realisiert werden, siehe Abbildung 1. Das Framework soll die entsprechenden Widgets erkennen und in Folge dessen unterschiedliche Daten vom Metrik-Kernel abfragen und diese an das Widget weiterreichen können.

Aufgabenschritte:

1. Literaturrecherche und Einarbeitung in vorhandene Tools.
2. Entwurf von Modellen zur Realisierung der Frameworks mittels Use-Cases, UI Prototypen und Daten- bzw. Domänenmodellen.
3. Ermittlung von Erfahrungswerten in Bezug auf Variabilität in Zusammenhang zu Benutzern und Gruppen zur Ermittlung von Standard Frames.
4. Implementierung der in Schritt 2 entwickelten Modelle und der in Schritt 3 ermittelten Erfahrungswerte und Einbindung ins MeDIC-Dashboard und den Variabilitäts-Ansatz.
5. Evaluierung des Frameworks über Usertests.
6. Ausarbeitung des Ansatzes in schriftlicher Form.

Literaturverzeichnis

[gwt]: Google Web Toolkit (GWT), https://developers.google.com/web-toolkit/
[pri]: Primefaces, http://primefaces.org/