CSE2305 - Object-Oriented Software
Engineering
Assessment
Assignment 3
This assignment is due by 11.59pm Friday, 23 September (
).
Total marks: 50.
Contribution to final mark: 5%.
Synopsis
[50 marks]
Bernard's bookshop is a small, locally run bookstore, dealing mainly in obscure
books. For many years it has used paper records to manage the books, magazines
and newspapers it stocks. It has decided to computerise its inventory, in order
to better deal with the increasing number of items it has to deal with.
The bookstore deals with three basic types of item:
- Books
- Serials (magazines, journals)
- Daily Newspapers from all over the world
Books can be further divided into fiction and non-fiction titles. For books,
we are interested in the title, author(s), publisher, place of publication.
For this assignment we will assume all serials are published monthly and only
one issue is available each month. Serials have a title,
publisher and place of publication, but no author. Newspapers have a title
and place of publication and arrive daily.
For any item sold by the store we are interested in the following information:
- the type of item (book, serial, newspaper)
- number of copies held in stock
- the wholesale price
- percentage markup on wholesale price
- the retail price (this is equal to the wholesale price plus the percentage
markup. For example, if the wholesale cost is $20 and the markup 10% the
retail cost is $22.)
The system is
to have the following features:
- The ability to add and delete items from the database of stocked items.
- The ability to increase the number of copies of an existing item (this
is done when new stock arrives).
- The ability to read and save the database to disk.
- The ability to purchase an item (hence decreasing the number of copies
held in stock). It should not be possible to purchase an item for which there
are no copies held in stock.
- The ability to display all titles, sorted by title or display only books,
serials or newspapers.
- The ability to display total number of items sold, total wholesale price
of all currently held stock and total of retail purchases (i.e. the total
of all purchased items).
- The ability to display all items that have no copies in stock.
- The ability to search for an item that matches a specified title.
- Searches that match titles should display all the information about that
title, including the number of copies available.
Any interaction with the system should be via a simple text interface. The
system should automatically load the database on startup, and save it before
quitting. You should be able to specify the name of the database file as a
command line argument.
Develop an object-oriented design for this system using
UML diagrams.
Also, you will need to devise a test plan for your design. The test plan should
test all the features of the system as specified.
You should submit the following:
- A design of the various classes required
by the system, including appropriate class, object and
interaction (sequence) diagrams (in pdf format).
- Written description of key classes and their functions.
- A plan for testing
the completed system.
- Written components of the assignment should be done in plain text (i.e.
readable using a standard text editor such as
vi
).
See the submit page for details on how to submit
your assignment.
This material is part of the CSE2305 - Object-Oriented
Software Engineering course.
Copyright © Jon McCormack, 2005. All rights reserved.
Last Modified:
August 8, 2005