Toward Refactoring in a Polyglot World - CiteSeerX
Recommend Documents
announce that we have a new ... exciting new opportunities in the .... while
meeting new people, making new friends, and participating in exciting activities.
Brooklyn College and Graduate Center, ... be de-constructed because it is inherently unequal. ... Few are willing to und
Dec 18, 2014 - application services, where all MARF s pipeline stages are ... On the client side, a client application invokes ..... freelance software developer.
project models in Alloy [13], a formal object-oriented modeling language. 1 We would like ... be published in. Electronic Notes in Theoretical Computer Science ... signatures. A signature paragraph introduces a basic type â if it does not extend.
matically. Development environments that support design by contract must take these influences into account. We report on the implementation in Eclipse of sev-.
formalism independent modularity metrics, as well as the development of a tool to support it. .... Transactions on Aspect-Oriented Software Development. I, vol.
URL: http://www.elsevier.nl/locate/entcs/volume70.html 20 pages. Refactoring by ... them intuitively. 1 Email: [email protected]. 2 Email: [email protected].
ments contain significant bugs in their refactoring tools. ... Keywords. Refactoring, scripting language, source code transformation, ...... optimizing programs.
refactoring tool development, we chose the agent plans as the target .... refactoring tool. 1http://etmen.ege.edu.tr/wiki/index.php/refactoring_agent_system bad.
tool that carries out many refactorings automati- cally, and ... Name: AddClass. Parameters: className. : String superclass. : Class ..... straction in the problem domain. Divining this .... ple, to add a method to a class, you must check that the ..
POLYGLOT - 2008 EOOD. 25, Dr. Nider St., 8000 Burgas mob. +359 888 328 038 e-mail: [email protected]. Translation from Bulgarian. Dr. Savas Geo.
Human-Artifact interaction in real world situations is cur- rently an active area of research ... Keywords: Embodiment, Real World Agents, Interactive Perception, Mutual In- tention. 1 Introduction ..... 27â31, Honolulu, Hawaii, USA. (2007) 251â2
a polyglot approach involving multiple languages (Python .... from the USA, via the Query button or download sequence files in FASTA format meeting their ...
Email: {rmartico,clopezno}@ubu.es ... refactoring tools behaviour for the Extract Method in the ... tools, Fowler explained that the automation degree for this.
went on to study German at university, more of which later. At the age of 16 I went
to a ..... intermediate level and Assimil can consolidate your knowledge on all ...
Biblia Sacra, Hebraice, Chaldaice, Graece & Latine (8 vols., Antwerp, 1568-73).
.... support to the Biblia Comp/utensis. ... Latin texts, the Syriac Peshitta as well.
The interface requirements between Ares and Orion were defined in an English- language Interface Control Document that included communication and control.
Whilst the bulk of refactoring tools that have been de- veloped have supported ...... the members of the Erlide development mailing list, and the members of the ...
s6 return x;. } me7 public int .... defined point in the execution of a program, such as a call to a method, an ..... Conference on Object-Oriented Programming,.
be considered 'ante litteram collective intelligence tools'. Social network systems ... under supervision of) the management, given the functions needed and the ...
Jul 11, 2009 - (IJCSIS) International Journal of Computer Science and Information Security,. Vol. 6, No. 2, 2009. Refactoring of a Database. Ayeesha D'Sousa.
This position, however, need not fall into a straightforward ..... nationals in Italy during the period of fascist rule; or the poverty that prevents people in develop-.
Toward Refactoring in a Polyglot World - CiteSeerX
Oct 19, 2008 - port across three different popular Java frameworks: Struts,. Hibernate and ... to lists, requires prior specific permission and/or a fee. WRT'08 ...
Toward Refactoring in a Polyglot World Extending Automated Refactoring Support Across Java and XML Nicholas Chen, Ralph Johnson University of Illinois at Urbana-Champaign {nchen,johnson}@cs.uiuc.edu
Abstract Many automated refactoring tools only work with one programming language. However, most complex programs rely on polyglot programming — entailing the use of different programming languages, libraries and frameworks. While finding a general solution for extending refactoring across multiple languages is hard, it is simple and possible to support automated refactorings for some common cases that programmers already encounter in their programs today. Supporting those common cases is essential in encouraging programmers to make changes that would increase the understandability and maintainability of their programs. This paper is a step toward encouraging tool developers to think about supporting multi-language refactorings. We present our tool for supporting multi-language refactorings from studying the interactions between Java and XML configuration files. Our tool extends Rename Refactoring support across three different popular Java frameworks: Struts, Hibernate and Spring.
1.
Introduction
Refactorings are behavior-preserving program transformations that make a program more understandable and maintainable [4]. While complex refactorings require programmers to perform them by hand, many less-complex refactorings can be automated using some tool. The first tool to support automated refactorings was the Refactoring Browser for Smalltalk [8]. In Smalltalk, everything is written in Smalltalk itself. Essentially, the Refactoring Browser needs to work only in a single language. Contrast this to current programs written in languages such as Java. Such programs rely on various libraries and frameworks. Each library or framework might employ its
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. WRT’08, October 19, 2008, Nashville, Tennessee, USA. c 2008 ACM 978-1-60558-339-6/08/10. . . $5.00 Copyright
own domain-specific language. While the majority of the program is in Java, non-trivial components that are not written in Java exist as well. Currently, executing an automated refactoring such as Rename Refactoring on a Java class would preserve the behavior in the Java components but would break the non-Java components, requiring the programmer to manually perform the remaining changes by hand — a task that is both tedious and error-prone. Ideally, an automated refactoring tool should also extend refactoring support to those non-Java components. Though it is well-known that refactoring a Java component could require changes in other non-Java components, little has been done to study how to support such multi-language refactorings. Many programs today already rely on polyglot programming. Without proper support for automated refactoring across multiple-languages, maintaining such programs would be onerous. Presently, most frameworks use XML as their domainspecific language for configuration. Like other programming languages, valid XML requires proper syntax (as specified by the XML standards) and semantics (as specified by the schema of the XML document). Moreover, XML is the most common domain-specific language for Java frameworks. The similarities of XML with other languages and its ubiquity make it a suitable model language for studying the feasibility of multi-language refactoring support. Its similarities with other languages imply that the technique we develop would be applicable for other languages. And its ubiquity implies that our tool can be used for many different systems already out there. In this paper, we present our tool for extending refactoring support from Java to XML configuration files under the Eclipse IDE [2]. In Section 2, we present an example of how our tool works for refactoring a Java project that uses the Struts framework. And in Section 3, we describe the general principle behind our tool. The current version of our tool extends Rename Refactoring across Java and XML configuration files and we are adding support for refactorings that require moving or deleting Java components.
2.
Example — Supporting Struts Refactoring
We have implemented our tool for three popular Java frameworks: Struts, Hibernate and Spring. In fact, our general technique was distilled from those three examples [9] as we implemented and refined our implementations of them. In this paper, we focus on the Struts framework and detail the steps that were taken to extend refactoring support for Struts in the Eclipse IDE. Struts [1] is one of the most popular open-source Java frameworks for creating Java web applications. It follows the Model-View-Controller architecture and decouples each component to promote maintainability. It relies on XML configuration files to “wire” those different components together. Struts is a mature and robust framework with many different features. In this section, we focus on how we extended refactoring support to its Model component. Below is a walkthrough of our implementation for this component: