CS-300 Elements of Software Engineering

Summer term 2008

Instructor: Supreeth Venkataraman

 

Project Overview

(Project working code due date: 8/13/08)

Students will undertake a substantial project for the duration of the entire term. The project will be split up into four phases.

  • Phase 1 - The students will submit a requirements document.
  • Phase 2 - The students will submit a design document.
  • Phase 3 – The students will submit a test plan
  • Phase 4 - The students will submit the implemented project.

A significant portion of the classroom interaction will be devoted to discussion of the project. The discussions will be used to develop on and clarify the initial requirements of the project. The students will assume the role of developers with the instructor as their customer in these discussions. Since these discussions are a very important part of the project, it is vital that students attend them.

The project accounts about 50% of the entire grade. The final project will be graded based on test cases that have been developed by the instructor. These test cases will not be available to students beforehand. Students are expected to develop their own test cases for testing their project. If your project passes all tests, then full credit will be given.

Project phase 1, 2, 3 are essentially documentation assignments, and no working code will be required of these phases. Phase 4 will require working code to be submitted. The initial requirements document might be incomplete/inconsistent, and there will be three classroom sessions devoted to making the requirements document more focused. The instructor will act as the customer in these sessions, and the students will be the developers. Remember, the customer always has the final say J More on the discussion sessions later in the document.

In phase 1, students will make the initial requirements into a form that obeys the rules of good requirements. Students will also start thinking about how to test the project based on the initial requirements document. In phase 2, students will develop a design document. This would necessarily detail an architecture of the system being built. The functionality of every component and sub-component has has to be described. Students will also provide details about why a particular design decision was taken. A detailed description of data structures and algorithms chosen for implementation will also be needed in phase 2. Phase 3 will require that students submit a test plan with functional test cases and exception cases. Phase 4 will see the design in phase 2 transformed into working code. Detailed descriptions of what is exactly needed to be turned in for each of the project phases will be provided in separate handouts.

Class Discussions

The class discussions will be roughly of 45 minutes to one hour in duration, and these discussions will be used to bring out the requirements of the project, and move the fuzzy requirements document to a more precise requirements document. At the end of every class discussion, the instructor will consider all the issues brought up in the discussions and develop a new version of the specification. At the end of the discussion sessions, the final specification from which the project design will commence will be developed.

Programming Language and Platform

Students will use C/C++ to write code, and the project will be tested on the CS department Sun SOLARIS systems. It is expected that students are already reasonably fluent with the C/C++ programming languages, and not much programming help may be provided. Note that this is not an introductory class to programming!

Submission Protocol

Student submissions will be tested on the CS Unix machines. It is highly recommended that students develop in this environment so that no surprises are encountered as the deadline approaches. Note that the CS machines are NOT the same as the Odin machines. If you do not yet have an account on the CS machines, bring your student ID to the CAT Front Desk, Fourth Avenue Building room 60-06.

  1. Develop in C/C++
  2. The executable must be called vers.
  3. Provide a makefile where the default target will build vers
  4. TAR and GZIP your project.
  5. Mail your submission to <supreetv (a,t) cs.pdx.edu>
  6. Set the subject line to: <Lastname>, <Firstname> CS300 Summer-08 project submission