skip to main content
10.1145/1227310.1227364acmconferencesArticle/Chapter ViewAbstractPublication PagessigcseConference Proceedingsconference-collections
Article

Teaching students to build well formed object-oriented methods through refactoring

Published:07 March 2007Publication History

ABSTRACT

Refactoring is the process of transforming the internal structure of existing code while keeping the integrity of the code's functional requirements. Refactoring is proven to increase program maintainability, flexibility, and understandability and is recognized as a best practice in the software development community. However, with the exception of courses or lectures on extreme programming, refactoring is overlooked in the computer science curriculum. This paper presents the fourth lesson of an innovative pedagogical approach to teaching refactoring on the college level. This lesson covers the creation of well formed object-oriented methods including characteristics for evaluating such methods. Through this hands-on approach, building well formed object-oriented methods through refactoring can be better understood and integrated into the computer science curriculum.

References

  1. Beck, K. Extreme Programming Explained: Embrace Change. Addison-Wesley, Reading, MA, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Bellin, D., Tyagi, M., and Tyler M. Object-oriented metrics: an overview. In Proceedings of the 1994 Conference of the Centre for Advanced Studies on Collaborative Research, IBM Press, 1994, 4. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Binder, R. V. Testing Object-Oriented Software: Models, Patterns, and Tools. Addison-Wesley, Boston, MA, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Brooks, R. Using a behavioral theory of program comprehension in software engineering. In Proceedings of the 3rd International Conference on Software Engineering (Atlanta, GA, May 10-12, 1978). International Conference on Software Engineering. IEEE Press, Piscataway, NJ, 196--201. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. DeMarco, T. Structured Analysis and System Specification. Yourdon Press, New York, NY, 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. El Emam, K., Benlarbi, S., Goel, N., and Rai, S. N. The confounding effect of class size on the validity of object-oriented metrics. IEEE Trans. Softw. Eng. 27, 7 (Jul. 2001), 630--650. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Fowler, M., Beck, K., Brant, J., Opdyke, W., and Roberts, D. Refactoring: Improving the Design of Existing Code. Addison-Wesley, Boston, MA, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Gellenbeck, E. M. and Cook, C. R. Does signaling help professional programmers read and understand computer programs? Empirical Studies of Programmers-IV, Ablex Inc., Norwood, NJ, 1991, 82--98.Google ScholarGoogle Scholar
  9. Hudli, R. V., Hoskins, C. L., and Hudli, A. V. Software metrics for object-oriented designs. In Proceedings of the IEEE International Conference on Computer Design: VLSI in Computers and Processors (ICCD'94) (October 10-12 1994). 1994, 492--495. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Kang, B., and Bieman, J. M. A quantitative framework for software restructuring. Journal of Software Maintenance: Research and Practice, 11, 4 (July/August 1999), 245--284. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Lorenz, M. and Kidd, J. Object-Oriented Software Metrics. Prentice-Hall, Englewood Cliffs, NJ, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. McCabe. T. A software complexity measure. IEEE Trans. on Softw. Eng., 2, 4 (December 1976), 308--320.Google ScholarGoogle Scholar
  13. Nurvitadhi, E., Leung, W. W., and Cook, C. Do class comments aid Java program understanding? In Proceedings of the 33rd ASEE/IEEE Frontiers in Education Conference (Boulder, CO, November 5-8, 2003). 2003, 1--5.Google ScholarGoogle ScholarCross RefCross Ref
  14. Page-Jones, M. The Practical Guide to Structured Systems Design. Yourdon Press, New York, NY, 1980. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Pritchett, W. W. An object-oriented metrics suite for Ada 95. In Proceedings of the 2001 Annual ACM SigAda International Conference on Ada (SIGAda '01) (Bloomington, MN, September 30 - October 4, 2001). ACM Press, New York, NY, 117--126. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Raskin, J. Comments are more important than code. Queue 3, 2 (March 2005), 64--ff. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Rosenberg, J. Some misconceptions about lines of code. In Proceedings of the 4th International Symposium on Software Metrics (November 05 - 07, 1997). METRICS. IEEE Computer Society, Washington, DC, 137--142. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Rosenberg, L. and Hyatt, L. Software quality metrics for object-oriented system environments. SATC, NASA Technical Report SATC-TR-95-1001, 1995.Google ScholarGoogle Scholar
  19. Smith, S., Stoecklin, S., and Mullins, J. Taking cohesion into the classroom. Journal of Computing Sciences in Colleges, 20, 2 (Dec. 2004), 296--303. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Smith, S., Stoecklin, S., and Serino, C. An innovative approach to teaching refactoring. In Proceedings of the 37th SIGCSE Technical Symposium on Computer Science Education (SIGCSE '06) (Houston, Texas, March 3-5, 2006). ACM Press, New York, NY, 349--353. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Tegarden, D., Sheetz, S., and Monarchi, D. Effectiveness of traditional software metrics for object-oriented systems. Twenty-Fifth Hawaiian International Conference on System Sciences (HICSS-25), Jan. 1992.Google ScholarGoogle ScholarCross RefCross Ref
  22. Yourdon, E. and Constantine, L. Structured Design. Yourdon Press, New York, NY, 1978.Google ScholarGoogle Scholar

Index Terms

  1. Teaching students to build well formed object-oriented methods through 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
      SIGCSE '07: Proceedings of the 38th SIGCSE technical symposium on Computer science education
      March 2007
      634 pages
      ISBN:1595933611
      DOI:10.1145/1227310

      Copyright © 2007 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: 7 March 2007

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • Article

      Acceptance Rates

      Overall Acceptance Rate1,595of4,542submissions,35%

      Upcoming Conference

      SIGCSE Virtual 2024
      SIGCSE Virtual 2024: ACM Virtual Global Computing Education Conference
      November 30 - December 1, 2024
      Virtual Event , USA

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader