View on GitHub

pps-2021-authsim

Retrospettiva

In questo capitolo vengono descritti gli Sprint settimanali, i quali descrivono come lo sviluppo del progetto è stato suddiviso in task e come questi sono stati portati avanti nelle settimane, indicando le attività il cui risultato è stato inserito nul branch develop durante lo sprint.

Sprint

Iterazione 1: 25/08/2021 - 01/09/2021

Durante il primo sprint il team si è concentrato sul setup del progetto e sull’analisi del problema, iniziando lo sviluppo del design architetturale.

Nello specifico:

Iterazione 2: 01/09/2021 - 08/09/2021

Nella seconda iterazione è stata fatta una revisione dei task implementati e sono stati implementati un ingente numero dei componenti core definiti nel primo Sprint.

In particolare:

Iterazione 3: 08/09/2021 - 15/09/2021

La terza iterazione aveva come obiettivo principale quello di completare la realizzazione di componenti core della DSL e della ri-modularizzazione della GUI, oltre all’inizio della stesura della relazione.

Nello specifico ha visto lo sviluppo di:

Iterazione 4: 15/09/2021 - 22/09/2021

La quarta iterazione si è articolata perseguendo gli obiettivi di unificazione dei concetti comuni e dell’estensione del framework.

L’unificazione dei concetti comuni ha interessato principalmente l’unificazione dei builder utilizzati all’interno della libreria.

Lo sviluppo del framework ha riguardato:

Inoltre sono state ripensate e quindi revisionate le implementazioni dei Logger e del Proxy perché meglio aderissero alle nuove esigenze emerse a valle degli ultimi sviluppi del framework.

Iterazione 5: 22/09/2021 - 29/09/2021

La quinta iterazione ha visto nuovamente una revisione di quanto implementato negli sprint precedenti da un lato e dall’altro ha visto lo sviluppo di ulteriori funzionalità del framework. Per quanto riguarda la revisione in questo caso ha riguardato principalmente:

Le estensioni invece hanno riguardato:

Iterazione 6: 29/09/2021 - 06/10/2021

Durante la sesta iterazione sono state svolte le seguenti attività:

Iterazione 7: 06/10/2021 - 13/10/2021

La settima iterazione è stata usata per integrare completamente tutti i componenti del sistema e ultimare gli aspetti finali del progetto. Infine, è stata testata l’applicazione dimostrativa.

Nello specifico è stata quasi completata la stesura della relazione, così come la documentazione formale su github pages e sul codice sorgente del progetto.

Iterazione 8: 13/10/2021 - 17/10/2021

Nell’ultima iterazione, sono state eseguite le ultime revisioni al codice ed ultimata la relazione di progetto.

Backlog

Il product backlog è visibile nel file process/ProductBacklog.md.

Conclusione e commenti finali

Lo sviluppo del progetto è stata un esperienza essenziale nel nostro percorso di studi in quanto ha permesso di toccare con mano molti degli aspetti centrali affrontanti nel corso. Infatti, la realizzazione del sistema ha non solo permesso ai membri di testare cosa volesse dire lavorare seguendo un processo di programmazione agile, ma anche di sviluppare un applicativo avendo bene in mente un set di pattern e principi che ne potessero garantire la qualità. Lo studio di ognuno di questi aspetti è stato un fondamentale momento di arricchimento personale per ognuno dei membri del gruppo che ha potuto quindi estendere la propria conoscenza attraverso i contenuti del corso e il background degli altri membri.

Client

Il client non ha avuto modo di utilizzare la persistenza in modo significativo ai fini della simulazione, tuttavia rimane sempre la possibilità di estendere la libreria per supportare gli attacchi che sviluppano le vulnerabilità dei database specifici.

Per quanto riguarda MVVM, al momento l’implementazione rimane vincolata alle properties di ScalaFx, si potrebbe fare un ViewModel più generico e riutilizzabile con UI diverse se le properties fossero implementate “in casa”.

Sviluppi futuri

Molti sono gli sviluppi futuri di cui il framework potrebbe giovare. Infatti, grazie all’architettura definita si potrebbe facilmente pensare di introdurre nuovi tipi di attacco, metodi di cifratura e policy. Tuttavia, un estensione del framework potrebbe non essere la sola strada possibile, difatti si potrebbe anche pensare di sfruttare il paradigma logico per l’implementazione di alcune operazioni core. Per la sua intrinseca natura esplorativa, Prolog potrebbe essere utilizzato negli attacchi di tipo Brute Force ad esempio.