|
ABSTRACT
Feature refactoring is the process of decomposing a program into aset of modules, called features, that encapsulate increments in program functionality. Different compositions of features yield different programs. As programs are defined using multiple representations, such as code, makefiles, and documentation, feature refactoring requires all representations to be factored. Thus, composing features produces consistent representations of code, make files, documentation, etc. for a target program. We present acase study of feature refactoring a substantial tool suite that usesmultiple representations. We describe the key technical problems encountered, and sketch the tool support needed for simplifying such refactorings in the future.
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
|
AHEAD Tool Suite. http://www.cs.utexas.edu/users/schwartz/ATS.html
|
| |
2
|
Apache Struts. http://struts.apache.org/
|
| |
3
|
|
| |
4
|
|
 |
5
|
|
| |
6
|
|
| |
7
|
D. Batory. "Feature Models, Grammars, and Propositional Formulas", SPLC, September 2005.
|
| |
8
|
D. Batory and S. Thaker. "Towards Safe Composition of Product Lines", University of Texas Dept. of Computer Sciences TR-06-33. http://www.cs.utexas.edu/ftp/pub/techreports/index/html/Abstracts.2006.html#TR-06-33
|
| |
9
|
|
| |
10
|
R. Buhrdorf, D. Churchett, C.W. Krueger. "Salion's Experi-ence with a Reactive Software Product Line Approach", 5thInt. Workshop on Software Product-Family Engineering, LNCS-3014, 2003.
|
| |
11
|
|
| |
12
|
|
| |
13
|
Cygwin. http://www.cygwin.com/
|
| |
14
|
K. Czarnecki, S. Helsen, and U. Eisenecker. "Staged Configuration Through Specialization and Multi-Level Configura-tion of Feature Models". Software Process Improvement andPractice, 10(2), 2005.
|
| |
15
|
|
| |
16
|
O. Diaz, S. Trujillo, and F. I. Anfurrutia. "Supporting Production Strategies as Refinements of the Production Process". SPLC, 2005.
|
| |
17
|
O. Diaz, S. Trujillo, and F. I. Anfurrutia. "XAK and XML Refinement." Draft in preparation, April 2006.
|
 |
18
|
Gary Froehlich , H. James Hoover , Ling Liu , Paul Sorenson, Hooking into object-oriented application frameworks, Proceedings of the 19th international conference on Software engineering, p.491-501, May 17-23, 1997, Boston, Massachusetts, United States
[doi> 10.1145/253228.253432]
|
| |
19
|
J. Hannemann and G. Kiczales. "Overcoming the PrevalentDecomposition of Legacy Code", Workshop on AdvancedSeparation of Concerns, IEEE, 2001.
|
| |
20
|
J. Liu and D. Batory. "Automatic Remodularization and Optimized Synthesis of Product-Families", GPCE 2004
|
| |
21
|
J. Liu, D. Batory, and S. Nedunuri, "Modeling Interactions inFeature Oriented Designs", International Conference on Fea-ture Interactions (ICFI), June 2005.
|
 |
22
|
|
| |
23
|
R. Lopez-Herrejon and D. Batory. "From Crosscutting Con-cerns to Product Lines: A Functional CompositionApproach", submitted for publication 2006.
|
 |
24
|
|
| |
25
|
Gail C. Murphy , Albert Lai , Robert J. Walker , Martin P. Robillard, Separating features in source code: an exploratory study, Proceedings of the 23rd International Conference on Software Engineering, p.275-284, May 12-19, 2001, Toronto, Ontario, Canada
|
 |
26
|
|
 |
27
|
P. Griffiths Selinger , M. M. Astrahan , D. D. Chamberlin , R. A. Lorie , T. G. Price, Access path selection in a relational database management system, Proceedings of the 1979 ACM SIGMOD international conference on Management of data, May 30-June 01, 1979, Boston, Massachusetts
[doi> 10.1145/582095.582099]
|
 |
28
|
Charles Zhang , Hans-Arno Jacobsen, Resolving feature convolution in middleware systems, Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, October 24-28, 2004, Vancouver, BC, Canada
|
CITED BY 8
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Salvador Trujillo , Maider Azanza , Oscar Diaz , Rafael Capilla, Exploring Extensibility of Architectural Design Decisions, Proceedings of the Second Workshop on SHAring and Reusing architectural Knowledge Architecture, Rationale, and Design Intent, p.10, May 20-26, 2007
|
|
|
|
|
|
|
|
|
|
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.2
SOFTWARE ENGINEERING
D.2.13
Reusable Software
Subjects:
Domain engineering
I.
Computing Methodologies
I.2
ARTIFICIAL INTELLIGENCE
I.2.2
Automatic Programming
Subjects:
Program synthesis
General Terms:
Design,
Experimentation
Keywords:
AHEAD,
feature-oriented programming,
multiple representations,
program synthesis,
refactoring,
refinements,
software product lines
|