June 23, 2013
June 23, 2013
June 26, 2013
Software Engineering Constituent Committee
23.742.1 - 23.742.13
Industry Involvement in an Undergraduate Software Engineering Project Course: Everybody WinsThe “Software Engineering Project” (SE 4485) is a capstone course in our undergraduateSoftware Engineering curriculum. It is intended to complement the theoreticalknowledge that students receive in their prior (and ongoing) courses and provide themwith an in-depth, hands-on experience in all aspects of software engineering. They areexpected to walk-through the various phases of a software development life-cycle such asrequirements analysis, software architecture and design, testing and implementation,while producing quality deliverables at each phase. By the end of the semester studentsshould have a working knowledge of each individual aspect of software engineering, andalso have gained experience in how these aspects are related to, and depend on, oneanother in the successful development of a software system.However, selecting a suitable project for students is never an easy task for instructors,regardless of how long they have been teaching the course. This is because there areseveral constraints and conditions that must be kept in mind including the following: • The project must be related to the course content. • The amount of time students are expected to spend on the project should be reasonable. • The project completion by the students in the allotted time should be feasible. • The students must be adequately prepared to successfully complete the project. • The project must be designed such that it aims to be fair to all of the students in the class.Even when a project satisfying such conditions is proposed, a common complaint is thatit does not represent real-life software or is too simplistic. Such criticism is notunwarranted. Often when designing a project, to satisfy all of the constraints theinstructor must sacrifice many desired requirements. In doing so, the classroom projectoften fails to simulate real-life projects. The teaching efficacy of the project is thusgreatly reduced.Difficult as it may be, it is still very important to close the gap between softwareengineering practices in industry and those taught in an academic setting. It is not enoughto select a project that emulates one representative of industry. Rather, what if the projectis actually proposed by an industry affiliate, based on their own needs? What if instead ofreceiving only a project description, students can interact with company representativesacting as customers? Also, what if the industry affiliate is not just restricted to helpingdesign the project; but instead they also play an active role in supervising thedevelopment of the software?With the help of our industry partners, we were able to investigate such questions. Thispaper serves to document and report our experiences in this endeavor. In particular, wediscuss the best way to incorporate the involvement of industry partners into theprogression of a project, and the results and benefits of such involvement. Successfulprojects are analyzed to extract lessons learned and best practices such that futureprojects will maximize the benefits to all contributors.
Wong, W. E. (2013, June), Industry Involvement in an Undergraduate Software Engineering Project Course: Everybody Wins Paper presented at 2013 ASEE Annual Conference & Exposition, Atlanta, Georgia. https://peer.asee.org/19756
ASEE holds the copyright on this document. It may be read by the public free of charge. Authors may archive their work on personal websites or in institutional repositories with the following citation: © 2013 American Society for Engineering Education. Other scholars may excerpt or quote from these materials with the same citation. When excerpting or quoting from Conference Proceedings, authors should, in addition to noting the ASEE copyright, list all the original authors and their institutions and name the host city of the conference. - Last updated April 1, 2015