Faculty of Arts and Science
Faculty of Applied Science and
Engineering
FINAL EXAMINATION - APRIL 2002
CSC 407H1 S / ECE 450 H1 S / CSC
2103 H1 S
Duration – 2 ½ hours
Aids Allowed: Books and notes
Total Marks: 100
Answer all questions in the EXAMINATION BOOKS
provided. All answers in the books must be numbered to correspond with their
question.
1. [25 marks] Give an Object-Oriented
Analysis using UML diagrams and written text for the following requirements
statement.
We
require customer web access to package shipping/tracking information (we are a
company similar to FedEx or Purolator). Customers may get information about any
package they have previously shipped or is currently in transit. Customers may
explicitly delete a previous shipment’s information once they no longer require
it. Packages are either dropped off at one of our offices or picked up from
customers at their location. For dropped off packages, the customers should be
able to ascertain who dropped it off, when, to which office location in which
city, and who the clerk was who took the package. For picked up packages, the
customer should be able to enquire when and where it was picked up, from whom,
by which of our representatives, and from which office they work out of in
which city. The route the package will take or has taken should be identified
as a start point and an end point and a series of waypoints in between. Each
waypoint is identified by a distribution center within a city. For each point
on the route, the customer should be able to query the estimated time of
arrival (or actual time if it has already arrived). As well, the mode of
transport between each point should be identified,
along with a specific vehicle identifier (vehicle types include airplane, bus,
van, bicycle). After the package has arrived at the destination, the person who
signs for the shipment should be identified.
2. [50 marks total] Give first an OOA [10
marks] and then an Object-Oriented Design [40 marks] using UML
diagrams and written text. Explicitly identify all design patterns used and
justify your use of them. Do not write any code.
Design
a command-line program that gives information about family trees. End-users
must be allowed to dynamically load new commands into the system by identifying
class names in a configuration file loaded at startup. Basic commands to be
supported are as follows:
load <filename> |
Load unique names and sexes, and relationships
between people (married-to and child-of are the two allowed relationships)
from the given file, appending to any previous information loaded. |
generations |
Print the # of generations in the current family
tree. |
list [<n>] |
List all people. If <n> is present, list only
those in generation <n> (n=0 is the most ancient generation). |
parents <name> |
List the parents of <name> |
grandparents <name> |
List the grandparents of <name> |
uncles <name> |
List the uncles of <name> |
aunts <name> |
List the aunts of <name> |
3. [25 marks] Produce a systems
architecture document for the complete customer-facing package tracking system
from question 1, above. Existing systems can be configured to send e-mail when
a package is picked up, reaches a waypoint, or reaches the destination. Route
information can be queried from various relational databases, each with a potentially
different structure and technology depending upon the geographic region where
the package was first picked-up or dropped-off.