ETD

Archivio digitale delle tesi discusse presso l'Università di Pisa

Tesi etd-02092010-115318


Tipo di tesi
Tesi di laurea specialistica
Autore
MANNOCCI, ANDREA
URN
etd-02092010-115318
Titolo
Stepwise Evolution of Java Applications using Dynamic Updates
Dipartimento
INGEGNERIA
Corso di studi
INGEGNERIA INFORMATICA
Relatori
relatore Vecchio, Alessio
relatore Prof. Avvenuti, Marco
Parole chiave
  • Java
  • dynamic software updating
  • software evolution
  • software maintenance
  • netbeans
  • javeleon
  • software engineering
Data inizio appello
25/02/2010
Consultabilità
Non consultabile
Data di rilascio
25/02/2050
Riassunto
Le tecnologie e le metodologie per lo sviluppo di soluzioni software vengono oggigiorno sempre più rinnovate e migliorate, e l’aiuto che queste forniscono agli sviluppatori nel costruire applicazioni sempre più vaste e complesse é costantemente in crescita. Tuttavia il software risultante é pur sempre un elaborato dalla mente umana e quindi non é né salvo da errori, né può soddisfare ogni requisito futuro anticipatamente. Non importa quanto un progettista cerchi di anticipare i cambiamenti futuribili, il software prima o poi dovrà essere modificato per porre rimedio ad errori o per cambiare l’implementazione di caratteristiche presenti o per aggiungere nuove funzionalità. Sfortunatamente questo processo di manutenzione e aggiornamento si traduce spesso nel ben conosciuto schema di update che prevede in sequenza lo spegnimento del sistema funzionante, il suo aggiornamento offline e il ripristino della funzionalità portando di nuovo online il sistema; questo, a seconda del campo applicativo, può essere non sostenibile.
Per questo è molto sentita l’esigenza di un nuovo approccio che permetta di trattare gli update senza dover necessariamente interrompere la disponibilità del sistema per periodi arbitrariamente lunghi. Al fine di rendere possibile un aggiornamento on-line, molti gruppi di ricerca hanno proposto varianti implementative allo schema generico per sistemi di Dynamic Software Updating (DSU). Secondo questo approccio, il programma viene aggiornato con il nuovo codice e le nuove strutture dati on-the-fly, mentre sta eseguendo e, in linea puramente teorica, ogni tipo di programma può essere aggiornato a qualsiasi livello di granularità senza la necessità di dispositivi hardware aggiuntivi o architetture software dedicate.
Lo scopo di questo lavoro é di introdurre il lettore alla problematica degli aggiornamenti online, nonché mostrare come sia possibile usare questa tecnica per supportare l’evoluzione del software nel tempo e sviluppare le applicazioni con un approccio di tipo incrementale. La piattaforma adottata consiste in un nuovo e interessante approccio sviluppato da Syddansk Universitet - Mærsk Mc-Kinney Møller Instituttet in collaborazione con Sun Microsystems chiamato Javeleon. Sarà nostra premura anche investigare su quali siano le implicazioni che l’utilizzo di tale strumento ha rispetto a come il programmatore pensa e struttura il software. Addizionalmente, dal momento che Javeleon, come molti altre soluzioni, fa parte di un progetto in corso ed é quindi in costante sviluppo, testeremo e cercheremo di scoprire come questo si comporti in un caso di studio reale, scoprendo eventualmente bug o anomalie.
File