Abstract
The recent increase in data volume changed the landscape of database-centric applications by unveiling the limitations of relational databases, especially in terms of performance, storage or distribution.Consequently, alternative databases, namely the NoSQL databases, emerged by proposing new ways to scale with the ever-increasing data volume by relaxing usual relational modeling features.
This had led developers to rely on a document-oriented datastore, as being part of this technology family, for their primary database.
However, this shift has introduced new challenges as optimal document database modeling remains largely unknown to maintainers.
Consequently, developers may introduce antipatterns in their application that would hinder program maintainability and performance.
Our central challenge is to assist developers in maintaining and evolving software systems relying on Document-Oriented Datastores.
Identifying code smells or antipatterns in application code interacting with a document-oriented database is difficult due to varying performance outcomes based on data volume and query structure.
Also, there is currently little research attention to the specific document-oriented antipatterns symptoms/code smells.
Furthermore, identifying the interaction points between application programs and document-oriented databases is challenging.
Indeed, those programs are for the most part written in JavaScript which is known to be hard to statically analyse.
Accurately detecting method calls, the standard database access form, remains an unsolved problem in JavaScript static analysis as for building sound call graphs.
Finally, detecting code smells or antipatterns instances requires knowledge of the underlying data structure, which is often not directly accessible in open-source projects due to privacy concerns.
Also, unlike relational databases where data structures are explicit in (embedded) query strings, document fields may not be explicitly present in every query, making it harder to analyze and inspect these systems effectively.
The main purposes of this thesis are to a) empirically build a structured catalog of code smells and antipatterns relative to document-oriented databases; b) automatically detect instances of those code smells and antipatterns directly from the application code.
Date of Award | 10 Jul 2024 |
---|---|
Original language | English |
Awarding Institution |
|
Sponsors | PDR FNRS |
Supervisor | Anthony Cleve (Supervisor), Gilles Perrouin (President), Xavier Devroey (Jury), Benoit Vanderose (Jury), Michele Lanza (Jury) & Serge Demeyer (Jury) |
Keywords
- Document-Oriented databases
- Static Analysis
- Code Smells
- Antipatterns
- Reverse engineering
Attachment to an Research Institute in UNAMUR
- NADI