Algebraic and Cost-based Optimization of Refactoring Sequences ⋆

Software product lines comprise techniques to tailor a program by selecting features. One approach to implement product lines is to translate selected features into sequenced program transformations which extend a base program. However, a sequence translated from the user selection can be inefficient to execute. In this paper, we show how we optimize sequences of refactoring transformations to reduce the composition time for product line programs.

[1]  Matthias Jarke,et al.  Query Optimization in Database Systems , 1984, CSUR.

[2]  Guy L. Steele,et al.  The Java Language Specification , 1996 .

[3]  Ralph E. Johnson,et al.  Automated upgrading of component-based applications , 2006, OOPSLA '06.

[4]  Liang Liang,et al.  Optimizing Sequences of Refactorings , 2010 .

[5]  Charles W. Krueger,et al.  New methods in software product line practice , 2006, CACM.

[6]  S. B. Yao,et al.  Optimization Algorithms for Distributed Queries , 1986, IEEE Transactions on Software Engineering.

[7]  John Miles Smith,et al.  Optimizing the performance of a relational algebra database interface , 1975, CACM.

[8]  Hans-Arno Jacobsen,et al.  Quantifying aspects in middleware platforms , 2003, AOSD '03.

[9]  Surajit Chaudhuri,et al.  An overview of query optimization in relational systems , 1998, PODS.

[10]  Günter Kniesel,et al.  Static composition of refactorings , 2004, Sci. Comput. Program..

[11]  Don S. Batory A Modeling Language for Program Design and Synthesis , 2007, Lipari Summer School.

[12]  Don S. Batory,et al.  Safe composition of non-monotonic features , 2009, GPCE '09.

[13]  Tom Mens,et al.  Transformation dependency analysis - a comparison of two approaches , 2006, LMO.

[14]  Matthias Felleisen,et al.  Hygienic macro expansion , 1986, LFP '86.

[15]  Tom Mens,et al.  Formalizing refactorings with graph transformations , 2005, J. Softw. Maintenance Res. Pract..

[16]  A. V. Hall Optimization of Single Expressions in a Relational Data Base System , 2002 .

[17]  Kim Mens,et al.  Vrije Universiteit Brussel Faculteit Wetenschappen Reuse Contracts: Managing the Evolution of Reusable Assets Reuse Contracts: Managing the Evolution of Reusable Assets , 2022 .

[18]  Don S. Batory,et al.  Using modern mathematics as an FOSD modeling language , 2008, GPCE '08.

[19]  Patrick Nixon,et al.  Composite Refactorings for Java Programs , 2000 .

[20]  William F. Opdyke,et al.  Refactoring object-oriented frameworks , 1992 .

[21]  Eelco Visser,et al.  Fusing Logic and Control with Local Transformations: An Example Optimization , 2001, Electron. Notes Theor. Comput. Sci..

[22]  Sven Apel,et al.  Refactoring Feature Modules , 2009, ICSR.

[23]  Javier Pérez,et al.  Enabling Refactoring with HTN Planning to Improve the Design Smells Correction Activity , 2008 .

[24]  Sven Apel,et al.  Optimizing Non-functional Properties of Software Product Lines by means of Refactorings , 2010, VaMoS.

[25]  Eelco Visser,et al.  Stratego/XT 0.17. A language and toolset for program transformation , 2008, Sci. Comput. Program..

[26]  Günter Kniesel A Logic Foundation for Program Transformations , 2006 .

[27]  Ira D. Baxter,et al.  Transformational maintenance by reuse of design histories , 1991 .

[28]  Don Roberts,et al.  Practical analysis for refactoring , 1999 .

[29]  Don Batory,et al.  Scaling step-wise refinement , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[30]  Tom Mens,et al.  Analysing refactoring dependencies using graph transformation , 2007, Software & Systems Modeling.

[31]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .