CS 4448 - Fall 1998
Object-Oriented Programming and Design
Homework #5

Due on Monday, October 5 at the start of class.

You must:
  1. Hand in your HW#4 and the other persons HW#4 that you were given in class.
  2. You must write comments on each design. Take into account that the design should have been totally unambiguous. This means that there are no places were you need to make design decisions. Everything missing should be coding details. You may make your comments on separate paper or on the HW#4 if you use a distinct ink color.
  3. Make a new design. This may be your design or the other persons design from HW#4 for a hand full of you. Most of you will need to start over but may choose to use HW#4 as a starting point. The design must include amazing details including: You can decide how much detail to put in the diagram and put the rest in some other format on another page. Ex: class name then the list of methods and instance variable with the detail that you left out of your diagram.
  4. Your may no longer hard code Mass into Molecule. You must find some way using Beaker, BeakerHolder, and Element to figure out the mass.
  5. Make a new category in SmallTalk for you system. How about "HW#5"
  6. Implement your design in SmallTalk.
  7. Print out your SmallTalk code and hand it in.
  8. Print out some tests showing what your system can do and hand it in.
  9. Tar and then Gzip your work into one file. Make sure what you submit is correct. Email the code to yourself first. Make sure you get one file that you sent. Untar and ungzip the file. Now start Squeak and make sure it is not starting with your old state stored. File-in your assignment and try all your tests. If all goes well then...
  10. Email your SmallTalk code to the TA. Remember it must be tarred and g-zipped. DO NOT send him more then one file, as it will not be accepted.
Keep in mind how your design effected your implementation. Also, see if you needed to modify your design when you found errors upon implementation. We will talk about this in class but you don't have to write that one sentence on the homework .

Requirements

Consider future enhancements and see the big picture. Anticipate future needs that one might have on your design. It should be noted that no design is ever final, we always go back at some later date and make modifications. We will do this at the start of the next class so anticipating future design needs.

Why fixed names?

The class names and method names are fixed since someone else wants your classes for use by their classes. This hypothetical, "They", have created their own stubs for some of the code and will be replacing them with your code.

This time the syntax I am using is SmallTalk.

The knowledge you gain from your design and implementation in SmallTalk with transfer. Result: it will be relatively easy to have your design work with C++ for the following assignment.

Classes and class methods that need to work for instantiation

Some additional classes that might help you design include: Mammal, Quadraped, Biped, Human, Tree, and last but not least a MaterialObject. Note: name may not be set after instantiation. Every object for our design, comes into existence with a name and never changes it.

Periodic Table for your perusal.

Instances and minimum instance methods


Adam Jonathan Griff, computer@griffmonster.com
Copyright © University of Colorado. All rights reserved.
Revised: September 29, 1998