Final Exam - COM3205 – Summer 1999

Consider an automated library circulation system. Every book has a bar code, and every borrower has a card bearing a bar code. When a borrower wishes to check out a book, the librarian scans the bar code on the bok and on the borrower’s card, and then enters the C at the computer terminal. Similarly, when a book is returned, it is again scanned and the librarian enters R. Librarians can add books (+) to the library collection or remove them (-). Borrowers can go to a terminal and search for all the books in the library collection by a particular author (the borrower enters A= followed by the author’s name), all the books with specifc words in the title (T= followed by the title words), or all the books in a particular subject area (S= followed by the subject area). Finally, if the borrower wants a book that is currently checked out, the librarian can place a hold on a book so that when it is returned, it will be held for the borrower who requested it (H= followed by the unique number of the book).

Certain books in the collection may be restricted to reference use within the library building and are not allowed to be checked out.

There are many computer terminals in the library all available to the library staff or the borrowers. The librarian staff enter a user id and password to allow them to check out, check in, put a book on hold or add or delete books from the collection.

1.a. What is your recommendation for general structure of this application: 1-tier, 2-tier or 3-tier? Explain your answer.

1.b If the library wants to open up the system so that people could connect to the system over the internet, how would you structure the application ?

1.c The library is in a hurry to get the basic functions up and running (check in and check out) and can wait a bit longer for the search functions. What life cycle model would you recommend and why ?

2.a. Detail 2 different use-cases/scenarios for this system.

2.b Enumerate the important nouns used in the above description and in the use-cases.

2.c Describe the CRC cards for the possible classes in the system. Do not model any user interface details, concentrate on the library-domain objects.

3. Present an Activity Diagram for this system, including the user interface. Only deal with the use cases of a borrower searching for a particular book.

4. Present a Sequence Diagram (s) for the use case of a librarian checking out a book for a borrower. Include all elements of the check out process implied by the desription above.

5.a Outline a module structure (development view) for this application. Each module should be suited for development by an independent team where possible.

5.b Present your recommendation for an ordering of the development of these modules.

5.c. Describe how module coupling and cohesion influence the ease of development, maintence and extendability of software.