Il presente elaborato descrive l'attività di analisi e riprogettazione di "Bytes", il software gestionale dell'azienda M31. Essendo un sistema legacy con alle spalle vent'anni di continue modifiche, il programma risultava ormai lento nei caricamenti, molto complesso da mantenere e pieno di funzionalità che nessuno usava più. L'obiettivo del tirocinio era quindi definire delle fondamenta solide e scalabili in vista della futura riscrittura dell'applicativo. Innanzitutto, era fondamentale capire a fondo il software. Per farlo, si è proceduto su più fronti. Il primo è stato configurare l'ambiente in locale, sfida che ha richiesto di studiare e implementare Docker da zero. Il secondo ha riguardato le interviste ai referenti dei vari reparti, un confronto con gli stakeholder indispensabile per capire l'uso reale del gestionale e decidere cosa scartare. Infine, si è passati al reverse engineering direttamente sul codice per capire tutte quelle funzioni di cui nessuno sapeva nulla, dato che parte dei creatori del codice non lavoravano più lì, questo ha portato a dover imparare le basi del funzionamento di Ruby on Rails, su cui si basava il sistema. Parallelamente a tutto questo, è iniziato lo studio di Go, il linguaggio scelto per sviluppare il nuovo backend. Per la nuova architettura col tutor abbiamo deciso di usare un approccio Modular Monolith. Questo permette di raggruppare i moduli ma lascia comunque indipendenti quelli più importanti. Le interazioni tra le diverse parti le ho schematizzate graficamente usando Excalidraw, scendendo poi nel dettaglio dei moduli principali attraverso la creazione dei diagrammi UML per i vari casi d'uso. Alla fine, tutto il lavoro di indagine è confluito in un documento di analisi dei requisiti. Al suo interno, gli use case e i requisiti sono stati elencati e separati per modulo. L'elaborato contiene anche una tabella che riassume i problemi e i miglioramenti proposti internamente all'azienda. In questo modo si lascia ai futuri sviluppatori una base chiara e pronta all'uso per iniziare a programmare il nuovo gestionale.

Analisi e riprogettazione architetturale di un software gestionale

BELLONI, EMILIO
2025/2026

Abstract

Il presente elaborato descrive l'attività di analisi e riprogettazione di "Bytes", il software gestionale dell'azienda M31. Essendo un sistema legacy con alle spalle vent'anni di continue modifiche, il programma risultava ormai lento nei caricamenti, molto complesso da mantenere e pieno di funzionalità che nessuno usava più. L'obiettivo del tirocinio era quindi definire delle fondamenta solide e scalabili in vista della futura riscrittura dell'applicativo. Innanzitutto, era fondamentale capire a fondo il software. Per farlo, si è proceduto su più fronti. Il primo è stato configurare l'ambiente in locale, sfida che ha richiesto di studiare e implementare Docker da zero. Il secondo ha riguardato le interviste ai referenti dei vari reparti, un confronto con gli stakeholder indispensabile per capire l'uso reale del gestionale e decidere cosa scartare. Infine, si è passati al reverse engineering direttamente sul codice per capire tutte quelle funzioni di cui nessuno sapeva nulla, dato che parte dei creatori del codice non lavoravano più lì, questo ha portato a dover imparare le basi del funzionamento di Ruby on Rails, su cui si basava il sistema. Parallelamente a tutto questo, è iniziato lo studio di Go, il linguaggio scelto per sviluppare il nuovo backend. Per la nuova architettura col tutor abbiamo deciso di usare un approccio Modular Monolith. Questo permette di raggruppare i moduli ma lascia comunque indipendenti quelli più importanti. Le interazioni tra le diverse parti le ho schematizzate graficamente usando Excalidraw, scendendo poi nel dettaglio dei moduli principali attraverso la creazione dei diagrammi UML per i vari casi d'uso. Alla fine, tutto il lavoro di indagine è confluito in un documento di analisi dei requisiti. Al suo interno, gli use case e i requisiti sono stati elencati e separati per modulo. L'elaborato contiene anche una tabella che riassume i problemi e i miglioramenti proposti internamente all'azienda. In questo modo si lascia ai futuri sviluppatori una base chiara e pronta all'uso per iniziare a programmare il nuovo gestionale.
2025
Analysis and architectural redesign of a management software
Reverse engineering
Analisi requisiti
Modularizzazione
File in questo prodotto:
File Dimensione Formato  
Belloni_Emilio.pdf

accesso aperto

Dimensione 618.95 kB
Formato Adobe PDF
618.95 kB Adobe PDF Visualizza/Apri

The text of this website © Università degli studi di Padova. Full Text are published under a non-exclusive license. Metadata are under a CC0 License

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/20.500.12608/114177