Abstract
Program refactoring, feature-based and aspect-oriented software synthesis, and model-driven development are disjoint research areas. However, they are all architectural metaprogramming technologies as they treat programs as values and use functions (a.k.a. transformations) to map programs to other programs. In this paper, I explore their underlying connections by reviewing recent advances in each area from an architectural metaprogramming perspective. I conjecture how these areas can converge and outline a theory that may unify them.
Chapter PDF
References
Ancona, D., Damiani, F., Drossopoulou, S.: Polymorphic Bytecode: Compositional Compilation for Java-like Languages. In: POPL (2005)
Antkiewicz, M., Czarnecki, K.: FeaturePlugin: Feature Modeling Plug-In for Eclipse. In: OOPSLA Eclipse Technology eXchange (ETX) Workshop (2004)
Batory, D.: Concepts for a Database System Compiler. In: ACM PODS (1988)
Batory, D., Lofaso, B., Smaragdakis, Y.: JTS: Tools for Implementing Domain-Specific Languages. In: International Conference on Software Reuse (1998)
Batory, D., et al.: Design Wizards and Visual Programming Environments for GenVoca Generators. IEEE Transactions on Software Engineering 26(5) (2000)
Batory, D., Sarvela, J.N., Rauschmayer, A.: Scaling Step-Wise Refinement. IEEE TSE (June 2004)
Batory, D.: Multi-Level Models in Model-Driven Development, Product-Lines, and Met-aprogramming. IBM Systems Journal 45(3) (2006)
Batory, D.: From Implementation to Theory in Product Synthesis. In: POPL 2007 keynote (2007)
Bezivin, J.: From Object Composition to Model Transformation with the MDA. In: TOOLS’USA (August 2001)
Binkley, D., et al.: Automated Refactoring of Object Oriented Code into Aspects. In: ICSM (2005)
BMW: www.bmwusa.com
Brookes, F.P.: No Silver bullet: Essence and Accidents of Software Engineering. IEEE Computer (April 1987)
Brown, A.W., et al.: An MDA Manifesto. In: Frankel, D.S., Parodi, J. (eds.) Model-Driven Architecture Straight from the Masters, Meghan-Kiffer Press, Tampa (2004)
Clements, P., Northrup, L.: Software Product Lines: Practices and Patterns. Addison-Wesley, Reading (2001)
Cole, L., Borba, P.: Deriving Refactorings for AspectJ. In: AOSD (2005)
Dell Computers: http://www.dell.com
Marinov, D., et al.: Automated Detection of Refactorings in Evolving Components. In: Thomas, D. (ed.) ECOOP 2006. LNCS, vol. 4067, pp. 404–428. Springer, Heidelberg (2006)
Dig, D., Johnson, R.: How do APIs Evolve? A Story of Refactoring. Journal of Software Maintenance and Evolution 18(2) (2006)
Hanenberg, S., Oberschulte, C., Unland, R.: Refactoring of Aspect-Oriented Software. In: Net.ObjectDays (2003)
Fowler, M., et al.: Refactoring: Improving the Design of Existing Code. Addison-Wesley, Reading (2000)
Kang, K., et al.: Feature-Oriented Domain Analysis (FODA) Feasibility Study. Tech. Report CMU/SEI-90-TR-21.
Kiczales, G., et al.: An over-view of AspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, Springer, Heidelberg (2001)
Kleppe, A., Warmer, J., Bast, W.: MDA Explained: The Model-Driven Architecture – Practice and Promise. Addison-Wesley, Reading (2003)
Kulkarni, V., Reddy, S.: Model-Driven Development of Enterprise Applications. In: Jardim Nunes, N., et al. (eds.) UML Satellite Activities 2004. LNCS, vol. 3297, Springer, Heidelberg (2005)
Batory, D., Lopez-Herrejon, R.E.: A Standard Problem for Evaluating Product-Line Methodologies. In: Bosch, J. (ed.) GCSE 2001. LNCS, vol. 2186, pp. 10–24. Springer, Heidelberg (2001)
Lopez-Herrejon, R., Batory, D., Lengauer, C.: A Disciplined Approach to Aspect Composition. In: PEPM (2006)
Meijer, E., Fokkinga, M., Paterson, R.: Functional Programming with Bananas, Lenses, Envelopes, and Barbed Wire. In: Hughes, J. (ed.) FPCA 1991. LNCS, vol. 523, Springer, Heidelberg (1991)
Monteiro, M.P., Fernandes, J.M.: Towards a Catalog of Aspect-Oriented Refactorings. In: AOSD (2005)
Nystrom, N., Qi, X., Myers, A.C.: J&: Nested Intersection for Scalable Software Composition. In: OOPSLA (2006)
Object Management Group, http://www.omg.org/mda/committed-products.htm
Odersky, M., et al.: An Overview of the Scala Programming Language (September 2004), http://www.scala-lang.org/
Pierce, B.: Basic Category Theory for Computer Scientists. MIT Press, Cambridge (1991)
Schmidt, D.C.: Model-Driven Engineering. IEEE Computer 39(2) (2006)
Sunyé, G., et al.: Refactoring UML Models. In: Gogolla, M., Kobryn, C. (eds.) UML 2001. LNCS, vol. 2185, Springer, Heidelberg (2001)
Sztipanovits, J., Karsai, G.: Model Integrated Computing. IEEE Computer (April 1997)
Taha, W., Sheard, T.: Multi-Stage Programming with Explicit Annotations. In: PEPM (1997)
Trujillo, S., Batory, D., Diaz, O.: Feature Oriented Model-Driven Development: A Case Study for Portlets. In: ICSE (2007)
Van Der Straeten, R., Jonckers, V., Mens, T.: Supporting Model Refactorings through Behaviour Inheritance Consistencies. In: Baar, T., et al. (eds.) UML 2004. LNCS, vol. 3273, Springer, Heidelberg (2004)
Zhang, C., Jacobsen, H.-A.: Resolving Feature Convolution in Middleware Systems. In: OOPSLA (2004)
Zhang, J., Lin, Y., Gray, J.: Generic and Domain-Specific Model Refactoring using a Model Transformation Engine. In: Beydeda, S., Book, M., Gruhn, V. (eds.) Model-driven Software Development, Springer, Heidelberg (2005)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2007 Springer Berlin Heidelberg
About this paper
Cite this paper
Batory, D. (2007). Program Refactoring, Program Synthesis, and Model-Driven Development. In: Krishnamurthi, S., Odersky, M. (eds) Compiler Construction. CC 2007. Lecture Notes in Computer Science, vol 4420. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-71229-9_11
Download citation
DOI: https://doi.org/10.1007/978-3-540-71229-9_11
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-71228-2
Online ISBN: 978-3-540-71229-9
eBook Packages: Computer ScienceComputer Science (R0)