CS 501: Software Engineering
Fall 1999

Notices

Presentations

Further information about the final presentations has been posted as an addition to "Assignment 6" in the "Assignments" section of the CS501 web site.

Assignment 6. Project presentation and report

This assignment has now been posted in the "Assignments" section of the CS501 web site. Contact Rosemary Adessa to schedule your presentation.

Assignment 5. Due November 16, 1999
Note change of due date

This assignment has now been posted in the "Assignments" section of the CS501 web site.

Recitation Sessions

The next two recitation sessions have been changed. The session on October 25 will be preparation for Assignment 4. The session on November 1 will be Rational Rose I.

Final Examination

The provisional date for the final examination is December 14 from 3:00 to 5:30 pm. The length and format of the examination are yet to be determined.

Assignment 4. Due October 28, 1999

This assignment has now been posted in the "Assignments" section of the CS501 web site.

Extension of due date for Assignment 3

To allow for the mid-semester break, the due date for Assignment 3 has been extended to October 19. Note correction to date.

Assignment 3. Due October 14, 1999

This assignment has now been posted in the "Assignments" section of the CS501 web site.

Reading for September 16 and 21

Before the class on September 16, read and be ready to discuss: Sommerville, Chapters 9 and 10 pages 157 to 170. Before the class on September 21, read and be ready to discuss: Sommerville, Chapters 11 pages 171 to 206.

Assignment 2. Investigation of a large program code

Due: September 28, 1:25
*** Submission instructions added, September 21, 1999 ***

Purpose of assignment

The purpose of this assignment is to give you practical experience in exploring a very large computer program. The assignment uses the source of the interpreter for the Perl language, which is publicly available. The version you will work with is Perl 5.005_03.

This is an individual assignment. Everybody must submit an individual solution.

Your task

It is proposed that an option -t be added to the Perl command line. This option will simply print the time taken to execute the Perl program.

Do not spend more than 12 hours on this assignment.

  1. Track the time that you take to carry out this assignment and submit a time report that lists every subtask that takes more than 15 minutes.
  2. Study the source code of the Perl interpreter to identify which parts of the program must be modified to implement this change.
  3. Write a short report listing the changes that are required.
  4. Implement the changes, build the system.
  5. Test with a short Perl program.

Setup

Download the Perl source from the web. The NT version is at ftp://ftp.activestate.com/activeperl/AP519_source.zip. The Unix version is at http://www.perl.com/CPAN/src/stable.tar.gz. You are free to use either.

It is part of your task to configure and build the sources. Documentation is provided in the Perl distribution. Once built, the Perl interpreter can be run directly from the build directory so there is no need to install it. Remember to include the path to the Perl executable explicitly so you do not invoke the central copy on the machine.

Familiarity with the Perl language is not necessary to do the assignment. Test cases will be posted to the newsgroup at a later date. Feel free to post your own test cases. If you are unfamiliar with the language and wish to construct your own test cases, documentation is in the directory pod in the build tree. You can read a pod file with the command perldoc in the utils directory.

Submission instructions

Create a directory containing the files you wish us to grade. One of these files should be the text of your report; this file can also provide information about the other files that you submit. In addition, submit the source only of those files that have been changed and an executable of the complete program.

Call this directory xxxxx0, where xxxxx is your Cornell network id. Copy this directory to the following folder:

\\goose.csuglab.cornell.edu\course\cs501-fall99\assignment2

Do not be disturbed by warnings informing you that the file cannot be accessed after it has been copied. Should you wish to revise your submission after you have copied it to our folder, then simply correct the files and re-copy the entire directory---but this time use the name xxxxx1. Further revisions should be named xxxxx2, and so on. We will grade the largest-numbered file of a series.

Recitation sessions

Recitation sessions, conducted by the Teaching Assistants, are on Mondays from 7:30 to 9:25 pm in Phillips 219. They have two main themes, support for the group projects and tools for managing large programs.

A provision schedule has been posted on the course web site under "Recitation".

Course newsgroup

The course has a newsgroup that members of the class can use to send messages. It is:

Assigment 1. Project feasibility study and plan

Due: September 9, 1:25.

Write a short report that describes the project that you have selected. The report should include a statement of the task to be undertaken, the client for whom the work will be done, a preliminary requirements analysis, suggested deliverables, and an outline plan. The exact form of the report is up to you, but it should we well written and suitable to present to an external client. The length is likely to be between five and ten pages.

This is a group assignment. All members of the project team should share in the production of the report.

Reading for August 31

Before the class on August 31, read and be ready to discuss: Sommerville, Chapters 1, 2 and 3 pages 1 to 59. Pay particular attention to the discussion of the Software Process, beginning on page 7.

Project seminars

*** Note changes of time ***

The following session will be held twice:

  1. Friday, August 27, 1:25 to 2:15 pm
    Upson 5130

  2. Monday, August 30, 7:30 to 8:30 pm
    Philips 219

Software engineering projects in Digital Libraries
Digital libraries researchers in the computer science department are involved with a number of large-scale implementation projects. Bill Arms, Carl Lagoze, and Sandy Payette will describe some of these projects and suggest some possible topics for software engineering projects. The projects range from distributed systems to user interfaces.

Software engineering projects in Cornell Information Technologies
Cornell Information Technologies (CIT), Cornell's central information technology organization, has several software projects that would be suitable for CS 501. Helen Mohrmann (Director, Network & Computing Systems), Mark Mara (Associate Director of Administrative Systems and Distributed Technologies), and colleagues will provide an informal overview of these opportunities and suggest some possible topics for software engineering projects. CIT offers opportunities to work within a large, complex environment, use state of the art tools and products from leaders in the technology industry.

[ CS 501 Home Page ]

William Y. Arms
Last changed: November 30, 1999