Teaching Software Evolution in Open Source
|
Most software engineering courses require students to develop small programs from scratch, but professional engineers typically work on the evolution of large software systems. Using open source software and a software change process model can narrow this gap without imposing excessive demands on students or instructors.
[1] 25 Joint IEEE CS/ACM Task Force on Computing Curricula, "Software Engineering 2004: Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering,"23 Aug. 2004; http://sites.computer.org/ccseSE2004Volume.pdf .
[2] M. Gnatz et al., "A Practical Approach of Teaching Software Engineering," Proc. 16th Conf. Software Engineering Education and Training, IEEE CS Press, 2003, pp. 120–128.
[3] M. Postema, J. Miller, and M. Dick, "Including Practical Software Evolution in Software Engineering Education," Proc. 14th Conf. Software Engineering Education and Training, IEEE CS Press, 2001, pp. 127–135.
[4] J.H. Hayes, T.C. Lethbridge, and D. Port, "Evaluating Individual Contribution toward Group Software Engineering Projects," Proc. 25th Int'l Conf. Software Engineering, IEEE CS Press, 2003, pp. 622–627.
[5] V. Rajlich and P. Gosavi, "Incremental Change in Object-Oriented Programming," IEEE Software, July 2004, pp. 62–69.
[6] N. Febbraro and V. Rajlich, "The Role of Incremental Change in Agile Software Processes," Proc. Agile 2007, IEEE CS Press, 2007, pp. 92–102.
[7] V. Rajlich, "A Model for Change Propagation Based on Graph Rewriting," Proc. Int'l Conf. Software Maintenance, IEEE CS Press, 1997, pp. 84–91.
[8] A. Marcus et al., "Static Techniques for Concept Location in Object-Oriented Code," Proc. 13th Int'l Workshop Program Comprehension, IEEE CS Press, 2005, pp. 33–42.
[9] S.A. Bohner and R.S. Arnold, Software Change Impact Analysis, IEEE CS Press, 1996.
[10] M. Fowler et al., Refactoring: Improving the Design of Existing Code, Addison-Wesley Professional, 1999.
[11] M. Skoglund and P. Runeson, "A Case Study on Regression Test Suite Maintenance in System Evolution," Proc. 20th IEEE Int'l Conf. Software Maintenance, IEEE CS Press, 2004, pp. 438–442.
[12] J. Buckner et al., "JRipples: A Tool for Program Comprehension during Incremental Change," Proc. 13th IEEE Int'l Workshop Program Comprehension, IEEE CS Press, 2005, pp. 149–152; http:/jripples.sourceforge.net.
Index Terms:
software engineering, open source, concurrent versioning system
Citation:
Maksym Petrenko, Denys Poshyvanyk, Václav Rajlich, Joseph Buchta, "Teaching Software Evolution in Open Source," Computer, vol. 40, no. 11, pp. 25-31, Oct. 2007, doi:10.1109/MC.2007.402