E-mail senden E-Mail Adresse kopieren

TAMARIN PROVER

Die Benutzeroberfläche für das Graph Rendering zeichnet sich nun durch ansprechende Farben, Icons und Schriften aus. Sie bietet darüber hinaus erweiterte Funktionalitäten für effiziente Navigation.

ART
Forschungssoftware

THEMA
Tamarin Prover, Redesign Benutzeroberfläche

JAHR
2023

SOFTWARE
Tamarin Prover, Figma, React, TypeScript, Haskell, Jetbrains IntelliJ Ultimate

SKILLS
User Research, Usability Testing, Conceptual Design, Visual Design, Prototyping, Software Design, Research Software Engineering

INFORMATIONEN FÜR ANWENDER:INNEN

Inhalt dieses Projektes ist eine Neukonzeption und Neuentwicklung des Rendering von Graphen innerhalb der interaktiven Nutzeroberfläche des Tamarin Prover. Das neue Werkzeug ersetzt die bisherige Darstellung als statisches Bild und generiert einen dynamisch, durch den Browser gerenderten Graphen in SVG/HTML/CSS. Damit erlaubt es interaktive Analysen von Ergebnisgraphen des Tamarin-Prover-Protokoll-Beweissystems, durch performante Navigation selbst in komplexen Graphen. Die Implementierung basiert auf React (TypeScript) mit MUI.

Der Tamarin-Prover ist ein Werkzeug zur Modellierung und Analyse von Sicherheitsprotokollen. Dabei bietet die Software eine webbasierte Benutzeroberfläche zur Analyse. In dieser Oberfläche spielt die Darstellungen von Graphen eine große Rolle. Diese Graphen zeigen den Ablauf des Protokolls, meistens in verschiedenen Abschnitten.

 

Diese Graphen wurden zuvor als statische Bilder dargestellt. Die Aufgabe bestand nun darin, die Darstellungen der Graphen zu überarbeiten und den Nutzern diese Graphen interaktiv zugänglich zu machen.

Beispiel für das bisherige Rendering von Graphen im Tamarin Prover (links) und unser Standalone User Interface im neuen Design.

KONZEPTION

Die neue Oberfläche für die Graphen wurde möglichst unabhängig von dem alten Frontend konzeptioniert. Bei dem Design wurden die Nutzer des Tamarin Provers einbezogen und die Ideen mit ihnen abgestimmt.

Das Design der neuen Oberfläche umfasst alle Grundlagen: Farben, Icons, Fonts und eine konsistente Designsprache.

Darüberhinaus wurden neue Features entworfen:

  • Navigation: Der Graph wird interaktiv, er kann bewegt werden und man kann hinein und herauszoomen.
  • Gruppierung: Knoten können ausgewählt und in Gruppen zusammengefasst werden. Diese Gruppen können ein- und ausgeklappt werden.
  • Detailstufen: Um den Graphen übersichtlicher darzustellen können Knoten in drei verschiedenen Detailstufen dargestellt werden um so die Graphgröße (durch die Menge der dargestellten Informationen zu regulieren).
  • Syntax Formatierung und Syntax Highlighting: Der Textinhalt der Knoten wird nun konsistent formatiert sowie anhand nachvollziehbarer Regeln eingefärbt.
  • Suche: Suche und Anzeige von Suchergebnissen im Graph. Speicherung und Verwaltung mehrerer Suchen.
  • Ghost Box: Um den Benutzer allzu viel Navigation durch den Graph entlang langer Kanten zu sparen, kann man einen Knoten markieren und alle angrenzenden Knoten am Ende der Kante in einem Popup einblenden.

 


Feinkonzept als Wireframe

 


Das fertige Visual Design (1/2)

 


Das fertige Visual Design (2/2)

IMPLEMENTIERUNG

 

Technologie

Es war von Anfang an klar, dass das neue Tool Teil des bestehenden Frontends des Tamarin Provers wird. Das Frontend basiert auf einer Webview, also mussten auch das neue Tool mit HTML, SVG, CSS und Javascript umgesetzt werden. Damit die Entwicklung komfortabler und sicherer wird, wurde statt Javascript in Typescript entwickelt. Die ganze Anwendung basiert letzten Endes auf React. Folgende Schlüssel-Technologien und Libraries wurden genutzt:

 

Graph

Die größte Herausforderung bestand im Layouting und Rendering des Graphen. Vom Backend wird der Graph als JSON übermittelt und geparsed. Anschließend gilt es den Graphen übersichtlich, korrekt und visuell ansprechend darzustellen.

Bei der Implementierung orientierte man sich an dem Algorithmus des dot-Graph-Rendering. Kurz gesagt, der Graph wird geladen und anschließend analysiert. Die Graphknoten werden anhand ihrer Beziehungen von unten nach oben reihenweise in ein Gitter einsortiert. Danach werden die Kanten segmentiert und falls notwendig unsichtbare Hilfsknoten in den Graphen eingebaut, um die Kanten korrekt zu führen.

Der analysierte und strukturierte Graph wird dann als Hierarchie von React-Komponenten in ein SVG gerendert. Das Innere der Knoten wiederum ist HTML im SVG.


Ein Graph im neuen Tamarin Graph Frontend.

 

 

Features

Navigation
Der Graph kann mittels der Maus bewegt werden. Außerdem kann man hinein- und herauszoomen, per Maus und per Buttons. Ebenso gibt es die Möglichkeit die Ansicht zurückzusetzen.

Detailstufen
Die Knoten des Graphen können in drei verschiedenen Detailstufen angezeigt werden.


Detailstufe 1: Nur der Name des Knoten wird angezeigt.

 


Detailstufe 2: Zusätzlich werden die Namen der Vor- und Nachbedingungen sowie Aktionen angezeigt.

 


Detailstufe 3: Mit der Anzeige der vollständigen Parameter erreicht ein Knoten die detailreichste Darstellung.