Title: Library System Case Study
1CMPUT 401 Software Engineering
Library System Case Study
Paul Sorenson Department of Computing
Science University of Alberta
6/7/2020
CMPUT 401 - Library System Case Study
1
2Basis for Case Study
Taken from UML Toolkit by Hans-Erik Eriksson
and Magnus Penker, John Wiley Sons, NY, 1998.
3Requirements Statement
An initial text requirement specification for the
library application might look like this 1. The
system is to support the library functions of
acquisition, reservation, borrowing, and return
of books. 2. A library lends books and magazines
to borrowers, who are registered in the system,
as are the books and magazines. 3. A library
handles the purchase of new titles for the
library. Popular titles are bought in multiples
copies. Old books and magazines are removed when
they are out of date or in poor condition. 4. The
librarian is an employee of the library who
interacts with the customers (borrowers) and
whose work is supported by the system.
4Requirements Statement (cont)
5. A borrower can reserve a book or magazine that
is not currently available in the library, so
that when its returned or purchased by the
library, that person is notified. The reservation
is cancelled when the borrower checks out the
book or magazine or through an explicit canceling
procedure. 6. The library system can easily
create, update, and delete information about the
titles, borrowers, loans and reservations in the
system. 7. The system can run on all popular
technical platforms, including Windows, Mac and
UNIX and has a modern graphical user
interface. 8. The system is easy to extend with
new functionality.
The initial version of the system doesnt have to
handle the message that is sent to the borrower
when a reserved title becomes available, nor does
it have to check that a title has become overdue.
Additional requirements for future versions are
available.
5Rational Objectory Process
- Select use cases sketch scenarios criticality
and risk - Identify main classes and their responsibility
- Distribute behavior on classes
- Structure in subsystems, layers, define
interfaces - Define distribution and concurrency
- Implement architectural prototype
- Derive tests from use cases
- Evaluate architecture
- Iterate
6Use Case Analysis
7Use Case Development
8Sketching Scenarios
9Domain Analysis
10Domain Analysis
Domain classes are sketched at this stage. The
operations and attributes defined are not final.
Some of the operations can be defined by
examining the sketched scenarios in the use
cases.
11Class Identification
12Class Definition Elaboration
13Developing Scenarios
14Sequence Diagram for Lend Item
Where borrower doesnt have a reservation for the
title
15Architectural Design
16Architectural Design Strategy
Requirements
Real-World Objects
Application Objects
Interface Objects
Utility Objects
17Architecture for First Prototype
18GUI(Subsystem)Package
19Architecture Refinement
20Class Refinement
21Scenario Refinement
22Component Design
23Components for UI Package
24Components for Business Object Package
25System Deployment Diagram