component based software engineering

38
By Nadia Nahar 11/18/2014 1

Upload: nadia-nahar

Post on 07-Jul-2015

288 views

Category:

Engineering


1 download

DESCRIPTION

Component based software engineering

TRANSCRIPT

Page 1: Component based software engineering

By Nadia Nahar

11/18/2014 1

Page 2: Component based software engineering

• Component Level Design

– Library Circulation System

• Designing Conventional Component

11/18/2014 2

Page 3: Component based software engineering

11/18/2014 3

Page 4: Component based software engineering

11/18/2014 4

Page 5: Component based software engineering

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 5

Page 6: Component based software engineering

11/18/2014 6

Page 7: Component based software engineering

DAO

insert()update()delete()select()

GUI

menu_itemsthemeelements

update()link()

DB Connect

connectionStringdatabaseNamedatabaseUserPassworddatabaseType

connect()

11/18/2014 7

Page 8: Component based software engineering

11/18/2014 8

Page 9: Component based software engineering

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

Page 10: Component based software engineering

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 10

Page 11: Component based software engineering

11/18/2014 11

Page 12: Component based software engineering

1.userDetails := selectUser(userName)2.userStatus := checkUserStatus (user)

3.itemDetails := selectItem(itemName)4.itemStatus := checkItemStatus (item)

11/18/2014 12

Page 13: Component based software engineering

1.userDetails := selectUser(userName)

3.itemDetails := selectItem(itemName)

2.Fine := checkFine(User)

11/18/2014 13

Page 14: Component based software engineering

1.duration := getDuration(user,item)

3.fineRate := getRate(itemType)

2.itemType := getItemType(item)

11/18/2014 14

Page 15: Component based software engineering

11/18/2014 15

Page 16: Component based software engineering

issue

retreive

selectItem

<<interface>>issue

PassItemtoIssue()

selectUser

11/18/2014 16

Page 17: Component based software engineering

issue

retreive

selectItem

<<interface>>retrieve

PassItemtoRetrieve()

selectUser

checkFine

11/18/2014 17

Page 18: Component based software engineering

calculateFine

generateReport

getDuration

<<interface>>calculateFine

PassUserItemtoCalculateFine()

getFineRate

getItemType

11/18/2014 18

Page 19: Component based software engineering

11/18/2014 19

Page 20: Component based software engineering

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

Page 21: Component based software engineering

11/18/2014 21

Page 22: Component based software engineering

11/18/2014 22

Input Item

Validate Input

retrieve

Arrange Alphabetically

Arrange by Arrival Date

Arrange by Category

show

arrangeType=Name

arrangeType=ArrivalDate

arrangeType=Category

Page 23: Component based software engineering

11/18/2014 23

Select User

Select Item

Check Item Availability

Update Item,User

available

Not available

Check User Availability

active

blocked

Page 24: Component based software engineering

11/18/2014 24

Select User

Select Item

Update User

Check Fine

no

yes Generate Report

Update Item

Page 25: Component based software engineering

11/18/2014 25

Page 26: Component based software engineering

• Date Source

– User Database

– Item Database

• Required Class

– DB Connect

– DAO

11/18/2014 26

DAO

insert()update()delete()select()

DB Connect

connectionStringdatabaseNamedatabaseUserPassworddatabaseType

connect()

Page 27: Component based software engineering

11/18/2014 27

Page 28: Component based software engineering

11/18/2014 28

Librarian

Page 29: Component based software engineering

11/18/2014 29

Item

Page 30: Component based software engineering

11/18/2014 30

Report

Page 31: Component based software engineering

11/18/2014 31

Page 32: Component based software engineering

11/18/2014 32

Central Processor

Database Server

Proxy Web Server

Remote PC

Control Panel Unit

Library PC http

Secure Communication

Page 33: Component based software engineering

11/18/2014 33

Page 34: Component based software engineering

• Graphical design notation

• Tabular design notation

• Program design language

11/18/2014 34

Page 35: Component based software engineering

11/18/2014 35

Select User

Select Item

Check Item Availability

Update Item,User

available

Not available

Check User Availability

active

blocked

Select User

Select Item

Update User

Check Fine

no

yes

Generate Report

Update Item

Get Selection

issue retrieve

Page 36: Component based software engineering

Conditions 1 2 3 4

User Status F T F T

Item Status F F T T

Actions

Issue Item

Don’t Issue

11/18/2014 36

Rules

Conditions 1 2

Check Fine F T

Actions

Retrieve Item

Fine Report

Rules

Page 37: Component based software engineering

11/18/2014 37

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”

……………………………………………………………………

……………………………………………………………………………

Page 38: Component based software engineering

11/18/2014 38