teaching evolution of open-source projects in software...

24
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

Upload: others

Post on 17-May-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Teaching Evolution of Open-Source Projects in Software ...denys/pubs/talks/ICSM06_Teaching.pdf5/16/2007 SEVERE Group, Wayne State University Course Outline CSC 6110 Advanced Software

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

Page 2: Teaching Evolution of Open-Source Projects in Software ...denys/pubs/talks/ICSM06_Teaching.pdf5/16/2007 SEVERE Group, Wayne State University Course Outline CSC 6110 Advanced Software

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

Page 3: Teaching Evolution of Open-Source Projects in Software ...denys/pubs/talks/ICSM06_Teaching.pdf5/16/2007 SEVERE Group, Wayne State University Course Outline CSC 6110 Advanced Software

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

Page 4: Teaching Evolution of Open-Source Projects in Software ...denys/pubs/talks/ICSM06_Teaching.pdf5/16/2007 SEVERE Group, Wayne State University Course Outline CSC 6110 Advanced Software

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

Page 5: Teaching Evolution of Open-Source Projects in Software ...denys/pubs/talks/ICSM06_Teaching.pdf5/16/2007 SEVERE Group, Wayne State University Course Outline CSC 6110 Advanced Software

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

Page 6: Teaching Evolution of Open-Source Projects in Software ...denys/pubs/talks/ICSM06_Teaching.pdf5/16/2007 SEVERE Group, Wayne State University Course Outline CSC 6110 Advanced Software

5/16/2007 SEVERE Group, Wayne State University

Sample Projects

Violet (http://www.horstmann.com/violet)

UML editorJava63 classes 10,230 LOC

Page 7: Teaching Evolution of Open-Source Projects in Software ...denys/pubs/talks/ICSM06_Teaching.pdf5/16/2007 SEVERE Group, Wayne State University Course Outline CSC 6110 Advanced Software

5/16/2007 SEVERE Group, Wayne State University

Sample Projects (cont.)

Notepad++ (http://notepad-plus.sourceforge.net)

Text editorC++42 classes31,798 LOC

Page 8: Teaching Evolution of Open-Source Projects in Software ...denys/pubs/talks/ICSM06_Teaching.pdf5/16/2007 SEVERE Group, Wayne State University Course Outline CSC 6110 Advanced Software

5/16/2007 SEVERE Group, Wayne State University

Sample Projects (cont.1)

WinMerge (http://winmerge.sourceforge.net)

Compare filesC++69 classes62,990 LOC

Page 9: Teaching Evolution of Open-Source Projects in Software ...denys/pubs/talks/ICSM06_Teaching.pdf5/16/2007 SEVERE Group, Wayne State University Course Outline CSC 6110 Advanced Software

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

Page 10: Teaching Evolution of Open-Source Projects in Software ...denys/pubs/talks/ICSM06_Teaching.pdf5/16/2007 SEVERE Group, Wayne State University Course Outline CSC 6110 Advanced Software

5/16/2007 SEVERE Group, Wayne State University

Course Structure

Teams of 4-6 students

3 Phases

Page 11: Teaching Evolution of Open-Source Projects in Software ...denys/pubs/talks/ICSM06_Teaching.pdf5/16/2007 SEVERE Group, Wayne State University Course Outline CSC 6110 Advanced Software

5/16/2007 SEVERE Group, Wayne State University

Course Teams

For each teamSeparate open-source softwareChange requestsTeam managerTeam meetingsCVS folder

Page 12: Teaching Evolution of Open-Source Projects in Software ...denys/pubs/talks/ICSM06_Teaching.pdf5/16/2007 SEVERE Group, Wayne State University Course Outline CSC 6110 Advanced Software

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

Page 13: Teaching Evolution of Open-Source Projects in Software ...denys/pubs/talks/ICSM06_Teaching.pdf5/16/2007 SEVERE Group, Wayne State University Course Outline CSC 6110 Advanced Software

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

Page 14: Teaching Evolution of Open-Source Projects in Software ...denys/pubs/talks/ICSM06_Teaching.pdf5/16/2007 SEVERE Group, Wayne State University Course Outline CSC 6110 Advanced Software

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

Page 15: Teaching Evolution of Open-Source Projects in Software ...denys/pubs/talks/ICSM06_Teaching.pdf5/16/2007 SEVERE Group, Wayne State University Course Outline CSC 6110 Advanced Software

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

Page 16: Teaching Evolution of Open-Source Projects in Software ...denys/pubs/talks/ICSM06_Teaching.pdf5/16/2007 SEVERE Group, Wayne State University Course Outline CSC 6110 Advanced Software

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

Page 17: Teaching Evolution of Open-Source Projects in Software ...denys/pubs/talks/ICSM06_Teaching.pdf5/16/2007 SEVERE Group, Wayne State University Course Outline CSC 6110 Advanced Software

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

Page 18: Teaching Evolution of Open-Source Projects in Software ...denys/pubs/talks/ICSM06_Teaching.pdf5/16/2007 SEVERE Group, Wayne State University Course Outline CSC 6110 Advanced Software

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

Page 19: Teaching Evolution of Open-Source Projects in Software ...denys/pubs/talks/ICSM06_Teaching.pdf5/16/2007 SEVERE Group, Wayne State University Course Outline CSC 6110 Advanced Software

5/16/2007 SEVERE Group, Wayne State University

Course Survey

Students’ survey indicates increase in students’ satisfaction

Same instructor5 points maximum

Page 20: Teaching Evolution of Open-Source Projects in Software ...denys/pubs/talks/ICSM06_Teaching.pdf5/16/2007 SEVERE Group, Wayne State University Course Outline CSC 6110 Advanced Software

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

Page 21: Teaching Evolution of Open-Source Projects in Software ...denys/pubs/talks/ICSM06_Teaching.pdf5/16/2007 SEVERE Group, Wayne State University Course Outline CSC 6110 Advanced Software

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

Page 22: Teaching Evolution of Open-Source Projects in Software ...denys/pubs/talks/ICSM06_Teaching.pdf5/16/2007 SEVERE Group, Wayne State University Course Outline CSC 6110 Advanced Software

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

Page 23: Teaching Evolution of Open-Source Projects in Software ...denys/pubs/talks/ICSM06_Teaching.pdf5/16/2007 SEVERE Group, Wayne State University Course Outline CSC 6110 Advanced Software

5/16/2007 SEVERE Group, Wayne State University

Future Work

Long-term follow-up studies

Textbook

Page 24: Teaching Evolution of Open-Source Projects in Software ...denys/pubs/talks/ICSM06_Teaching.pdf5/16/2007 SEVERE Group, Wayne State University Course Outline CSC 6110 Advanced Software

5/16/2007 SEVERE Group, Wayne State University

Thank you!