Upload
drew-clampitt
View
222
Download
0
Tags:
Embed Size (px)
Citation preview
HOME APPLIANCE HOME APPLIANCE CONTROL SYSTEM CONTROL SYSTEM HOME APPLIANCE HOME APPLIANCE CONTROL SYSTEM CONTROL SYSTEM
Kunal Patel Arun Immaneni Saurabh Kapoor Meghna Atluri Akila Muthuveeraganapathy
Today’s Topic on HACS
• Introduction• System Design• User Interaction• Use Case Diagram • Sequence and Collaboration Diagram• Class Diagram
What is HACS?
• Home Appliance Control System accessed by a remote device such as mobile phone or a palm-top to allow a home owner to control, monitor and coordinate home appliances.
How it happens
Why HACS ???
When: you are in a traffic jam on the highwayWhat: You set microwave oven in a slow cooking mode
Slow cooking mode
1. Saves time2. Save money (Long run)3. Self Maintenance4. Security5. Makes life easy
Temp Controller
Microwave
Security System
Cellphone, Laptop, PDA
Server or HACS System
Overview of HACS System
Database
Accessing It• Input device • User Interface – Login, Initial Settings,
Operations, Logout
Interaction with HACSThe user can interact through any input device such as
the Laptop, Palmtop, Cell phone etc..• The user interface allows the user to enter or tell the
user name and password.• The user can also provide fingerprint or retinal scan for
authentication.• The system then transfers the details to the
authentication server and the authentication server allows or denies the user according to the information provided.
• After Authentication, the user is allowed access into the system
System Design• HACS is a system which is controlled by a remote
system such as a cell phone, and controls home appliances such as VCR
• In case of emergency such as fire, the user or an organization such as Fire Department should be notified.
• Also, HACS should have a database of information about the users and appliances.
Use Case Diagrams
Use Case Diagram - User
User is an authenticated user checked by HACS while login process.
Security Sy stem includes all doors, windows and garage door
Options of the HACS Sy stem
FireDepartment
Alarm Alert
Operate Doors
Operate Garage Doors
Police Department
Break Entry
In case of f ire,user and the Fire Department are notif ied
In case of a break-in, the Police Department & user are notif ied
User
Monitor AppliancesCommonUser
Manage Accounts
Administrator
Manage Appliances
Operate Temperature Controller
Security System
Operate Microwave
Database
Log Out
HACS Appliance Controller
<<uses>>
<<uses>>
reports
Use Case Diagram - Primary User
Common User
Manage Appliance
Monitor Appliance
Login
User
Logout
Adminstrator
Modify Account
Manage Account
Database
Sequence & Collaboration Diagrams
Sequence Diagram-Login
aUser : UseraUserInterface :
UserInterfaceaLoginForm :
LoginForm
aDatabase : Database
1: SelectLogin()
2: CreateForm()
3: login()
4: Query(username,password)
5: GetResult()
6: SetAccStatus()
7: DisplayResult()
This case can be initiated by User or Adminstrator
Collaboration Diagram - Login
aUser : User
aUserInterface : UserInterface
aLoginForm : LoginForm
aDatabase : Database
6: SetAccStatus()7: DisplayResult()
1: SelectLogin()
3: login() 2: CreateForm()
4: Query(username,password)
5: GetResult()
Sequence Diagram – Logout
aUser : User
aUserInterface : UserInterface
aLogoutForm : LogoutForm
1: SelectLogout()
2: CreateForm()
3: Input()
4: SetAccStatus(username, "logout")
5: DisplayResult()This Use case can either be ini tiated by User or Admin
Collaboration Diagram - Logout
aUser : User
aUserInterface : UserInterface
aLogoutForm : LogoutForm
4: SetAccStatus(username, "logout")5: DisplayResult()
1: SelectLogout()
3: Input()
2: CreateForm()
Sequence Diagram - Manage Account
It wil l make a call to the database fro authentciation
anAdminstrator : Adminstrator
aUserInterface : UserInterface
aMaintainAccControl : MaintainAccControl
anAccForm : AccForm
aDatabase : Database
1: SelectManageAcc
2: CreateControl
3: call Check Login
4: [not login] Exit()
5: Create Form()
8: Update D B (an Acc Form)
9: Get Result()
10: DisplayResult()
12: Continue or Exit
13: [Continue] repeat step 5
6: Select Operation
7: Input
11: Continue or Exit
Operations of manage account include Add Account, Remove Account, Modi fy Account
Collaboration Diagram - Manage Account
anAdminstrator : Adminstrator
aUserInterface : UserInterface
anAccForm : AccForm
aDatabase : Database
aMaintainAccControl : MaintainAccControl
3: call Check Login4: [not login] Exit()
10: DisplayResult()
13: [Continue] repeat step 5
1: SelectManageAcc
6: Select Operation7: Input
11: Continue or Exit
2: CreateControl
8: Update D B (an Acc Form)9: Get Result()
5: Create Form()
12: Continue or Exit
Sequence Diagram - Modify Account
aUser : User
aUserInterface : UserInterface
aModifyAccControl : ModifyAccControl
anModifyAccForm : ModifyAccForm aDatabase :
Database
1: SelectModifyAcc()
2: Create Control()
3: Call Check Login()
4: [not login] Exit()
5: Create Form()
6: Input()
7: Update DB(an ModifyAccForm)
8: GetResult()
9: DisplayResult()
It wil l make a call to the database fro authentciation
Collaboration Diagram - Modify Account
aUser : User
aUserInterface : UserInterface
aModifyAccControl : ModifyAccControl
anModifyAccForm : ModifyAccForm
aDatabase : Database
3: Call Check Login()4: [not login] Exit()
9: DisplayResult()
2: Create Control()
5: Create Form()
7: Update DB(an ModifyAccForm)
8: GetResult()
1: SelectModifyAcc()
6: Input()
Sequence Diagram - Manage Appliance
aUser : UseraAppInterface :
AppInterfaceaAppControl :
AppControlaAppForm :
AppFormaDatabase :
Database
1: SelectManageApp()
2: Create Control()
3: call Check Login()
4: [not Login] Exit()
5: Create Form()
6: SelectOperation()
7: Input()
8: Update()
9: GetResult()
10: DisplayResult()
11: Continue or Exit()
12: Continue or Exit()
13: [continue] repeat step 5
The operations of managing this appl iance include AddAppliance, Remove Appliance and Modi fy Appl iance
This use case can be ini tiated both User and Adminstrator
It wil l make a call to the database fro authentciation
Collaboration Diagram - Manage Appliance
aUser : User
aAppInterface : AppInterface
aAppControl : AppControl
aAppForm : AppForm
aDatabase : Database
1: SelectManageApp()2: Create Control()
3: call Check Login()4: [not Login] Exit()
5: Create Form()
6: SelectOperation()7: Input()
8: Update()
9: GetResult()
10: DisplayResult()
11: Continue or Exit()
12: Continue or Exit()
13: [continue] repeat step 5
Microwave Oven
User HACS Microwave
1: login
2: acknowledge and display operations
3: select microwave
4: retrive available options
5: display available options
6: check status
7: show status
8: set mode(cook,warm,defrost)
9: update mode
10: set temperature
11: update temperature
12: set time
13: update time
14: turn off
15: turning off
A user can check the status and change the mode,temp,time at any point of time
turning off the microwave oven can be done anytime
Sequence Diagram -Microwave Oven
User HACS
Microwave
4: retrive available options
1: login3: select microwave
6: check status8: set mode(cook,warm,defrost)
10: set temperature12: set time14: turn off
2: acknowledge and display operations5: display available options
7: show status
9: update mode11: update temperature
13: update time15: turning off
Collaboration Diagram - Microwave Oven
Sequence Diagram – Fire Alarm
:FireAlarm :HACS :Oven
1: detect fire
2: fire alert
3: call fire dept
4: call owner
5: switch off the oven
The system maintains the information about the users phone number and Fire Department's number.
The Fire Alarm is reset once the situation is under control.
Collaboration Diagram – Fire Alarm
:FireAlarm :HACS
:Oven
1: detect fire3: call fire dept4: call owner
2: fire alert
5: switch off the oven
Security System
Sequence Diagram – Security System ( Doors )
: User : HACS : Controller
openDoor()
openDoor()
opens door()
check status()
checkStatus()
return results()
closeDoor()
closeDoor()
closes door()
User is an authenticated user.
Collaboration Diagram – Security System (Doors)
: User
: HACS
: Controller
6: opens door()9: closes door()
4: openDoor()1: check status()
7: closeDoor()
5: openDoor()2: checkStatus()
8: closeDoor()
3: return results()
Sequence Diagram – Motion Sensor
: User
hacs : HACS : MotionSensor
switchOnSensor()
switchOffSensor()
select garage system
User is an authenticated user.
switchSensorOn()
sensorOn
returnResults
switchSensorOff()
sensorOff
returnResults
Collaboration Diagram – Motion sensor
: User
hacs : HACS
: MotionSensor
4: sensorOn8: sensorOff
1: select garage system2: switchOnSensor()6: switchOffSensor()
3: switchSensorOn()7: switchSensorOff()
5: returnResults9: returnResults
Sequence Diagram – Garage Door
: Userhacs : HACS : GarageDoor : GarageLight
select garage system
openGarage()
openGarage( )
lightOn()
closeGarage()
closeGarage( )
lightsOff()
checkStatus()
checkStatus()
returnResults()
User is an authenticated User
Collaboration Diagram – Garage Door
: User
hacs : HACS
: GarageDoor : GarageLight
1: select garage system
5: openGarage()8: closeGarage()
2: checkStatus()
6: openGarage( )9: closeGarage( )
3: checkStatus()
4: returnResults()
7: lightOn()10: lightsOff()
User is an authenticated User
Sequence Diagram – Break Entry
:BreakEntryDetector : DetectorHandling : HouseBreakEntry : BreakEntryNotice : PoliceDepartment : user
detectHouseBreakEntry()
createControl()
setEmergencyStatus()
createBreakNotice()
notify(Police Department)
notify(user)
Emergency ie Police departments phone number and users number are stored in the devices
Once the situation is under control, the detector is reset
User is an authenticated user
Collaboration Diagram - BreakEntry
:BreakEntryDetector : DetectorHandling
: HouseBreakEntry : BreakEntryNotice
: PoliceDepartment : user
3: setEmergencyStatus()
1: detectHouseBreakEntry()
2: createControl()
4: createBreakNotice()
5: notify(Police Department)6: notify(user)
Temperature Control
Sequence Diagram – Set Temperature Control
oUser : User
oHACS : HACS oTempratureController : CTempratureController
HACS is the controller class which will handle the UI events
1: IssueCommand ( TempratureDevice, setTemprature, desire_temp )
2: Command(SetTemprature, desire_temp)
3: SetTemprature(desire_temp)
Collaboration Diagram - Set Temperature
oTempratureController : CTempratureController
oUser : UseroHACS :
HACS
1: IssueCommand ( TempratureDevice, setTemprature, desire_temp )
2: Command(SetTemprature, desire_temp)
3: SetTemprature(desire_temp)
Collaboration Diagram – Set Mode of Temperature Controller
oUser : User
oHACS : HACS oTempratureController : CTempratureController
HACS is the controller class which will handle the UI events
1: IssueCommand ( TempratureDevice, setMode, desire_temp )
2: Command(SetMode, iMode)
3: SetMode(iMode)
Collaboration Diagram - SetMode
oHACS : HACS
oUser : User
oTempratureController : CTempratureController
1: IssueCommand ( TempratureDevice, setMode, desire_temp )
2: Command(SetMode, iMode)
3: SetMode(iMode)
Class Diagrams
Class Diagram - HACS
User(from HACS)
Oven
name
opname()
(from HACS)
Temprature Controller
tempmode
setmode()settemp()
(from HACS)
System Admin
UsernamePassword
DeleteUser()CreateUser()
(from HACS)
Remote access can be Mobile Phone,Computer...
GarageDoor
doorState : booleanposition : int
getDoorPosition()openGarage()closeGarage()checkGarageState()
GarageLight
lightState : boolean
checkLightState()turnLightOn()turnLightOff()
Authentication Process
Privileges
authenticateUser()
(from HACS)
ApplianceapplianceType
create()delete()
H.A.C.S
name
login()logout()callCops()selectAppliance()callOwner()callFireDept()...()
(from HACS)
*
1
*
1
Remote Access System
IpaddressUserInfoaccessDeviceType
submitUserInput()
(from HACS)
1*
1*
CommonUser
usernamepassword
(from HACS)
DoorController interfaces with the door to perform the desired operation
Door
doorState : booleanbreakEntry : booleandoorNumber : int
openDoor()closeDoor()checkdoorState()checkBreakEntry()
Controller
operation : stringdoorNumber : int
performOperation(operation, doorNumber)
MotionSensor
sensorState : boolean
checkSensorState()switchSensorOn()switchSensorOff()
Thank YouThank You
Any Questions???Any Questions???
Thank YouThank You
Any Questions???Any Questions???