skip to main content
10.1145/170791.170804acmconferencesArticle/Chapter ViewAbstractPublication PagescscConference Proceedingsconference-collections
Article
Free Access

Creating abstract superclasses by refactoring

Authors Info & Claims
Published:01 March 1993Publication History

ABSTRACT

This paper focuses on object-oriented programming and one kind of structure-improving transformation (refactoring) that is unique to object-oriented programming: finding abstract superclasses. We decompose the operation of finding an abstract superclass into a set of refactoring steps, and provide examples. We discuss techniques that can automate or automatically support these steps. We also consider some of the conditions that must be satisfied to perform a refactoring safely; sometimes to satisfy these conditions other refactorings must first be applied.

References

  1. 1.AT&T. UNIX System V User Reference Manual AT&T, 1984.Google ScholarGoogle Scholar
  2. 2.Robert Balzer. A fifteen-year perspective on automatic programming. In Software Reusability - Volume ii: Applications and Ezper/ence, pages 289-311, 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 3.Jay Banerjee and Won Kim. Semantics and implementation of schema evolution in objectoriented databases. In Proceedings of the A CM SIGMOD Conference, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 4.Carol Sue Beckman-Davies. Finding Program Differences Based on Syntactic Tree Structure. PhD thesis, University of Illinois at Urbana- Champaign, 1989.Google ScholarGoogle Scholar
  5. 5.Paul L. Bergstein. Object-preserving class transformations. In Proceedings of OOPSLA '91, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 6.K. M. Burstal} and J. Darlington. A transformation system for developing recursive programs. Journal of the ACM, 24(1):44--67, 1977. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 7.Eduardo Casals. Reorganizing an Object System, pages 161-189. Centre Universitair d'informatique, Universite de Geneve, 1989.Google ScholarGoogle Scholar
  8. 8.N. Dershowitz. Programming by analogy. Machine Learning: An Artificial Intelligence Approach (R.S. Michalski, J. G. Carbonell and 7". M. Mitchell, eds), 2:395-424, 1986.Google ScholarGoogle Scholar
  9. 9.L. Peter Deutsch. Design reuse and frameworks in the Smalltalk-80 system. In Software Reusability- Volume II: Applications and Experience, pages 57-72, 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 10.Margaret A. Ellis and Bjarne Stroustrup. The Annotated C++ Reference Manual. Addison- Wesley Publishing Co., Reading, MA, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 11.It. Greiner. Learning by understanding analogies. Artificial Intelligence, 35:81-125, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 12.William G. Griswold. Program Restructuring as an Aid in Software Maintenance. PhD thesis, University of Washington, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 13.Patrick A. V. Hall and Geoff ft. Dowling. Approximate string matching. Computing Surveys, 12(4):381--402, December 1980. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 14.Ralph E. Johnson and Brian Foote. Designing reusable classes. Journal of Object-Oriented Pro- 9ramming, 1(2):22-35, 1988.Google ScholarGoogle Scholar
  15. 15.W. Lewis Johnson and Martin Feather. Building an evolution transformation library. In Proceedings of the I'2th International Conference on Software Engineering, pages 238-247, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. 16.Won Kim. Introduction to Object-Oriented Databases. MIT Press, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. 17.Peter W. Madany. An Object-Oriented Framework for Filesystems. PhD thesis, University of Illinois at Urbana-Champaign, 1992. Also Technical Report No. UIUCDCS-R-92-1751, Department of Computer Science, University of Illinois at Urbana, Champaign. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. 18.Jeff McKenna. A proposal for change management for smalltalk. Smalltalk Report, 1(5):1-3, 1991.Google ScholarGoogle Scholar
  19. 19.Bertrand Meyer. Object-oriented Software Construction. Prentice Kall, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. 20.William F. Opdyke. Refactoring Object-Oriented Frameworks. PhD thesis, University of Illinois at Urbana.Champaign, 1992. Also Technical Report No. UIUCDCS-R-92-1759, Department of Computer Science, University of illinois at Urbana.Champaign. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. 21.William F. Opdyke and Ralph E. Johnson. Refaetoring: An aid in designing application frameworks and evolving object-oriented systems. In Proceedings of Symposium on Object- Oriented Programming Emphasizing Practical Applications (SOOPPA), September 1990.Google ScholarGoogle Scholar
  22. 22.D. Jason Penney and Jacob Stein. Class modification in the GemStone object-oriented dbms. In Proceedings of OOPSLA "87, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. 23.Edward J. Rak. Two redesign tools for Smalltalk. Master's thesis, University of Illinois at Urbana-Champaign, 1990.Google ScholarGoogle Scholar
  24. 24.Marc J. Rochkind. The source code control system. IEEE Transactions on Software Engineering, SF_,-1(4):364-370, December 1975.Google ScholarGoogle Scholar
  25. 25.Vinee Russo, Gary Johnston, and Roy H. Campbell. Process Management in Multiprocessor Operating Systems using Class Hierarchical Design. In Proceedings of OOPSLA '88, San Diego, Ca., September 1988.Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. 26.Vincent Russo and Roy H. Campbell. Virtual Memory and Backing Storage Management in Multiproeessor Operating Systems using Class Hierarchical Design. In Submitted to OOPSLA '89, 1989. Also available as University of Illinois Technical Report. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. 27.David Sankoff and Joseph B. Kruskal. Macromolecular sequences. In Time Warps, String Edits, and Macromolecules: The Theory and Practice of Sequence Comparison (19. Sankoff and J. Krnskal, eds), pages 45-53, 1983.Google ScholarGoogle Scholar
  28. 28.Robert A. Wagner. Order-n correction for regular languages. Communications of the A CM, 17(5):265-268, 1974. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. 29.Rebecca Wirfs-Brock, Brian Wilkerson, and Lauren Wiener. Designing Object-Oriented Software. Prentice-Hall, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. 30.Rebecca J. Wirfs-Brock and Ralph E. Johnson. A survey of current research in object-oriented design. Communications of the A CM, September 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. 31.Jonathan Zweig and Ralph Johnson. Conduits: A communication abstraction in C++. In Proceedings of the USENIX C-c--t- Workshop, pages 191-203, 1990.Google ScholarGoogle Scholar

Index Terms

  1. Creating abstract superclasses by refactoring

          Recommendations

          Comments

          Login options

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

          Sign in
          • Published in

            cover image ACM Conferences
            CSC '93: Proceedings of the 1993 ACM conference on Computer science
            March 1993
            543 pages
            ISBN:0897915585
            DOI:10.1145/170791

            Copyright © 1993 ACM

            Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 1 March 1993

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • Article

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader