Εντοπίστηκε ένα σφάλμα στη λειτουργία της ΠΥΞΙΔΑΣ όταν χρησιμοποιείται μέσω του προγράμματος περιήγησης Safari. Μέχρι να αποκατασταθεί το πρόβλημα, προτείνουμε τη χρήση εναλλακτικού browser όπως ο Chrome ή ο Firefox. A bug has been identified in the operation of the PYXIDA platform when accessed via the Safari browser. Until the problem is resolved, we recommend using an alternative browser such as Chrome or Firefox.
 

Static code analysis techniques for semi-automated application of Domain-Driven Design principles and patterns

Φόρτωση...
Μικρογραφία εικόνας

Ημερομηνία

17-03-2025

Συγγραφείς

Ηλιόπουλος, Βασίλειος
Iliopoulos, Vasileios

Τίτλος Εφημερίδας

Περιοδικό ISSN

Τίτλος τόμου

Εκδότης

Επιβλέπων

Διαθέσιμο από

2025-03-18 16:27:56

Περίληψη

Το Domain-Driven Design (DDD) έχει γίνει ένα ουσιαστικό κομμάτι στη σφαίρα της σύγχρονης ανάπτυξης λογισμικού, δίνοντας έμφαση στους τομείς της επιχείρησης και ορίζοντας τα όρια σε σύνθετα συστήματα. Μια θεμελιώδης ιδέα στο DDD είναι το Aggregate, ένα σύμπλεγμα αντικειμένων τομέα που εξασφαλίζει συνέπεια και συνοχή. Αυτή η διατριβή εξετάζει το ρόλο των τεχνικών συσταδοποίησης που βασίζονται σε γραφήματα για την ανακάλυψη συναθροίσεων από δομές στατικού κώδικα και γραφήματα κλήσεων μεταξύ οντοτήτων. Η προτεινόμενη μεθοδολογία χρησιμοποιεί δύο διαφορετικές τεχνικές συσταδοποίησης που βασίζονται σε γραφήματα σε τρεις περιπτωσιολογικές μελέτες: μια πλατφόρμα δημοπρασιών, ένα σύστημα δανειστικής βιβλιοθήκης και ένα σύστημα προγραμματισμού εξετάσεων. Η μία προσέγγιση εξαρτάται από τις αυστηρές σχέσεις και τη συνέπεια των συναλλαγών, που ευθυγραμμίζονται στενά με τις αρχές του DDD, ενώ η άλλη παρέχει συμπληρωματικές ενδείξεις για αρθρωτές συσταδοποιήσεις. Συγκρίνοντας αυτές τις μεθόδους, διερευνούμε τα πλεονεκτήματά τους σε real-world συστήματα, ενώ επισημαίνουμε τι συνεπάγονται για τη δημιουργία αρθρωτών και επεκτάσιμων σχεδίων λογισμικού στη θεωρία και την πράξη. Τέλος, μιλάμε για μελλοντικές επεκτάσεις, όπως αυτοματοποιημένες βελτιώσεις στην ομαδοποίηση, καθώς και για προοπτικές εφαρμογης σε αρχιτεκτονικές μικροϋπηρεσιών.
Domain-Driven Design (DDD) has become an essential paradigm in the realm of modern software development by emphasizing business domains and defining the boundaries within complex systems. A fundamental concept within DDD is the Aggregate, a cluster of domain objects that ensures consistency and cohesion. This thesis examines the role of graph-based clustering techniques for discovering aggregates from static code structures and call graphs. The proposed methodology utilizes two different graph-based clustering techniques on three case studies: an auction platform, a lending library system, and an exam scheduling system. The one approach hinges on strict relationships and transaction consistency, aligning closely with the principles of DDD, while the other provides complementary signals for modular groupings. And by comparing these methods, we explore their benefits in real-world systems while highlighting what they entail to make modular and scalable software designs in theory and practice. Finally, we talk about future optimizations, such as automated improvements on clustering, as well as prospects for working with microservices architectures.

Περιγραφή

Λέξεις-κλειδιά

Στατική Ανάλυση Κώδικα, Συσταδοποίηση οντοτήτων, Σχεδίαση λογισμικού, Static code analysis, Aggregates identification, Domain-Driven Design (DDD)

Παραπομπή

Άδεια Creative Commons