Database Reverse Engineering of GitLab Project
Reverzní inženýrství databáze projektu GitLab
Authors
Supervisors
Reviewers
Editors
Other contributors
Journal Title
Journal ISSN
Volume Title
Publisher
České vysoké učení technické v Praze
Czech Technical University in Prague
Czech Technical University in Prague
Date
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.
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.