Course Syllabus - Senior Project I / II, SWEN-561/562

Catalog description:

A two-course, senior-level, capstone project experience. Students work as part of a team to develop solutions to problems posed by either internal or external customers. Problems may require considerable software development or evolution and maintenance of existing software products. Culminates with the completion and presentation of the project solution at the conclusion of the second term.(Credit 3 for each term).

Current Senior Project Prerequisites:

Course objectives:

At the completion of Senior Project students will be able to:

  1. Apply knowledge of design, implementation and testing to construct a system meeting project sponsor needs.
  2. Apply knowledge of testing to create unit, integration, and system tests for the product under construction.
  3. Analyze problem statements and customer feedback to determine requirements.
  4. Analyze proposed architecture and design for conformance to requirements.
  5. Design a system to meet the sponsor requirements using architectural and design principles from previous courses.
  6. Create a plan of work with appropriate milestones and team member responsibilities to deliver the product in the time available.
  7. Assess the technical and process risks associated with the project and define appropriate risk mitigation strategies.
  8. In conjunction with the sponsor, recommend the sequence in which product features will be added so as to provide the most value in the time available.
  9. Evaluate proposed changes in terms of both he project plan and the effect on the architecture, design, and implementation to date.

Topics covered

By its very nature this course has no predefined topics to be covered. Faculty serve as coachs and provide specific technical and process information as requested by each team for the specific circumstances faced on their project.

Class/laboratory schedule

A student must notify the Software Engineering Student Advisor that he or she is registering for Senior Project. The department office staff will take care of placing the students into a myCourses community for Senior Projects and, after teams are formed, the proper Senior Project course section. The course is scheduled with twice weekly meetings to insure teams have a common meeting time. This time is used to meet with project sponsors either at RIT or remotely via phone or computer-based conferencing. Faculty coaches also use this time to meet with teams; assess their progress; help resolve technical, process, and personnel issues. The department will facilitate these meetings by providing conference/team room access with conference phone call-in capability, and speakers/webcams for computer-based audio/video conferencing. Based on the project, a limited number of visits to a local sponsor's site may be required.

Should a team require dedicated development platforms (servers, unique operating system, tools, etc.) they should make arrangements with their faculty coach and the department system administrator as soon as they identify that need. Based on the project, the sponsor may provide additional equipment needed for a project. Teams requiring special equipment will be given priority for space in the Projects Lab (GOL 1570). Use of the team rooms and other labs follows the standard policy for resources as defined by the department.

Evaluation mechanism

Grading is based on the quality of the deliverables defined by each team and approved by the faculty member and project sponsor, as well as faculty and peer evaluations of each team member. Individual grades are an offset (either positive or negative) from that received by the team as a whole.

Project Assignment / Team Formation

The Software Engineering Department is continually soliciting proposals from both commercial companies and not for profit agencies, often including the RIT community. Sponsors submit proposals three months before the projects start. The software engineering faculty review proposals for appropriate scope and technical content. Accepted proposals are presented to the students for their review. During this period students individually review each proposal and rank order their top selections. A discussion forum will be opened to get clarification on the proposals. The senior project faculty coordinator will respond to questions and if needed contact the sponsor. Under no circumstance should students directly contact the sponsor during this time.

Before the end of the review period, each student will submit the following information to be reviewed by the faculty:

The faculty will create teams, typically of four or five students and assign projects considering the input provided by the students. Teams and project assignments, along with faculty coach assignments, will be announced prior to the start of the first term of senior projects. At this point, faculty coaches will introduce the team to their project sponsor. The projects start the first week of the first term term with an Expectations meeting and the first meeting of the team, project sponsor, and faculty coach.

Software Engineering Professionalism

Senior projects are consistently identified as one of the most valuable components of our program by both students and sponsors of past projects. This sterling reputation has been built by the success of past projects not only in what the teams produced, but perhaps more importantly in how the student teams carried themselves throughout the project. It goes without saying that this project experience is quite different than the typical academic project or even co-op assignment. There is a great amount of trust granted to the student teams and with trust comes responsibility. A number of situations and issues will arise though the course of the project that reflects the nature of professional software development. Use these learning experiences wisely and practice sound professionalism when interacting with your teammates, faculty coach and project sponsor.