skip to main content
10.1145/2538862.2538965acmconferencesArticle/Chapter ViewAbstractPublication PagessigcseConference Proceedingsconference-collections
research-article

Student projects are not throwaways: teaching practical software maintenance in a software engineering course

Published:05 March 2014Publication History

ABSTRACT

Teaching software engineering through group-based project work supported by theory lectures is effective, as recognized by both academia and industry. However, exposing students to practical software maintenance is often overlooked in favor of building software from scratch under the guidance of a lecturer or client. The developed software is usually delivered to the lecturer/client and no maintenance efforts are further required. In contrast, industry projects require fresh graduates to perform maintenance exercises and very rarely to build software from scratch. To address this issue, existing software maintenance assignments usually focus on small codebases of very good quality, in which artificial issues are introduced. In this paper, we propose to enhance a group-based project course with a software maintenance assignment that uses a medium-sized, student-produced codebase with real software bugs. Our analysis shows the effectiveness of our approach and highlights future avenues for improvement.

References

  1. M. A. Austin III and M. Samadzadeh. Software Comprehension/Maintenance: An Introductory Course. In Proceedings of the International Conference on Systems Engineering, pages 414--419, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. J. S. Collofello. Teaching Practical Software Maintenance Skills in a Software Engineering Course. In ACM SIGCSE Bulletin, volume 21, pages 182--184, 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. J. R. Cordy. Comprehending Reality - Practical Barriers to Industrial Adoption of Software Maintenance Automation. In Proceedings of the 11th International Workshop on Program Comprehension, pages 196--205, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. R. Dupuis, R. Champagne, A. April, and N. Séguin. Experiments with Adding to the Experience that can be Acquired from Software Courses. In Proceedings of the International Conference on the Quality of Information and Communications Technology, pages 1--6, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. M. Gnatz, L. Kof, F. Prilmeier, and T. Seifert. A Practical Approach of Teaching Software Engineering. In Proceedings of the Conference on Software Engineering Education and Training, pages 120--127, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. L. Johns-Boast and G. Patch. A Win-Win Situation: Benefits of industry-based group projects. In Proceedings of Australasian Association for Engineering Education Conference (AaeE 2010), 2010.Google ScholarGoogle Scholar
  7. Joint IEEE CS/ACM Task Force on Computing Curricula. Software Engineering 2004: Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering. http://sites.computer.org/ccse/SE2004Volume.pdf. Last accessed 27th August 2013.Google ScholarGoogle Scholar
  8. M. Jørgensen. An empirical study of software maintenance tasks. Journal of Software Maintenance: Research and Practice, 7(1):27--48, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. M. Lehman. Survey of Software Maintenance Issues. In Proceedings of the Software Maintenance Workshop, pages 226--242, 1984.Google ScholarGoogle Scholar
  10. T. C. Lethbridge, J. Diaz-Herrera, R. J. LeBlanc, and J. B. Thompson. Improving Software Practice Through Education: Challenges and Future Trends. In Proceedings of the Future of Software Engineering, pages 12--28, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. B. P. Lientz, E. B. Swanson, and G. E. Tompkins. Characteristics of Application Software Maintenance. Communications of the ACM, 21(6):466--471, 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. D. C. Littman, J. Pinto, S. Letovsky, and E. Soloway. Mental Models and Software Maintenance. Journal of Systems and Software, 7(4):341--355, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. E. Navarro and A. Van Der Hoek. Multi-site Evaluation of SimSE. In ACM SIGCSE Bulletin, volume 41, pages 326--330, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. M. Newby. Legacy systems, software maintenance and computing curricula. In Proceedings of the International Software Education Conference, pages 96--102, 1994.Google ScholarGoogle Scholar
  15. M. Petrenko, D. Poshyvattyk, V. Rajlich, and J. Buchta. Teaching Software Evolution in Open Source. Computer, 40(11):25--31, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. M. Postema, J. Miller, and M. Dick. Including Practical Software Evolution in Software Engineering Education. In Proceedings of the Conference on Software Engineering Education and Training, pages 127--135, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. A. Radermacher and G. Walia. Gaps between industry expectations and the abilities of graduates. In Proceeding of the 44th ACM Technical Symposium on Computer Science Education, pages 525--530, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. V. Rajlich and P. Gosavi. Incremental Change in Object-oriented Programming. Software, IEEE, 21(4):62--69, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. I. Sommerville. Software Engineering. Pearson Higher Ed, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. G. Tremblay, B. Malenfant, A. Salah, and P. Zentilli. Introducing Students to Professional Software Construction: A Software Construction and Maintenance Course and its Maintenance Corpus. In ACM SIGCSE Bulletin, volume 39, pages 176--180, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. A. Von Mayrhauser and A. M. Vans. Program Comprehension During Software Maintenance and Evolution. Computer, 28(8):44--55, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. A. von Mayrhauser, A. M. Vans, and A. E. Howe. Program understanding behaviour during enhancement of large-scale software. Journal of Software Maintenance: Research and Practice, 9(5):299--327, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. N. Wilde and M. C. Scully. Software reconnaissance: Mapping program features to code. Journal of Software Maintenance: Research and Practice, 7(1):49--62, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Student projects are not throwaways: teaching practical software maintenance in a software engineering course

    Recommendations

    Reviews

    Andrew Brooks

    Providing students with genuine software maintenance experiences can be a challenge. Practical considerations often mean that the software chosen is small and that defects are artificially introduced. This paper describes a software maintenance exercise designed to provide students with genuine experiences. The exercise was valued at 10 percent of the course and took four weeks. The software comprised 11,000 lines of code and was the result of a previous year's group project. A buggy version of the software was downloaded from the version control system so defects were real and not artificial. Students were required to add a new feature, which also meant they had to fix bugs. The students performed adaptive and corrective maintenance. Each student was asked to write a report describing the process, performed changes, testing strategy, and lessons learned. These reports were analyzed by systematically coding all student comments. Table 1 shows that students commented on the recognized phases of software maintenance (for example, software understanding) and the recognized factors influencing maintenance (for example, tool support). Table 2 provides a detailed breakdown of comments about software quality as a factor influencing maintenance. Several insightful comments made by students in their reports are recounted. Most readers will be convinced that the exercise provided students with genuine software maintenance experiences. Both tables should have had an additional column detailing the numbers of students involved in making particular comments. This would have allowed for a more precise discussion of the results. This paper is recommended to software engineering faculty. Online Computing Reviews Service

    Access critical reviews of Computing literature here

    Become a reviewer for Computing Reviews.

    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 '14: Proceedings of the 45th ACM technical symposium on Computer science education
      March 2014
      800 pages
      ISBN:9781450326056
      DOI:10.1145/2538862

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

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      SIGCSE '14 Paper Acceptance Rate108of274submissions,39%Overall Acceptance Rate1,595of4,542submissions,35%

      Upcoming Conference

      SIGCSE Virtual 2024

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader