Meine Bachelorarbeit bei valantic – Teil 2

Von meiner etwas abenteuerlichen Reise bei der Findung eines Bachelorarbeit-Themas, habe ich ja hier bereits berichtet. Nun soll es darum gehen, was genau ich in den fünf Monaten Bachelorpraktikum gemacht habe.

Das Thema

Auf meiner Suche nach einem Bachelorthema bei valantic, wurden mein Betreuer und ich schließlich in einem agilen Team fündig. Das wurde vor gar nicht so langer Zeit aufgestellt, um eine neue Webanwendung zu entwickeln. Diese Webanwendung soll Banken einen Mehrwert aus den Daten generieren, die tagtäglich in ihren Handelssystemen nach erfolgreichen oder nicht ganz so erfolgreichen Verhandlungen erfasst und gespeichert werden.
Um diese Daten auch erforschen, analysieren und aus ihnen lernen zu können, stellt die Webanwendung eine direkte Anbindung an das Handelssystem der Bank zur Verfügung. In dieser können die Daten bisher tabellarisch oder anhand von errechneten Kennzahlen beobachtet werden.
Doch wie gut lassen sich schon Ausreißer, Trends oder Auffälligkeiten aus reinen Zahlen und Tabellen erkennen? Garantiert nicht so gut, wie aus einer schicken Grafik, die genau die wichtigsten Informationen in geeigneter Weise darstellt. Aus diesem Grund sollte eine Visualisierung eingebunden werden, aus der genau erkennbar sein sollte, zu welchem Zeitpunkt welcher Kunde mit welchem Händler auf welchem Markt welches Handelsinstrument in der Vergangenheit gehandelt hat und wie diese Verhandlungen abliefen. Und als das Wort „Visualisierung“ fiel, war ich als Computervisualistikstudentin natürlich gleich Feuer und Flamme und entschied schnell, mich diesem Forschungsprojekt zu widmen! 🙂

Da man sich die Daten nicht nur einfach anschauen, sondern auch einzelne Bereiche hervorheben oder ausblenden können sollte, sollte die Visualisierung interaktiv sein. Und so war das Thema schnell formuliert: „Entscheidungsunterstützung für Handelsstrategien anhand einer interaktiven Visualisierung historischer Handelsdaten“.

Das Konzept

Um herauszufinden, welche Darstellungen sich am besten für die Daten eigneten, habe ich diese erst einmal genauer unter die Lupe genommen. Ein Handelsdatensatz enthält natürlich zu einem Großteil Zahlen aber um die Handelsdaten möglichst flexibel im Handelssystem erfassen zu können, wurden auch einige Daten als Strings erfasst. Also quasi Wörter, um beispielsweise festzuhalten, dass ein bestimmter Wert nicht positiv, Null oder negativ war, sondern einfach unbekannt oder nicht vorhanden. Das sollte später zu ein paar Problemen führen, da Visualisierungsbibliotheken nicht so gut mit solchen Strings umgehen können. Außerdem muss bei der Konzeption beachtet werden, ob eine Darstellung ausschließlich Zahlen, oder Zahlen und Wörter gemischt abbilden sollte.

Nachdem alle Daten gesichtet und analysiert wurden, wurden sie in Absprache mit dem Product Owner der Webanwendung priorisiert. Die Daten, die für die Ableitung von Handelsstrategien am wichtigsten sind, sollten auf den ersten Blick erkennbar sein. Andere Daten erst nach weiteren Untersuchungsschritten oder erst nach Abruf eines Tooltips. Anhand dieser Priorisierung entstand dann das Konzept für einen ersten Prototypen. Das Ergebnis war eine Visualisierung, die in mehrere Abschnitte aufgeteilt ist.

Da sich ein Handelsdatensatz inhaltlich in die Kategorien „Kundendaten“, „Händlerdaten“, „Instrumentdaten“, „Marktdaten“ und „Verhandlungsdaten“ unterteilen lässt, habe ich diese Unterteilung in der Visualisierung beibehalten. Nun enthält sie somit für jede Kategorie eine separate Spalte, die man ein- und ausblenden kann. Außerdem sind in jeder Spalte die verwendeten Diagramme genau auf die darin enthaltenen Daten zugeschnitten. Zum Beispiel kann man Zahlenwerte am besten anhand von Positionen und Längen ablesen und vergleichen, sodass Diagramme genutzt wurden, die das ausnutzen. Deshalb sind in dem Konzept viele Linien und Balken zu sehen.
Die Daten, die nicht auf den ersten Blick erkennbar sein müssen, können abgerufen werden, indem man mit den Diagrammen interagiert. Das heißt, dass man einen bestimmten Kunden anklicken kann, der von besonderem Interesse ist, oder den Markt auswählen kann, auf dem man den Verhandlungsverlauf der letzten Monate beobachten möchte.
Die Darstellung in einer Spalte passt sich dann anhand der Nutzerinteraktion an. Zudem sind alle Spalten miteinander verknüpft, sodass sie nach Nutzereingabe nur noch die Daten zeigen, die genau diesen ausgewählten Kunden bzw. nur diesen ausgewählten Markt betreffen. So lässt sich schnell erkennen, wo Auffälligkeiten oder Ausreißer auftreten, welche Verhandlungen gut oder schlecht liefen und warum das vermutlich so gewesen sein könnte.
Damit der Zeitraum der Datenbetrachtung selbst konfigurierbar sein konnte, habe ich in das Konzept noch die Möglichkeit einer Zeitraumeinstellung eingebunden.

Soweit zur Theorie

Vor der Implementierung des Konzeptes hatte ich ziemlich Respekt. Ich hatte zwar in der Uni schon einmal eine Webanwendung erstellt, die Daten visualisiert hat, damals handelte es sich allerdings um einen überschaubaren Datensatz von 16 Daten mit jeweils 4 Attributen. Hier ging es um die Visualisierung von perspektivisch Millionen Datensätzen mit bis zu 30 Attributen pro Datensatz. Ich hatte erst einmal Spaß dabei, die Größe der dafür erstellten Datenbank zu bestaunen und mich darin zurecht zu finden.
Nachdem ich dann wusste, wie genau die Daten aktuell aussahen, schaute ich mir an, wie sie aussehen mussten, um gut von der verwendeten Visualisierungsbibliothek verarbeitet zu werden. Die Daten danach in die richtige Form zu bringen, war gar nicht so einfach. Gott sei Dank hat mir mein Praktikumsbetreuer bei valantic immer schnell aushelfen können, wenn ich irgendwo nicht weiterkam.

Die in Form gebrachten Daten wurden dann an die richtigen Stellen im System eingefügt. In diesem Rahmen habe ich das erste Mal den Programmcode einer vollständigen Anwendung in einem Unternehmen gesehen. Das war noch einmal etwas ganz anderes als die Mini-Programmbeispiele, die man an der Uni so zu sehen bekommt. Der Code war aber zum Glück sehr übersichtlich und ich konnte mich schnell darin zurechtfinden.

Nachdem alle Daten in der richtigen Form für die Visualisierung im System vorlagen, kam der Teil, der einem Computervisualisten vermutlich am meisten Spaß macht: alles Zusammenfügen, schauen wie es aussieht und nach und nach alles „schick machen“. Das heißt: jedes Element an seinen Platz setzen, richtig einfärben und alles gut erkennbar und lesbar gestalten.
Hier musste ich feststellen, dass die Visualisierungsbibliothek leider nicht alle Funktionalitäten bereitstellte, die ich in der Anwendung benötigte. Deshalb musste ich ziemlich mühselige Erweiterungen der Bibliothek vornehmen. Das hat mich zwar fast eine ganze Woche gekostet, doch umso stolzer war ich dann, als es endlich funktionierte. Zur Feier dieses persönlichen Erfolgs gab es dann erst einmal Kuchen, um meine Freude darüber mit meinen Kollegen zu teilen. 🙂

Das Ergebnis hat mir wirklich gut gefallen. Im Anschluss ging es dann darum, die einzelnen Darstellungen zu verknüpfen und alles interagierbar zu machen. Letzteres war gar nicht so einfach, weil immer wieder Ausnahmen auftraten, wenn man Objekte in einer anderen Reihenfolge auswählte oder die Auswahl wieder aufheben wollte. Ich hoffe wirklich, dass ich mittlerweile alles getestet und die ganzen Ausnahmen abgefangen habe. (Wer weiß?)
Hier traten dann auch nochmal ein paar Probleme durch die Strings auf. Aber letztendlich konnte alles gut verknüpft werden. Ganz am Ende das Zeitmenü zu implementieren, war dann gar nicht mehr so schwierig. Das Angular-Framework, das im ganzen System verwendet wird, stellte nämlich dafür vorgefertigte Funktionen bereit.

Das Ergebnis des Prototypen kann sich echt sehen lassen und kommt an die Konzeptskizze auch ziemlich nah ran.

Mein Fazit

Zu Beginn meines Praktikums bei valantic im August, hätte ich nie gedacht, dass ich letztendlich meine Bachelorarbeit dort schreibe und darin auch noch (Ich! Als Programmiermuffel!) ein ganzes Feature für einen Prototypen entwickele. Ich freue mich wirklich sehr darüber, wie einfach und unkompliziert letztendlich alles abgelaufen ist und bin sogar ganz pünktlich eine Woche vor Abgabe mit der gesamten Arbeit fertig geworden. Das dabei entstandene Visualisierungstool ist zwar nicht perfekt – es läuft ziemlich langsam, wenn es viele Daten verarbeitet und die Bibliothek, die ich benutzt habe, zeigt nicht alles so ganz optimal an – aber darauf kam es in meiner Arbeit auch nicht an. Wenn man davon absieht, macht die Anwendung genau das, was sie machen soll.

Ich bin jedenfalls mit dem Ergebnis super zufrieden und bin stolz darauf, dass mein Forschungsprojekt tatsächlich Eingang in das Kernprodukt finden wird. Um die Performance-Optimierungen meines Prototypens darf sich dann gerne erstmal der Rest des Teams kümmern.

Nun gilt es nur noch zu hoffen, dass mein Betreuer an der Uni auch zufrieden ist, wenn er demnächst meine Arbeit bewertet. 😉

Schreib als Erster einen Kommentar

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.