ICS 52: Introduction to Software Engineering

Fall, 2007
Homework 3: Implementation
Due: Friday, Nov. 30, 2007


SUMMARY

This assignment is to implement, in Java 1.6, your design for the Schocr system. It is not necessary for the entire system to be working bug-free for you to receive full credit (homework 4 will focus on testing). Your Java code should follow as closely as possible the design you turned in for homework 2. You will indicate changes you make to the design.

We will provide you with the DF-2007 data files and information on how to process them. We will also provide TimeRange.class, TimePeriod.class, and TimeSlot.class.

Ideally, you will implement the entire first phase of the Schocr system, which omits the student lists and some reports. However, a large amount of credit will be given for a substantial but incomplete coding effort. No credit will be given for code which does not compile, or which cannot be run at all. It is your responsibility to make it easy for the graders to run the code you want credit for.

ASSIGNMENT DETAILS

You will turn in both source code and a written document. Both are due at 1:00 pm, Nov. 30. Hand in the written document at the start of lecture. The source code will be turned in through Checkmate.

The Java class with the public main() function should be called Schocr. (If you have more than one public main() function that we should run to see everything working, note this in a plain text file called ReadMe.txt which you submit through Checkmate.) To evaluate your implementation, we will log onto a computer with Java 1.6, open a command prompt window, cd to a folder containing your .java files, and enter

javac *.java
java Schocr
It is strongly recommended that you test your system using this same technique. Projects that work "on your machine" or "only in NetBeans" or "only if you enter something special on the command line" will not receive full credit. There will be a large penalty for missing source code files.


The written document

Your written document should consist of the following sections, in the order specified. Please staple your entire document together and do not put it in an envelope, binder, or cover.
  1. A cover page for scoring (attached to this handout).
  2. An overview of what changes you made to your design during the implementation phase. Discuss changes to overall architecture, to the modularization of the system, to class or method names, and to individual class interfaces. Explain why you made the changes.
  3. A discussion of the status of your coding effort. Indicate You do not need to find and write down every bug. The goal is to demonstrate that you are aware of the status of your coding effort. If "driver" programs you supply are required to run some of your code, note that in this section (and also, if appropriate, in ReadMe.txt). Note that you will receive very little or no credit for code that we cannot run and see working.
  4. From your design in homework #2, select two classes that represent individual courses and collections of courses. If you have a class called Course and one called CourseList, they are probably the ones to choose; otherwise, choose the closest matches. (If you designed these classes, but you didn't get them coded and working at all, select any two other classes.) Create a revised and consistent-with-your-implementation version of the class interface specification of the two classes you selected. You can do this in either of two ways:
    1. Hand in a copy of your design for those modules from homework #2 section 7, with all changes marked in pen. Thus whatever is typed or printed is the original design, and modifications are in pen.
    2. Edit your original design for those modules from homework #2 section 7, so that both the original design and the new design are printed. Highlight (with a yellow highlighter pen or equivalent) what is changed from the original homework #2.
    The new, revised design must match the source code exactly.
  5. A printout of the source code from your implementation that corresponds to the two classes you selected for the previous section. The goal is to make very clear how your design changed from homework #2 to homework #3. Don't print out and turn in code that does not correspond to the classes you selected.
We will not be scoring you on the quality of your code. However, you may lose points if you don't follow these basic rules:

Complete the assignment by yourself. Do not work in teams on this assignment.


ICS 52 - HW3 Cover Sheet

Student Name (Last, First):
Student Number:

Awarded Points Available Points  
  5 Discussion of changes to design
  5 Discussion of status of coding effort
  75 Amount of system implemented
  15 Revised module interfaces
  100 ASSIGNMENT TOTAL