The University of Connecticut is developing a methodological approach to the integration of open source software systems into the undergraduate software engineering curriculum. A key goal of the project is to cultivate the students' attitudes and skills to handle a variety of industrial challenges. The project provides students with a realistic view of what software engineers do in industry by focusing on code comprehension and reverse engineering skills. Maintenance-centric software engineering assignments are made based on the diverse set of readily available open source software projects. Open source software code is also used to teach requirements, design, and testing skills to the students. The students will apply their skills to evolve existing, legacy software systems.
The methodology includes a systematic approach to the selection of suitable open source software projects based on metrics-based predictive analysis. The predictive model for project selection will facilitate the adoption of the integration methodology at other institutions.
This open source software integration project offers a systematic, tested approach to designing software engineering assignments that mimic industrial experiences and challenges. The integration transforms the present 'build-from-scratch' type software engineering assignments into 'maintenance-centric' assignments in line with those found in the software industry.
The results, experiences, and challenges of the integration project will be shared with the computing education community through workshops and publications. University of Connecticut K-12 outreach programs will increase the awareness of software engineering as a profession among high-school juniors and seniors, underrepresented groups, and K-12 teachers.