You are on page 1of 40

Version: 1.

Library

Analysis and Design Document

All Rights Reserved Maymone D. Software Consultancy and Training LTD

Page 1

Version: 1.0

Table of contents
Description___________________________________________________________
Glossary_____________________________________________________________
Requirements_________________________________________________________
Package: Functional Requirements_________________________________________________________
Package: Non-Functional Requirements_____________________________________________________

Use Case Modeling Overview____________________________________________


List of Actors__________________________________________________________________________
Package: DailyActivities_________________________________________________________________
Package: Maintenance__________________________________________________________________
Package: Reports______________________________________________________________________

Use Case Descriptions_________________________________________________


Entities/Conceptual Model_____________________________________________
Package: Entities______________________________________________________________________

Classes_____________________________________________________________
Package: System______________________________________________________________________
Package: Frameworks__________________________________________________________________

All Rights Reserved Maymone D. Software Consultancy and Training LTD

Page 2

Version: 1.0

Description

Glossary
Name

Description

Type

Add Reservation

Add a customer to the reservation list

Use Case

address in Borrower

Address including street, house number...

Attribute

author in Book

Book author (first name and last name)

Attribute

Book

A book that the borrower might loan copies of (the copies are the
actual books in the library, where a popular book may have
several copies in the library). The book has information like:
name, author, ISBN etc...

Entity

BookCopyListForm

Contains a grid with the list of the according books/copies

Screen

Borrower

The information stored in the borrower entity is name, address


etc...

Entity

Copy

The copy represents a physical item of a book that may be


loaned.

Entity

copyId in Copy

Sequence number of the copy

Attribute

CustomerListForm

Contains a grid with the list of according customers

Screen

id in Borrower

Social Security Number of the borrower

Attribute

isbn in Book

International Standard Book Number

Attribute

Lend Book

Register a loan of a book copy to a customer

Use Case

LendBookForm

Contains the main form of the lend book process

Screen

lendingTime in Book

The interval in days between lending a book and returning it to


the library

Attribute

Loan

The loan is the contract between the borrower and the library

Entity

loanDate in Loan

When the book was loaned

Attribute

Maintain Books

Add / Update / Delete books

Use Case

Maintain Borrowers

Add / Update / Delete borrowers

Use Case

name in Book

Book Name (Title)

Attribute

All Rights Reserved Maymone D. Software Consultancy and Training LTD

Page 3

Version: 1.0

name in Borrower

Borrower Name (First and Last)

Attribute

Produce status report

Produce the monthly status report

Use Case

Remove Reservation

Delete a reservation from the list

Use Case

Reservation

A borrower can make a reservation. The reservation specifies that


the borrower wants to reserve the associated book so that when a
copy of that book is returned, the borrower should be able to
borrow that copy before anyone else. A book may be reserved
mo

Entity

reservationDate in Reservation

When the reservation was registered

Attribute

Return Book

Register that a customer returned a book

Use Case

ReturnBookForm

Main form used by the return book use case

Screen

returnDate in Loan

When the book was returned by the cutsomer

Attribute

searchBooks in
LendBookForm

Button that displays a list of according books/copies

Field in Screen

searchCustomers in
LendBookForm

Buton that displays the customer list

Field in Screen

status in Copy

The status may be: Available / Not Available

Attribute

Use Case1

Use Case

Use Case2

Use Case

All Rights Reserved Maymone D. Software Consultancy and Training LTD

Page 4

Version: 1.0

Requirements
Package: Functional Requirements
Package: Business Rules
No.

Name

Description

Priority

Status

Reservation cancel

A reservation is canceled when the borrower


checks out the book or through an explicit
canceling procedure

Medium

Proposed

Reservation notification

When a book is returned or purchased by the


library, the first person in the reservation list
is notified by e-mail. The reservation is
canceled when the borrower checks out the
book or through an explicit canceling
procedure

Medium

Proposed

Package: Features
No.

Name

Description

Priority

Status

Book and Copy


separation

It is possible to add a book to the system


before the library has a copy to enable the
borrowers to make reservations

Medium

Proposed

Book loan

The library lends books to borrowers

Medium

Proposed

Borrowers and Books

The borrowers and the books are registered


in the system

Medium

Proposed

Data management

The librarian can easily create, update and


delete information about the books, copies,
borrowers and loans in the system.

Medium

Proposed

Monthly report

A monthly report will be printed


automatically by the system

Medium

Proposed

Multiple Copies

The system should manage multiple copies


for each book

Medium

Proposed

Reservation
management

The librarian can also create and delete


reservations

Medium

Proposed

Reservation of
unavailable Books

A borrower can reserve a book that is not


currently available in the library.

Medium

Proposed

All Rights Reserved Maymone D. Software Consultancy and Training LTD

Page 5

Version: 1.0

Package: Non-Functional Requirements


Package: Availability
No.

Name

Description

Priority

Status

Time availability

The sytem should be available from Sunday


to Friday from 07:00 to 20:00

Medium

Proposed

User availability

Only the librarian will work directly with the


system

Medium

Proposed

Package: Security
No.

Name

Description

Priority

Status

Security

The system should be secured by Aladdin


and Firewall

Medium

Proposed

All Rights Reserved Maymone D. Software Consultancy and Training LTD

Page 6

Version: 1.0

Use Case Modeling Overview


List of Actors
No.

Name

Description

Type

Customer

The customer is notified that the book is


available

User

Librarian

The librarian maintains the system

User

Scheduler

Initiates the monthly report

Time

Package: DailyActivities
List of Use Cases
No.

Name

Description

Status

Lend Book

Register a loan of a book copy to a customer

Proposed

Return Book

Register that a customer returned a book

Proposed

Add Reservation

Add a customer to the reservation list

Proposed

All Rights Reserved Maymone D. Software Consultancy and Training LTD

Page 7

Version: 1.0

Diagram: Daily activities


uc Daily activ ities
System boundary

Add Reserv ation

Notification by email
Return Book
Customer
Librarian

(from Actors)

(from Actors)

Remov e Reserv ation

include
Lend Book

(from Maintenance)

All Rights Reserved Maymone D. Software Consultancy and Training LTD

Page 8

Version: 1.0

Diagram: Traceability
uc Traceability
Reservation of unavailable
Books
(from Features)
Reservation management
Reservation
notification

(from Features)

(from Business Rules)

Add Reserv ation


Reservation
cancel

Return Book

(from Business Rules)

Book loan

Lend Book

(from Features)

Package: Maintenance
List of Use Cases
No.

Name

Description

Status

Maintain Books

Add / Update / Delete books

Proposed

Maintain Borrowers

Add / Update / Delete borrowers

Proposed

Remove Reservation

Delete a reservation from the list

Proposed

All Rights Reserved Maymone D. Software Consultancy and Training LTD

Page 9

Version: 1.0

Diagram: Maintenance
uc Maintenance

Maintain Borrow ers

Remov e Reserv ation

Librarian
(from Actors)

Maintain Books

All Rights Reserved Maymone D. Software Consultancy and Training LTD

Page 10

Version: 1.0

Diagram: Traceability
uc Traceability

Data management

Maintain Books
Book and Copy separation

(from Features)
(from Features)
Borrowers and
Books
(from Features)
Maintain Borrowers

Multiple Copies
(from Features)

Remov e Reserv ation

Reservation management
(from Features)

Package: Reports
List of Use Cases
No.

Name

Description

Status

Produce status report

Produce the monthly status report

Proposed

All Rights Reserved Maymone D. Software Consultancy and Training LTD

Page 11

Version: 1.0

Diagram: Reports
uc Reports

Scheduler
(from Actors)

Produce status
report

Status Report

Librarian
(from Actors)

All Rights Reserved Maymone D. Software Consultancy and Training LTD

Page 12

Version: 1.0

Diagram: Traceability
uc Traceability
Monthly report

(from Features)

Produce status
report

All Rights Reserved Maymone D. Software Consultancy and Training LTD

Page 13

Version: 1.0

Use Case Descriptions


Package: DailyActivities
Use case id

Use Case: Lend Book


1

Overview

Register a loan of a book copy to a customer

Actors

Librarian

Requirements

Reservation cancel
Book loan

Including use cases


Included use cases

Remove Reservation

Author

MD

Status

Proposed

Complexity

Primary flow of events


Actor Action

System Response

1. The system displays the lend book form


2. The librarian enters the customer id
A-1: Search Customer By Name

4. The librarian enters the book id and


the copy id
A-2: Search book By Name

6. The librarian approves the loan

3. The system displays the customer details. If the


customer is not found the system displays an according
message.

5. The system displays the book/copy details.


A-3 No copy available

7. The system registers the loan


8. The system updates the copy status to "not
available"

9. If the customer is registered for this book in the


reservation list, the customer is removed from the
list

Alternate flows
A-1 : Search Customer by Name
All Rights Reserved Maymone D. Software Consultancy and Training LTD

Page 14

Version: 1.0

Actor Action

System Response

1. The librarian enters the customer first


2.

name, last name, or part of them)


The librarian asks to get the list of the
according customers

4. The librarian selects the required

3. The system displays the required customer list


5. The system displays the customer details

customer from the list


A-2 : Search Book by Name
Actor Action

System Response

1. The librarian enters the book name,

2.

author, or part of them)

3. The librarian asks to get the list of


the according books

4. The system displays the book list required (only


the availables in the library)

5. The librarian selects the required

6. The system displays the book details

book/copy
A-3 : No copies available found with the entered details
Actor Action

System Response

1. The system displays the message "No available


copies in library. Do you want to add the borrower
to the reservation list (Yes/No)"
3. The system adds the borrower to the reservation
list
5. The system returns to book details

2. The librarian selects Yes


4. The librarian selects No

Screens
Screen name: BookCopyListForm
Screen ID
Description

Contains a grid with the list of the according books/copies

Complexity

All Rights Reserved Maymone D. Software Consultancy and Training LTD

Page 15

Version: 1.0

Screen name: CustomerListForm


Screen ID
Description

Contains a grid with the list of according customers

Complexity

Screen name: LendBookForm


Screen ID
Description

Contains the main form of the lend book process

Complexity

No.

Fields
Name

Description

Type

searchCustomers

Buton that displays the customer list

Button

searchBooks

Button that displays a list of according


books/copies

Button

All Rights Reserved Maymone D. Software Consultancy and Training LTD

Stereotype

Page 16

Version: 1.0

Diagram: Lend Book - Primary flow

sd Lend Book - Primary flow

Librarian
LendBookForm

LendBookManager

Borrow er

Book

show()
enterCustomerId()
getCustomerDetails(int)
:Borrower

getDetails()

enterBookCopyId()
getBookDetails(string,
int) :Book

getBookDetails()

approve()
approve(Borrower,
Book) :bool

addLoan()
updateCopyStatus()

removeReservation()

(from Actors)

All Rights Reserved Maymone D. Software Consultancy and Training LTD

Page 17

Version: 1.0

Diagram: Search by Book/Author name

sd Search by Book/Author name

Librarian
LendBookForm

BookCopyListForm

LendBookManager

BookManager

displayBookCopies()
getBookList()
getList()
show()

selectBook()
getBookDetails(string,
int) :Book
(from Actors)

All Rights Reserved Maymone D. Software Consultancy and Training LTD

Page 18

Version: 1.0

Diagram: Search Customer by name

sd Search Customer by name

Librarian
LendBookForm

CustomerListForm

LendBookManager

Borrow erManager

displayCustomers()
getCustomerList(string,
string) :List<Customer>
getList()
show()
selectCustomer()
getCustomerDetails(int)
:Borrower

(from Actors)

All Rights Reserved Maymone D. Software Consultancy and Training LTD

Page 19

Version: 1.0

Diagram: Primary Flow

act Primary Flow


Actor

System

Display lend book form

[Else]
[Has customer id]
[Else]
Enter customer id
Search customer by
name

[Customer exists]

Display customer details

[Has book id and copy id]


[Else]

Enter isbn and copy id

Search book by name

[Copy available]
Display book details
No copies av ailable
Approv es

Register the loan

Update the copy status

[Reservation found]

Remov e resrv ation


[Else]

ActivityFinal

All Rights Reserved Maymone D. Software Consultancy and Training LTD

Page 20

Version: 1.0

Diagram: No copies available

act No copies av ailable


Client

System

ActivityInitial

Display "No av ailable


copies in library. Do you
w ant to add the borrow er
to the reserv ation list
(Yes/No)

[Selects "Yes"]
Adds the borrow er to the
reserv ation list

[Selects "No"]

ActivityFinal

All Rights Reserved Maymone D. Software Consultancy and Training LTD

Page 21

Version: 1.0

Diagram: Search book by name

act Search book by name


Actor

System

ActivityInitial

Enter book name, author


or part of them

Ask to get list of books

Display list of books

Select book

Display book details

ActivityFinal

All Rights Reserved Maymone D. Software Consultancy and Training LTD

Page 22

Version: 1.0

Diagram: Search customer by name

act Search customer by name


Actor

Systen

ActivityInitial

Enter first name, last


name, or part of them

Ask to get list of


customers

Display the customer list

Select customer
Display customer details

ActivityFinal

All Rights Reserved Maymone D. Software Consultancy and Training LTD

Page 23

Version: 1.0

Use case id

Use Case: Return Book


2

Overview

Register that a customer returned a book

Actors

Librarian
Customer

Requirements

Reservation notification

Including use cases


Included use cases
Author

MD

Status

Proposed

Complexity

Primary flow of events


Actor Action

System Response

10. The system displays the return book form


11. The librarian enters the customer id

12. The system displays the customer details. If the

A-1: Search Customer By Name

13.

14. The librarian selects the book/copy

customer is not found, the system displays an according


message.
The system displays the list of books that are currently
lent by the customer

15. The system displays the book/copy details.

that is retiurned

16. The librarian approves the return


book

17. The system updates the loan


18. The system updates the copy status to "Available"
19. The first customer found in the reservation list for
this book is notified that the book is available in
the library. In this case the copy status is updated to
"Reserved"

Alternate flows
A-1 : Search Customer by Name
Actor Action

System Response

All Rights Reserved Maymone D. Software Consultancy and Training LTD

Page 24

Version: 1.0

6. The librarian enters the customer first


7.

name, last name, or part of them)


The librarian asks to get the list of the
according customers

9. The librarian selects the required

8. The system displays the required customer list


10. The system displays the customer details

customer from the list

Screens
Screen name: ReturnBookForm
Screen ID
Description

Main form used by the return book use case

Complexity

All Rights Reserved Maymone D. Software Consultancy and Training LTD

Page 25

Version: 1.0

Diagram: Primary flow

sd Primary flow

Librarian
Borrow er

ReturnBookForm

ReturnBookManager Book
EmailManager

show()
enterCustomerId()
getCustomerDetails()
getLentBooks()
selectReturnedBook()
getBookDetails()
approve()
approve()
getDetails()
getRentBooks()
getBookDetails()
updateLoan()
updateCopyStatus()
getFirstReservation()
sendMail()

(from Actors)

All Rights Reserved Maymone D. Software Consultancy and Training LTD

Page 26

Version: 1.0

Use case id

Use Case: Add Reservation


3

Overview

Add a customer to the reservation list

Actors

Librarian

Requirements

Reservation management
Reservation of unavailable Books

Including use cases


Included use cases
Author

MD

Status

Proposed

Complexity

Package: Maintenance
Use Case: Maintain Books
Use case id
1
Overview

Add / Update / Delete books

Actors

Librarian

Requirements

Book and Copy separation


Data management
Borrowers and Books

Including use cases


Included use cases
Author

MD

Status

Proposed

Complexity

All Rights Reserved Maymone D. Software Consultancy and Training LTD

Page 27

Version: 1.0

All Rights Reserved Maymone D. Software Consultancy and Training LTD

Page 28

Version: 1.0

Use case id

Use Case: Maintain Borrowers


2

Overview

Add / Update / Delete borrowers

Actors

Librarian

Requirements

Data management
Borrowers and Books

Including use cases


Included use cases
Author

MD

Status

Proposed

Complexity

All Rights Reserved Maymone D. Software Consultancy and Training LTD

Page 29

Version: 1.0

Use case id

Use Case: Remove Reservation


4

Overview

Delete a reservation from the list

Actors

Librarian

Requirements

Data management
Reservation management

Including use cases

Lend Book

Included use cases


Author

MD

Status

Proposed

Complexity

Package: Reports
Use Case: Produce status report
Use case id
1
Overview

Produce the monthly status report

Actors

Scheduler
Librarian

Requirements

Monthly report

Including use cases


Included use cases
Author

MD

Status

Proposed

Complexity

All Rights Reserved Maymone D. Software Consultancy and Training LTD

Page 30

Version: 1.0

All Rights Reserved Maymone D. Software Consultancy and Training LTD

Page 31

Version: 1.0

Entities/Conceptual Model
Package: Entities
List of Entities/Concepts
No.

Name

Description

Complexity

Book

A book that the borrower might loan copies of


(the copies are the actual books in the library,
where a popular book may have several copies in
the library). The book has information like:
name, author, ISBN etc...

Borrower

The information stored in the borrower entity is


name, address etc...

Copy

The copy represents a physical item of a book


that may be loaned.

Loan

The loan is the contract between the borrower


and the library

Reservation

A borrower can make a reservation. The


reservation specifies that the borrower wants to
reserve the associated book so that when a copy
of that book is returned, the borrower should be
able to borrow that copy before anyone else. A
book may be reserved more than once, by
different borrowers.

All Rights Reserved Maymone D. Software Consultancy and Training LTD

Page 32

Version: 1.0

Diagram: Entities
class Entities
entity
Book

entity
Copy

isbn: string
name: string
author: string
lendingTime: int

+
+
+

getBookDetails() : void
updateCopyStatus() : void
getFirstReservation() : void

0..* -

Includes

copyId: int
status: char

1
1

May-be-loaned-in

1
May-be-reserved-in
0..*

0..*

entity
Reserv ation
-

entity
Loan

reservationDate: DateTime
-

0..*

loanDate: DateTime
returnDate: DateTime
0..*

Has

Has
1
entity
Borrow er

1
-

id: string
name: string
address: string

+
+
+
+
+

getDetails()
addLoan() : void
removeReservation() : void
getRentBooks() : void
updateLoan() : void

Entity: Book
Overview

A book that the borrower might loan copies of (the copies are the actual
books in the library, where a popular book may have several copies in the
library). The book has information like: name, author, ISBN etc...

Complexity

No.

Attributes
Name

Description

Type

isbn

International Standard Book Number

string

name

Book Name (Title)

string

author

Book author (first name and last name)

string

All Rights Reserved Maymone D. Software Consultancy and Training LTD

Remarks

Page 33

Version: 1.0

lendingTime

The interval in days between lending a


book and returning it to the library

int

Entity: Borrower
Overview

The information stored in the borrower entity is name, address etc...

Complexity

No.

Attributes
Name

Description

Type

id

Social Security Number of the borrower

string

name

Borrower Name (First and Last)

string

address

Address including street, house number...

string

Remarks

Entity: Copy
Overview

The copy represents a physical item of a book that may be loaned.

Complexity

No.

Attributes
Name

Description

Type

copyId

Sequence number of the copy

int

status

The status may be: Available / Not


Available

char

Remarks

Entity: Loan
Overview

The loan is the contract between the borrower and the library

Complexity

No.

Attributes
Name

Description

Type

loanDate

When the book was loaned

DateTime

returnDate

When the book was returned by the


cutsomer

DateTime

All Rights Reserved Maymone D. Software Consultancy and Training LTD

Remarks

Page 34

Version: 1.0

Entity: Reservation
Overview

A borrower can make a reservation. The reservation specifies that the


borrower wants to reserve the associated book so that when a copy of that
book is returned, the borrower should be able to borrow that copy before
anyone else. A book may be reserved more than once, by different
borrowers.

Complexity

No.

Attributes
Name

Description

Type

reservationDate

When the reservation was registered

DateTime

All Rights Reserved Maymone D. Software Consultancy and Training LTD

Remarks

Page 35

Version: 1.0

Classes
Package: System
List of Classes
No.

Name

Description

Stereotype

BookManager

Responsible for managing a collection of books

control

BorrowerManager

Responsible for manageing a collection of


customers

control

EmailManager

email manager

control

LendBookManager

Contains the main flow of the LendBook use


case and manages it

control

ReturnBookManager

Main controller of the Return book use case

control

All Rights Reserved Maymone D. Software Consultancy and Training LTD

Page 36

Version: 1.0

Diagram: System
class System

BookManager
ReturnBookManager

LendBookManager

BorrowerManager

EmailManager

Class: BookManager
Overview

Responsible for managing a collection of books

Stereotype

control

No.

Methods
Name

getList

Description

Return Type

Gets the list of


books/copies available in
nthe library whose names
and/or author contain a
given text

void

Parameters

Class: BorrowerManager
Overview

Responsible for manageing a collection of customers


All Rights Reserved Maymone D. Software Consultancy and Training LTD

Page 37

Version: 1.0

Stereotype

control

No.

Methods
Name

getList

Description

Return Type

Get a list of the customers


having names containing a
given text

void

Parameters

Class: EmailManager
Overview

email manager

Stereotype

control

No.

Methods
Name

sendMail

Description

Return Type

Send a notification to the


first customer in the
reservation list of the
given book

void

Parameters

Class: LendBookManager
Overview

Contains the main flow of the LendBook use case and manages it

Stereotype

control

No.

Methods
Name

1
2

Description

Return Type

Parameters

getCustomerDetails

Get the customer details of


the given cutomer id

Borrower

int aCustomerId

getBookDetails

Get the Book and Copy


details of the given book
and copy id

Book

string aIsbn

The system registers the


loan

bool

approve

int aCopyId
Borrower aCustomer
Book aBook

The system updates the


copy status to "not
available"

All Rights Reserved Maymone D. Software Consultancy and Training LTD

Page 38

Version: 1.0

If the customer is
registered for this book in
the reservation list, the
customer is removed from
the list
4

getCustomerList

getBookList

Get the list of customers


according to the given
details

List<Customer>

Get the list of


books/copies available in
the library whose names
and/or author contain a
given text

void

string aFirstNname
string aLastName

Class: ReturnBookManager
Overview

Main controller of the Return book use case

Stereotype

control

No.

Methods
Name

Description

Return Type

getCustomerDetails

Given the customer id, get


the customer details

void

getLentBooks

Given a customer id get


the lent books by that
customer

void

getBookDetails

Given a book id get the


book details

void

approve

Approve the returned book

void

Parameters

Package: Frameworks
List of Classes
No.

Name

Description

Class12

Twelve

All Rights Reserved Maymone D. Software Consultancy and Training LTD

Stereotype

Page 39

Version: 1.0

Diagram: Frameworks
class Framew orks

Class12

Class: Class12
Overview

Twelve

Stereotype

All Rights Reserved Maymone D. Software Consultancy and Training LTD

Page 40

You might also like