CMPU-235: Software Development Methodology
Project #3
Due: Monday, November 30
For this project you must hand in:
- A design of the file formats for making your objects persistant.
You may store instances of each class in separate files, or all your
data in one file. You may embed definitions of one object within
definitions of others, or have one object definition per line. You
will have to determine a mechanism for handling the cross-referencing
of objects within the file, such as assigning each object a unique I.D.
All these decisions, plus the specific file format (what character you
will use for a field separator, what are the field orders, etc.) must
be specified. This specification should be in a plain text document
in your central group directory.
- Each object will be responsible for providing its own
persistence. Although you needn't implement it yet, specify methods
for each object class that will read an instance from a file and
output the instance to a file (using the format you've specified).
The method should take a single argument, a stream.
- Implement and test accessor methods (read/write) for all the
slots of your classes. This should include active value slots,
slots that are relations, slots with multiple values, and slots that
are complex relations. You must determine and implement the types of
access each slot will require. and provide this as an interface to
your class.
- Hand in, on paper, a complete state transition diagram for your
system. The diagram should include high level views and multiple
detailed views of the sub-states. This will be the final design
document you will produce, and your final code will be judged, in
part, by how well it adheres to this design (so do it carefully and
thoughtfully).