JAD Session
Now that the team has a vision for the system, can the programmers program and the
system engineers engineer? Absolutely not. The team must center the Digital Library system
around the user's needs, not around nifty technology. Altough they have a few insights
from the team meeting, they haven't exposed the Digital Library concept to a group
of employees and end users - the members, to get feedback and ideas from the user's point
of view. The next GRAPPLE action does just that. In a Joint Application
Development session, the team will gather and document system requirements.
The JAD session takes place in conference
room. Led by a facilitator, it's called a joint because it
includes members of the development team along with potencial system users and domain
experts. The development team members are analyst, a modeler, two programmers and a system
engineer. The potential users are two members, a lender, two data entry clerks and a
librarian. This meeting will produce a package diagram that shows the major functionality
of the system.
This session starts with a facilitator's speech about the Digital Library concept. The
structure of a Digital Library system is represented on this picture, which is given to
all the participants in the meeting.
 |
The physical structure and
connections between components in the Digital Library |
The group starts their conversation by figuring out what the major pieces of
functionality should the system had. It was decided to use following functionality of the
system:
 |
The packages of functionality for the
Digital Library |
Next will be given a part of the meeting conversations between some of the
participants:
Facilitator |
Now that we have the major pieces, does anyone have a
preference as to where to start? |
Member1 |
How about the Member part? |
Facilitator |
Sounds good. Alright, what kinds of functionality would
you waht to see in this package? Remember, group, just because we're doing a piece that
happens to not coincide with your particular job, you can still participate. everyoune's
insights are welcome. |
Member1 |
I like to perform a search from my home and selected
books and journals reserve until I go to the library and lend them. |
Facilitator |
Okay. What else? |
Member2 |
I want to print electronic books and journals directly
from my office. |
Analyst |
By the way I don't see any information about electronic
items in our class diagram. How can we manage these items? |
Modeler |
You're right. In the Item class we must add new
attributes for an electronic books/journals. A status
will be one. With this one we can check the type of the item (electronic or paper). Also
we must add an attribute that holds the location of the electronic item (on the local
storage device or on Internet). This attribute will be named as link. |
Facilitator |
Has anyone had another kind of functionality to add? |
Member1 |
I want to take a list of recommended books and journals
onto my computer. |
Facilitator |
OK. You'll notice that I'm writing these in labeled
ellipses. We refer to these as use cases. We'll be asking some of you to come
back and help us analyze those use cases, but that's another meeting. |
When JAD session has finished, participants had a set of requirements that appear as
use cases arranged in the packages. The list of uses cases for every package is given to
you.
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 |
The book package use cases: |
 |
select an author |
 |
check for reservations |
 |
receive an author data |
 |
receive number of reservations |
 |
enter data for a new book |
 |
find out the oldest reservation |
 |
edit data for an existing book |
 |
make a reservation |
 |
enter multimedia data |
 |
receive notification for reservation |
 |
receive notification from multimedia adding |
 |
make a lending |
 |
check for free samples |
 |
transmit lending data |
 |
receive number of free samples |
 |
receive notification for lending |
The sample package use cases: |
 |
add new sample |
 |
receive a request for free samples |
 |
set it free |
 |
return number of free samples |
 |
edit data for an existing sample |
|
|
The reservation package use cases: |
 |
receive a request for reservation |
 |
transmit a reservation result to the member |
 |
perform a reservation |
 |
delete a reservation |
The lending package use cases: |
 |
receive a request for new lending |
 |
receive a request for returning a lending |
 |
perform a lending |
 |
return a lending |
 |
transmit a lending result to the lender and book |
 |
transmit a result to the lender |
 |
delete lending |
 |
check for reservations |
 |
receive oldest reservation |
 |
transmit information for reservations |
The author package use cases: |
 |
enter new author |
 |
receive request for author's data |
 |
edit old author's data |
 |
transmit data to the book |
The lender package use cases: |
 |
enter new lending |
 |
perform a lending return |
 |
receive notification from lending |
 |
receive a result from returning a lending |
For
exercise try adding the use cases in DataEntry clerk package, Multimedia package, and to
the Journal package.
Click here to
see how will look our functionality package diagram filled with use cases!
In
a JAD session, the development team meets with potential users and domain experts to
gather the requirements for the system. The result is a package diagram in wich each
package represent a major piece of functionality. Use cases inside a package elaborate on
the functionality.