Learning Software Engineering by Doing Progress Report on a Capstone Sequence Involving Student Managed Teams Clark Savage Turner Gene Fisher Daniel Stearns Department of Computer Science Cal Poly State University San Luis Obispo CA 93407 Email csturner gfisher dstearns calpoly edu Abstract Cal Poly recently instituted a software engineering major which includes a yearlong capstone project course The main goals include emphasis on a team approach to software development focus on software process use of a real world project the opportunity for seniors to develop technical leadership skills In order to meet these goals the sophomore level software engineering courses are aligned with senior level courses The lectures run independently with appropriate focus but the labs are coordinated so that the seniors provide technical leadership mentoring and responsibility for deliverables for the teams of sophomores In the first two years industrial partners sponsored the project The fall quarter began with a senior level course in requirements engineering the seniors developed the requirements specification document with the industrial partners During the following two quarters the sophomore teams would design construct and deploy a product to those specifications under the management of the seniors Difficulties in course implementation for the first two years led to analysis of student faculty and industrial partner feedback Due to extreme coordination difficulties a university project replaced the external project and industrial partner Further the sophomores were unprepared to participate in software construction without domain knowledge so the courses were realigned so that the sophomores would be involved in the requirements engineering and construction but not deployment This paper provides a progress report for the third year 2003 2004 of Cal Poly s Capstone Sequence and preliminary analysis of changes and effects Introduction California Polytechnic State University Cal Poly was founded a century ago with a special mission knowledge is best gained through the application of theory to practical problems The Cal Poly motto Learn by doing is widely quoted and permeates all degree programs Cal Poly Proceedings of the 2004 American Society for Engineering Education Pacific Southwest Section Conference April 1 2 2004 University of the Pacific Stockton CA hosts several nationally ranked engineering programs and graduates a thousand engineers per year Each graduate completes an extensive general education program combined with study of a specific engineering discipline Graduates enter their careers with a practical understanding of their profession due to a series of lab and real life experiences that apply theory to real engineering problems The Computer Science Department resides in the College of Engineering at Cal Poly It hosts three undergraduate majors Computer Science Computer Engineering and now the Bachelor of Science in Software Engineering SE All three majors prepare students for professional careers in software and hardware development A large majority of the graduates enter the workplace immediately after graduation The Capstone Project Concept The proposed SE curriculum complements the existing computer science program emphasis on a solid base of concepts and technology skills with an introduction to resource and technical management The challenge has been to fit these additional learning units into a four year program without sacrificing other valuable requirements The challenge is addressed through two tightly interwoven sequences of courses An initial two course sequence is offered in the second year to introduce software engineering principles while students construct a sponsored software product In the fourth year in a three course Capstone Sequence students study advanced software engineering and lead a team to develop a software product This sequence comprises three courses taken consecutively in a single academic year For the purposes of this paper the three capstone courses are designated as follows 1 2 3 Requirements Elicitation 402 In this course the students elicit requirements from the users and write a software requirements specification The course content includes formal specification writing requirements modeling rapid prototyping and elicitation techniques Software Construction 405 In this course the students build the initial version of the software product and deploy that version at the customer s site The course content includes design modeling software construction techniques software quality assurance and software project management Software Deployment 406 The students maintain the product during this course They add functionality to the product repair defects create variants and perform usability testing The course involves release management software maintenance deployment practices software quality metrics and metric based process improvements See Figure 1 and Table I for information regarding these two sequences and their alignment with the sophomore level courses This is the third report regarding the Capstone projects It is provided to illustrate the more critical questions raised to examine the tradeoffs made and to analyze results so far Proceedings of the 2004 American Society for Engineering Education Pacific Southwest Section Conference April 1 2 2004 University of the Pacific Stockton CA Overview of paper structure This report starts with a brief history of past Capstone Projects The current project and its relevant details are then given The Requirements Elicitation Course is then examined followed by the Software Construction Course Analysis and thoughts about future changes in the structure and goals of the courses are provided at the end of the paper A Short History of the Cal Poly Software Engineering Capstone Project To date the Capstone Sequence has run three times The Software Requirements Elicitation Course ran independently the first and second times The next two courses Software Construction and Software Deployment were aligned with the sophomore Intro to SE I and Intro to SE II respectively so that the senior SE students performed management duties and were responsible for the deliverables for these three different projects While both the faculty and the students learned a lot of software engineering and deemed the whole sequence a success the following concerns arose A lack of strong commitment from the industrial partners
View Full Document
Unlocking...