Interactions in the System 1

note.GIF (411 bytes)One way to find out the interactions in the system is to enumerate the system components suggested in each package of use cases. The task to perform is to show how the system components interact in order to complete each use case.

Altough we didn't explicitly analyze all the use cases in all the packages in the previous lessons, we can still extract the system components those use cases assume. Let's start to reanalyze the packages that were analyzed in previous lessons. That were the Member package and the Book package. We're going to find interactions between components of these packages, but only for reservation and lending process. Because this course is too short to comprise all the interactions between components, we'll analyze only these two interactions, and a rest of them you'll need to do like an exercise in the workshop part of the day.

The Member package

The member package use cases:
enter data for searching transmit the reservation to the library's database
transmit the data to the library's database receive notification from library's database
retreive a list of items take a list of recommended books
make a reservation for some of them take a list of recommended journals

Let's exsamine again the process of reservating the book. Suppose that you have to reserve a book from retreived list of recommended books. Now let's look at the steps necessary to perform these operations.

memberUCpart The part of use case diagram in the Member package
- Take a list of recommended books
The steps of this use case are:
1 Activate the recommendation part from the member's interface.
2 After clicking the RECOMMEND button on the interface, a signal is sent to the Digital Library, to activate the recommendation algorithm.
3 The Digital Library activates a recommendation algorithm* which produces a list of recommended books.
4 The Digital Library sends this list of books to the member's interface.
5 Print this list of items to the member's screen.
* For the purpose of Digital Library a special algorithm for recommendation is developed. If you need some detailed information about this algorithm please refer to the webmaster of this course.

To activate the reservation process, a RESERVE button must be obtained beyond every item in the list. Pressing this button another use case sequence is activated. This sequence includes "make reservation" use case, "transmit reservation" use case, and "receive notification" use case. The steps for everyone use case are given in following tables:

- Make reservation
1 The member receives a list of items (from searching or from recommendation)
2 The member clicks the RESERVE button for the items that he or she wants to reserve
3 The form for acknowledging a reservation appears
4 The member fills in the information in the form
- Transmit reservation
1 Click on the SUBMIT button on the reservation form.
2 Digital Library transmits the reservation request to the Reservation database.
3 The request arrives in the Reservation database.
4 On the member's screen appears a message indicating "request sent", and a message " wait to receive acknowledge".

Before going to the "receive notification" use case we'll take a look at Reservation package use cases.  A "new reservation" and "transmit notification" use cases will take part at this process of interactions.

- New reservation
1 A request arrives in the Reservation database, and the process of creation new reservation is activated.
2 Result of this process is status of reservation, which is sent to the Digital Library.
3 Send the status of reservation to the Digital Library.
- Transmit notification
1 Digital Library sents the status of reservation to the member's interface.
2 Status arrives in the member's side.
- Receive notification
1 Member's interface receives arrived status.
2 Status is decoded.
3 A message is printed on the member's screen according to the decoded status of reservation.
reservationSequence The sequence diagram for reservation process of recommended book

note.GIF (411 bytes)As you can see some of use case steps are modified. These modifications are example of the way one phase of a project can influence another.
Note also the state changes on the first lifeline. It's intended to clarify how the user interface  sets up to handle a particular kind of activity. We could include all the possible state changes as separate state diagrams, but this would be overkill. Putting them on the sequence diagrams appears to be more economical.