teaching evolution of open-source projects in software...
TRANSCRIPT
Teaching Evolution of Open-Source Projects in
Software Engineering Courses
Joseph Buchta, Maksym Petrenko, Denys Poshyvanyk, Václav Rajlich
Department of Computer Science Wayne State University
5/16/2007 SEVERE Group, Wayne State University
Course Outline
CSC 6110 Advanced Software Engineering
10-20 studentsSenior undergraduate and first-year graduateGood working knowledge of C++ or Java
5/16/2007 SEVERE Group, Wayne State University
Course Goals
Teach students how to evolve large software systems in a consistent, methodological way(Sobel and LeBlanc - "Computing Curricula“, 2004)
Give students an experience of industry-like setting (Sommerville - “Software Engineering”, 2001)
Real, medium-to-big sized softwareReal change requests
Practice collaborative environment by using CVS
5/16/2007 SEVERE Group, Wayne State University
Related Work
Gnatz, Kof, Prilmeier and Seifert (2003)Development + EvolutionRan behind the schedule
Postema, Miller and Dick (2001)2000 LOC softwareFocus on maintenanceChange requests with known solutions
5/16/2007 SEVERE Group, Wayne State University
Open-Source Projects
Free to useCan be selected to have
Easy, interesting and familiar domainFamiliar programming language (C++ or Java)Big sizeGood structure
ContainSource codeWish listDocumentationTest
5/16/2007 SEVERE Group, Wayne State University
Sample Projects
Violet (http://www.horstmann.com/violet)
UML editorJava63 classes 10,230 LOC
5/16/2007 SEVERE Group, Wayne State University
Sample Projects (cont.)
Notepad++ (http://notepad-plus.sourceforge.net)
Text editorC++42 classes31,798 LOC
5/16/2007 SEVERE Group, Wayne State University
Sample Projects (cont.1)
WinMerge (http://winmerge.sourceforge.net)
Compare filesC++69 classes62,990 LOC
5/16/2007 SEVERE Group, Wayne State University
Incremental Change (IC)
IC initiationChange Request
IC designConcept LocationImpact Analysis
IC implementationPre-factoringActualizationIncorporationChange PropagationPost-factoring
TestingDelivery
Change Request
Concept Location
Impact Analysis
Pre-Factoring
Actualization
Change Propagation
Post-Factoring
Testing
Delivery
Incorporation
5/16/2007 SEVERE Group, Wayne State University
Course Structure
Teams of 4-6 students
3 Phases
5/16/2007 SEVERE Group, Wayne State University
Course Teams
For each teamSeparate open-source softwareChange requestsTeam managerTeam meetingsCVS folder
5/16/2007 SEVERE Group, Wayne State University
CVS
Supports collaborative environmentFacilitates teamworkProvides accountability
Lessens cheatingProject historyIndividual performance assessmentHelps to find who broke the system
5/16/2007 SEVERE Group, Wayne State University
Course Phases
1st PhaseThe simplest phaseEasy change requestsStudents learn IC methodology, software structure, CVS etc.
2nd and 3rd phasesChange requests designed to include all the steps of ICChanges implementations often overlappedSome changes were done in pairsChange requests were estimated to take 25 to 40 hours
5/16/2007 SEVERE Group, Wayne State University
Sample Change Requests
Phase 1Implement “About” box with names of your team members (all projects)
Phase 2 and 3Design and implement plug-ins functionality for JCDSee image viewerIntegrate an open-source spell checking project into the Notepad++ application
5/16/2007 SEVERE Group, Wayne State University
Change Requests
Source Feature request lists of the projectsSuggested by project manager
Can be adjusted as a student progresses through the change
5/16/2007 SEVERE Group, Wayne State University
Course Grading
ReportJustified description of undertaken IC stepsTime log
SolutionCompletenessCorrectness
Organization of solutionRefactoringInterfacesComments
Use of CVSShort presentation
Change Request
Concept Location
Impact Analysis
Pre-Factoring
Actualization
Change Propagation
Post-Factoring
Testing
Delivery
Incorporation
5/16/2007 SEVERE Group, Wayne State University
Time Logs
Provide source of statistics for assessingStudent’s performanceActual change request complexityStudent’s learning process
Help to adjustFuture change requestsLectures agenda
5/16/2007 SEVERE Group, Wayne State University
Course Performance
Time logs indicate that students by the end of the Phase 3 were able to implement more complex change requests in less time then simple ones during Phase 1
5/16/2007 SEVERE Group, Wayne State University
Course Survey
Students’ survey indicates increase in students’ satisfaction
Same instructor5 points maximum
5/16/2007 SEVERE Group, Wayne State University
Project Managers’ Workload
Choosing projects and change requests, setting up CVS
40-60 hours before the classes begin
Managing a team6-7 hours a week10-12 hours during phases’ due dates
5/16/2007 SEVERE Group, Wayne State University
Conclusions
Proposed course gives studentsAn opportunity to work on realistic programs and change requestsAn experience of industry-like setting
Course increasesStudents’ motivationStudents’ satisfaction
Gives instructors project management experience
5/16/2007 SEVERE Group, Wayne State University
Current Work
IC process techniques improvement and expansion to incorporate into future courses
Concept locationImpact analysisChange propagation
Tools to facilitate IC process and guide student through it
JRipplesIRiSS
5/16/2007 SEVERE Group, Wayne State University
Future Work
Long-term follow-up studies
Textbook
5/16/2007 SEVERE Group, Wayne State University
Thank you!