CS 5500 Project 1
Points: 100
Due: March 25, 2022.
Implement (that is, code in C++/Java/Python and execute) the following use cases from the
library case study discussed in class (refer to the notes from Stevens and Pooley, e.g., Fig 7.2):
- Bookborrower borrows a copy of a book
- Bookborrower returns a copy of a book
- Journalborrower borrows a copy of a journal
- Journalborrower returns a copy of a journal
- The librarian updates the catalog
Use the specifications and constraints (e.g., on the number of books that can be borrowed at a
time; on who can borrow journals) described in Stevens-Pooley. Implement at least one standard
(success) scenario and at least one failure scenario for each of the above use cases. Try to remain
faithful to the design already proposed in Stevens-Pooley (e.g., Figs. 3.5, 9.2, 9.3). Write all code
in C++ /Java/Python. Use of files for storing of data is encouraged; you should choose between
text file and binary file; make a design decision on indexing (e.g., indexed sequential or B-tree
indexing or no indexing at all). Please do not use any software package or any DBMS software
or any “web-based” database. Maintain a number of items in each case (e.g., 10 books with 3
copies each; 5 journals with 4 issues each; 10 library members (non-staff); 1 librarian; 3
members of the staff (including the librarian)). You do not have to implement any fancy GUI for
outputting results – plain text will do. The goal of this project is to give you an exercise in the
basics of sound design and programming principles in software engineering using the O-O
paradigm (with UML) in the modest scope of a classroom project.
Please be ready to demonstrate (via zoom) your system in action.
The report (a single pdf file to be uploaded on Canvas) should include
- the source code
- sample input-output
- a description of your design using any standard method (I suggest UML-style class
diagrams, associations, collaboration/interaction/sequence diagrams for each use case,
following the examples in the Stevens-Pooley book). Hand drawing is OK, as long as it is
neat, legible and NOT in pencil (please use ink).
This is a group project, with up to three students per group. There will be only one submission
from a group (it doesn't matter which member submits it; the submissions of the other members
will remain blank on Canvas.) Please write the names of the group members at the top of the
very first page of the submission. Form your own groups by interacting amongst yourselves but
please do NOT use Canvas's features to store group compositions. Working in groups is highly
recommended but not mandatory; a student may choose to work independently.