Example Software for a virtual library (borrowing books using the Internet) Internt terminal DB
Preferences You have a team of 2 people First deliverance after 3 months Develop software for: User Interface User – library communication Database Administration Use iterative implementation Final release after 8 months
Main activities Requirement analysis and definition System design User interface Design Implementation User – library communication Design Implementation Database Design Implementation Administration Design Implementation System integration Testing Deliverance
Iterative implementation Gantt chart
Task Define main requirements Create Use Case diagram capturing the requirements Create an architecture design Create conceptual design Create sequence diagrams Create class diagram
Actors Two main actors: The person borrowing books, User The person administering the library, Librarian
The User A user should be able to: Search for books Reserve book Login to be able to borrow books
Search for books Name: Search for books Initiator: User Goal: Get a list of books 1. User enters search criteria, e.g. author, title, ISBN, etc. 2. The system searches its database for matches 3. The system returns the result Extensions: 2. Search failed, no results a.System allows User to try again b.Resume at 1
Reserve book Name: Reserve book Initiator: User Goal: Reserve specified book 1. The User wants to reserve specified book 2. The system marks specified book as reserved Extensions 2. All copies of the book are already reserved a.The system adds the User to reserve queue b.The system notifies the User c.Stop
The Librarian The Librarian should be able to: Mark a book as available when a book is returned (Unreserve book) Add new book to the database
Unreserve book Name: Unreserve book Initiator: Librarian Goal: Mark a book as available 1. The Librarian gets a returned book 2. The Librarian unreserves the book Extensions 2. Another user has reserved a copy of this book a. The system marks the book as reserved by the next user in the reserve queue b.Stop
Use Case diagram
Three-Tiers Client-Server Architecture Database driver Library server Admin client User client Presentation layer (Client) Application layer (Server) Data layer
Library server conceptual design
Sequence diagram for Search
Sequence diagram for Unreserve
Sequence diagram for login, search and reserve
Library server class diagram