HOME APPLIANCE 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 ??? 1. 2. 3. 4. 5. Saves time Save money (Long run) Self Maintenance Security When: you are in a traffic jam on the highway Makes life easy What: You set microwave oven in a slow cooking mode Slow cooking mode Overview of HACS System Cellphone, Laptop, PDA Temp Controller Microwave Server or HACS System Database Security System Accessing It • Input device • User Interface – Login, Initial Settings, Operations, Logout Interaction with HACS The 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 In case of f ire,user and the Fire Department are notif ied FireDepartment Options of the HACS Sy stem Alarm Alert Database User is an authenticated user checked by HACS while login process. Operate Microwave Manage Appliances <<uses>> CommonUser Monitor Appliances Operate Temperature Controller Operate Doors HACS Appliance Controller reports Security System Log Out User Administrator Operate Garage Doors <<uses>> In case of a break-in, the Police Department & user are notif ied Security Sy stem includes all doors, windows and garage door Break Entry Manage Accounts Police Department Use Case Diagram - Primary User Manage Account Adminstrator Manage Appliance Monitor Appliance Common User Database Login User Logout Modify Account Sequence & Collaboration Diagrams Sequence Diagram-Login aUser : User aUserInterface : UserInterface aLoginForm : LoginForm aDatabase : Database 1: SelectLogin() 2: CreateForm() 3: login() 4: Query(username,password) 5: GetResult() 6: SetAccStatus() 7: DisplayResult() This case can be i niti ated by User or Adminstrator Collaboration Diagram - Login 1: SelectLogin() aUserInterface : UserInterface aUser : User 3: login() 2: CreateForm() 6: SetAccStatus() 7: DisplayResult() 4: Query(username,password) aLoginForm : LoginForm 5: GetResult() aDatabase : Database Sequence Diagram – Logout aUser : User 1: SelectLogout() aUserInterface : UserInterface aLogoutForm : LogoutForm 2: CreateForm() 3: Input() 4: SetAccStatus(username, "logout") This Use case can either be initiated by User or Admin 5: DisplayResult() Collaboration Diagram Logout aUser : User 1: SelectLogout() 3: Input() aUserInterface : UserInterface 4: SetAccStatus(username, "logout") 5: DisplayResult() aLogoutForm : LogoutForm 2: CreateForm() Sequence Diagram - Manage Account aUserInterface : UserInterface aMaintainAccControl : MaintainAccControl anAccForm : AccForm anAdminstrator : Adminstrator aDatabase : Database It wil l make a call to the database fro authentci ation 1: SelectManageAcc 2: CreateControl 3: call Check Login Operations of manage account include Add Account, Remove Account, Modi fy Account 4: [not login] Exit() 5: Create Form() 6: Select Operation 7: Input 8: Update D B (an Acc Form) 9: Get Result() 10: DisplayResult() 11: Continue or Exit 12: Continue or Exit 13: [Continue] repeat step 5 Collaboration Diagram - Manage Account 10: DisplayResult() 6: Select Operation 7: Input 11: Continue or Exit anAccForm : AccForm anAdminstrator : Adminstrator 1: SelectManageAcc 8: Update D B (an Acc Form) 9: Get Result() aUserInterface : UserInterface 5: Create Form() 12: Continue or Exit 2: CreateControl 3: call Check Login 4: [not login] Exit() 13: [Continue] repeat step 5 aMaintainAccControl : MaintainAccControl aDatabase : Database Sequence Diagram - Modify Account aUserInterface : UserInterface aModifyAccControl : ModifyAccControl anModifyAccForm : ModifyAccForm aUser : User 1: SelectModifyAcc() 2: Create Control() aDatabase : Database It will make a call to the database fro authentciation 3: Call Check Login() 4: [not login] Exit() 5: Create Form() 6: Input() 7: Update DB(an ModifyAccForm) 8: GetResult() 9: DisplayResult() Collaboration Diagram Modify Account 3: Call Check Login() 4: [not login] Exit() 1: SelectModifyAcc() 2: Create Control() aUserInterface : UserInterface aModifyAccControl : ModifyAccControl aUser : User 6: Input() 5: Create Form() 9: DisplayResult() anModifyAccForm : ModifyAccForm 7: Update DB(an ModifyAccForm) 8: GetResult() aDatabase : Database Sequence Diagram - Manage Appliance aUser : User aAppControl : AppControl aAppInterface : AppInterface aAppForm : AppForm aDatabase : Database 1: SelectManageApp() 2: Create Control() The operations of managing this appliance include AddAppliance, Remove Appliance and M odify Appliance It will make a call to the database fro authentciation 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() This use case can be initiated both User and Adminstrator 13: [continue] repeat step 5 Collaboration Diagram - Manage Appliance 3: call Check Login() 4: [not Login] Exit() 13: [continue] repeat step 5 1: SelectManageApp() 2: Create Control() aAppInterface : AppInterface aAppControl : AppControl aUser : User 6: SelectOperation() 7: Input() 11: Continue or Exit() 5: Create Form() 12: Continue or Exit() 10: DisplayResult() 9: GetResult() aDatabase : Database 8: Update() aAppForm : AppForm Microwave Oven Sequence Diagram -Microwave Oven User HACS Microwave 1: login A user can check the status and change the m ode,tem p,ti m e at any poi nt of ti m e 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 turni ng off the m i crowave oven can be done anyti m e 14: turn off 15: turning off Collaboration Diagram Microwave Oven 1: login 3: select microwave 6: check status 8: set mode(cook,warm,defrost) 10: set temperature 12: set time 14: turn off 4: retrive available options User HACS 2: acknowledge and display operations 5: display available options 7: show status 9: update mode 11: update temperature 13: update time 15: turning off Microwave Sequence Diagram – Fire Alarm :FireAlarm :HACS :Oven The system maintains the information about the users phone number and Fire Department's number. 1: detect fire 2: fire alert 3: call fire dept The Fire Alarm is reset once the situation is under control. 4: call owner 5: switch off the oven Collaboration Diagram – Fire Alarm 3: call fire dept 4: call owner 1: detect fire 2: fire alert :FireAlarm :HACS 5: switch off the oven :Oven Security System Sequence Diagram – Security System ( Doors ) User is an authenticated user. : HACS : User : Controller check status() checkStatus() return results() openDoor() openDoor() opens door() closeDoor() closeDoor() closes door() Collaboration Diagram – Security System (Doors) 1: check status() 4: openDoor() 7: closeDoor() : HACS : User 3: return results() 6: opens door() 9: closes door() : Controller 2: checkStatus() 5: openDoor() 8: closeDoor() Sequence Diagram – Motion Sensor : MotionSensor hacs : HACS User is an authenticated user. : User select garage system switchOnSensor() switchSensorOn() sensorOn returnResults switchOffSensor() switchSensorOff() sensorOff returnResults Collaboration Diagram – Motion sensor 1: select garage system 2: switchOnSensor() 6: switchOffSensor() hacs : HACS : User 5: returnResults 9: returnResults 4: sensorOn 8: sensorOff : MotionSensor 3: switchSensorOn() 7: switchSensorOff() Sequence Diagram – Garage Door hacs : HACS : GarageDoor : User User is an authenticated User select garage system checkStatus() checkStatus() returnResults() openGarage() openGarage( ) lightOn() closeGarage() closeGarage( ) lightsOff() : GarageLight Collaboration Diagram – Garage Door 1: select garage system 2: checkStatus() 5: openGarage() 8: closeGarage() hacs : HACS : User User is an authenticated User 4: returnResults() 3: checkStatus() 6: openGarage( ) 9: closeGarage( ) : GarageDoor : GarageLight 7: lightOn() 10: lightsOff() Sequence Diagram – Break Entry :BreakEntryDetector : DetectorHandling : HouseBreakEntry : BreakEntryNotice : PoliceDepartment : user User is an authenticated user detectHouseBreakEntry() Emergency ie Police departments phone number and users number are stored in the devices Once the situation is under control, the detector is reset createControl() setEmergencyStatus() createBreakNotice() notify(Police Department) notify(user) Collaboration Diagram - BreakEntry 1: detectHouseBreakEntry() :BreakEntryDetector : DetectorHandling 2: createControl() 3: setEmergencyStatus() : BreakEntryNotice : HouseBreakEntry 4: createBreakNotice() 5: notify(Police Department) 6: notify(user) : PoliceDepartment : user Temperature Control Sequence Diagram – Set Temperature Control HACS is the controller class which will handle the UI events oHACS : HACS oTempratureController : CTempratureController oUser : User 1: IssueCommand ( T empratureDevi ce, setTemprature, desi re_temp ) 2: Command(SetTemprature, desire_temp) 3: SetTemprature(desire_temp) Collaboration Diagram - Set Temperature 1: IssueCommand ( TempratureDevice, setTemprature, desire_temp ) oUser : User oHACS : HACS 2: Command(SetTemprature, desire_temp) 3: SetTemprature(desire_temp) oTempratureController : CTempratureController Collaboration Diagram – Set Mode of Temperature Controller HACS is the controller class which will handle the UI events oHACS : HACS oUser : User oTempratureController : CTempratureController 1: IssueCommand ( TempratureDevice, setMode, desire_temp ) 2: Command(SetMode, iMode) 3: SetMode(iMode) Collaboration Diagram - SetMode oUser : User 1: IssueCommand ( TempratureDevice, setMode, desire_temp ) oHACS : HACS 2: Command(SetMode, iMode) 3: SetMode(iMode) oTempratureController : CTempratureController Class Diagrams Class Diagram - HACS Thank You Any Questions???