Modern software development prefers fast and frequent changes rather than a detailed and fixed design. However, the continuous evolution of a software system can lead to a deterioration of its structural quality, making the code harder to understand and maintain. This thesis presents novel approaches based on data dependence and taint analysis to assist code inspection and automatically suggest complex refactoring opportunities, thus achieving modularity. Automatic tools are also proposed, which leverage API calls and data flows between different parts of the application to automatically give insights on the responsibility of each component. Then, these tools suggest a better decomposition of code inside concern cohesive modules, thus enhancing code modularity. Along with modularity, the proposed approaches and tools are effective to deal with the issues of platform dependence and data security. On the one hand, platform dependence can make porting difficult when spread widely on the application; on the other hand, one may need to guarantee code robustness against data leaks. Both issues may force the code to be modified, thus evolved. Both these aspects related to software evolution have been addressed by using the same concepts adopted to enhance code modularity, thus giving effective tools helping the developer in such issues. Furthermore, the proposed support can be used both during the development of new software components or to analyse and improve legacy applications.

DATA DEPENDENCE AND TAINT ANALYSIS TO FOSTER SOFTWARE EVOLUTION / Fornaia, ANDREA FRANCESCO. - (2017 Nov 30).

DATA DEPENDENCE AND TAINT ANALYSIS TO FOSTER SOFTWARE EVOLUTION

FORNAIA, ANDREA FRANCESCO
2017-11-30

Abstract

Modern software development prefers fast and frequent changes rather than a detailed and fixed design. However, the continuous evolution of a software system can lead to a deterioration of its structural quality, making the code harder to understand and maintain. This thesis presents novel approaches based on data dependence and taint analysis to assist code inspection and automatically suggest complex refactoring opportunities, thus achieving modularity. Automatic tools are also proposed, which leverage API calls and data flows between different parts of the application to automatically give insights on the responsibility of each component. Then, these tools suggest a better decomposition of code inside concern cohesive modules, thus enhancing code modularity. Along with modularity, the proposed approaches and tools are effective to deal with the issues of platform dependence and data security. On the one hand, platform dependence can make porting difficult when spread widely on the application; on the other hand, one may need to guarantee code robustness against data leaks. Both issues may force the code to be modified, thus evolved. Both these aspects related to software evolution have been addressed by using the same concepts adopted to enhance code modularity, thus giving effective tools helping the developer in such issues. Furthermore, the proposed support can be used both during the development of new software components or to analyse and improve legacy applications.
30-nov-2017
software quality,refactoring,modularity,static analysis,data dependence,taint analysis,data flow analysis
DATA DEPENDENCE AND TAINT ANALYSIS TO FOSTER SOFTWARE EVOLUTION / Fornaia, ANDREA FRANCESCO. - (2017 Nov 30).
File in questo prodotto:
File Dimensione Formato  
Final_Andrea_Fornaia_thesis_PDFA.pdf

accesso aperto

Tipologia: Tesi di dottorato
Licenza: PUBBLICO - Pubblico con Copyright
Dimensione 3.59 MB
Formato Adobe PDF
3.59 MB Adobe PDF Visualizza/Apri

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/20.500.11769/583561
Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus ND
  • ???jsp.display-item.citation.isi??? ND
social impact