UNIVERSITY OF TORONTO


Faculty of Arts and Science

Faculty of Applied Science and Engineering

 

SPECIAL FINAL EXAMINATION - JULY 2002

 

CSC 407H1 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 a program for keeping track of customer issues with our company’s software product. A customer belongs to a customer organization. One customer in each organization is designated the primary contact (this may change from time-to-time). Customers contact a client service representative (of our company) with various issues. Issues could be suspected software defects, requests for new versions of the software, requests for manuals, requests for training or for professional consulting services, and others miscellaneous issues. Issues may be classified as to priority (high, medium, low). Issues go through various states: initial, understood, pending, resolved, and customer satisfied. A complete record of all state transitions should be kept, which includes time and date, which rep transitioned the issue, and freeform comments. The CS rep whom the customer first contacts is ultimately responsible for resolving the issue. That rep may involve other reps to help resolve the issue, and those reps may engage others, and so on. At any point it should be possible to see the entire tree of reps working on the issue. Each rep has a manager. The manager is able to get a list of all issues that have not yet been resolved that are assigned to their employees.

2.       [50 marks] Give an Object-Oriented Design using UML diagrams and written text for a command-line program based on the requirements from Question 1, above. Explicitly identify all design patterns used and justify your use of them. Do not write any code.

The program reads from a relational database into memory the entire issue database. Command-line parameters specify the name of a manager, and a time period (e.g., 5 days). All issues not yet in the “customer satisfied” state, first opened more than that number of days ago, with any employees of the named manager currently working on them, should be listed, ordered by priority and then by state. Summary statistics should be displayed (such as average time open, number of open issues in each priority and each state, and so on).

3.        [25 marks] Produce a systems architecture document for the customer issue tracking system discussed in Question 1. The company using the system will have customer service field offices in 500 different geographic location. Any employee from any office should be able to see any issue, although we anticipate higher traffic within an office than amongst offices. The system should also be accessible via the Web for customer services representatives and managers on the road. (Hint: A naïve, centralized design will be far too slow – distributed databases will be required).