component level design
TRANSCRIPT
11/18/2014 1
• Md. Arif Ibne Ali – BSSE0308
• Md. Shafiuzzaman – BSSE0322
• Nadia Nahar – BSSE0327
11/18/2014 2
11/18/2014 3
User
user_typeuser_namepassworduser_statuse-mail
authenticate()search()renew()booking()
Administrator
user_namepassworde-mail
configure()authenticate()
Librarian
user_namepassworde-mail
issue()retrieve()add()edit()delete()
Report
report_nointended_userdatereport_type
notifyUser()blockUser()
Item
item_typecall_numberitem_statusassigned_user
issueItem()retrieveItem()itemAvailability()
Fine
fine_typefine_amountassigned_userassigned_itemfine_rateborrowing_duration
generateReport()updateUser()calculateFineAmount()
11/18/2014 4
11/18/2014 5
DAO
insert()update()delete()select()
GUI
menu_itemsthemeelements
update()link()
DB Connect
connectionStringdatabaseNamedatabaseUserPassworddatabaseType
connect()
11/18/2014 6
11/18/2014 7
search
renew
booking
User
user_typefacultystudnentresearcher
user_namepassworduser_status
blockedactivedeactivereported
inputItem()retreive()arrange()show()selectItem()showItemDetail()renewRequest()update()booking()
DAOSearch
inputItem()retreive()arrange()show()
DAORenew
selectItem()showItemDetail()renewRequest()update()
User
user_typeuser_namepassworduser_statuse-mail
authenticate()search()renew()booking()
11/18/2014 8
issue
retreive
Librarian
user_namepassworde-mail
selectUser()checkUserStatus()selectItem()checkItemStatus()show()updateItem()updateUser()selectUser()checkFine()selectItem() updateItem()updateUser()add()edit()delete()
DAOIssue
selectUser()checkUserStatus()selectItem()checkItemStatus()show()updateItem()updateUser()
DAORetreive
selectUser()checkFine()selectItem() updateItem()updateUser()
Librarian
user_namepassworde-mail
issue()retrieve()add()edit()delete()
11/18/2014 9
itemAvailability
Item
item_typeBookCD/DVDJournalNewspaperMagazine
call_numberitem_status
AvailableUnavailable
assigned_userGeneralSpecial
issueItem()retrieveItem()selectItemType()connectDatabase()countItemNo()notifyLibrarian()
DAOitemAvailability
selectItemType()connectDatabase()countItemNo()notifyLibrarian()
Item
item_typecall_numberitem_statusassigned_user
issueItem()retrieveItem()itemAvailability()
11/18/2014 10
notifyUser
blockUser
Report
report_nointended_userdatereport_type
fine_reportblock_reportreturn_reportyearly_report
selectUser() selectItem()getData()generateNotification()acquireEmailAddress()sendNotification()selectUser()getData()generateNotification()acquireEmailAddress()sendNotification()changeUserStatus
DAOnotifyUser
selectUser() selectItem()getData()generateNotification()acquireEmailAddress()sendNotification()
DAOblockUser
selectUser()getData()generateNotification()acquireEmailAddress()sendNotification()changeUserStatus()
Report
report_nointended_userdatereport_type
notifyUser()blockUser()
11/18/2014 11
calculateFine
generateReport
Fine
fine_typegeneral_finespecial_finedestruction_fine
fine_amountassigned_user
GeneralSpecial
assigned_itemAvailableUnavailable
fine_rateborrowing_durationgetDuration()getItemType()getRate()calculate()getNotification()calculateFineAmount()getUser()acquireEmailAddress()sendNotification()updateUser()
DAOcalculateFine
getDuration()getItemType()getRate()calculate()
DAOgenerateReport
getNotification()calculateFineAmount()getUser()acquireEmailAddress()sendNotification()updateUser()
Fine
fine_typefine_amountassigned_userassigned_itemfine_rateborrowing_duration
calculateFineAmount()generateReport()updateUser()
11/18/2014 12
11/18/2014 13
1.ItemList := InputItem(itemName)
1.ItemDetails := selectItem(itemName)2.ItemStatus := renewRequest(itemDetails)
11/18/2014 14
1.userDetails := selectUser(userName)2.userStatus := checkUserStatus (user)
3.itemDetails := selectItem(itemName)4.itemStatus := checkItemStatus (item)
11/18/2014 15
1.userDetails := selectUser(userName)
3.itemDetails := selectItem(itemName)
2.Fine := checkFine(User)
11/18/2014 16
1.itemAvailability := notify(Item,ItemNumber)
11/18/2014 17
1.userDetails := selectUser(userName)3.confirmation := sendNotification (report)
2.itemDetails := selectItem(itemName)
11/18/2014 18
1.userDetails := selectUser(userName)3.confirmation := sendNotification (report)4. confirmation := changeUserStatus(user)
2.itemDetails := selectItem(itemName)
11/18/2014 19
1.duration := getDuration(user,item)
3.fineRate := getRate(itemType)
2.itemType := getItemType(item)
11/18/2014 20
1.fineNotification := getNotification()2.userDetails := getUser()3. email := acquireEmail(user)
4.confirmation := reportGenerateAndSend(fineDetails)
11/18/2014 21
11/18/2014 22
search
renew
booking
itemList
<<interface>>search
PassNametoFindItem()
11/18/2014 23
search
renew
booking
selectItem
<<interface>>renew
PassItemtoRenew()
itemStatus
11/18/2014 24
issue
retreive
selectItem
<<interface>>issue
PassItemtoIssue()
selectUser
11/18/2014 25
issue
retreive
selectItem
<<interface>>retrieve
PassItemtoRetrieve()
selectUser
checkFine
11/18/2014 26
itemAvailability
notify
<<interface>>itemAvailability
NotifyLibarianAboutItemAvailability ()
11/18/2014 27
notifyUser
BlockUser
selectItem
<<interface>>notifyUser
sendNotificationtoUser()
selectUser
11/18/2014 28
notifyUser
BlockUser
selectItem
<<interface>>blockUser
passUsertoBlock()
selectUser,
changeUserStatus
11/18/2014 29
calculateFine
generateReport
getDuration
<<interface>>calculateFine
PassUserItemtoCalculateFine()
getFineRate
getItemType
11/18/2014 30
calculateFine
generateReport
getUser
<<interface>>generateReport
PassUserToGenetareReport()
getReport
11/18/2014 31
11/18/2014 32
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 33
Attribute Name Class Data Type/Data Structure
fine_type fine enum
fine_amount fine int
assigned_user fine,item int
assigned_item fine int
fine_rate fine double
borrowing_duration fine int
item_type item enum
call_number item int
item_status item enum
11/18/2014 34
11/18/2014 35
11/18/2014 36
Input Item
Validate Input
retrieve
Arrange Alphabetically
Arrange by Arrival Date
Arrange by Category
show
arrangeType=Name
arrangeType=ArrivalDate
arrangeType=Category
11/18/2014 37
Select Item
Show Item Details
Renew Request
Check Item Availability
Update
available
Not available
11/18/2014 38
Select User
Select Item
Check Item Availability
Update Item,User
available
Not available
Check User Availability
active
blocked
11/18/2014 39
Select User
Select Item
Update User
Check Fine
no
yes Generate Report
Update Item
11/18/2014 40
Select Item
Count Item No
Connect DB
Notify Librarian
11/18/2014 41
Select User
Get Data
Select Item
Generate Notification
Send Notification
11/18/2014 42
Select User
Get Data
Select Item
Generate Notification
Send Notification
Block User
11/18/2014 43
Get Duration
Get Rate
Get Item Type
Calculate
11/18/2014 44
Get Notification
Get User
Calculate Fine
Acquire Email
Send Notification
Update User
11/18/2014 45
• Date Source
– User Database
– Item Database
• Required Class
– DB Connect
– DAO
11/18/2014 46
DAO
insert()update()delete()select()
DB Connect
connectionStringdatabaseNamedatabaseUserPassworddatabaseType
connect()
11/18/2014 47
11/18/2014 48
Administrator
11/18/2014 49
Librarian
11/18/2014 50
User
11/18/2014 51
Item
11/18/2014 52
Report
11/18/2014 53
DAO
11/18/2014 54
11/18/2014 55
Central Processor
Database Server
Proxy Web Server
Remote PC
Control Panel Unit
Library PC http
Source Communication
Thank You!!!
11/18/2014 56