UNIVERSITY OF TORONTO


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.