COMP201: Software Engineering I Object Oriented Design Coursework Assignment 2 (2016/2017)
COMP201: Software Engineering I Object Oriented Design Coursework Assignment 2 (2016/2017)
2 of 2
10%
14/11/2016
Marking criteria
Late Submission Penalty
REPORT
You should hand in a report along the lines of the example problem solutions presented in the
COMP201 notes and the UML book - Using UML Perdita Stevens, Rob Pooley. You can use
any software or a neat hand drawn diagram for the tasks, Microsoft Powerpoint or OpenOffice
Draw could be used for example (or ArgoUML may be useful for Tasks 2 and 3), ask the
demonstrators at your practical slots for help. Your solution should comprise the following:
Title page: put your name, your student number and the course on the first page. For each task,
you should give a copy of the question, your solution and any comments on your solution.
TASK 1. (25%) Given the following informal specification, identify good candidates for classes
and attributes, and identify things that are outside of the problem domain. Also identify all
potential inheritance relationships. You should ensure that data is NOT duplicated across classes
even if a user places multiple bookings. Use the noun identification method of class elicitation for
the first pass.
Your customer is a travel agency that wants a reservation system that will run on the
Internet. This reservation system will allow clients to keep track of all their travel
reservations for airlines, hotel and rental cars. The client must enter the names of all
his/her traveling companions, but all reservations will be under the name of the primary
client. The system needs to make it easy for a client to have multiple reservations. All
reservations will include a booking number as well as their names, passport numbers and
dates of birth of all the travelers involved in the reservation. The system should also have
an address for the primary client. Airline reservations will include the airline, flight
number, class of seat and travel dates and times. Hotel reservations will include the type
(twin, single, double) and of rooms and the dates staying. and name and address of the
hotel. Car rental reservations will include the type of car requested, dates and the drivers
license number of the primary client.
TASK 2. (25%) You are required to draw a UML activity diagram to represent the following
scenario of a hairdressers salon.
Customers enter the salon and wait until the next hairdresser is free. They then indicate
whether they would like their hair washed first or a dry-cut without having their hair
washed. The hairdresser washes the hair (if asked for) and then cuts it. After finishing the
customers hair the hairdresser moves onto the next waiting customer, or waits for another
one to enter the salon. The customer goes to the till and waits for a cashier to be free to take
their payment. They can pay by either cash or by credit card (where they need to type their
pin into the machine) and they then leave the salon.
You are required to draw a UML class diagram for the above system. All the key words you need
to include are underlined do not invent any details additional to those given above:
1. Illustrate the various classes that exist, with their attributes and operations (including any
derived ones, represented in the usual way)
2. Mark on the relationships that exist between the classes using the standard UML symbols to
represent the type of each relationship
3. Add multiplicities
4. for any relationships of association:
a. mark on the navigability
b. appropriately name the two roles
TASK4. (25%) Draw a UML sequence diagram that specifies the following protocol of initiating
a two-party phone call. NOTE: ArgoUML does not fully support Sequence Diagrams, it may be
better to use a different program (such as OpenOffice Draw/ Microsoft Powerpoint) or (neatly)
draw the diagram by hand. Let us assume that there are four objects involved:
two Callers (s and r),
an unnamed telephone Switch, and
Conversation (c) between the two parties.
The sequence begins with one Caller (s) sending a message (liftReceiver) to the Switch object.
In turn, the Switch calls setDialTone on the Caller, and the Caller iterates (7 times) on the
message dialDigit to itself. The Switch object then calls itself with the message routeCall. It
then creates a Conversation object (c), to which it delegates the rest of the work. The
Conversation object (c) rings the Caller (r), who asynchronously sends the message
liftReceiver. The Conversation object then tells both Caller objects to connect, after which they
talk. Once Caller (r) sends a disconnect message to Conversation then Conversation tells both
Caller objects to disconnect and also it tells the Switch to disconnect. After that Switch deletes
the object Conversation.
All the key words you need to include are underlined do not invent any details additional to those
given above.
Marking Criteria
Task
A++ to A
70%+
B
60%-69%
C
50%-59%
D
40%-49%
E+
35%-39%
E- to G
< 35%
Inappropriate classes or
inheritance relations defined
with minor omissions and/or
poor justification of chosen
classes.
No evidence of
understanding the
concept of deriving
classes from a scenario.
Some understanding of
classes and how they
should be derived but
with a poor choice of
classes and no
justification
Some evidence of
understanding activity
diagrams and an attempt
to model the scenario in
some meaningful way.
Some evidence of
understanding class
diagrams and an attempt
to model the scenario in
some meaningful way.
No serious attempt to
model the scenario with a
class diagram.
Limited evidence of
understanding sequence
diagrams and their uses.
An inadequate attempt to
use sequence diagrams in
a meaningful way.
No serious attempt to
model the scenario with
an activity diagram.