Progetto sviluppato nel corso di Ingegneria del Software [ST0496] nell'anno accademico 2024-2025 dell'Università di Camerino.
Nel corso della prima iterazione, è stata condotta l’analisi dei requisiti e avviata la configurazione del progetto. Sono stati definiti i casi d’uso iniziali, con l’identificazione degli attori e delle relative descrizioni, e delineati i flussi di eventi per alcuni scenari. Sono state inoltre apportate modifiche ai casi d’uso esistenti. L’iterazione si è conclusa con una modellazione preliminare delle classi di analisi, finalizzata a delineare la struttura del sistema.
Nella seconda iterazione, sono stati aggiornati e arricchiti diversi casi d'uso, con l'inclusione di nuove funzionalità e miglioramenti ai flussi esistenti. È stato sviluppato il diagramma delle classi di progetto e realizzati i primi diagrammi di sequenza, con particolare attenzione a determinati processi chiave. L'iterazione si è conclusa con una revisione, apportando correzioni e ottimizzazioni al sistema complessivo.
Nella terza iterazione, è stato definito un nuovo insieme di casi d’uso da sviluppare, con l’aggiunta e l’ampliamento dei relativi diagrammi di sequenza. Sono stati dettagliati ulteriori casi d’uso e aggiornati i diagrammi delle classi. L’iterazione ha segnato l’avvio dell’implementazione in Java, con l’introduzione di componenti strutturali e l’applicazione di alcuni design pattern. La conclusione dell’iterazione ha visto il completamento dei servizi principali e la strutturazione del codice.
Nella quarta iterazione, è stato inizializzato Spring Boot e integrato il sistema API REST. Sono stati apportati miglioramenti generali ai casi d’uso esistenti e ampliato il modello delle classi. L’iterazione si è concentrata principalmente sullo sviluppo di codice Java, con particolare attenzione all’implementazione del database, alla correzione di funzionalità e all'implementazione di ulteriori deisgn pattern. L'iterazione è conclusa con l'esecuzione di test e debug per garantire il corretto funzionamento del sistema.
Nella quinta iterazione, è stata aggiunta l’autenticazione e sono stati eseguiti fix generali per ottimizzare funzionalità meno critiche. Sono stati inoltre completati gli ultimi ritocchi relativi all’inizializzazione degli elementi del sistema, concludendo con un’ulteriore stabilizzazione del codice.
Nella sesta iterazione, è stata effettuata una reingegnerizzazione dei principali artefatti progettuali per correggere alcune criticità segnalate, riallineando i modelli ai casi d’uso aggiornati. Sono stati inoltre eseguiti interventi sul codice, con l’integrazione di alcuni componenti e la risoluzione di anomalie con l’obiettivo di migliorare la coerenza e la stabilità complessiva del sistema.