Sau đây là bài tập lớn, nội dung về việc quản lý cho mượn sách trong thư viện của trường học

Problem Domain Scenario

A university’s library loans books to the university’s staff and students, according to a certain set of rules.

Any loan item (i.e. a copy of a book title) is classified into one (and only one) of the 3 collections: main collection with 3 week loan and 1 week loan, one day collection and short loan collection with (i) max of 3-hour loan if issued between 9am and 1pm, or (ii) from 4pm to10:30am the next working day. Note that a book title is usually stocked in several copies, which may be made available for loan through all the three

loan collections.

Borrowing

A borrower may borrow up to a maximum number of book items determined for the borrower category, to which s/he belongs, as follows.

· Undergraduates -

16 items from the main collection;

4 short loan or one day loan items

· Postgraduates -

20 items from the main collection;

4 short loan or one day loan items

· Staff -

35 items from the main collection;

4 short loan or one day loan items

Fines

Fines are charged for the late return of one week loan and short loan items. All students pay the same fines:

· Three Week Loans - No fines

· One Week Loans - 50p per day

· One Day Loans - 50p per hour or part of an hour

· Short Loans - 50p per hour or part of an hour

Renewal

Borrowed items can be renewed, provided they are not reserved for another borrower.

· A borrower will not be able to renew any item that has been reserved by another borrower.

· A borrower will not be able to renew any of her/his loans if s/he has an item which has been reserved by another borrower, and which is already overdue.

· A borrower will not be able to renew any items if it has been overdue for more than two calendar days.

. A borrower will not be able to renew her/his items if s/he owes more than £40.00 in library fines or charges.

Reservation

If an item is unavailable because all copies of the title have already been borrowed, then a borrower may place a reservation on the item, and await the first copy that becomes available.

· A borrower cannot reserve an item if there are copies available on the shelves at the time (those with the status: not on loan). If this is the case s/he is expected to find the item on the shelf themselves.

· Once a request is made, and provided the item is available, it will take a few days for the item to be available for collection. The requested item is shown as ready for pickup in the library account of the borrower who made the request.

Software Development Task

Design and implement a Java desktop application (not a client-server or database application) using an object-oriented development method, to support the library staff in managing the book availability, borrower accounts, as well as in handling their borrowing, renewal, reservation and returning (including fines) transactions.

It is an essential requirement of the coursework that the software design should encapsulate not only relevant operations and data, but also the rules in order for the software to assist the library staff in their work following the rules above.

Your work should also aim to meet the following requirements.

Requirements

1) Represent the scenarios of the user–system interaction using use cases.

2) Use CRC cards to record class responsibilities and collaborators, which are present in your system.

3) Perform and document a realisation of the use cases in (1) using CRC cards from (2) to match the use cases’ operations and class’ responsibilities, and to refine the final class design.

4) Draw the UML class diagram of your system’s classes.

5) Draw the relevant sequence diagrams to represent the system control flow at the system design level.

6) Description of the public interface for every class of your system following the javadoc documentation style. Use the Sun Java SDK javadoc tool to generate HTML javadoc documentation for the whole system and include the documentation files in your submission.

7) The system’s back-end classes that execute the system’s operations must be implemented separately from the system’s front-end user-interface implementation.

Cool Save and retrieve the system’s state between program runs.

9) Provide either two different front-ends to the same implementation of the backend classes, or two different implementations to use two different data structures to store the state of the system, implementing the same interfaces of the back-end classes.

Please note: in either choice, there must be a GUI using Java Swing classes implemented.

10)Design and write a test class to test with JUnit all the methods of the class which

includes the method that changes the state of the system after the operation of

issuing a loan to a borrower. Supply the source code, javadoc of the test class and

instructions as to how to run the test using JUnit.

Nhấn để mở rộng...

Mình lơ tơ mơ về Java và UML, tuy hiểu đc đề bài yêu cầu j nhưng ko biết bắt tay vào đâu để làm, nếu các bạn nào đã và đang làm project về Java và UML thì xin giúp đỡ mình hoặc các bạn đang nâng cao tay nghề Java thì xin lập hội cho mình vào với.

Thanks nhìu nhìu