This Article 
 Bibliographic References 
 Add to: 
Teaching Software Evolution in Open Source
November 2007 (vol. 40 no. 11)
pp. 25-31
Maksym Petrenko, Wayne State University
Denys Poshyvanyk, Wayne State University
Václav Rajlich, Wayne State University
Joseph Buchta, Wayne State University
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. Joint IEEE CS/ACM Task Force on Computing Curricula, "Software Engineering 2004: Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering,"23 Aug. 2004; .
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:/

Index Terms:
software engineering, open source, concurrent versioning system
Maksym Petrenko, Denys Poshyvanyk, Václav Rajlich, Joseph Buchta, "Teaching Software Evolution in Open Source," Computer, vol. 40, no. 11, pp. 25-31, Nov. 2007, doi:10.1109/MC.2007.402
Usage of this product signifies your acceptance of the Terms of Use.