By Nadia Nahar 
11/18/2014 1
• Component Level Design 
– Library Circulation System 
• Designing Conventional Component 
11/18/2014 2
11/18/2014 3
11/18/2014 4
User 
user_type 
user_name 
password 
user_status 
e-mail 
authenticate() 
search() 
renew() 
booking() 
Administrator 
user_name 
password 
e-mail 
configure() 
authenticate() 
Librarian 
user_name 
password 
e-mail 
issue() 
retrieve() 
add() 
edit() 
delete() 
Report 
report_no 
intended_user 
date 
report_type 
notifyUser() 
blockUser() 
Item 
item_type 
call_number 
item_status 
assigned_user 
issueItem() 
retrieveItem() 
itemAvailability() 
Fine 
fine_type 
fine_amount 
assigned_user 
assigned_item 
fine_rate 
borrowing_duration 
generateReport() 
updateUser() 
calculateFineAmount() 
11/18/2014 5
11/18/2014 6
DAO 
insert() 
update() 
delete() 
select() 
GUI 
menu_items 
theme 
elements 
update() 
link() 
DB Connect 
connectionString 
databaseName 
databaseUser 
Password 
databaseType 
connect() 
11/18/2014 7
11/18/2014 8
issue 
retreive 
Librarian 
user_name 
password 
e-mail 
selectUser() 
checkUserStatus() 
selectItem() 
checkItemStatus() 
show() 
updateItem() 
updateUser() 
selectUser() 
checkFine() 
selectItem() 
updateItem() 
updateUser() 
add() 
edit() 
delete() 
DAIsOsue 
selectUser() 
checkUserStatus() 
selectItem() 
checkItemStatus() 
show() 
updateItem() 
updateUser() 
DAROetreive 
selectUser() 
checkFine() 
selectItem() 
updateItem() 
updateUser() 
Librarian 
user_name 
password 
e-mail 
issue() 
retrieve() 
add() 
edit() 
delete() 
11/18/2014 9
calculateFine 
generateReport 
Fine 
fine_type 
general_fine 
special_fine 
destruction_fine 
fine_amount 
assigned_user 
General 
Special 
assigned_item 
Available 
Unavailable 
fine_rate 
borrowing_duration 
getDuration() 
getItemType() 
getRate() 
calculate() 
getNotification() 
calculateFineAmount() 
getUser() 
acquireEmailAddress() 
sendNotification() 
updateUser() 
calcDuAlaOteFine 
getDuration() 
getItemType() 
getRate() 
calculate() 
DgAeOnerateReport 
getNotification() 
calculateFineAmount() 
getUser() 
acquireEmailAddress() 
sendNotification() 
updateUser() 
Fine 
fine_type 
fine_amount 
assigned_user 
assigned_item 
fine_rate 
borrowing_duration 
calculateFineAmount() 
generateReport() 
updateUser() 
11/18/2014 10
11/18/2014 11
1.userDetails := 
selectUser(userName) 
2.userStatus := 
checkUserStatus (user) 
3.itemDetails := 
selectItem(itemName) 
4.itemStatus := 
checkItemStatus (item) 
11/18/2014 12
1.userDetails := 
selectUser(userName) 
3.itemDetails := 
selectItem(itemName) 
2.Fine := checkFine(User) 
11/18/2014 13
1.duration := 
getDuration(user,item) 
3.fineRate := 
getRate(itemType) 
2.itemType := 
getItemType(item) 
11/18/2014 14
11/18/2014 15
issue 
retreive 
selectItem 
<<interface>> 
issue 
PassItemtoIssue() 
selectUser 
11/18/2014 16
issue 
retreive 
selectItem 
<<interface>> 
retrieve 
PassItemtoRetrieve() 
checkFine 
selectUser 
11/18/2014 17
calculateFine 
generateReport 
getDuration 
<<interface>> 
calculateFine 
PassUserItemtoCalculateFi 
ne() 
getItemType 
getFineRate 
11/18/2014 18
11/18/2014 19
Attribute Name Class Data Type/Data Structure 
user_type user enum 
user_name user,administrator,librarian string 
password user,administrator,librarian string 
user_status user enum 
e-mail user,administrator,librarian string 
report_no report int 
intended_user report int 
date report date 
report_type report enum 
11/18/2014 20
11/18/2014 21
Input Item 
Validate Input 
retrieve 
Arrange Alphabetically 
Arrange by Arrival Date 
Arrange by Category 
show 
arrangeType=Name 
arrangeType=ArrivalDate 
arrangeType=Category 
11/18/2014 22
Select User 
Check User 
Availability 
active 
Select Item 
Check Item 
Availability 
available 
blocked 
Not available 
Update Item,User 
11/18/2014 23
Select User 
Check Fine 
no 
Select Item 
Update Item 
Update User 
yes Generate Report 
11/18/2014 24
11/18/2014 25
• Date Source 
– User Database 
– Item Database 
• Required Class 
– DB Connect 
– DAO 
DAO 
insert() 
update() 
delete() 
select() 
DB Connect 
connectionString 
databaseName 
databaseUser 
Password 
databaseType 
connect() 
11/18/2014 26
11/18/2014 27
Librarian 
11/18/2014 28
11/18/2014 29 
Item
Report 
11/18/2014 30
11/18/2014 31
Control Panel 
Unit 
Secure Communication 
Central Processor 
Library PC http 
Database Server 
Remote PC 
Proxy Web 
Server 
11/18/2014 32
11/18/2014 33
• Graphical design notation 
• Tabular design notation 
• Program design language 
11/18/2014 34
Select User 
Check User 
Availability 
active 
Select Item 
Check Item 
Availability 
available 
issue retrieve 
Get Selection 
blocked 
Not available 
Update Item,User 
Select User 
Check Fine 
no 
Select Item 
Update Item 
Update User 
yes 
Generate Report 
11/18/2014 35
Rules 
Conditions 1 2 3 4 
User Status F T F T 
Item Status F F T T 
Actions 
Issue Item  
Don’t Issue    
Rules 
Conditions 1 2 
Check Fine F T 
Actions 
Retrieve Item  
Fine Report  
11/18/2014 36
Component Librarian: 
The intent of this component is to manage the circulation of items of the library 
and also update item data. 
Initialize all system ports and reset all hardware 
select user(username) 
contact with user class and get the details of an user 
specified by username 
check user_status(user) 
if user.status=“blocked” 
return “user is blocked” 
elseif user.status=“active” 
return “user is active” 
…………………………………………………………………… 
…………………………………………………………………………… 
11/18/2014 37
11/18/2014 38

Component based software engineering

  • 1.
    By Nadia Nahar 11/18/2014 1
  • 2.
    • Component LevelDesign – Library Circulation System • Designing Conventional Component 11/18/2014 2
  • 3.
  • 4.
  • 5.
    User user_type user_name password user_status e-mail authenticate() search() renew() booking() Administrator user_name password e-mail configure() authenticate() Librarian user_name password e-mail issue() retrieve() add() edit() delete() Report report_no intended_user date report_type notifyUser() blockUser() Item item_type call_number item_status assigned_user issueItem() retrieveItem() itemAvailability() Fine fine_type fine_amount assigned_user assigned_item fine_rate borrowing_duration generateReport() updateUser() calculateFineAmount() 11/18/2014 5
  • 6.
  • 7.
    DAO insert() update() delete() select() GUI menu_items theme elements update() link() DB Connect connectionString databaseName databaseUser Password databaseType connect() 11/18/2014 7
  • 8.
  • 9.
    issue retreive Librarian user_name password e-mail selectUser() checkUserStatus() selectItem() checkItemStatus() show() updateItem() updateUser() selectUser() checkFine() selectItem() updateItem() updateUser() add() edit() delete() DAIsOsue selectUser() checkUserStatus() selectItem() checkItemStatus() show() updateItem() updateUser() DAROetreive selectUser() checkFine() selectItem() updateItem() updateUser() Librarian user_name password e-mail issue() retrieve() add() edit() delete() 11/18/2014 9
  • 10.
    calculateFine generateReport Fine fine_type general_fine special_fine destruction_fine fine_amount assigned_user General Special assigned_item Available Unavailable fine_rate borrowing_duration getDuration() getItemType() getRate() calculate() getNotification() calculateFineAmount() getUser() acquireEmailAddress() sendNotification() updateUser() calcDuAlaOteFine getDuration() getItemType() getRate() calculate() DgAeOnerateReport getNotification() calculateFineAmount() getUser() acquireEmailAddress() sendNotification() updateUser() Fine fine_type fine_amount assigned_user assigned_item fine_rate borrowing_duration calculateFineAmount() generateReport() updateUser() 11/18/2014 10
  • 11.
  • 12.
    1.userDetails := selectUser(userName) 2.userStatus := checkUserStatus (user) 3.itemDetails := selectItem(itemName) 4.itemStatus := checkItemStatus (item) 11/18/2014 12
  • 13.
    1.userDetails := selectUser(userName) 3.itemDetails := selectItem(itemName) 2.Fine := checkFine(User) 11/18/2014 13
  • 14.
    1.duration := getDuration(user,item) 3.fineRate := getRate(itemType) 2.itemType := getItemType(item) 11/18/2014 14
  • 15.
  • 16.
    issue retreive selectItem <<interface>> issue PassItemtoIssue() selectUser 11/18/2014 16
  • 17.
    issue retreive selectItem <<interface>> retrieve PassItemtoRetrieve() checkFine selectUser 11/18/2014 17
  • 18.
    calculateFine generateReport getDuration <<interface>> calculateFine PassUserItemtoCalculateFi ne() getItemType getFineRate 11/18/2014 18
  • 19.
  • 20.
    Attribute Name ClassData Type/Data Structure user_type user enum user_name user,administrator,librarian string password user,administrator,librarian string user_status user enum e-mail user,administrator,librarian string report_no report int intended_user report int date report date report_type report enum 11/18/2014 20
  • 21.
  • 22.
    Input Item ValidateInput retrieve Arrange Alphabetically Arrange by Arrival Date Arrange by Category show arrangeType=Name arrangeType=ArrivalDate arrangeType=Category 11/18/2014 22
  • 23.
    Select User CheckUser Availability active Select Item Check Item Availability available blocked Not available Update Item,User 11/18/2014 23
  • 24.
    Select User CheckFine no Select Item Update Item Update User yes Generate Report 11/18/2014 24
  • 25.
  • 26.
    • Date Source – User Database – Item Database • Required Class – DB Connect – DAO DAO insert() update() delete() select() DB Connect connectionString databaseName databaseUser Password databaseType connect() 11/18/2014 26
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
    Control Panel Unit Secure Communication Central Processor Library PC http Database Server Remote PC Proxy Web Server 11/18/2014 32
  • 33.
  • 34.
    • Graphical designnotation • Tabular design notation • Program design language 11/18/2014 34
  • 35.
    Select User CheckUser Availability active Select Item Check Item Availability available issue retrieve Get Selection blocked Not available Update Item,User Select User Check Fine no Select Item Update Item Update User yes Generate Report 11/18/2014 35
  • 36.
    Rules Conditions 12 3 4 User Status F T F T Item Status F F T T Actions Issue Item  Don’t Issue    Rules Conditions 1 2 Check Fine F T Actions Retrieve Item  Fine Report  11/18/2014 36
  • 37.
    Component Librarian: Theintent of this component is to manage the circulation of items of the library and also update item data. Initialize all system ports and reset all hardware select user(username) contact with user class and get the details of an user specified by username check user_status(user) if user.status=“blocked” return “user is blocked” elseif user.status=“active” return “user is active” …………………………………………………………………… …………………………………………………………………………… 11/18/2014 37
  • 38.