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

Preview:

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

Citation preview

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 !

Recommended