-
List the five main steps in an object-oriented design process.
[5 marks]
-
Describe how the "informal description" technique may be used
to identify the objects, methods, and classes in a problem.
[5 marks]
-
Explain the role of experts in Domain Analysis.
[4 marks]
-
When performing Domain Analysis, why is it important not
to automatically accept participants' explanations of their behaviour.
[5 marks]
-
At the highest level, objects may fulfil one of three
roles. List those roles and describe the characteristics of
objects in each of those roles.
[10 marks]
-
Explain the difference between the datum role
and the data type role.
[6 marks]
-
List the four commonest relationships which may exist
between two classes.
[4 marks]
-
Explain how a C++ program can specify that two classes
are in an "is implemented as a" relationship.
[3 marks]
-
Explain what is meant when we say that "the interesting behaviour
of an object-oriented system is (often) emergent"?
[8 marks]
-
Draw an interaction diagram corresponding to the execution of
the following program:
class Base
{
public:
virtual void PrintMe(void)
{
cout << "Base!" << endl;
}
};
class Derived
{
public:
virtual void PrintMe(void)
{
Base::PrintMe();
cout << "Derived!" << endl;
}
};
int main(void)
{
Base b;
Derived d;
b.PrintMe();
d.PrintMe();
}
[8 marks]
-
Draw a class hierarchy diagram (in Booch notation) for
a system to solve the following problem. Do not
write any text descriptions or code.
The El Cheapo video store needs a computerized database system
to record borrowed videos, CDs, and video games. Videos are
categorized as new release, weekly, or five-for-five-dollars.
video games may be either PlayStation, MegaDrive, or Saturn.
El Cheapo need to be able to check whether an individual item
is currently on loan, when it is due back, how much is owing
on it (if it is overdue), as well as details of who borrowed
it (i.e. name, address, phone number, licence number).
They also need to be able to generate lists of items selected
by various criteria: item type, items currently in, items
currently out, most popular, least recently borrowed. This
lists must be able to be sorted alphabetically and by video ID
number.
They also want to generate lists of customers secting by
various criteria: most prolific borrowers, inactive (no
borrowing for a month or more), who owes the most on overdue
books.
[20 marks]
-
Draw a class hierarchy diagram (in Booch notation) for
a system to solve the following problem. Do not
write any text descriptions or code.
We are creating a symbolic mathematics package. We want to
be able to specify functions of X, Y, and Z. Each function
will consist of a left- and right-hand expression, and each
expression will consist of one or more terms, with addition
or subtraction operators between them.
Each term may be either a constant (a numerical value or
the special constant C) or a product (a numerical coefficient
followed by one ore more of the variables X, Y, and Z, each
raised to some power).
The mathematics package will be able to perform the following
operations on a function:
- Re-express it as a function of X, Y, or Z
- Factorize either side
- Expand all terms
- Solve for X, Y, or Z
- Evaluate it, given values for X, Y, and Z
- Differentiate it with respect to X, Y, or Z
[20 marks]