| JIAD: a tool to infer design patterns in refactoring |
| Full text |
Pdf
(182 KB)
|
Source
|
International Conference on Principles and Practice of Declarative Programming
archive
Proceedings of the 6th ACM SIGPLAN international conference on Principles and practice of declarative programming
table of contents
Verona, Italy
Pages: 227 - 237
Year of Publication: 2004
ISBN:1-58113-819-9
|
|
Authors
|
|
J. Rajesh
|
Indian Institute of Technology Madras, Chennai, India
|
|
D. Janakiram
|
Indian Institute of Technology Madras, Chennai, India
|
|
| Sponsors |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 9, Downloads (12 Months): 51, Citation Count: 2
|
|
|
ABSTRACT
Refactoring in object-orientation has gained increased attention due to its ability to improve design quality. Refactoring using design patterns (DPs) leads to production of high quality software systems. Although numerous tools related to refactoring exist, only a few of them apply design patterns in refactoring. Even these do not clearly specify where refactoring can be applied and when to apply appropriate design patterns.In this paper, we propose a tool, JIAD (Java based Intent-Aspects Detector) which addresses the refactoring issues such as, the scope for applying DPs in the code and the appropriate selection of DPs. The tool automates the identification of Intent-Aspects (IAs) which helps in applying suitable design patterns while refactoring the Java code. By automating the process of identifying IAs, the whole process of refactoring using DPs can be automated which enables rapid development of software systems. Also, the tool minimizes the number of possible errors while inferring the suitable DPs to apply refactoring. Our approach primarily focuses on Java code refactoring using declarative programming and AspectJ compiler. Finally, the tool is validated using two applications namely, JLex and Java2Prolog written in Java.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
IntelliJ. http://www.intellij.com.
|
| |
2
|
TyRuBa. http://tyruba.sourceforge.net.
|
| |
3
|
RajiNarayan. AspectJ Compiler. http://cvs.sourceforge.net/viewcvs.py/tyruba/frontend/org/aspectj/.
|
| |
4
|
D. Janaki Ram and J. Rajesh. Detecting Intent Aspects from Code to Apply Design Patterns in Refactoring: An Approach Towards a Refactoring Tool. In Proceedings of 2nd Workshop on Software Design and Architecture(SODA)04, Jan. 2004.
|
| |
5
|
|
| |
6
|
|
| |
7
|
Donald Bradley Roberts. Practical Analysis for Refactoring. PhD thesis, Univerisity of Illinois at Urbana-Champaign, June 1999.
|
| |
8
|
|
| |
9
|
Elliot Berki. JLex: A lexical analyzer generator for Java. http://www.cs.princeton.edu/~appel/modern/java/JLex/.
|
| |
10
|
|
| |
11
|
|
 |
12
|
|
| |
13
|
Johan Brichau and Kim Mens. Declarative Meta Programming. http://prog.vub.ac.be/research/DMP/.
|
| |
14
|
|
| |
15
|
Kris De Volder. Type-Oriented Logic Meta Programming. PhD thesis, Vrije Universiteit Brussel, Programming Technology Laboratory, June 1998.
|
| |
16
|
Marius Scurtescu. Java Program Representation and Manipulation in Prolog. Master's thesis, SFU_CS_School, 2000.
|
| |
17
|
|
 |
18
|
|
| |
19
|
R.Rajagopalan and Kris De Volder. QJBrowser: A Query-Based Browser for Exploring Cross Cutting Concerns in Code. Technical Report, University of British Columbia, 2002.
|
 |
20
|
|
| |
21
|
|
| |
22
|
|
| |
23
|
Wielemaker. Prolog Reference Manual. http://swi.psy.uva.nl/projects/SWI-Prolog.
|
 |
24
|
|
| |
25
|
|
CITED BY 2
|
|
T. H. Ng , S. C. Cheung , W. K. Chan , Y. T. Yu, Work experience versus refactoring to design patterns: a controlled experiment, Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering, November 05-11, 2006, Portland, Oregon, USA
|
|
|
|
INDEX TERMS
Primary Classification:
D.
Software
D.2
SOFTWARE ENGINEERING
D.2.7
Distribution, Maintenance, and Enhancement
Subjects:
Restructuring, reverse engineering, and reengineering
Additional Classification:
D.
Software
D.1
PROGRAMMING TECHNIQUES
D.1.2
Automatic Programming
D.1.6
Logic Programming
D.2
SOFTWARE ENGINEERING
D.2.3
Coding Tools and Techniques
Subjects:
Object-oriented programming
General Terms:
Design,
Languages,
Reliability,
Verification
Keywords:
declarative programming,
design pattern (DP),
facts-base,
intent-aspects (IAs),
object-oriented systems,
predicate-templates,
prolog,
refactoring,
rule-base
|