Skip to main content

Architectural Refactoring in Framework Evolution: A Case Study

  • Conference paper
  • First Online:
Generative Programming and Component Engineering (GPCE 2002)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2487))

Abstract

The Know-It-All Project is investigating methodologies for the development, application, and evolution of frameworks. A concrete framework for database management systems is being developed as a case study for the methodology research. The methodology revolves around a set of models for the domain, the functionality, the architecture, the design, and the code. These models reflect the common and variable features of the domain.

Refactoring of source code has been studied as a preliminary step in the evolution of object-oriented software. In cascaded refactoring, we view framework evolution as a two-step process: refactoring and extension. The refactoring step is a set of refactorings, one for each model. The refactorings chosen for a model determine the rationale or constraints for the choice of refactorings of the next model.

There are several issues with respect to architecture that we have encountered and are exploring. These include (1) the choice of models for the architecture; (2) the design of the architecture and its evaluation; (3) the evolution of the architecture by extending the concept of refactoring from source code to architecture; and (4) the modeling of variation in architectures across the product line. Here we focus on the refactoring of the architecture.

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. J. Banerjee and W. Kim. Semantics and implementation of schema evolution in object-oriented databases. In Proceedings of the ACM SIGMOD Conference, 1987.

    Google Scholar 

  2. I. D. Baxter, Design maintenance systems, Communications of the ACM, 35(4):73–89, 1992.

    Article  Google Scholar 

  3. I. D. Baxter, DMS (transformational software maintenance by reuse): A production research system?, Proceedings of the Fifth Symposium on Software Reusability, ACM, 1999, p. 163.

    Google Scholar 

  4. G. Butler, L. Chen, X. Chen, A. Gaffar, J. Li, L. Xu. The Know-It-All Project: A Case Study in Framework Development and Evolution. In Domain Oriented Systems Development: Perspectives and Practices, K. Itoh and S. Kumagai (eds). Gordon Breach Science Publishers, UK, 2002, to appear.

    Google Scholar 

  5. G. Butler and L. Xu. Cascaded refactoring for framework evolution. In Proceedings of 2001 Symposium on Software Reusability, ACM Press, 2001, pp. 51–57.

    Google Scholar 

  6. M. E. Fayad, D. C. Schmidt, and R. E. Johnson, editors. Building Application Frameworks: Object-Oriented Foundations of Framework Design. Wiley, 1999.

    Google Scholar 

  7. M. Fowler. Refactoring: Improving the Design of Existing Code. Addison-Wesley, 1999.

    Google Scholar 

  8. C. Hofmeister, R. Nord, D. Soni. Applied Software Architecture. Addison-Wesley, 1999.

    Google Scholar 

  9. Ralph E. Johnson and B. Foote. Designing reusable classes. Journal of Object-Oriented Programming. pp. 22–35, July 1988.

    Google Scholar 

  10. H.F. Korth and A. Silberschatz. Database System Concepts. McGraw-Hill, 1988.

    Google Scholar 

  11. Kai-Uwe Mätzel, Walter Bischofberger. Designing object systems for evolution. TAPOS, Vol. 3, No. 4, 1997.

    Google Scholar 

  12. P. W. Madany, R. H. Campbell, V. Russo, and D. E. Leyens A class hierarchy for building stream-oriented file systems. Proceedings of ECOOP’89 (Nottingham, UK, July 1989), pp. 311–328.

    Google Scholar 

  13. G. G. Miller, J. D. McGregor and M. L. Major. Capturing framework requirements. inD. C. Schmidt, and R. E. Johnson, editors. Building Application Frameworks: Object-Oriented Foundations of Framework Design. Wiley, 1999. [6].

    Google Scholar 

  14. W.F. Opdyke. Refactoring Object-Oriented Frameworks. Ph.D. thesis, University of Illinois, 1992.

    Google Scholar 

  15. D. Roberts, J. Brant and R. Johnson. A refactoring tool for Smalltalk. In Theory and Practice of Object Systems, Vol. 3, No. 4, 1997.

    Google Scholar 

  16. D. Roberts and R. Johnson. Patterns for evolving frameworks. In R. C. Martin, D. Riehle, and F. Buschmann, editors, Pattern Languages of Program Design 3, pages 471–486. Addison-Wesley, 1997.

    Google Scholar 

  17. Lance Tokuda and Don Batory Automating software evolution via design pattern transformations. In 3rd International Symposium on Applied Corporate Computing, Monterrey, Mexico, Oct. 1995.

    Google Scholar 

  18. Lance Tokuda and Don Batory Automating three modes of evolution for objectoriented software architectures, 5th USENIX Conference on Object-Oriented Technologies, (COOTS’ 99), May 1999.

    Google Scholar 

  19. Lance Tokuda. Evolving object-oriented architectures with refactorings. Proceedings of ASE-99: The 14th Conference on Automated Software Engineering, IEEE CS Press, October 1999.

    Google Scholar 

  20. D. M. Weiss and C. T. R. Lai. Software Product-Line Engineering. Addison-Wesley, 1999.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2002 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Butler, G. (2002). Architectural Refactoring in Framework Evolution: A Case Study. In: Batory, D., Consel, C., Taha, W. (eds) Generative Programming and Component Engineering. GPCE 2002. Lecture Notes in Computer Science, vol 2487. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45821-2_8

Download citation

  • DOI: https://doi.org/10.1007/3-540-45821-2_8

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-44284-4

  • Online ISBN: 978-3-540-45821-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics