In the software life cycle the internal structure of the system undergoes continuous modifications. These changes push away the source code from its original design, often reducing its quality. In such cases refactoring techniques can be applied to improve the design quality of the system. Approaches existing in literature mainly exploit structural relationships present in the source code, e.g., method calls, to support the software engineer in identifying refactoring solutions. However, also semantic information is embedded in the source code by the developers, e.g., the terms used in the comments. This research investigates about the usefulness of combining structural and semantic information to support software refactoring. In particular, a framework of approaches supporting different refactoring operations, i.e., Extract Class, Move Method, Extract Package, and Move Class, is presented. All the approaches have been empirically evaluated. Particular attention has been devoted to evaluations conducted with software developers, to understand if the refactoring operations suggested by the proposed approaches are meaningful from their point of view. [edited by Author]

Using Structural and Semantic Information to Support Software Refactoring

BAVOTA, GABRIELE
2015

Abstract

In the software life cycle the internal structure of the system undergoes continuous modifications. These changes push away the source code from its original design, often reducing its quality. In such cases refactoring techniques can be applied to improve the design quality of the system. Approaches existing in literature mainly exploit structural relationships present in the source code, e.g., method calls, to support the software engineer in identifying refactoring solutions. However, also semantic information is embedded in the source code by the developers, e.g., the terms used in the comments. This research investigates about the usefulness of combining structural and semantic information to support software refactoring. In particular, a framework of approaches supporting different refactoring operations, i.e., Extract Class, Move Method, Extract Package, and Move Class, is presented. All the approaches have been empirically evaluated. Particular attention has been devoted to evaluations conducted with software developers, to understand if the refactoring operations suggested by the proposed approaches are meaningful from their point of view. [edited by Author]
20-lug-2015
Inglese
Refactoring
Software engineering
LONGOBARDI, Patrizia
DE LUCIA, Andrea
Università degli Studi di Salerno
File in questo prodotto:
File Dimensione Formato  
135949293468111966598767665049953080274.pdf

accesso aperto

Licenza: Tutti i diritti riservati
Dimensione 5.52 MB
Formato Adobe PDF
5.52 MB Adobe PDF Visualizza/Apri
148944311574759168305043807847033603665.pdf

accesso aperto

Licenza: Tutti i diritti riservati
Dimensione 16.84 kB
Formato Adobe PDF
16.84 kB Adobe PDF Visualizza/Apri
19912480592838982737743454560136664012.pdf

accesso aperto

Licenza: Tutti i diritti riservati
Dimensione 17.17 kB
Formato Adobe PDF
17.17 kB Adobe PDF Visualizza/Apri

I documenti in UNITESI 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.14242/312474
Il codice NBN di questa tesi è URN:NBN:IT:UNISA-312474