Skip to main content

Refactoring Feature Modules

  • Conference paper
Formal Foundations of Reuse and Domain Engineering (ICSR 2009)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 5791))

Included in the following conference series:

Abstract

In feature-oriented programming, a feature is an increment in program functionality and is implemented by a feature module. Programs are generated by composing feature modules. A generated program may be used by other client programs but occasionally must be transformed to match a particular legacy interface before it can be used. We call the mismatch of the interface of a generated program and a client-desired interface an incompatibility. We introduce the notion of refactoring feature modules (RFMs) that extend feature modules with refactorings. We explain how RFMs reduce incompatibilities and facilitate reuse, and report our experiences on five case studies.

Martin Kuhlemann was supported and partially funded by the DAAD Doktorandenstipendium (No. D/07/45661). Batory’s work was supported by NSF’s Science of Design Project #CCF-0724979. Sven Apel’s work was supported in part by the German Research Foundation (DFG), project number AP 206/2-1.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Batory, D., Sarvela, J.N., Rauschmayer, A.: Scaling step-wise refinement. TSE 30(6), 355–371 (2004)

    Google Scholar 

  2. Batory, D., Singhal, V., Sirkin, M., Thomas, J.: Scalable software libraries. In: Anderson, R. (ed.) FSE 1993. LNCS, vol. 809, pp. 191–199. Springer, Heidelberg (1994)

    Chapter  Google Scholar 

  3. Biggerstaff, T.J.: A new architecture for transformation-based generators. TSE 30(12), 1036–1054 (2004)

    Google Scholar 

  4. Bosch, J.: Design patterns as language constructs. JOOP 11(2), 18–32 (1998)

    Google Scholar 

  5. Dig, D., Negara, S., Mohindra, V., Johnson, R.: ReBA: Refactoring-aware binary adaptation of evolving libraries. In: ICSE, pp. 441–450 (2008)

    Google Scholar 

  6. Fowler, M.: Refactoring: Improving the design of existing code. Addison-Wesley Longman Publishing Co., Inc, Amsterdam (1999)

    MATH  Google Scholar 

  7. Fuhrer, R.M., Keller, M., Kieżun, A.: Advanced refactoring in the Eclipse JDT: Past, present, and future. In: WRT (2007)

    Google Scholar 

  8. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design patterns: Elements of reusable object-oriented software. Addison-Wesley, Reading (1995)

    MATH  Google Scholar 

  9. Hölzle, U.: Integrating independently-developed components in object-oriented languages. In: Nierstrasz, O. (ed.) ECOOP 1993. LNCS, vol. 707, pp. 36–56. Springer, Heidelberg (1993)

    Chapter  Google Scholar 

  10. Krueger, C.W.: New methods in software product line practice. CACM 49(12), 37–40 (2006)

    Article  Google Scholar 

  11. Kuhlemann, M., Batory, D., Apel, S.: Refactoring feature modules. Technical Report 15, Faculty of Computer Science, University of Magdeburg (2008)

    Google Scholar 

  12. Kuhlemann, M., Batory, D., Kästner, C.: Safe composition of non-monotonic features. In: GPCE (2009)

    Google Scholar 

  13. Lämmel, R.: Towards generic refactoring. In: Workshop on Rule-Based Programming, pp. 15–28 (2002)

    Google Scholar 

  14. Lau, K.-K., Ling, L., Ukis, V., Velasco Elizondo, P.: Composite connectors for composing software components. In: Lumpe, M., Vanderperren, W. (eds.) SC 2007. LNCS, vol. 4829, pp. 266–280. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  15. Lewis, J.R., Shields, M.B., Meijert, E., Launchbury, J.: Implicit parameters: Dynamic scoping with static types. In: POPL, pp. 108–118 (2000)

    Google Scholar 

  16. Liu, J., Batory, D., Lengauer, C.: Feature-oriented refactoring of legacy applications. In: ICSE, pp. 112–121 (2006)

    Google Scholar 

  17. Lopez-Herrejon, R.E., Batory, D.: A standard problem for evaluating product-line methodologies. In: GCSE, pp. 10–24 (2001)

    Google Scholar 

  18. Mattsson, M., Bosch, J.: Framework composition: Problems, causes and solutions. In: Marie, R., Plateau, B., Calzarossa, M.C., Rubino, G.J. (eds.) TOOLS 1997. LNCS, vol. 1245, pp. 203–214. Springer, Heidelberg (1997)

    Google Scholar 

  19. Mens, T., Eetvelde, N.V., Demeyer, S., Janssens, D.: Formalizing refactorings with graph transformations: Research articles. Journal of Software Maintenance and Evolution: Research and Practice 17(4), 247–276 (2005)

    Article  Google Scholar 

  20. Mezini, M., Seiter, L., Lieberherr, K.: Component integration with pluggable composite adapters. Kluwer Academic Publishers, Dordrecht (2000)

    MATH  Google Scholar 

  21. Monteiro, M.P., Fernandes, J.M.: Towards a catalog of aspect-oriented refactorings. In: AOSD, pp. 111–122 (2005)

    Google Scholar 

  22. Opdyke, W.F.: Refactoring object-oriented frameworks. PhD thesis, University of Illinois at Urbana-Champaign (1992)

    Google Scholar 

  23. Sekaraiah, K.C., Ram, D.J.: Object schizophrenia problem in modeling Is-Role-Of inheritance. In: Inheritance Workshop (2002)

    Google Scholar 

  24. Smith, D.R.: KIDS: A knowledge-based software development system. In: Automating Software Design, pp. 483–514 (1991)

    Google Scholar 

  25. Tatsubori, M., Chiba, S., Killijian, M.-O., Itano, K.: OpenJava: A class-based macro system for Java. In: Cazzola, W., Stroud, R.J., Tisato, F. (eds.) Reflection and Software Engineering. LNCS, vol. 1826, pp. 117–133. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  26. Verbaere, M., Ettinger, R., de Moor, O.: JunGL: A scripting language for refactoring. In: ICSE, pp. 172–181 (2006)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2009 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Kuhlemann, M., Batory, D., Apel, S. (2009). Refactoring Feature Modules. In: Edwards, S.H., Kulczycki, G. (eds) Formal Foundations of Reuse and Domain Engineering. ICSR 2009. Lecture Notes in Computer Science, vol 5791. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-04211-9_11

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-04211-9_11

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-04210-2

  • Online ISBN: 978-3-642-04211-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics