1 home appliance control system (hacs) students: hui chen; yaguang zhou cs6359 object-oriented...
DESCRIPTION
3 Project Overview HACS is a system which is controlled by a remote system such as a cell phone, and controls home appliances such as VCR HACSRemote system ApplianceTRANSCRIPT
1
Home Appliance Control System Home Appliance Control System (HACS)(HACS)
Students: Hui Chen; Yaguang Zhou
CS6359 Object-Oriented Analysis & DesignProf. Lawrence ChungComputer Science DepartmentUniversity of Texas at DallasSummer 2005
Project Presentation
2
• Project Overview• Use Case Diagrams• Interaction Diagrams• Class Diagrams• Statechart and Activity Diagrams• Component Diagram• Deployment Diagram
ContentsContents
3
Project OverviewProject OverviewHACS is a system which is controlled by a remote system such as a cell phone, and controls home appliances such as VCR
HACSRemote system Appliance
4
Project OverviewProject Overview
In case of emergency such as fire, the user or an organization such as Fire Department should be notified.
User
Organization
HACS Detector
5
Project OverviewProject Overview
Also, HACS should have a database of information about the users and appliances.
Individual HACS Database
6
Use Case Diagrams: Use Case Diagrams: Subsystem levelSubsystem level
Administrator
User
Database
Appliance
EmergencyDepartment
Detector
Operation
Emergency
Maintainence
7
Use Case Diagrams: Use Case Diagrams: Database maintenanceDatabase maintenance
Logout
ManageAppliance
ManageAccount
ModifyAccount
Administrator
User
DatabaseLoginCommonUser
8
Use Case Diagrams: Use Case Diagrams: Appliance OperationAppliance Operation
VCR
Heater
AddVCRTask
SetHeaterUser
WaterSprinklerSetWaterSprinkler
Appliance
9
Use Case Diagrams: Use Case Diagrams: Emergency controlEmergency control
DetectorEmergencyDepartment
FireDetector
FireDepartment
HouseOnFire
BreakEntryDetector
PoliceDepartment
User
HouseBreakEntry
10
Sequence Diagrams: Sequence Diagrams: LoginLogin
aUser : User
aUserInterface : UserInterface
aLoginForm : LoginForm
aDatabase : Database
1: SelectLogin( )
3: Input( )
2: CreateForm( )
4: Query(username, password)
5: GetResult()
6: SetAccStatus(name, "login")
7: DisplayResult( )
This use case can be initiated by User or Administrator.
11
as
Collaboration Diagrams: Collaboration Diagrams: LoginLogin
aUser : User
aDatabase : Database
aLoginForm : LoginForm
6: SetAccStatus(name, "login")7: DisplayResult( )
aUserInterface : UserInterface
1: SelectLogin( )
3: Input( )
2: CreateForm( )4: Query(username, password)5: GetResult()
12
Sequence Diagrams: Sequence Diagrams: LogoutLogout
aUser : User
aUserInterface : UserInterface
aLogoutForm : LogoutForm
1: SelectLogout( )
2: CreateForm( )
3: Input( )
4: SetAccStatus(username, "logout")
5: DisplayResult( )
This use case can be initiated by User or Administrator.
13
Collaboration Diagrams: Collaboration Diagrams: LogoutLogout
aUser : User
aUserInterface : UserInterface
aLogoutForm : LogoutForm
4: SetAccStatus(username, "logout")5: DisplayResult( )
1: SelectLogout( )
3: Input( )
2: CreateForm( )
14
Sequence Diagrams: Sequence Diagrams: Manage AccountManage Account
anAdministrator : Administrator
aUserInterface : UserInterface
aMaintainAccControl : MaintainAccControl
anAccForm : AccForm
aDadtabase : Database
1: SelectManageAcc( )2: CreateControl( )
7: Input( )
8: UpdateDB(anAccForm)
10: DisplayResult( )
The operations of managing account include AddAccount, RemoveAccount and ModifyAccount.
3: call CheckLogin()
6: SelectOperation( )
5: CreateForm( )
13: [continue] repeat step 5
9: GetResult()
11: ContinueOrExit( )
12: ContinueOrExit( )
4: [not login] Exit()
15
Collaboration Diagrams: Collaboration Diagrams: Manage AccountManage Account
anAdministrator : Administrator
aUserInterface : UserInterface
aMaintainAccControl : MaintainAccControl
anAccForm : AccForm
aDadtabase : Database
3: call CheckLogin()
13: [continue] repeat step 54: [not login] Exit()
10: DisplayResult( )
1: SelectManageAcc( )
6: SelectOperation( )7: Input( )
11: ContinueOrExit( )
2: CreateControl( )
5: CreateForm( )
12: ContinueOrExit( )
8: UpdateDB(anAccForm)
9: GetResult()
16
Sequence Diagrams: Sequence Diagrams: Maintain ApplianceMaintain Appliance
anAdministrator : Administrator
aUserInterface : UserInterface
aMaintainApplianceControl : MaintainApplianceControl
anApplianceForm : ApplianceForm
aDatabase : Database
1: SelectManageAppliance( )
2: CreateControl( )
6: SelectOperation( )
7: Input( )
8: UpdateDB(anApplianceForm)
9: GetResult()
10: DisplayResult( )
11: ContinueOrExit( )
The operations of managing appliance include AddAppliance, RemoveAppliance and ModifyAppliance.
12: ContinueOrExit( )
3: call CheckLogin()
4: [not login] Exit()
13: [continue] repeat step 5
5: CreateForm( )
17
Collaboration Diagrams: Collaboration Diagrams: Maintain applianceMaintain appliance
anAdministrator : Administrator
aDatabase : Database
aUserInterface : UserInterface
aMaintainApplianceControl : MaintainApplianceControl
anApplianceForm : ApplianceForm
10: DisplayResult( )
4: [not login] Exit()3: call CheckLogin()
13: [continue] repeat step 5
1: SelectManageAppliance( )
6: SelectOperation( )7: Input( )
11: ContinueOrExit( )
2: CreateControl( )
12: ContinueOrExit( )
5: CreateForm( )
8: UpdateDB(anApplianceForm)
9: GetResult()
18
Sequence Diagrams: Sequence Diagrams: Modify AccountModify Account
aUser : User
aUserInterface : UserInterface
aModifyAccControl : ModifyAccControl
anModifyAccForm : ModifyAccForm
aDatabase : Database
1: SelectModifyAcc( )
2: CreateControl( )
3: call CheckLogin()
4: [not login] Exit()
5: CreateForm( )
6: Input( )
7: UpdateDB(anModifyAccForm)
8: GetResult()
9: DisplayResult( )
19
ere
Collaboration Diagrams: Collaboration Diagrams: Modify AccountModify Account
aUser : User
aDatabase : Database
aUserInterface : UserInterface
aModifyAccControl : ModifyAccControl
anModifyAccForm : ModifyAccForm
3: call CheckLogin()4: [not login] Exit()9: DisplayResult( )
1: SelectModifyAcc( )
6: Input( )
2: CreateControl( )
5: CreateForm( )
7: UpdateDB(anModifyAccForm)
8: GetResult()
20
Sequence Diagrams: Sequence Diagrams: Add VCR TaskAdd VCR Task
aUser : User
aUserInterface : UserInterface
anAddVCRTaskControl : AddVCRTaskControl
aVCRTaskForm : VCRTaskForm
aVCRController : VCRController
aVCR : VCR
1: SelectAddVCRTask( )
2: CreateControl( )
3: call CheckLogin()
4: [not login] Exit()
5: CreateForm( )
6: Input( )
7: AddTask( )
8: AddTask()
9: GetResult()
10: DisplayResult( )
11: ContinueOrExit( )
13: [continue] repeat step 5
12: ContinueOrExit( )
21
Collaboration Diagrams: Collaboration Diagrams: Add VCR TaskAdd VCR Task
aUser : User
aVCR : VCR
aUserInterface : UserInterface
anAddVCRTaskControl : AddVCRTaskControl
aVCRTaskForm : VCRTaskForm
aVCRController : VCRController
3: call CheckLogin()4: [not login] Exit()
13: [continue] repeat step 510: DisplayResult( )
1: SelectAddVCRTask( )
6: Input( )11: ContinueOrExit( )
2: CreateControl( )
5: CreateForm( )
12: ContinueOrExit( )
7: AddTask( )9: GetResult()
8: AddTask()
22
Sequence Diagrams: Sequence Diagrams: Set HeaterSet Heater
aUser : User
aUserInterface : UserInterface
aSetHeaterControl : SetHeaterControl
aHeaterForm : HeaterForm
aHeaterController : HeaterController
aHeater : Heater
1: SelectSetHeater( )
2: CreateControl( )
3: call CheckLogin()
4: [not login] Exit()
5: CreateForm( )
6: Input( )
7: SetHeater( )
8: SetHeater()
9: GetResult()
10: DisplayResult( )
23
Collaboration Diagrams: Collaboration Diagrams: Set HeaterSet Heater
aUser : User
aHeater : Heater
aUserInterface : UserInterface
aSetHeaterControl : SetHeaterControl
aHeaterForm : HeaterForm
aHeaterController : HeaterController
3: call CheckLogin()4: [not login] Exit()10: DisplayResult( )
1: SelectSetHeater( )
6: Input( )
2: CreateControl( )
5: CreateForm( )
7: SetHeater( )
9: GetResult()
8: SetHeater()
24
Sequence Diagrams: Sequence Diagrams: Set Water SprinklerSet Water Sprinkler
aUser : User
aUserInterface : UserInterface
aSetWSprinklerControl : SetWSprinklerControl
aWSprinklerForm : WSprinklerForm
aWSprinklerController : WSprinklerController
aWSprinkler : WaterSprinkler
1: SelectSetWSprinkler( )
2: CreateControl( )
3: call CheckLogin()
4: [not login] Exit()
5: CreateForm( )
6: Input( )
7: SetWSprinkler( )
8: SetWSprinkler()
9: GetResult()
10: DisplayResult( )
25
ere
Collaboration Diagrams: Collaboration Diagrams: Set WaterSprinklerSet WaterSprinkler
aUser : User
aWSprinkler : WaterSprinkler
aUserInterface : UserInterface
aSetWSprinklerControl : SetWSprinklerControl
aWSprinklerForm : WSprinklerForm
aWSprinklerController : WSprinklerController
3: call CheckLogin()4: [not login] Exit()10: DisplayResult( )
1: SelectSetWSprinkler( )
6: Input( )
2: CreateControl( )
5: CreateForm( )
7: SetWSprinkler( )
9: GetResult()
8: SetWSprinkler()
26
Sequence Diagrams: Sequence Diagrams: House on fireHouse on fire
aFireDetector : FireDetector
aDetectorHandling : DetectorHandling
HouseOnFireControl : HouseOnFireControl
aFireNotice : FireNotice
aFireDepartmen...
aUser : User
1: DetectHouseOnFire( )
2: CreateControl( )
4: CreateNotice( )
3: SetEmergncyStatus("HouseOnFire")
5: Notify("FireDepartment")
6: Notify("User")
1. The phone numbers of firedepartment and user are stored in the notifier devices.2. After fire under control, the fire detector must be reset by a fire officer.
27
ere
Collaboration Diagrams: Collaboration Diagrams: House on fireHouse on fire
aFireDetector : FireDetector
aFireDepartment : FireDepartment aUser : User
HouseOnFireControl : HouseOnFireControl
aFireNotice : FireNotice
aDetectorHandling : DetectorHandling
3: SetEmergncyStatus("HouseOnFire")
1: DetectHouseOnFire( )
4: CreateNotice( )
5: Notify("FireDepartment")
6: Notify("User")
2: CreateControl( )
28
Sequence Diagrams: Sequence Diagrams: Break EntryBreak Entry
aBreakEntryDetecto...
aDetectorHandling : DetectorHandling
aHouseBreakEntryControl : HouseBreakEntryControl
aBreakEntryNotice : BreakEntryNotice
aPoliceDepartmen...
aUser : User
1: DetectHouseBreakEntry( )
2: CreateControl( )
3: SetEmergencyStatus("HouseBreakEntry")
4: CreateNotice( )
5: Notify("PoliceDepartment")
6: Notify("User")
1. The phone numbers of policedepartment and user are stored in the notifier devices.2. After the situation under control, the break entry detector must be reset by a police officer.
29
ere
Collaboration Diagrams: Collaboration Diagrams: Break EntryBreak Entry
aBreakEntryDetector : BreakEntryDetector
aPoliceDepartment : PoliceDepartment
aUser : User
aDetectorHandling : DetectorHandling
aHouseBreakEntryControl : HouseBreakEntryControl
aBreakEntryNotice : BreakEntryNotice
3: SetEmergencyStatus("HouseBreakEntry")
1: DetectHouseBreakEntry( )
2: CreateControl( )
4: CreateNotice( )
5: Notify("PoliceDepartment")
6: Notify("User")
30
Class Diagrams: System LevelClass Diagrams: System Level
UserInterface
DetectorHandling EmergencyNotice
ApplianceController
FlowControl
1
1
1
1<<initiate>>
1
1
1
1
<<initiate>>
1
1
1
1<<create>>
1
1
1
1
<<use>>
InputForm
1
0..n
1
0..n
CollectUserInput
31
Class Diagrams: 1Class Diagrams: 1
UserInterface
SelectLogin()SelectLogout()SelectManageAcc()SelectManageAppliance()SelectModifyAcc()SelectAddVCRTask()SelectSetHeater()SelectSetWSprinkler()
VCRController
AddTask()
HeaterController
SetHeater()
WSprinklerController
SetWSprinkler()
EmergencyNotice
FireNotice
CreateNotice()
BreakEntryNotice
CreateNotice()
ApplianceController
DetectorHandling
DetectHouseBreakEntry()DetectHouseOnFire()
32
dsasd
Class Diagrams: 2Class Diagrams: 2
LoginForm
CreateForm()Input()DisplayResult()SetAccStatus()
LogoutForm
Input()CreateForm()SetAccStatus()DisplayResult()
AccForm
CreateForm()SelectOperation()Input()DisplayResult()ContinueOrExit()
ApplianceForm
SelectOperation()Input()DisplayResult()ContinueOrExit()CreateForm()
ModifyAccForm
CreateForm()Input()DisplayResult()
InputForm
VCRTaskForm
CreateForm()Input()DisplayResult()ContinueOrExit()
HeaterForm
CreateForm()Input()DisplayResult()
WSprinklerForm
CreateForm()Input()DisplayResult()
33
dsasd
Class Diagrams: 3Class Diagrams: 3MaintainAccControl
CreateControl()Exit()ContinueOrExit()
MaintainApplianceControl
CreateControl()Exit()ContinueOrExit()
ModifyAccControl
CreateControl()Exit()
AddVCRTaskControl
CreateControl()Exit()ContinueOrExit()
SetHeaterControl
CreateControl()Exit()
SetWSprinklerControl
CreateControl()Exit()
HouseBreakEntryControl
CreateControl()SetEmergencyStatus()
HouseOnFireControl
CreateControl()SetEmergncyStatus()
FlowControl
34
wererw
State Chart DiagramsState Chart DiagramsInitiate System Terminate System
Wait Input Event
Emergency Process
Emergency process
Notify processor
Show Result
Ready
Main UserInterface
Maintain Database
Select Operation
Collect Input
Update Database
Operate Appliance
Collect Input
Operate Appliance
Select Operation
Collect Input
Update Database
Prompt for operation selection
Create InputForm
Submit information to Database
Finish operation
Collect Input
Operate Appliance
Create InputForm
Submit information to Appliance
Finish operation
Emergency process
Notify processor
Start emergency process
Create Notifier
Shut down
Detect emergency warningLogin
Select "Operation"Select "Maintainence"
Logout Psot-emergency handling
Finish display
35
we
Activity DiagramsActivity Diagrams
Login
Show main user interface
Choose operation
Select "Maintainence"
LogoutSelect "Logout"
Input MaintainInfo
Show result
Update Database
Input OperationInfo
Select "Operation"
Operate appliance
Initiate System Terminate System
Wait Input Event
Ready Shut down
Detect warning
Emergency process
Notify processor
Post-emergency handling
EmergencyHACSMainOperationMaintainence
36
Component DiagramsComponent Diagrams
Maintenance
OperationEmergency
UserInterface.cs
LoginForm.cs
LogoutForm.cs
ApplianceForm.cs
MaintainContrl.cs
AccForm.cs
MaintainApplianceControl.cs
ModifyAccControl.cs
ModifyAccForm.cs
AddVCRTaskControl.cs
VCRTASKForm.cs
VCRController.cs
SetHeaterControl.cs
HeaterForm.cs
HeaterController.cs
SetWSprinklerControl.cs
WSprinklerForm.cs
WSprinklerController.cs
DetecterHandling.cs
HouseBreakEntryControl.cs
BreakEntryNotice.cs
HouseOnFireControl.cs
FireNotice.cs
HACSMain
HACS.cs
37
Deployment DiagramsDeployment Diagrams
VCR
HACS
Heater WaterSprinkler
FireDetector
BreakEntryDetector
Controller
38
Thanks !Thanks !