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.
- 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 ScholarDigital Library
- J. S. Collofello. Teaching Practical Software Maintenance Skills in a Software Engineering Course. In ACM SIGCSE Bulletin, volume 21, pages 182--184, 1989. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 Scholar
- M. Jørgensen. An empirical study of software maintenance tasks. Journal of Software Maintenance: Research and Practice, 7(1):27--48, 1995. Google ScholarDigital Library
- M. Lehman. Survey of Software Maintenance Issues. In Proceedings of the Software Maintenance Workshop, pages 226--242, 1984.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- E. Navarro and A. Van Der Hoek. Multi-site Evaluation of SimSE. In ACM SIGCSE Bulletin, volume 41, pages 326--330, 2009. Google ScholarDigital Library
- M. Newby. Legacy systems, software maintenance and computing curricula. In Proceedings of the International Software Education Conference, pages 96--102, 1994.Google Scholar
- M. Petrenko, D. Poshyvattyk, V. Rajlich, and J. Buchta. Teaching Software Evolution in Open Source. Computer, 40(11):25--31, 2007. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- V. Rajlich and P. Gosavi. Incremental Change in Object-oriented Programming. Software, IEEE, 21(4):62--69, 2004. Google ScholarDigital Library
- I. Sommerville. Software Engineering. Pearson Higher Ed, 2011. Google ScholarDigital Library
- 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 ScholarDigital Library
- A. Von Mayrhauser and A. M. Vans. Program Comprehension During Software Maintenance and Evolution. Computer, 28(8):44--55, 1995. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
Index Terms
- Student projects are not throwaways: teaching practical software maintenance in a software engineering course
Recommendations
Large-Scale Visualization Projects for Teaching Software Engineering
The University of Stuttgart's software engineering major complements the traditional computer science major with more practice-oriented education. Two-semester software projects in various application areas offered by the university's different computer ...
Automatic code generation within student's software engineering projects
WCCCE '12: Proceedings of the Seventeenth Western Canadian Conference on Computing EducationIn this paper, we describe the integration of research and new teaching strategies into computer science and engineering departments at universities and colleges related to the automatic code generation, automatic development tools and integrated ...
Master's Degrees in Software Engineering: An Analysis of 28 University Programs
The Software Engineering Institute published the last reference curriculum for a master's in software engineering in 1991. In 2007, a coalition from academia, industry, and government began creating a new reference curriculum. An early step was to ...
Comments