Developing the Vision

Now it's time for the team to work on the technical backbone for the Digital Library. They've got business processes and class diagrams. Can they begin with the coding now, or not? They're not even close to writing a program, first, they have to develop a vision of the system.

note.GIF (411 bytes)The team will use its business process knowledge and newly acquired domain knowledge to see where infusion of technology enhances the library work. The players in this conversation are an analyst, a modeler, a librarian, a lender, a DataEntry clerk, a member and a system engineer. A facilitator runs the meeting. The facilitator distributes copies of the business process diagrams developed in previous lessons.
See Discovering business processes 1, and Discovering business processes 2.

This conversation is about information movement. Some of the processes in the library business depends on the movement of the information. If we can speed that movement along - something technology is really good at - we'll meet our goal. From this conversation was concluded that information movement takes place when:

The member lends a book's sample
The member lends a journal's sample
The lender recommends a book to the member
The lender recommends a journal to the member
The member contracts the membership with the DataEntry clerk

Next will be given a part from this conversation. Here modeler has some interesting ideas about adding new attributes in the class diagram. Let's see what is happening:

Analyst Let's go to the process of lending. It was mentioned that members has time limit and copies limit for a lending. How the lender knows how many books or journals to give to the member?
Lender First of all I take a look at member's lending record, and count how many items he or she has lended. Also I check the lending date to see if there is a books or journals with overloaded time limit.
Modeler I've been working on my class diagrams while I've been listening to all of you. And I have some questions to ask. In the Member class, we may add new attributes like timeLimit and copiesLimit which are common for every member. Also an attribute that holds the number of lended samples - samplesLended may be introduced, and a derived attribute - numberToLend, which is the difference between copiesLimit and samplesLended.
Lender That's a nice idea. Then I'd know the number of allowed samples to lend to the member.
Analyst What about timeLimit?
Modeler We have an attribute that holds the lending time. If we add timeLimit to it, a result is aimed. Then if the result is greater than current date, we can inform the member that he or she has a time pass over for a lended book or journal.
Analyst What about multimedia data? It was said that for some of the books, journals or authors multimedia data is supported.
Modeler It's a perfect time to introduce a new class in our class diagram - Multimedia. For that purpose, Multimedia class will have two attributes type (text, audio, video or picture) and file (physical location of the multimedia file) and one operation - newMultimedia().
Facilitator Analyst are you satisfied?
Analyst I agree. Now things comes clearer to me. Every part of the puzzle is putted on its place.
Modeler Here's another possibility. Look carefuly at the Book and the Journal classes. Both are haveing common attributes like ISBN, title, publishing year, publishing house, number of samples. They are differing in author and genre data for the book, and volume and area data for the journal. This is perfect situation for a new inheritance. Common attributes can be putted in new parent class, let's say Item. Also in this new class some of the operations can take place like: freeSamples(), makeLending() and makeReservation(). With this we can save memory space in our database.
Facilitator I'm glad that we're making some optimization. Before going to the next steps, san I suggest you to look at new classes?
(All agree)
class-item class-member Changes in the Member class. New Multimedia class and hierarchy between books and journals, the parent class is the new one - Item class

class-multimedia

Analyst During reservation process or lending process, current date must be somewhere stored. In our class diagram I don't see place in the classes where this data is stored. Please tell me where do you put information about date of lending and date of reservation?
Modeler According to many-to-many association between the Sample class and the Member class, we are supposed to add a new class for that association holding the intersection data for that association. Right here we can add two new classes, the Reservation and the Lending. Here date of reservation and date of lending can take place. Also in the Reservation class an attribute for timeLimit of the reservation can be added. This is necessary for calculating the time period of holding a reservation to the member. These new classes are given in the following pictures
class-reservation class-lending New classes added in our class diagram are the Reservation class and the Lending class
Analyst Allright. For this moment I think that we've resolved all the problems about classes. Now, can we move on to some ideas about what the system should specifically do?
Facilitator Sure. Ideas everyone?
Member I think that this sytem will be more productive if we, the members, can access to all the data in the library from home. Sometimes, when I go to the library with tought to lend some book that I realy need, I hear the Lender's words: "Sory, but we're out of free samples for that book. Can I recommend you something else?". In that moment I'm saying into me: "My chef will kill me. I spent so much time and I didn't finished my work. I hope that there will be a little bit crowd in traffic."
Analyst Yes. Our system has to somehow keep the members from walking to the library so much. Obviously they have to go to the library when they made a reservation from their home and a free sample is holded for them. Also a lending process can be done if a member is present in the library.
System Engineer I think we're onto something. We can allow members to access to the library's LAN directly from their homes or work offices, using the global network - Internet. Then the information would move around very quickly. Also I heed to tell you that our system will cooperate with library's LAN, but new software will be implemented everywhere.
Analyst The system you're talking about would resolve a number of issues. Like data search from home and makeing a reservation for a book or journal from your home or office. I'll have a feeling that I'm in the library and using their local area network and I don't care for a free terminal.
Member That's beautifull. When I have a lot of work to do, I can turn on my computer, make a connection with the library and search the data to find out a free sample of books or journals I need to lend. But from library's network I can't make a reservation for a book of journal. How can I make a reservation from my home or office?
System Engineer We are going to implement a Web interface that allows you to access data stored in the library's database, and allows you to make a reservation from your home or office by clicking a button that sends a message from your computer with your personal data and book's data that you want to reserve. This message will open a new reservation record in our database holding the data until you get your reservation, or time limit is oversteped.
Member But how can my computer know my personal data?
System Engineer First of all, Web interface can be used only be library's members. In our class diagram we have memberID - number printed on your member's card with all the neccesary personal data. When you search the data you make a selection of books/journals to reserve. This list is also sent when you click the button. But if you aren't a member in the library, first that you must do is to make a library's membership.
Librarian Is it possible some of our employees to access the system if they aren't present in the library too?
System Engineer Of course. Data entry clerks can do their job even if they are not present in their work offices. They can access the database data from every place in the world that has a computer and Internet connection.
Librarian How are you going to make this happen?
System Engineer Let's don't worry about that right now. Very soon you'll find out how this will be realized.
Facilitator So we're all set, then? Our system will incorporate the library's local area network and Internet. Now is time to give a name for our system.
System Engineer How about Digital Library.
Facilitator Can we all agree with Digital Library?
(All agree)
Facilitator Okay. I think our work here is done.