CS 501: Software Engineering
Fall 1999

Projects

General

A major component of the course is a software development project. The objective is to develop a software product for an actual client who intends to use it in a production application.

For this purpose, during the first two weeks of the course, you will form project teams with 5 to 7 members. During the semester, the project team will work together through the full development cycle from understanding the requirements to delivering a functioning product and making a presentation of your work to the client.

Projects

A client can be any person or organization except yourself (e.g., a member of faculty or staff, a Cornell department, an external organization, a student body, etc.). Some potential projects and clients will be suggested but you are encouraged to identify your own.

There should be a firm intention by the client to use the software in production. Aim for a minimum of a three-year production life with at least 100 users, preferably many more.

In selecting a project, think broadly. Your project can be an application, system software, or even a toolkit. Software engineering covers everything from Palm Pilots to supercomputers. The only conditions are that there must be a real client and real users.

Deliverables

The three primary criteria for a successful project are:

  1. Satisfying the client's needs
  2. Usability of the product
  3. Maintainability over the life of the product

Since every software project is different, there is no set list of deliverables that every project must to meet these criteria. Part of your task is to decide what is needed for this specific project. Typical deliverables include working code, documentation, training materials, etc.

Technical environment

Most projects will use C++ or Java for Unix or Windows. Permission is required to use other environments, but you are encouraged to use whatever is right for your particular product.

The course will introduce a variety of software tools and methods. For the project, you will have to select those that are most suitable for your purposes.

Project suggestions

[ CS 501 Home Page ]

William Y. Arms
August 16, 1999