gram transformations). That is, for example, we need
to check whether the count of pieces of code to trans-
form really is a good indicator for the time tools need
to execute transformations. Second, we need to in-
vestigate on the effect we can gain in real-world pro-
grams. Third, we need to investigate new cost mod-
els for program transformations (just as they exist in
database systems for data transformations). Finally,
we need to find out how program transformations
should look like in order to apply our concepts to
them. We plan to adopt techniques of query optimiza-
tion and transaction management of database man-
agement systems for program-transformation tools in
this future work.
REFERENCES
Apel, S., K¨astner, C., and Lengauer, C. (2009). Fea-
tureHouse: Language-independent, automated soft-
ware composition. In Proceedings of the International
Conference on Software Engineering, pages 221–231.
IEEE Computer Society.
Apel, S., Rosenm¨uller, M., Leich, T., and Saake, G. (2005).
FeatureC++: On the symbiosis of feature-oriented and
aspect-oriented programming. In Proceedings of the
Conference on Generative Programming and Compo-
nent Engineering, pages 125–140. Springer Verlag.
Batory, D. (2004). The road to Utopia: A future for gen-
erative programming. In Proceedings of the Seminar
on Domain-Specific Program Generation, pages 211–
250. Springer Verlag.
Batory, D.(2007). A modeling language for program design
and synthesis. In Proceedings of the Lipari Summer
School on Advances in Software Engineering, pages
39–58. Springer Verlag.
Batory, D., Sarvela, J., and Rauschmayer, A. (2004). Scal-
ing step-wise refinement. IEEE Transactions on Soft-
ware Engineering, 30(6):355–371.
Baxter, I. (1990). Transformational maintenance by reuse of
design histories. PhD thesis, University of California
at Irvine, USA.
Cinn´eide, M.
´
O. and Nixon, P. (2000). Composite refactor-
ings for Java programs. In Proceedings of the Work-
shop on Formal Techniques for Java Programs, pages
129–135.
Czarnecki, K. and Eisenecker, U. (2000). Generative
programming: Methods, tools, and applications.
Addison-Wesley Longman Publishing Co., Inc.
Dig, D. (2007). Automated upgrading of component-based
applications. PhD thesis, University of Illinois at
Urbana-Champaign, USA.
Dig, D., Manzoor, K., Johnson, R., and Nguyen, T. (2008).
Effective software merging in the presence of object-
oriented refactorings. IEEE Transactions on Software
Engineering, 34(3):321–335.
Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm,
J., and Griswold, W. (2001). An overview of As-
pectJ. In Proceedings of the European Conference
on Object-Oriented Programming, pages 327–353.
Springer Verlag.
Kniesel, G. (2006). A logic foundation for program trans-
formations. Technical Report IAI-TR-2006-1, Univer-
sity of Bonn, Germany.
Kniesel, G. and Koch, H. (2004). Static composition
of refactorings. Science of Computer Programming,
52(1-3):9–51.
Kuhlemann, M., Batory, D., and Apel, S. (2009). Refactor-
ing feature modules. In Proceedings of the Interna-
tional Conference on Software Reuse, pages 106–115.
Springer Verlag.
Kuhlemann, M., Liang, L., and Saake, G. (2010). Al-
gebraic and cost-based optimization of refactoring
sequences. In Proceedings of the Workshop on
Model-Driven Product Line Engineering, pages 37–
48. CEUR-WS.org.
Lynagh, I. (2006). An algebra of patches. [Available
online: http://urchin.earth.li/∼ian/conflictors/paper-
2006-10-30.pdf; accessed: July 16,2011].
Mens, T., Kniesel, G., and Runge, O. (2006). Transforma-
tion dependency analysis - A comparison of two ap-
proaches. In Proceedings of Langages et Mod`eles `a
Objets, pages 167–184. Hermes Science Publishing.
Mens, T., Taentzer, G., and Runge, O. (2007). Analysing
refactoring dependencies using graph transformation.
Software and Systems Modeling, 6(3):269–285.
Roberts, D. (1999). Practical analysis for refactoring. PhD
thesis, University of Illinois at Urbana-Champaign,
USA.
Schaefer, I., Bettini, L., Bono, V., Damiani, F., and Tan-
zarella, N. (2010). Delta-oriented programming of
software product lines. In Proceedings of the Software
Product Line Conference, pages 77–91. Springer Ver-
lag.
Stroustrup, B. (1991). The C++ programming language.
Addison-Wesley Longman Publishing Co., Inc., 2nd
edition.
Whitfield, D. and Soffa, M. (1997). An approach for ex-
ploring code improving transformations. ACM Trans-
actions on Programming Languages and Systems,
19(6):1053–1084.
Wirth, N. (1971). Program development by stepwise refine-
ment. Communications of the ACM, 14(4):221–227.
ENASE2012-7thInternationalConferenceonEvaluationofNovelSoftwareApproachestoSoftwareEngineering
186