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).