SS ZG514 (EC-2 Regular) First Semester 2009-2010 Page 1 of 2
Birla Institute of Technology & Science, Pilani
Work-Integrated Learning Programmes Division
First Semester 2009-2010
Comprehensive Examination (EC-2 Regular)
Course No. : SS ZG514
Course Title : OBJECT ORIENTED ANALYSIS & DESIGN
Nature of Exam : Open Book
Weightage : 60%
Duration : 3 Hours
Date of Exam : 24/10/2009 (FN)
Note:
1. Please follow all the Instructions to Candidates given on the cover page of the answer book.
2. All parts of a question should be answered consecutively. Each answer should start from a fresh page.
3. Mobile phones and computers of any kind should not be used inside the examination hall.
4. Use of any unfair means will result in severe disciplinary action.
An Agenda Support System assists the user in maintaining a record of important events, dates
and appointments. It moreover offers the user various ways of inspecting his or her agenda, by
giving an overview of important dates, an indication of important dates on a calendar, and
(more advanced) timely notification.
A Multi-user Agenda Support System extends a simple Agenda Support System by providing
facilities for scheduling a meeting, taking into account various constraints imposed by the
agendas of the participants, as for example a special event for which a participant already has
an entry in his or her agenda. A minimal Multi-user Agenda Support System must provide
facilities for registering important dates for an arbitrary number of users. It must, moreover,
be able to give an overview of important dates for any individual user, and it must be possible
to schedule a meeting between an arbitrary subset of users that satisfies the time-constraints
for each individual in that particular group. This minimal specification may be extended with
input facilities, gadgets for presenting overviews and the possibility of adding additional
constraints. Nevertheless, as an advice, when developing a Multi-user Agenda
SupportSystem, follow the KISS principle: Keep It Simple ... Answer Q.1 to Q.5 below:
Q.1. Identify the use cases for an application that could be used by the multiplex. Write out
the use cases. State the goals clearly. Write the steps that lead to the goals. [10]
Q.2. Identify the classes in the problem. Name their responsibilities and their basic
attributes. Show important associations. [5]
Q.3. Design a small (minimal) database that would be needed. [5]
Q.4. Give the detailed design classes. Note that, the design classes carry all necessary class
members. Include any controller (handler) classes needed. Design access classes that
would be needed and include them in the design. Using GRASP, assign responsibilities
to the various classes. State reasons for assigning each responsibility and the
corresponding pattern that has been used. Support your answer with relevant
collaboration diagrams. Apply the guidelines and principles to make a good design that
is ready to implement. [10]
Q.5. Give the activity diagram that describes the overall activity in the domain. [5]
No. of Pages = 2
No. of Questions = 7
SS ZG514 (EC-2 Regular) First Semester 2009-2010 Page 2 of 2
SS ZG514 (EC-2 Regular) First Semester 2009-2010 Page 2
Q.6. Consider processing an order at Amazon.com. When you place an order, Amazon must
notify you that your order has been received, schedule the order for shipping, if the
item is not available it must be back-ordered, prepare the order for shipping, ship the
order, notify you that the order has been shipped (or back-ordered), and bill your credit
card. In addition, you can cancel the order, or modify the information on it before it has
shipped. Draw a UML statechart diagram showing the Order classs states and the
events that cause the order to change from one state to the next. [7]
Q.7. Ancestor Tree: An ancestor tree is a special type of family trees that keeps track of all
known ancestors of a person. The following is the data definition of an ancestor tree.
An empty ancestor tree is an ancestor tree.
A non-empty ancestor tree is an ancestor tree that contains
o a String representing the name of a person,
o an int representing the year the person was born,
o an ancestor tree for the persons father, and
o an ancestor tree for the persons mother.
Design a system of interface(s) and classes that represent the above definition of
ancestor tree. Your class design should make use of appropriate design patterns to
model the recursive nature of the ancestor tree.
Draw the corresponding UML class diagrams and indicate which design patterns
are being used.
Your UML diagram should clearly show at least the following:
All the fields with their types and accessibility (public, private, etc).
All methods with their parameter lists and return types
All field and method names should be self-explanatory
All constructors with their parameter lists
All private fields should have appropriate getters accessor methods but not
setters.
Use comment boxes to indicate the various design patterns in the diagram.
[4 + 4 + 10 = 18]
*********