The PSU Software Engineering Senior Capstone

September 14, 2005

 

Current Capstone Offering: Fall 2006 and Winter 2007 (2 academic terms)

Instructor for this Offering: Prof. Kal Toth, ktoth@cs.pdx.edu

Capstone Coordinator: Prof. Warren Harrison, warren@cs.pdx.edu

Portland State University’s Computer Science Department actively solicits software development projects from the community for use in the Software Engineering Senior Capstone.  The goal of the Capstone is to provide students with a realistic software development experience that utilizes, as much as possible, the skills and knowledge acquired during the first three years of their program. The PSU Software Engineering Capstone has been a part of PSU Computer Science degrees for over ten years.  This document introduces the Software Engineering Capstone to potential project sponsors as follows:

 

Overview

Capstone Objectives

The Capstone Process

Getting Involved: Sponsor Proposals

Project Selection

Sponsor Presentations

Student Commitments

Sponsor Commitments

Caveats

Overview

Every PSU Computer Science graduate must enroll in our two-term Software Engineering Capstone in the last year of their degree program. Currently, the Software Engineering Capstone is offered in two cycles. One cycle begins in late September and extends through to mid-March (Fall and Winter quarters).  The other cycle begins in mid-March and extends into August (Spring and Summer quarters).

Sponsors are solicited from the private and public sectors to propose meaningful software-based development projects for students to undertake.  Sponsors present their proposed projects early in the first term.  Student teams indicate their preferences and are allocated projects.  Each team then works with their sponsor over the balance of the 1st term to elicit and agree on requirements and plan their implementation process accordingly. 

The implementation is conducted during the second term.  Sponsors and students meet occasionally to clarify requirements and related issues and adjust scope when necessary.  Each team delivers their project outputs to their sponsor and makes a formal presentation of their project outcomes and lessons learned during a session attended by the Capstone Instructor, the Sponsors and other faculty and guests. 

Capstone Objectives

Most of our students will be working in teams to provide complete solutions for a wide range of customers after graduation.  Therefore our objectives for the Capstone are the following:

Team Oriented:  Most software developers work in teams since most projects are far too large, and require too many different skills for any single person to manage on their own. We try to build familiarity among our students for this mode of development both in the Capstone as well as many of their other classes throughout the program.

Full Lifecycle: To better understand the process of developing software, it is important for students to understand and experience the entire process of developing a customer solution: requirements, design, implementation and testing.  We require that our Capstone projects support this goal by exercising the complete software development lifecycle to produce a solution that is as complete and free-standing as possible.  We discourage projects that are a development component of a larger project being undertaken by the sponsor.  For example, projects consisting of simply testing a product that a customer has built or performing maintenance on an existing product are probably not suitable as a Capstone project. 

Customer Driven: We want our Capstone students to solve customer problems.  At the same time, because of the length of the Capstone (under six months), excessive time cannot be spent in concept development.  Therefore it is important that customers have a fairly well-developed concept of the product they would like to see built.  One way we accomplish this is by having potential customers present their concept to the class during “selection week” when each team indicates their preferences for the projects they would like to pursue.  During they implementation phase in the second term, students will be meeting with the customer regularly to ensure that the results remain driven by their needs and expectations. 

Success Oriented:  While the Capstone provides an opportunity for students to exercise the skills and knowledge they have acquired over the last three years, it also serves as a significant confidence building exercise.  Many of our students have never experienced professional software development, and a successful Capstone experience can help give them gain the confidence they’ll need in securing a job after graduation, and performing successfully in their career.  Project success will depend on the joint commitments of participants including: the students working effectively together on a given team; the ongoing support of the Sponsor to clarify requirements and address issues of scope and feasibility; and the Capstone Instructor to coach, advise and oversee progress and help address planning and implementation challenges.  

The Capstone Process

Students are expected to apply good software engineering practices in the conduct of their work.  This includes organizing effective teams, planning their work, coordinating their meetings and activities with each other, their sponsor and the Capstone Instructor, eliciting and documenting project requirements, designing, constructing and testing their solution, and controlling their documents and code.  

During the first term, students are engaged in team building, skill development, requirements elicitation and project planning.  Teams are tasked to eliciting project requirements from their customer after proposed projects have been presented and their team has been assigned to a project.

During the second term, student teams are engaged in constructing their solutions.  Each team meets with the Capstone  on a weekly basis to report on their progress, identify issues, and describe their planned next steps for the following week.  This keeps them on task and allows problems to be addressed early on before they become crisis.  Teams also meet with the sponsor monthly.  Each team makes a final oral presentation at the end of the second term. 

Getting Involved: Sponsor Proposals

We encourage members of the community to get involved by providing meaningful software development projects for our students.  The first step is to contact the Capstone Instructor.  This usually results in discussions and possibly a meeting.  The primary goal, here, is to scope out the project and evaluate it for suitability as a Capstone.  While we are looking for projects that meet the Capstone objectives described above, we also want to ensure that our students have an opportunity to exercise their technical skills. Therefore, projects that simply consist of creating an organization’s website or evaluating commercial software packages are usually not appropriate for the Capstone.

Project Selection

If the project appears to be appropriate, that is, it is clearly defined and of manageable scope and complexity, the customer is invited to make a 20-minute concept and vision presentation.  This is usually held the 3rd or 4th week of the first term during the scheduled class time.  Based on this presentation and a follow-up with the sponsor, teams select their top 2-3 choices.  The final project assignments are made by the Capstone Instructor balancing each team’s preferences with the technical skills and knowledge of students making up each team.  Usually we try to have twice as many concept presentations as teams to provide students with a range of acceptable and interesting choices.

Sponsor Presentations

A laptop computer with PowerPoint and a data projector will be available in the classroom.  Sponsors are encouraged to bring a USB stick memory or similar device with their presentation ready-to-go.  Presentations should describe the concept and/or vision in the style normally used by the company incorporating the following elements:

·    Title, sponsor name, company name, alternate personnel (if any), contact information

·    Purpose, application context, operational setting

·    Typical usage, high-level functional description

·    Relevant assumptions, technical constraints (e.g. programming language, development environment)

·    Sponsor provided equipment, software, documentation (if any)

Student Commitments

As a three-credit class, we expect Capstone students to each average 9-12 hours working on their project. With a 4-5 member team, this translates into approximately one full-time developer over the life of the project. The Capstone Instructor will work with potential sponsors in scoping their concept so it can be successfully taken through the development process by a student team during the six month Capstone experience.

Once students have satisfied pre-requisites to register in the Capstone, they must commit to completing the entire 2-term cycle.  It is critical that they follow-through and support their teammates from launch to completion.  Students must also be committed to help each other to achieve project success.  Each team needs to understand the strengths and weaknesses of their teammates to maximize the performance of the total team.

Students are assigned an “IP” (In Progress) grade for the first term of the cycle, and their final grade is applied to both terms at the end of the 2nd term. Students that complete the first term, but not the second, of a specific cycle, will not receive a grade for either term and will need to re-register for another complete cycle later.

Sponsor Commitments

Although project success is driven largely by the competencies and commitment of the students, because the Capstone experience is customer-driven, success is also highly sensitive to the level of commitment and continuity provided by the sponsor. 

For example, over the course of the two terms, we require each student team to meet with their sponsor once a month, or more often if necessary, to gather inputs/materials and to discuss issues that relate to customer requirements and expectations.  This requires a significant time commitment from the customer as well as from members of the Capstone project team. 

A tangible risk we are concerned about is that the primary sponsor representative may not be able to attend all scheduled meetings or the sponsor may leave the company or otherwise become unavailable for periods of time.  We therefore ask sponsors to propose colleagues or co-workers who would be prepared to act as alternates or backups to cover such eventualities.

Caveats

We like to caution customers that these *are* students, and our goal is a good educational experience first, and a product the customer is happy with second. So if students run into unexpected problems, the customer becomes unresponsive, etc., as long as they're followed the process and schedule we agreed on during project planning, the team is meeting our expectations. For that reason, we don't encourage Capstone projects that are mission critical, or would otherwise cause hardship if they don't get completed.