Diplomová práce

Automatic Generation and Layout of Class Diagrams from Dart Code

Bc. Andrej Genčur
Anotace

Napriek rastúcej popularite a komplexnosti kódu v jazyku Dart zostávajú efektívne a používateľsky prívetivé vizualizačné nástroje obmedzené. Táto práca predstavuje Glimpse, desktopovú aplikáciu vytvorenú vo Flutteri, navrhnutú na preklad zdrojového kódu jazyka Dart do interaktívnych diagramov tried. Využitím statickej analýzy Glimpse extrahuje štrukturálne elementy vrátane tried, metód, polí a ich …více

Abstract

Despite the growing popularity and complexity of Dart codebases, effective and user-friendly visualisation tools remain limited. This thesis presents Glimpse, a Flutter desktop application designed to translate Dart source code into interactive class diagrams. Employing static analysis, Glimpse extracts structural elements, including classes, methods, fields, and their intricate inter-element relationships …více

Zadání práce
Flutter/Dart is currently a relatively novel but popular application development environment. This means it often lacks certain advanced tooling which is already available for other language ecosystems. The motivation of this thesis is therefore to improve the tooling for the Flutter/Dart ecosystem.

Specifically, this thesis focuses on the construction and visualization of class diagrams for large Dart projects. The student should explore existing solutions for extracting class information and code metadata from a Dart codebase. Based on this initial research, a suitable solution for constructing a complete class diagram will be designed and implemented. The student should then develop a desktop application which visualizes such hierarchies using an interactive diagram. Such application can be used for example during architecture design and review.

This application should support:
 - The ability to visualize all classes together with their fields and methods, including their types.
 - The ability to visualize inheritance/implementation/mixin relationships between classes.
 - The ability to filter the visualized elements based on code-level visibility (private/public/etc.), membership in module/folder, and other suitable properties.
 - The ability to save a graph as a JSON or an image.
 - The ability to highlight differences between two class diagrams.

The quality of the final result should be evaluated through user testing or similar mechanisms with its prospective users (i.e. Flutter developers).
Práce zkontrolována:
22. 5. 2025 10:21, RNDr. Samuel Pastva, Ph.D., učo 410286
Jazyk práce
angličtina angličtina
Termín obhajoby
18. 6. 2025
Práce byla úspěšně obhájena

Vedoucí

RNDr. Samuel Pastva, Ph.D., učo 410286
KPSK FI MU

Oponent

doc. Bruno Rossi, PhD, učo 232464
KPSK FI MU

Konzultant

Mgr. Rastislav Mirek
abs FI MU

Masarykova univerzita Fakulta informatiky
Studijní program
Plán
Návrh a vývoj softwarových systémů
  • Přidání souboru

    Soubor nebo složku lze nahrát pomocí tlačítka Přidat.
  • Další operace se soubory

    Podrobnosti lze zjistit označením příslušného řádku.
  • Pohled pro experty

    Pro častou práci je možné zvolit režim Více možností.
  • Vyhledávání souborů

    Vyhledávaný výraz můžete zadat přímo do adresního řádku.
  • Rychlý přístup k souborům

    Pomocí funkce Nedávné je možné se rychle vrátit k právě prohlíženým souborům. Oblíbené soubory je také možné označit Hvězdičkou.