ICS 52: Introduction to Software Engineering

Spring, 2012
Homework 3: Implementation
Due: Sunday, May 27, 2012, 11:55 pm


SUMMARY

This assignment is to implement, in Java 1.7, your design for the Men-U 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 Conversion data, including both data to convert and a Java program that can read in this data.

Ideally, you will implement the entire first phase of the Men-U system (that is, the version that runs on a single computer without checking passwords). 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

The assignment is due at 11:55pm on Sunday, May 27. It will be turned in electronically to the EEE DropBox "ICS52 - Hw3". Put your Java files (source code only is preferred), your Report, your UserGuide.txt, and any other files required to run your implementation in a zip file, and upload that single file. All files should be at the top level of the zip, or in a single folder within the zip. The Report should be a Word or PDF document. If you need to turn in a late homework 3 after the DropBox has been closed (which may be later than May 27), email it to Prof. Frost, frost@uci.edu.

All code must be written in Java, and cannot use external database software. The Java class with the public main() function should be called MenU. (If you have more than one public main() function that we should run to see everything working, note this in the UserGuide.txt which you include in the zip.) To evaluate your implementation, we will log onto a computer with Java 1.7, open a command prompt window, cd to a folder containing your .java files, and enter

javac *.java
java MenU
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 User Guide

This fairly short text file should begin with a true statement:
I have compiled and run the source code I am turning in at the command line on a lab computer. I successfully ran my MenU system by entering
     java MenU
at the command prompt.
Modify the above statement, if necessary, so that it is true.

The rest of UserGuide.txt should be a brief guide to running your system and executing the working functionality. If something more than "java MenU" needs to be run, state that explicitly. Make it easy for the grader to know how to load data and navigate through your system.

The Report

Your written document should consist of the following sections, in the order specified.
  1. A cover page for scoring (at the end of this web page, and here).
  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 in UserGuide.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 an ingredient and a menu item. If you don't have exactly these, 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 one of two ways:
    1. Edit your original design for those modules from homework #2 section 7, so that both the original design and the new design appear. Highlight in yellow what is changed from the original homework #2. Include the edited design within your Report.doc file.
    2. Edit your original design for those modules from homework #2 section 7, using Word's Track Changes feature. Make sure you save your Report with "Final Showing Markup" selected. Include the edited design within your Report.doc file.
    The new, revised design must match the source code exactly.
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 with anyone else on this assignment.


ICS 52 - HW3 Cover Sheet

Student Name:
Student ID 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