Now let's take look at the Book package use cases, and analyze them separately.
The Book package
The Book package of use cases developed in earlier stages of the system analysis |
- Enter data for a new book | |
Description: Fill in the data in book's entry form. | |
Initialing actor is DataEntry clerk. | |
Assumptions: Activated entry form in the DataEntry clerk's interface, and entered information. | |
Precondition is new book's data. Postcondition is entered data into Digital Library database. |
|
The steps are: | |
![]() |
From the library's LAN or from internet the DataEntry clerk activates an interface for a book's entry. |
![]() |
The form appears on the screen. |
![]() |
The clerk enters necessary information. |
- Select an author | |
Description: Select a book's author from the author list. | |
Initialing actor is DataEntry clerk. | |
Assumptions: There are author records in the database, and user makes a selection from that list. | |
Precondition is book's author
data. Postcondition is selected author's data. |
|
The steps are: | |
![]() |
In data entry form for the book, a clerk selects one author from the list of authors. |
![]() |
This information is send to the database. |
![]() |
Searching is performed into the database for that information. |
An inclusion may be introduced here. This use case includes steps from "edit data for an existing book" use case and from "enter data for a new book" use case. | |
- Retreive author's data | |
Description: Receive all the necessary information about the selected author in previous use case. | |
Assumptions: User has made a selection from the author's list. | |
Precondition is selected author. Postcondition is retreived author's information. |
|
The steps are: | |
![]() |
After searching, database selects the record for that author and extracts necessary information about the author. |
![]() |
Sends that information to the book's data entry form. |
![]() |
Prints the information onto the user's screen. |
This use case includes the "select an author" use case. |
- Enter multimedia data | |
Description: If the book has a multimedia data, then it is entered into the book's record. | |
Assumptions: Book has a multimedia data, and a multimedia file(s) is(are) saved somewhere in the server. | |
Precondition is book has a
multimedia data and a MMEDIA button is clicked. Postcondition is entered multimedia data. |
|
The steps are: | |
![]() |
If book has a multimedia data, a MMEDIA button is clicked, and a entry form appears on the screen. |
![]() |
User enters type of multimedia data, and a location on the server where that data is saved. |
![]() |
SUBMIT button is clicked and multimedia record is transmited to the database. |
An inclusion may be introduced here. This use case includes steps from "edit data for an existing book" use case and from "enter data for a new book" use case. |
- Receive notification from multimedia adding | |
Description: After filling the multimedia entry form, database sends a message how succesfull was performed a process of adding new multimedia data. | |
Assumptions: Filled multimedia data entry form, good communication via network, and existing multimedia file. | |
Precondition is transmited
multimedia entry form to the database. Postcondition is received status of this transaction. |
|
The steps are: | |
![]() |
The multimedia data arrives into the database, and a process of creation of new record is started. |
![]() |
This process may finish with a result, or may end with failure. |
![]() |
The type of ending of the creation process is returned to the book's data entry form. |
This use case is inclusion of previous one - "enter multimedia data" use case. |
- Edit data for an existing book | |
Description: If a wrong information is entered for some book, it is possible to change that information. | |
Assumptions: Existing book's record for changeing, and clicked EDIT button. | |
Precondition is false entered
information into book's record. Postcondition is changed book's record. |
|
The steps are: | |
![]() |
User clicks the EDIT button and filled form with the old book's information appears on the screen. |
![]() |
False information is selected and changed. |
![]() |
If an author's information or multimedia information has to be changed, the same process like entering new data is repeated. |
- Make a reservation | |
Description: Member wants to reserve a sample for the book, and after that a lending can be performed in the library. | |
Assumptions: Book must be present in the retreived list of books during the search or recommendation process, books must have samples present in the library. | |
Precondition is Member wants to
make a reservation for a book. Postcondition is book's necessary data and member's necessary data are transfered to the Digital Library. |
|
The steps are: | |
![]() |
Member clicks the RESERVE button and fills in the necessary information to perform a reservation. |
![]() |
The Digital Library database receives request for reservation. |
![]() |
The steps of checking the data with database records are made. |
![]() |
Digital Library checks for free samples, and performs a new reservation. |
![]() |
After that a wait period is introduced, while the notification from the reservation is achieved. |
- Receive notification from reservation | |
Description: After clicking the RESERVE button, and filling the form, Digital Library receives a request for a reservation, and after performing a reservation process, a status message is received. | |
Assumptions: RESERVE button, and sent request for reservation. | |
Precondition is clicked RESERVE
button. Postcondition is reservation status. |
|
The steps are: | |
![]() |
The status of performing a new reservation is achieved. |
![]() |
This status is sent trough the network to the user. |
![]() |
Meggase about status of reservation is printed on the screen. |
This use case includes "make a reservation" use case. |
- Check for free samples | |
Description: Count how many samples from that book are available, and return that number to the reservation process. | |
Assumptions: request for reservation, sample(s) for the book. | |
Precondition is new reservation. Postcondition is number of free samples |
|
The steps are: | |
![]() |
Receive a request for a number of free samples. |
![]() |
Count the available samples (those one with status="available"). |
![]() |
Sent that number to the Digital Library. |
This use case includes "make a reservation" use case. |
- Return number of free samples | |
Description: Gives a number of free samples. | |
Assumptions: samples of that book, request for number of free samples. | |
Precondition is request for number
of samples. Postcondition is transmiting the number of free samples |
|
The steps are: | |
![]() |
Receive the transmited number of free samples. |
![]() |
Check the result to determine the reservation status. |
![]() |
Transmit the reservation status to the Digital Library. |
This use case includes "check for free samples" use case. |
- Make a lending | |
Description: Member wants to lend a book. | |
Assumptions: user must be present in the library, book must be in paper form, a free sample for the book must be available. | |
Initiatin actor is Lender and benefiting actor is Member. | |
Precondition is request for
lending. Postcondition is transmited lending request to the Digital Library. |
|
The steps are: | |
![]() |
Lender activates interface for makeing and returning a lending. |
![]() |
Lender enters data for the sample and the member in the lending data entry form. |
![]() |
After pressing the LEND button a new lending process is activated. |
- Receive notification for lending | |
Description: After pressing the LEND button in the lending form, a new reservation record is writen to the database, and the result of this transaction is returned to the lender's interface. | |
Assumptions: communication via network, and LEND button present in the interface. | |
Precondition is entered data in
lending form. Postcondition is status of performed transaction. |
|
The steps are: | |
![]() |
Wait until lending process ends, and receive a lending result status. |
![]() |
Transmit the status via network to the lender's screen. |
![]() |
If there are free samples, member gets one. |
This use case includes "make a lending" use case. |
Another use cases related to the lending process are:
![]() |
Receive number of reservations | This use case take place when new lending record is created. If a book has a pending reservations (free samples with status="reserved" are available), and no free samples with status="available" are present, then lending process must fail. |
![]() |
Check for reservation | If a member has a reservation for a book's sample, then if a holded sample is available, the member takes that sample, else a lending process will fail. |
![]() |
Find out the oldest reservation | This use case is used in the process of updating reservation records. When a member make a request for a reservation and there is no free sample, then when only one sample is set free, this use case take place and finds out the oldest reservation for that book, and sets the sample's status from "available" to "reserved". Sample can be set free when it is returned from a user who lends it. |
Inclusions that appears here are between: "make a lending" and a "check for reservation" use cases; "make a lending" and a "receive number of reservations" use cases.
The updated use case diagrams for the Book package |
Analyzing
the use cases has helped conceptualize the working parts of the system. Although we know a
lot about the use cases, we still have to model how those working parts will interact with
one another and how (and when) they change state. Passing this information to the
programmers will make their jobs a lot easier. They will have a vision of how to code
classes and make them wotk together.
See Interactions in the System.