Topic: GitLab Dependency Explorer – Visualisierung und Analyse von Issue-Abhängigkeiten

Topic: GitLab Dependency Explorer – Visualisierung und Analyse von Issue-Abhängigkeiten

Personal details

Title GitLab Dependency Explorer – Visualisierung und Analyse von Issue-Abhängigkeiten
Description

GitLab bietet neben der Quellcodeverwaltung umfangreiche Funktionen zur Planung und Verwaltung von Softwareprojekten. Issues können unter anderem miteinander verknüpft werden und sich gegenseitig blockieren. Bei größeren Projekten wird es jedoch schnell schwierig, den Überblick darüber zu behalten, welche Issues voneinander abhängig sind und welche Auswirkungen die Verzögerung einzelner Issues auf weitere Arbeiten hat.

Ziel dieser Abschlussarbeit ist die Konzeption und Entwicklung einer webbasierten Erweiterung für GitLab, mit der Abhängigkeiten zwischen Issues übersichtlich dargestellt und analysiert werden können.

Home institution Department of Computing Science
Associated institutions
Type of work practical / application-focused
Type of thesis Bachelor's
Author Dr. Marco Grawunder
Status available
Problem statement

Im Rahmen der Arbeit soll zunächst untersucht werden, welche Möglichkeiten GitLab aktuell zur Verwaltung und Darstellung von Abhängigkeiten zwischen Issues bietet und welche weitergehenden Funktionen vergleichbare Systeme wie Jira bereitstellen.

Darauf aufbauend soll eine eigenständige Webanwendung entwickelt werden, die über die GitLab-Schnittstellen auf Projekte und Issues zugreift und deren Abhängigkeiten graphisch darstellt.

Eine mögliche Darstellung könnte beispielsweise einen gerichteten Graphen verwenden, in dem Issues als Knoten und Blockierungsbeziehungen als Kanten dargestellt werden.

Neben der reinen Visualisierung sollen Möglichkeiten zur automatischen Analyse der Abhängigkeitsstruktur untersucht und umgesetzt werden. Denkbar sind unter anderem:

  • Ermittlung direkter und transitiver Abhängigkeiten,
  • Identifikation von Issues, die besonders viele andere Issues blockieren,
  • Erkennung von Zyklen in Abhängigkeitsbeziehungen,
  • Bestimmung langer bzw. kritischer Abhängigkeitsketten,
  • Analyse von Abhängigkeiten zwischen unterschiedlichen Projekten,
  • Berücksichtigung von Milestones, Iterationen oder Fälligkeitsterminen,
  • Erkennung möglicher Planungskonflikte, beispielsweise wenn ein Issue vor seinem noch offenen Blocker eingeplant ist,
  • Filter- und Navigationsmöglichkeiten für große Abhängigkeitsgraphen.

Die Anwendung soll dabei GitLab nicht ersetzen. GitLab bleibt das führende System für die Verwaltung der Issues. Die zu entwickelnde Anwendung stellt zusätzliche Analyse- und Visualisierungsmöglichkeiten bereit und verweist für die Bearbeitung eines Issues wieder auf GitLab.

Technische Umsetzung

Die Anwendung soll als eigenständige Webanwendung realisiert und über die von GitLab bereitgestellten Schnittstellen angebunden werden. Hierzu können insbesondere die REST- bzw. GraphQL-API sowie Webhooks verwendet werden.

Eine Anmeldung über GitLab mittels OAuth bietet sich an, sodass die Anwendung die jeweiligen Zugriffsrechte des angemeldeten Benutzers berücksichtigen kann.

Für die Umsetzung bieten sich beispielsweise folgende Technologien an:

  • Spring Boot für das Backend,
  • Angular bzw. TypeScript für das Frontend,
  • GitLab REST- oder GraphQL-API,
  • OAuth2 zur Authentifizierung,
  • GitLab Webhooks zur Aktualisierung von Daten,
  • eine geeignete Bibliothek zur Visualisierung von Graphen.

Die konkrete technische Architektur soll im Rahmen der Arbeit untersucht und begründet werden.

Mögliche Fragestellungen

Neben der Entwicklung eines funktionsfähigen Prototyps sollen insbesondere Fragen der sinnvollen Darstellung und Analyse komplexer Abhängigkeitsstrukturen betrachtet werden.

Mögliche Fragestellungen sind beispielsweise:

  • Wie können Abhängigkeiten zwischen Issues so visualisiert werden, dass auch größere Softwareprojekte übersichtlich dargestellt werden können?
  • Welche graphbasierten Kennzahlen eignen sich zur Identifikation besonders relevanter oder kritischer Issues?
  • Wie können Planungskonflikte automatisiert aus Issue-Abhängigkeiten erkannt werden?
  • Welche Informationen sind für Entwicklerinnen und Entwickler bzw. Projektverantwortliche besonders hilfreich, um Blockierungen frühzeitig zu erkennen?
  • Wie gut unterstützt eine graphbasierte Darstellung das Verständnis komplexer Issue-Abhängigkeiten gegenüber den bestehenden GitLab-Ansichten?

Erwartete Ergebnisse

Erwartet werden die Konzeption und Implementierung eines prototypischen Systems sowie eine Evaluation der entwickelten Darstellungs- und Analyseverfahren.

Der genaue Funktionsumfang kann abhängig von Art und Umfang der Abschlussarbeit angepasst werden. Für eine Bachelorarbeit kann der Schwerpunkt beispielsweise auf der Visualisierung und grundlegenden Analyse der Abhängigkeitsgraphen liegen. Bei einer Masterarbeit sind weitergehende Analysen, die Einbeziehung historischer Projektdaten oder Verfahren zur Bewertung von Risiken und Auswirkungen denkbar.

Requirement

Hilfreich sind Kenntnisse in der Webentwicklung sowie grundlegende Kenntnisse in Software Engineering und Algorithmen. Erfahrungen mit Spring Boot, Angular/TypeScript oder GitLab sind von Vorteil, können aber auch im Rahmen der Arbeit vertieft werden.

Created 30/09/26

Study data

Departments
  • Informationssysteme - Data Science
Degree programmes
  • Bachelor's Programme Business Informatics
  • Bachelor's Programme Computing Science
Assigned courses
Contact person