Programming from a good design

Due Tuesday Sept 30, 2003 at 10:10am (the start of the Tutorial)

Handout

The 20+ page handout for the first assignment is a modified version of the ICONIX case study. It is based on the Microsoft word document posted by ICONIX (in the download identified as "Visio model in Zip file format") except that the number of actors and use cases has been cut down. In addition I have added some editorial commentary throughout. See the "Tasl of Assignment 1" section in the handout for what you will be expected to do.

Submission

There are two things you have to do:
  1. Hand a paper test report to your tutor on Tuesday. Included should be your argument that your test code adequately demonstrates that your program supports the use cases described in the handout. This must include test strategy and inputs and outputs. You probably will want to print out enough of your implementation, including your test scaffold, with any internal documentation you feel sufficient for your tutor to understand what you have done.
  2. Submit the sources of your implementation electronically. To do this use the submit command on a CDF machine:

    submit -a a1 -c csc407h *.java
    		
    The sources will be used for reference only.

FAQ

Obviously questions come up repeatedly. The FAQ is another attempt at answering them to all of you. Let me know if this is useful. It was rather a lot more fiddling with formatting that I had expected.

Resources

The Rosenberg/ICONIX Internet bookstore case study design is available in several formats, including Rose, Enterprise Architect, and Microsoft (Visio/msword). Don't bother printing these rather large documents in addition to the (rather large) handout.

I hope this is a rewarding assignment. Good luck.

Enterprise Architect

Enterprise Architect is an interesting windows-only UML editor that the ICONIX folk like. See Sparx Systems. The sample model we are working with is also provided in EA format. See the ICONIX Workbook Example in EA format.

I downloaded the tool and the model and attempted to generate Java code from the model. After some fiddling with the tool and the code I got the results to compile. Some of you might find this a helpful starting point and thus would find the tarball easrc.tarz of my (modified) EA generated code useful. (Here's easrc.zip as well.)

WARNING! It looks like EA's Java support is a little immature. (The default code gen language for EA is C++.)
DO NOT assume that this generated code is correct. I have not examined the generated code to any great extent. My primary evidence of immaturity is that the tool attempted to generate Java file, package, class and method names containing blanks. Naturally these caused many syntax errors which I fixed manually.

NB. A "tarball" is a compressed tar archive. A tarball can be unpacked on a unix machine by the command:

	  tar -xvzf easrc.tarz
	  

Mathew Zaleski
Last modified: Sun Sep 28 23:28:25 EDT 2003 $RCSfile: a1.html,v $ $Revision: 1.13 $