CSC407/2103 Assignment 1

Part (a) due Jan.31,   part (b) due Feb.14


For this assignment you are to do an Object-Oriented Analysis for the given requirements statement (part a); and then produce an Object-Oriented Design, a Java program, Javadocs, and sample output from your program (part b). You will be marked on the quality of your analysis and design, and on how well you explain them. For both parts, neatness, legibility, good grammar and good spelling all count (as they most certainly do in the real world!). Source code, Javadocs, and testing output will be marked as well.

Do not make reference to this as a class assignment. Rather, pretend you are a contract analyst/designer/programmer at work for a client. If the result is shabby, you will not be paid and your career will be at risk! Produce professional-grade work.

Anticipate the requirements most likely to change, note them in the analysis, and design to minimize the impact of these changes. If you see requirements that are ambiguous or confusing, identify these in your work, along with a decision that (in theory) is made as a result of your consultation with the customer (in reality, you can make a reasonable decision on your own or ask the professor).

For part a) you are to hand in a document containing UML OOA diagrams and written explanations of these diagrams. Class, object, and use case diagrams are required at a minimum. Do not produce one large class diagram. Rather, divide it into parts and present it that way. Use as a guide the example we went through in class.

For part b) you are to hand in a document containing UML OOD diagrams and written explanations of the diagrams. Class, object, and sequence diagrams are required at a minimum. Again, divide the class diagram into pieces for explanation and presentation. Use as a guide the example we went through in class.

In addition, for part b), you are to implement your design in Java, and hand in neatly formatted source code, printouts of the Javadoc for each class sorted by package-qualified class name, and actual test output from your program. There is no need to think in terms of design patterns for this assignment.

Do not spend over-much time optimizing the program in terms of efficient scheduling. However, if you do go overboard, bonus marks may be available.

Work alone on this assignment. Marked similarities will be spotted and dealt with appropriately.

Good Luck! (and start today)

*Thanks to grocerygateway.com for the use of their logo