Back to results

Università degli studi di Catania

ReFrame: un framework di refactoring per supportare gli sviluppatori nel miglioramento e nell'ottimizzazione del codice sorgente

Abstract

dc:description

Per sfruttare meglio la potenza di calcolo dell'hardware moderno, molti programmi sequenziali possono essere modificati per incapsulare istruzioni parallele. Le esecuzioni simultanee hanno il potenziale per migliorare significativamente le prestazioni complessive dell'applicazione, riducendo sia il tempo di esecuzione che i requisiti di risorse. Tuttavia, trasformare manualmente un'applicazione sequenziale in una versione parallela è un'impresa complessa, che comporta un'ispezione meticolosa di diverse righe di codice che potrebbe risultare noiosa e dispendiosa in termini di tempo, un'analisi approfondita delle dipendenze dei dati per preservare la correttezza delle trasformazioni e un equilibrio del carico di lavoro tra i thread per ottimizzare l'aumento delle prestazioni. In questo contesto, propongo quattro distinti approcci di refactoring per supportare gli sviluppatori in questo compito complesso, fornendo una serie di strumenti completamente automatici su misura per diversi scenari, che comprendono l'analisi della dipendenza dai dati e dal controllo, la parallelizzazione delle chiamate di metodo, la trasformazione dei cicli for in pipeline di flusso e abbinamento di algoritmi per ottimizzazioni parallele. È necessaria una suite di test efficace per preservare il codice sorgente da modifiche involontarie durante il refactoring. Tali modifiche possono comportare la modifica, l'aggiunta o l'eliminazione di frammenti di codice, con conseguente scarsa coerenza tra il codice rifattorizzato e la suite di test. Per affrontare questo problema, propongo inoltre due approcci automatici per generare casi di test, soddisfacendo sia le classi che i metodi. Tutte e sei le proposte sono integrate in un framework denominato ReFrame, che ha il duplice scopo di convalidare questi approcci con scenari reali e fornire un'interfaccia unificata e modulare per gli sviluppatori. Sono stati condotti test approfonditi per dimostrare la correttezza e l'efficienza di questi approcci, rivelando risultati ottimali in ciascuna delle attività correlate.

Degree

thesis:*
Grantor dc:publisher
Università degli studi di Catania
Year dc:date
2024

Author and committee

dc:creator, dc:contributor.*
Author dc:creator
  • MIDOLO, ALESSANDRO
Contributors dc:contributor
  • TRAMONTANA, EMILIANO ALESSIO

Subjects

dc:subject × 15

Rights

dc:rights
Statement dc:rights
  • info:eu-repo/semantics/openAccess
  • license:PUBBLICO - Pubblico con Copyright
  • license uri:iris.PUB02
Language dc:language
ita

Identifiers

dc:identifier.*
OAI identifier oai:identifier
oai:www.iris.unict.it:20.500.11769/657969

Chain of custody

source
Harvested from
Università degli Studi di Catania
Base URL
www.iris.unict.it/oai/request
Last updated
2026-07-24
Source record
OAI-PMH GetRecord
citation

MIDOLO, ALESSANDRO. ReFrame: un framework di refactoring per supportare gli sviluppatori nel miglioramento e nell'ottimizzazione del codice sorgente. Università degli studi di Catania, 2024. https://hdl.handle.net/20.500.11769/657969