Faculty of Arts and Science
FINAL EXAMINATION - APRIL 2003
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. [30 marks] Give an Object-Oriented
Analysis using UML diagrams and written text for the following requirements
statement.
We
are a company that sells large software systems to multi-national investment
banks, corporations, asset management companies, insurance companies, and
anybody else who will buy from us. We currently have 80 sales offices spread
around the world, and a sales force of 375 salespeople. Each sale takes
anywhere from 6 months to a year and will involve multiple people from the
prospect’s organization (a “prospect” is a company that might become a customer
if all goes well). We require a flexible system for keeping track of all the
sales efforts currently underway (called the “sales pipeline”), and a history
of all past sales efforts, whether successful (a “closed” sale) or not (a “lost” sale).
Each
sale is run by one salesperson. All salespeople ultimately report into the VP
Sales. Some report directly, others report through a regional sales manager,
and yet others through a local sales manager reporting into a regional sales
manager (our regions are Canada, US, Latin America, Europe, Eastern Europe,
Asia, and Japan, but this is subject to change).
A “sales model” gives the typical stages in a sale.
Our current sales model is as follows (but is subject to frequent change):
1.
Identified
A prospect organization is identified as having a need.
2.
Initial Contact
One of our salespeople has spoken to an individual in the prospect
organization.
3.
Decision Maker
Identified
The decision makers (those with budget and the authority to spend it) within
the prospect organization have been identified.
4.
Demo Complete
A customer service representative has demonstrated the software and done
presentations to all of the decision-makers in the customer’s organization.
5.
Pilot Negotiated
There is an agreement that a pilot project will be conducted at the client
site.
6.
Pilot Complete
The pilot project has been completed. It was run by a project manager from our
customer service team and had various customer service representatives
involved.
7.
Terms Negotiated
There is agreement in principle on the business terms of the deal.
8.
Contracts specifying all details of the deal have been signed.
9.
Payment Received
All license payments have been received from this customer.
Associated with each stage of each sale is
information including lists of the various people involved, and predictions [SG1]of:
· the probability of the sale going through
· an estimate of the dollar value of the sale
· an estimate of the Sale Closed date.
Based on historical data, there are default predictions for the various estimates given the type of customer, size of the customer’s organization, the sales office, region, and the stage in the sales model.
For each new prospect, a salesperson is assigned who
will be responsible for creating a Sales Plan, based on the Sales Model. As the
stages in the Model are completed, the salesperson updates the Sales Plan with
dates and other information. If a sale is lost, or once final payment has been
received, the date is noted and the Sales Plan is closed, with an explanation.
We require a system that enables salespeople to
create a Sales Plan, add new information to their plans, access and update
existing information in their plans, and allows sales managers to view various
reports of all Sales Plans in the sales pipeline. Most interfaces should be
Web-based and graphical in nature. All data on the sales pipeline should be
kept indefinitely, including a history of when all the stages were reached in
each sales effort, a history of the updates to the prediction information,
which sales efforts were successful and which not, and for those that were not
successful a reason explaining why not (see question 2 for additional requirements).
2. [45 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 sales pipeline,
including all historical data. Based on the historical data, the system should
compute and print to standard output default predictions of Sale Closing,
expected elapsed time to Sale Closing, and expected dollar value of the sale,
divided out by sales office, region, customer type, customer size, and pipeline
stage.
3. [25 marks] Produce a systems architecture document for
the sales pipeline tracking system discussed in Question 1. The company using
the system will have sales offices in approximately 80 different sales offices
in 7 regions. Any employee from any office should be able to query any of the
data, although we anticipate higher traffic within an office and within a
region than between offices or regions. The system will also be accessed by
salespeople on the road from laptops and wireless PDAs (personal digital
assistants).
[SG1] I think predictions is better here because it is referenced later