Mantenere ed aggiornare il software è una delle attività più onerose, sia in termini di tempo che di denaro, che una ditta produttrice di SW e gli utilizzatori devono affrontare.
Attualmente, la cosiddetta evoluzione del software è uno degli argomenti che occupano maggiormente gli sforzi dei ricercatori ciononostante alcuni problemi non hanno ancora soluzione:
- analisi e valutazione (quantitativa e qualitativa) di un sistema esistente
- evoluzione dinamica di sistemi che non possono essere fermati
- evoluzione automatica di sistemi a fronte di eventi inattesi (self adapting)
In questo progetto si intendono affrontare questi problemi, in particolare:
- si estenderà il modello "reflective Petri net" per modellare e analizzare l'evoluzione dinamica di sistemi non stop
- si definiranno meccanismi ad hoc basati su aspect-oriented programming per la sostituzione/aggiunta di codice a sistemi in esecuzione
- si definirà/realizzerà un framework per misurare il software con l'intento di semplificarne la manutenzione; il framework sarà concern-oriented puntando sulla manutenzione di feature anziché di classi/metodi.
- si definirà/realizzerà un framework per analizzare un sistema distribuito a runtime, mediante analisi del traffico di rete e dei dati presenti