article

Cascaded refactoring for framework

Abstract

Refactoring of source code has been studied as a preliminary step in the evolution of object-oriented software. We extend the concept of refactoring to the whole range of models used to describe a framework in our methodology: feature model, use case model, architecture, design, and code. We view framework evolution as a two-step process: refactoring and extension. The refactoring step is a set of refactorings, one for each model, that cascades through them. The refactorings chosen for a model become the rationale or constraints for the choice of refactorings of the next model.

The cascading of refactorings is aided by the alignment of the models. Alignment is a traceable mapping between models that preserves the commonality-variability aspects of the models.

References

  1. 1 J. Banerjee and W. Kim. Semantics and implementation of schema evolution in object-oriented databases. In Proceedings of the ACM SIGMOD Conference. ACM, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 2 I. D. Baxter. Design maintenance systems. Communications of the ACM, 35(4):73-89, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 3 I. D. Baxter. DMS (transformational software maintenance by reuse): A production research system? In Proceedings of the Fifth Symposium on Software Reusability, page 163. ACM, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 4 G. Butler. Developing frameworks by aligning requirements, design, and code. In Proceedings of 9th Workshop on Software Reuse (WISR-9), 1999.Google ScholarGoogle Scholar
  5. 5 P. Clements and L. Northrop. A framework for software product line practice | version 2.0. Technical report, SEI, CMU, 1999.Google ScholarGoogle Scholar
  6. 6 S. Demeyer, T. D. Meijler, O. Nierstrasz, and P. Steyaert. Design guidelines for \tailorable" frameworks. Communications of the ACM, 40(10):60-64, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 7 D. D'Souza and A. Wills. Objects, Components, and Frameworks with UML | The Catalysis Approach. Addison-Wesley, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 8 M. E. Fayad, D. C. Schmidt, and R. E. Johnson, editors. Building Application Frameworks: Object-Oriented Foundations of Framework Design. Wiley, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9 M. Fowler. Refactoring: Improving the Design of Existing Code. Addison-Wesley, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 10 M. L. Griss, J. Favaro, and M. d'Alessandro. Integrating feature modeling with the RSEB. In Proceedings Fifth International Conference on Software Reuse, pages 76-85. IEEE Computer Society, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 11 I. Jacobson, M. Griss, and P. Jonsson. Software Reuse: Architecture, Process and Organization for Business Success. Addison-Wesley, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 12 R. E. Johnson and B.Foote. Designing reusable classes. Journal of Object-Oriented Programming, pages 22-35, July 1988.Google ScholarGoogle Scholar
  13. 13 K. C. Kang, S. Kim, J. Lee, K. Kim, E. Shin, and M. Huh. FORM: A feature-oriented reuse method with domain-specific reference architectures. Annals of Software Engineering, 5:143-168, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 14 P. Kruchten. The 4+1 view model of architecture. IEEE Software, pages 42-50, November 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. 15 P. Madany, R. Campbell, V. Russo, and D. Leyens. A class hierarchy for building stream-oriented file systems. In Proceedings of ECOOP'89, pages 311-328, 1989.Google ScholarGoogle Scholar
  16. 16 K.-U. M.atzel and W. Bischofberger. Designing object systems for evolution. Theory and Practice ofObject Systems, 3(4), 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. 17 G. Miller, J. McGregor, and M. Major. Capturing framework requirements.InM. E. Fayad, D. C. Schmidt, and R. E. Johnson, editors, Building Application Frameworks: Object-Oriented Foundations of Framework Design. Wiley, 1999.Google ScholarGoogle Scholar
  18. 18 W. Opdyke. Refactoring Object-Oriented Frameworks. PhD thesis, University of Illinois, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. 19 C. Potts, K. Takahashi, and A. Anton. Inquiry-based requirements analysis. IEEE Software, pages 21-32, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. 20 W. Pree. Design Patterns for Object-Oriented Software Development. Addison-Wesley, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. 21 B. Regnell, M. Andersson, and J. Bergstrand. A hierarchical use case model with graphical representation. In Proceedings of Second International Symposium on Engineering of Computer-Based Systems, pages 270-277. IEEE Computer Society Press, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. 22 D. Roberts, J.Brant, and R. Johnson. A refactoring tool for smalltalk. Theory and Practice of Object Systems, 3(4), 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. 23 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 ScholarGoogle ScholarDigital LibraryDigital Library
  24. 24 H. A. Schmid. Systematic framework design by generalization. Communications of the ACM, 40(10):48-51, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. 25 M. Shaw and D. Garlan. Software Architecture: Perspectives on an Emerging Discipline. Prentice Hall, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. 26 STARS. Organization domain modeling (ODM) guidebook | version 2.0. Technical report, Lockheed Martin Tactical Defense Systems, 1996.Google ScholarGoogle Scholar
  27. 27 L. Tokuda. Evolving object-oriented architectures with refactorings. In Proceedings of ASE-99: The 14th Conference onAutomated Software Engineering. IEEE CS Press, October 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. 28 L. Tokuda and D. Batory. Automating software evolution via design pattern transformations. In 3rd International Symposium on Applied Corporate Computing, October 1995.Google ScholarGoogle Scholar
  29. 29 L. Tokuda and D. Batory. Automating three modes of evolution for object-oriented software architectures. In 5th USENIX Conference onObject-Oriented Technologies (COOTS'99), May 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. 30 D. M. Weiss and C. T. R. Lai. Software Product-Line Engineering. Addison-Wesley, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Cascaded refactoring for framework

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in

          Full Access

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader
          About Cookies On This Site

          We use cookies to ensure that we give you the best experience on our website.

          Learn more

          Got it!