1 Home Appliance Control System (HACS) Students: Hui Chen; Yaguang Zhou CS6359 Object-Oriented...

38
1 Home Appliance Control Home Appliance Control System (HACS) System (HACS) Students: Hui Chen; Yaguang Zhou CS6359 Object-Oriented Analysis & Design Prof. Lawrence Chung Computer Science Department University of Texas at Dallas Summer 2005 Project Presentation

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 Appliance

Transcript of 1 Home Appliance Control System (HACS) Students: Hui Chen; Yaguang Zhou CS6359 Object-Oriented...

Page 1: 1 Home Appliance Control System (HACS) Students: Hui Chen; Yaguang Zhou CS6359 Object-Oriented Analysis & Design Prof. Lawrence Chung Computer Science.

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

Page 2: 1 Home Appliance Control System (HACS) Students: Hui Chen; Yaguang Zhou CS6359 Object-Oriented Analysis & Design Prof. Lawrence Chung Computer Science.

2

• Project Overview• Use Case Diagrams• Interaction Diagrams• Class Diagrams• Statechart and Activity Diagrams• Component Diagram• Deployment Diagram

ContentsContents

Page 3: 1 Home Appliance Control System (HACS) Students: Hui Chen; Yaguang Zhou CS6359 Object-Oriented Analysis & Design Prof. Lawrence Chung Computer Science.

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

Page 4: 1 Home Appliance Control System (HACS) Students: Hui Chen; Yaguang Zhou CS6359 Object-Oriented Analysis & Design Prof. Lawrence Chung Computer Science.

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

Page 5: 1 Home Appliance Control System (HACS) Students: Hui Chen; Yaguang Zhou CS6359 Object-Oriented Analysis & Design Prof. Lawrence Chung Computer Science.

5

Project OverviewProject Overview

Also, HACS should have a database of information about the users and appliances.

Individual HACS Database

Page 6: 1 Home Appliance Control System (HACS) Students: Hui Chen; Yaguang Zhou CS6359 Object-Oriented Analysis & Design Prof. Lawrence Chung Computer Science.

6

Use Case Diagrams: Use Case Diagrams: Subsystem levelSubsystem level

Administrator

User

Database

Appliance

EmergencyDepartment

Detector

Operation

Emergency

Maintainence

Page 7: 1 Home Appliance Control System (HACS) Students: Hui Chen; Yaguang Zhou CS6359 Object-Oriented Analysis & Design Prof. Lawrence Chung Computer Science.

7

Use Case Diagrams: Use Case Diagrams: Database maintenanceDatabase maintenance

Logout

ManageAppliance

ManageAccount

ModifyAccount

Administrator

User

DatabaseLoginCommonUser

Page 8: 1 Home Appliance Control System (HACS) Students: Hui Chen; Yaguang Zhou CS6359 Object-Oriented Analysis & Design Prof. Lawrence Chung Computer Science.

8

Use Case Diagrams: Use Case Diagrams: Appliance OperationAppliance Operation

VCR

Heater

AddVCRTask

SetHeaterUser

WaterSprinklerSetWaterSprinkler

Appliance

Page 9: 1 Home Appliance Control System (HACS) Students: Hui Chen; Yaguang Zhou CS6359 Object-Oriented Analysis & Design Prof. Lawrence Chung Computer Science.

9

Use Case Diagrams: Use Case Diagrams: Emergency controlEmergency control

DetectorEmergencyDepartment

FireDetector

FireDepartment

HouseOnFire

BreakEntryDetector

PoliceDepartment

User

HouseBreakEntry

Page 10: 1 Home Appliance Control System (HACS) Students: Hui Chen; Yaguang Zhou CS6359 Object-Oriented Analysis & Design Prof. Lawrence Chung Computer Science.

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.

Page 11: 1 Home Appliance Control System (HACS) Students: Hui Chen; Yaguang Zhou CS6359 Object-Oriented Analysis & Design Prof. Lawrence Chung Computer Science.

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()

Page 12: 1 Home Appliance Control System (HACS) Students: Hui Chen; Yaguang Zhou CS6359 Object-Oriented Analysis & Design Prof. Lawrence Chung Computer Science.

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.

Page 13: 1 Home Appliance Control System (HACS) Students: Hui Chen; Yaguang Zhou CS6359 Object-Oriented Analysis & Design Prof. Lawrence Chung Computer Science.

13

Collaboration Diagrams: Collaboration Diagrams: LogoutLogout

aUser : User

aUserInterface : UserInterface

aLogoutForm : LogoutForm

4: SetAccStatus(username, "logout")5: DisplayResult( )

1: SelectLogout( )

3: Input( )

2: CreateForm( )

Page 14: 1 Home Appliance Control System (HACS) Students: Hui Chen; Yaguang Zhou CS6359 Object-Oriented Analysis & Design Prof. Lawrence Chung Computer Science.

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()

Page 15: 1 Home Appliance Control System (HACS) Students: Hui Chen; Yaguang Zhou CS6359 Object-Oriented Analysis & Design Prof. Lawrence Chung Computer Science.

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()

Page 16: 1 Home Appliance Control System (HACS) Students: Hui Chen; Yaguang Zhou CS6359 Object-Oriented Analysis & Design Prof. Lawrence Chung Computer Science.

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( )

Page 17: 1 Home Appliance Control System (HACS) Students: Hui Chen; Yaguang Zhou CS6359 Object-Oriented Analysis & Design Prof. Lawrence Chung Computer Science.

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()

Page 18: 1 Home Appliance Control System (HACS) Students: Hui Chen; Yaguang Zhou CS6359 Object-Oriented Analysis & Design Prof. Lawrence Chung Computer Science.

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( )

Page 19: 1 Home Appliance Control System (HACS) Students: Hui Chen; Yaguang Zhou CS6359 Object-Oriented Analysis & Design Prof. Lawrence Chung Computer Science.

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()

Page 20: 1 Home Appliance Control System (HACS) Students: Hui Chen; Yaguang Zhou CS6359 Object-Oriented Analysis & Design Prof. Lawrence Chung Computer Science.

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( )

Page 21: 1 Home Appliance Control System (HACS) Students: Hui Chen; Yaguang Zhou CS6359 Object-Oriented Analysis & Design Prof. Lawrence Chung Computer Science.

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()

Page 22: 1 Home Appliance Control System (HACS) Students: Hui Chen; Yaguang Zhou CS6359 Object-Oriented Analysis & Design Prof. Lawrence Chung Computer Science.

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( )

Page 23: 1 Home Appliance Control System (HACS) Students: Hui Chen; Yaguang Zhou CS6359 Object-Oriented Analysis & Design Prof. Lawrence Chung Computer Science.

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()

Page 24: 1 Home Appliance Control System (HACS) Students: Hui Chen; Yaguang Zhou CS6359 Object-Oriented Analysis & Design Prof. Lawrence Chung Computer Science.

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( )

Page 25: 1 Home Appliance Control System (HACS) Students: Hui Chen; Yaguang Zhou CS6359 Object-Oriented Analysis & Design Prof. Lawrence Chung Computer Science.

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()

Page 26: 1 Home Appliance Control System (HACS) Students: Hui Chen; Yaguang Zhou CS6359 Object-Oriented Analysis & Design Prof. Lawrence Chung Computer Science.

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.

Page 27: 1 Home Appliance Control System (HACS) Students: Hui Chen; Yaguang Zhou CS6359 Object-Oriented Analysis & Design Prof. Lawrence Chung Computer Science.

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( )

Page 28: 1 Home Appliance Control System (HACS) Students: Hui Chen; Yaguang Zhou CS6359 Object-Oriented Analysis & Design Prof. Lawrence Chung Computer Science.

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.

Page 29: 1 Home Appliance Control System (HACS) Students: Hui Chen; Yaguang Zhou CS6359 Object-Oriented Analysis & Design Prof. Lawrence Chung Computer Science.

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")

Page 30: 1 Home Appliance Control System (HACS) Students: Hui Chen; Yaguang Zhou CS6359 Object-Oriented Analysis & Design Prof. Lawrence Chung Computer Science.

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

Page 31: 1 Home Appliance Control System (HACS) Students: Hui Chen; Yaguang Zhou CS6359 Object-Oriented Analysis & Design Prof. Lawrence Chung Computer Science.

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()

Page 32: 1 Home Appliance Control System (HACS) Students: Hui Chen; Yaguang Zhou CS6359 Object-Oriented Analysis & Design Prof. Lawrence Chung Computer Science.

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()

Page 33: 1 Home Appliance Control System (HACS) Students: Hui Chen; Yaguang Zhou CS6359 Object-Oriented Analysis & Design Prof. Lawrence Chung Computer Science.

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

Page 34: 1 Home Appliance Control System (HACS) Students: Hui Chen; Yaguang Zhou CS6359 Object-Oriented Analysis & Design Prof. Lawrence Chung Computer Science.

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

Page 35: 1 Home Appliance Control System (HACS) Students: Hui Chen; Yaguang Zhou CS6359 Object-Oriented Analysis & Design Prof. Lawrence Chung Computer Science.

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

Page 36: 1 Home Appliance Control System (HACS) Students: Hui Chen; Yaguang Zhou CS6359 Object-Oriented Analysis & Design Prof. Lawrence Chung Computer Science.

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

Page 37: 1 Home Appliance Control System (HACS) Students: Hui Chen; Yaguang Zhou CS6359 Object-Oriented Analysis & Design Prof. Lawrence Chung Computer Science.

37

Deployment DiagramsDeployment Diagrams

VCR

HACS

Heater WaterSprinkler

FireDetector

BreakEntryDetector

Controller

Page 38: 1 Home Appliance Control System (HACS) Students: Hui Chen; Yaguang Zhou CS6359 Object-Oriented Analysis & Design Prof. Lawrence Chung Computer Science.

38

Thanks !Thanks !