Database Reverse Engineering of GitLab Project

Reverzní inženýrství databáze projektu GitLab

Supervisors

Editors

Other contributors

Journal Title

Journal ISSN

Volume Title

Publisher

České vysoké učení technické v Praze
Czech Technical University in Prague

Research Projects

Organizational Units

Journal Issue

Abstract

Tato diplomová práce se zabývá aplikací metod reverzního inženýrství na projekt GitLab. Zaměřená je především na reverzní inženýrství relační databáze za účelem hledání optimalizací. GitLab je rozsáhlým open source projektem, který je celosvětově známý a aktivně používaný. Práce obsahuje jeho design recovery pomocí frameworku pro modelování architektury C4 za použití metod reverzního inženýrství jako je analýza kódu, jeho vizualizace a manuální i generovaná rekonstrukce modelů. Zkoumána je celková architektura, struktura projektu z pohledu modulů a vrstev. Práce následně analyzuje datovou vrstvu, ukládání dat a práci s nimi v rámci aplikace GitLab Rails. Dále je za využití analýzy kódu, rekonstrukce databázového schéma a analýzy SQL provedeno reverzní inženýrství relační databáze, jehož výstupem je analýza používané PostgreSQL databáze. Výsledkem práce je seznam nedostatků a poznatků nalezených v rámci provedené analýzy. Zjištěním práce je také to, že v rámci projektu GitLab je kladen velký důraz na optimální práci s databází a všechny změny v rámci databáze jsou v procesu vývoje důkladně prověřeny.

This master thesis is dedicated to the application of reverse engineering on the GitLab project. The key focus is weighted mainly on reverse engineering of relational databases for optimization purposes. GitLab is a widely adopted, commonly known open-source project that is used worldwide. The thesis contains the project's design recovery using the C4 modeling framework for visualizing software architecture using reverse engineering methods such as code analysis, visualization, manual, and generated model reconstruction. The thesis researches the overall architecture and project structure from a model and layer perspective. Leveraging code and SQL analysis and database scheme reconstruction, it performs reverse engineering of the relational database, resulting in a study of the PostgreSQL database used. The outcome of the thesis is a list of imperfections and findings from the conducted study. The thesis's key conclusions are that the GitLab project emphasizes optimal database interactions and that all the database changes are thoroughly vetted during the development process.

Description

Citation

Endorsement

Review

Supplemented By

Referenced By