Loading...
Please wait, while we are loading the content...
Similar Documents
A Logic Meta-Programming Framework for Supporting the Refactoring Process
| Content Provider | Semantic Scholar |
|---|---|
| Author | Bravo, Fernanda |
| Copyright Year | 2003 |
| Abstract | The objective of this thesis is to provide automated support for recognizing design flaws in object oriented code, suggesting proper refactorings and performing automatically the ones selected by the user. Software suffers from inevitable changes throughout the development and the maintenance phase, and this usually affects its internal structure negatively. This makes new changes difficult to implement and the code drifts away from the original design. The introduced structural disorder can be countered by applying refactorings, a kind of code transformation that improves the internal structure without affecting the behavior of the application. There are several tools that support applying refactorings in an automated way, but little help for deciding where to apply a refactoring and which refactoring could be applied. This thesis presents an advanced refactoring tool that provides support for the earlier phases of the refactoring process, by detecting and analyzing bad code smells in a software application, proposing appropriate refactorings that solve these smells, and letting the user decide which one to apply. This tool relies on the technique of logic meta programming, a variant of the logic paradigm that allows to reason about code at a high level of abstraction. Logic meta programming is used for querying about code and expressing structural relations like message sends, usage of variables or inheritance relations. This allows our tool to detect a number of bad smells, most of them highly time-consuming to detect manually. When a bad smell is detected, the relevant entities are analyzed in order to propose appropriate refactorings with the necessary parameters. For effectively applying the refactorings, the tool relies on existing refactoring implementations provided by the Refactoring Browser. The tool was implemented in SOUL, a logic meta-programming language on top of Smalltalk, and validated by detecting the bad smells for three different case studies on medium-sized object-oriented applications: The Collection hierarchy, the HotDraw framework and the SOUL application itself. Most detected bad smells indicated situations that were worthy of attention, and many of the proposed refactorings were actually useful to resolve the bad smells. Thanks to all the persons who made the EMOOSE program possible, it was a great life experience. Thanks to my advisors Tom Tourwé and Tom Mens for their continuous advice and support. Thanks to Johan Brichau for his helpful comments and all the people behind SOUL, I found it was an amazing application. Thanks to my fellow Emoosers for the all … |
| File Format | PDF HTM / HTML |
| Alternate Webpage(s) | http://soft.vub.ac.be/Publications/2003/vub-prog-ms-03-01.pdf |
| Alternate Webpage(s) | http://prog.vub.ac.be/Publications/2003/vub-prog-ms-03-01.pdf |
| Alternate Webpage(s) | http://prog.vub.ac.be/~ttourwe/articles/theses/fmunoz2002-2003.pdf |
| Language | English |
| Access Restriction | Open |
| Content Type | Text |
| Resource Type | Article |