dc.contributor.author |
Hemati-Moghadam, Iman |
|
dc.contributor.author |
Ó Cinnéide, Mel |
|
dc.date.accessioned |
2012-08-14T14:34:09Z |
|
dc.date.available |
2012-08-14T14:34:09Z |
|
dc.date.issued |
2012 |
|
dc.identifier.uri |
http://hdl.handle.net/10344/2451 |
|
dc.description |
peer-reviewed |
en_US |
dc.description.abstract |
Software systems that undergo repeated addition
of functionality commonly suffer a loss of quality in
their underlying designs, termed design erosion. This leads to
the maintenance of a system becoming increasingly difficult
and time-consuming during its lifetime. Refactoring can
reduce the effects of design erosion, but this process requires
significant effort on the part of the maintenance programmer.
Research into automated refactoring has had some success in
reducing the effort involved, however source code refactoring
uses refactoring steps that are too small to effect major design
changes. Design-level refactoring is also possible, but these
approaches operate on design models and do little to help in
the subsequent refactoring of the source code.
In this paper, we present a novel refactoring approach that
refactors a program based both on its desired design and on
its source code. The maintenance programmer first creates
a desired design (a UML class model) for the software based
on the current software design and their understanding of
how it may be required to evolve. Then, the source code is
refactored using the desired design as a target. This resulting
source code has the same behavior as the original, but its
design more closely correlates to the desired design.
We conducted an investigation using several open source
Java applications to determine how precisely it is possible
to refactor program source code to a desired design. Our
findings were that the original program could be refactored
to the desired design with an accuracy of over 90%, hence
demonstrating the viability of automated refactoring using
design differencing. |
en_US |
dc.language.iso |
eng |
en_US |
dc.publisher |
IEEE Computer Society |
en_US |
dc.relation.ispartofseries |
European Conference on Software Maintenance and Reengineering (CSMR'2012);pp. 43-52 |
|
dc.relation.uri |
http://dx.doi.org/ 10.1109/CSMR.2012.15 |
|
dc.rights |
“© 2012 IEEE. Personal use of this material is permitted. Permission from IEEE must be obtained for all other uses, in any current or future media, including reprinting/republishing this material for advertising or promotional purposes, creating new collective works, for resale or redistribution to servers or lists, or reuse of any copyrighted component of this work in other works.” |
en_US |
dc.subject |
search-based refactoring |
en_US |
dc.subject |
automated design improvement |
en_US |
dc.subject |
design differencing |
en_US |
dc.subject |
refactoring tool |
en_US |
dc.title |
Automated refactoring using design differencing |
en_US |
dc.type |
info:eu-repo/semantics/conferenceObject |
en_US |
dc.type.supercollection |
all_ul_research |
en_US |
dc.type.supercollection |
ul_published_reviewed |
en_US |
dc.contributor.sponsor |
PRTLI |
en_US |
dc.rights.accessrights |
info:eu-repo/semantics/openAccess |
en_US |