淺析家庭自動(dòng)化系統(tǒng)(2)
淺析家庭自動(dòng)化系統(tǒng)
(4)查看設(shè)備的狀態(tài)摘要:包括對(duì)連接到系統(tǒng)控制器中的所有設(shè)備的狀態(tài)以及是否出現(xiàn)異?,F(xiàn)象進(jìn)行查看。
(5)控制子系統(tǒng)接受主系統(tǒng)發(fā)送的信息;以及向子系統(tǒng)設(shè)備發(fā)送信息;控制子系統(tǒng)將子系統(tǒng)發(fā)送的信息發(fā)送給指定的設(shè)備。
(6)對(duì)設(shè)備進(jìn)行監(jiān)控摘要:包括啟動(dòng)監(jiān)控設(shè)備、停止監(jiān)控設(shè)備、監(jiān)控設(shè)備中。
(7)對(duì)系統(tǒng)中的設(shè)備進(jìn)行管理摘要:包括增加新設(shè)備以及刪除已經(jīng)連接到系統(tǒng)中的設(shè)備。
(二)、總體結(jié)構(gòu)和模塊外部設(shè)計(jì)
在應(yīng)用系統(tǒng)總體設(shè)計(jì)中,以Servlets為前端控制器,負(fù)責(zé)管理用戶的登錄,以及數(shù)據(jù)的獲取等。以會(huì)話Bean實(shí)現(xiàn)系統(tǒng)的工作流,將會(huì)話Bean作為一個(gè)外觀,來(lái)封裝應(yīng)用程序的業(yè)務(wù)邏輯,業(yè)務(wù)邏輯再通過(guò)實(shí)體Bean組件來(lái)操作相關(guān)數(shù)據(jù),從而形成HAS系統(tǒng)的總體結(jié)構(gòu)體系。
(三)、接口設(shè)計(jì)
1、用戶接口
本系統(tǒng)的用戶界面如下所示摘要:
SHAPE \* MERGEFORMAT
圖7、 用戶登錄界面
2、外部接口
本系統(tǒng)采用基于C/S模式的系統(tǒng)主機(jī)和系統(tǒng)終端的結(jié)構(gòu),接口設(shè)備不僅要完成系統(tǒng)主機(jī)和各個(gè)終端之間的標(biāo)準(zhǔn)化物理連接之外,還要完成數(shù)據(jù)在系統(tǒng)主機(jī)和各個(gè)終端之間的傳送。故接口采用集成式、標(biāo)準(zhǔn)化的設(shè)備來(lái)完成,實(shí)現(xiàn)其功能。
(四)、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)
1、 數(shù)據(jù)庫(kù)三級(jí)模式結(jié)構(gòu)
數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式結(jié)構(gòu)是指數(shù)據(jù)庫(kù)系統(tǒng)是由外模式、模式和內(nèi)模式三級(jí)構(gòu)成。
其中模式也稱邏輯模式,是數(shù)據(jù)庫(kù)中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是所有用戶的公共數(shù)據(jù)視圖。外模式也稱子模式或用戶模式,它是數(shù)據(jù)庫(kù)用戶(包括應(yīng)用程序員和最終用戶)看見(jiàn)和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是數(shù)據(jù)庫(kù)用戶的數(shù)據(jù)視圖,是和某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。內(nèi)模式也稱存儲(chǔ)模式,它是數(shù)據(jù)物理結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)的描述,是數(shù)據(jù)在數(shù)據(jù)庫(kù)內(nèi)部的表示方式。數(shù)據(jù)庫(kù)的三級(jí)模式是對(duì)數(shù)據(jù)的三個(gè)抽象級(jí)別,它把數(shù)據(jù)的具體組織留給DBMS管理,使用戶能邏輯的抽象的處理數(shù)據(jù),而不必關(guān)心數(shù)據(jù)在計(jì)算機(jī)中的具體表示方式和存儲(chǔ)方式。為了能夠在內(nèi)部實(shí)現(xiàn)這三個(gè)抽象層次的聯(lián)系和轉(zhuǎn)換,數(shù)據(jù)庫(kù)系統(tǒng)在這三級(jí)模式之間提供了兩層映像摘要:外模式|模式映像和模式|內(nèi)模式映像。正式這兩層映像保證了數(shù)據(jù)庫(kù)系統(tǒng)中的數(shù)據(jù)能夠具有較高的邏輯獨(dú)立性和物理獨(dú)立性。
影響一個(gè)系統(tǒng)性能的主要因素是數(shù)據(jù)庫(kù)性能和客戶端程序設(shè)計(jì),所以進(jìn)行數(shù)據(jù)庫(kù)的設(shè)計(jì)和整個(gè)系統(tǒng)的性能、升級(jí)等都息息相關(guān),在數(shù)據(jù)庫(kù)設(shè)計(jì)時(shí),要考慮的主要原則有摘要:
(1)、命名的格式規(guī)范摘要:為了便于系統(tǒng)適應(yīng)不同的數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)中各種對(duì)象的命名應(yīng)采用大小寫敏感的形式。
(2)、索引的使用摘要:合理使用索引,如表的規(guī)模不大、表需要頻繁更新、以及查詢字段不確定時(shí),盡量不用索引。
(3)、數(shù)據(jù)的一致性和完整性摘要:為了提高系統(tǒng)的響應(yīng)速度,合理的冗余是必要的,所以設(shè)計(jì)時(shí),要用有效手段保證數(shù)據(jù)的一致性和完整性。
(4)、數(shù)據(jù)庫(kù)性能的調(diào)整。
2、 主要表結(jié)構(gòu)
將對(duì)象模型映射成數(shù)據(jù)庫(kù)模型,也就是向數(shù)據(jù)表轉(zhuǎn)換。轉(zhuǎn)換方式如下摘要:
(1)、一個(gè)對(duì)象類可以映射為一個(gè)以上的庫(kù)表,當(dāng)類間有一對(duì)多的關(guān)系時(shí),一個(gè)表也可以對(duì)應(yīng)多個(gè)類。
(2)、關(guān)系的映射可能有多種情況,但一般映射為一個(gè)表,也可以在對(duì)象類表間定義相應(yīng)的外鍵。對(duì)于條件關(guān)系的映射,一個(gè)表至少應(yīng)有三個(gè)屬性。
(3)、減少表之間的冗余字段。
(4)、映射后的表進(jìn)行冗余控制調(diào)整,使其達(dá)到合理的安息范式,一般達(dá)到3NF即可。
在映射應(yīng)用對(duì)象時(shí),除關(guān)系映射規(guī)范化后可能出現(xiàn)一對(duì)多的表映射外,大多數(shù)應(yīng)用對(duì)象和表對(duì)象是一一對(duì)應(yīng)的??梢詫⒁?guī)范化處理后,有一個(gè)應(yīng)用對(duì)象映射出來(lái)的多個(gè)表看成一個(gè)數(shù)據(jù)庫(kù)對(duì)象。因此當(dāng)部分應(yīng)用需求變更時(shí),首先,系統(tǒng)修改可以不涉及需求不變更的部分,其次,變更部分的修改可以基本上只限于追加或刪除程序模塊或追加新庫(kù)表,而基本上不必修改原有程序代碼或原有庫(kù)表定義,從而大大減少了工作量,降低了工作難度。
根據(jù)對(duì)系統(tǒng)所進(jìn)行的分析,以及對(duì)未來(lái)系統(tǒng)的擴(kuò)展考慮,確定數(shù)據(jù)庫(kù)中的主要數(shù)據(jù)表有以下幾個(gè)摘要:
表1、用戶信息表(user –info)
名稱
代碼
主要的
數(shù)據(jù)類型
長(zhǎng)度
用戶代碼
user-id
TRUE
VARCHAR(20)
20
用戶類型
user-type
FALSE
CHAR(1)
1
用戶密碼
password
FALSE
VARCHAR(8)
8
用戶名稱
user-name
FALSE
VARCHAR(40)
40
用戶手機(jī)號(hào)碼
mobileNO
FALSE
VARCHAR(20)
20
表2、操作日志表(operate-log)
名稱
代碼
主要的
數(shù)據(jù)類型
長(zhǎng)度
操作內(nèi)容
message
FALSE
VARCHAR(300)
300
錄入時(shí)間
inputTime
TRUE
TIMESTAMP
表3、家電信息表(appliance-info)
名稱
代碼
主要的
數(shù)據(jù)類型
長(zhǎng)度
家電代碼
applianceID
TRUE
VARCHAR(10)
10
家電名稱
applianceName
FALSE
VARCHAR(20)
20
家電通訊地址
address
FALSE
VARCHAR(20)
20
家電通訊端口
port
FALSE
INT
加入系統(tǒng)時(shí)間
inputTime
FALSE
TIMESTAMP
表4、家電狀態(tài)表(appliance-state)
名稱
代碼
主要的
數(shù)據(jù)類型
長(zhǎng)度
家電代碼
applianceID
TRUE
VARCHAR(10)
10
狀態(tài)
state
FALSE
CHAR(2)
2
狀態(tài)變更時(shí)間
updateTime
FALSE
TIMESTAMP
(五)、運(yùn)行設(shè)計(jì)
(1)、系統(tǒng)用戶或者一般用戶通過(guò)登錄程序Login登錄到HAS系統(tǒng)中。
(2、用戶通過(guò)菜單(主菜單main;以及用戶菜單user;家電設(shè)備管理菜單appliance;操作記錄日志管理菜單log)選擇要執(zhí)行的操作。
(3)、用戶從子系統(tǒng)傳送過(guò)來(lái)的請(qǐng)求,通過(guò)服務(wù)器端控制程序HASServer進(jìn)行解析,并且發(fā)送到相應(yīng)的類,并將處理結(jié)果返回給主系統(tǒng)。
(六)、出錯(cuò)處理設(shè)計(jì)
當(dāng)系統(tǒng)在執(zhí)行中間發(fā)現(xiàn)有異常情況發(fā)生或被要求執(zhí)行異常操作,系統(tǒng)要能自動(dòng)檢測(cè)到并進(jìn)行相應(yīng)的處理或形成報(bào)告返回給用戶進(jìn)行相關(guān)處理會(huì)恢復(fù)操作。
1、出錯(cuò)輸出信息
在系統(tǒng)進(jìn)行完相關(guān)解析后形成日志保存,并有提示信息被顯示給用戶或系統(tǒng)操作員。
2、出錯(cuò)處理策略
(1)、聯(lián)機(jī)事務(wù)處理(OLAP)是建立在TCP/IP 協(xié)議上,有多階段事務(wù)處理響應(yīng)控制,保證事務(wù)處理前后臺(tái)一致性。
(2)、數(shù)據(jù)庫(kù)處理事務(wù)失敗自動(dòng)回滾技術(shù),保證數(shù)據(jù)庫(kù)表的數(shù)據(jù)一致性和完整性。
(3)、重要數(shù)據(jù)的校驗(yàn)檢查。
(4)、各個(gè)子系統(tǒng)的操作監(jiān)控,異常情況報(bào)告;并提供報(bào)表等跟蹤記錄。
(5)、提供友好的用戶界面和幫助信息及配合嚴(yán)格的檢查,減少用戶出錯(cuò)機(jī)會(huì)。
五、具體設(shè)計(jì)
(一)、軟件結(jié)構(gòu)
圖9、系統(tǒng)用例圖
(二)、程序描述
面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思想
(1)、面向?qū)ο蟮挠蓙?lái)和發(fā)展
對(duì)象代表著待處理新問(wèn)題中的一個(gè)實(shí)體,在處理新問(wèn)題過(guò)程中,一個(gè)對(duì)象可以以某種形式和其他對(duì)象通信。從概念上講,一個(gè)對(duì)象是既包含數(shù)據(jù)又包含處理這些數(shù)據(jù)操作的一個(gè)程序單元。類用來(lái)描述特性相同或相近的一組對(duì)象的結(jié)構(gòu)和行為。該語(yǔ)言還支持類的繼續(xù),可將多個(gè)類組成為層次結(jié)構(gòu),進(jìn)而答應(yīng)共享結(jié)構(gòu)和行為。
后來(lái)出現(xiàn)的Smalltalk語(yǔ)言是第一個(gè)比較成功的面向?qū)ο笳Z(yǔ)言,對(duì)后來(lái)面向?qū)ο笳Z(yǔ)言的發(fā)展產(chǎn)生過(guò)重大影響。該語(yǔ)言豐富了Simula中類和對(duì)象的概念,信息也更加隱蔽,程序設(shè)計(jì)就是向?qū)ο蟀l(fā)送信息。20世紀(jì)80年代以后,面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言廣泛應(yīng)用于程序設(shè)計(jì),并且有許多新的突破。非凡是隨著操作系統(tǒng)和軟件項(xiàng)目日益龐大,人們?nèi)找嫘枰环N更高效的開發(fā)方式,這更加推動(dòng)了面向?qū)ο笳Z(yǔ)言的發(fā)展。
(2)、 面向?qū)ο蟮囊?/strong>
面向?qū)ο蟮南到y(tǒng)包含了3個(gè)要素摘要:對(duì)象、類和繼續(xù),這3個(gè)要素反映了面向?qū)ο蟮膫鹘y(tǒng)觀念。面向?qū)ο蟮恼Z(yǔ)言應(yīng)該支持這3個(gè)要素。首先,應(yīng)該包括對(duì)象的概念。對(duì)象是狀態(tài)和操作的封裝體,狀態(tài)是存儲(chǔ)操作結(jié)果的。滿足這一點(diǎn)的語(yǔ)言被認(rèn)為是基于對(duì)象的語(yǔ)言。其次,應(yīng)該支持類的概念和特征,類是以接口和實(shí)現(xiàn)來(lái)定義對(duì)象行為的樣板,對(duì)象是由類來(lái)創(chuàng)建的。支持對(duì)象和類的語(yǔ)言被認(rèn)為是基于類的語(yǔ)言。最后,應(yīng)該支持繼續(xù),已存在的類具有建立子類的能力,進(jìn)而建立類的層次。支持上述3個(gè)方面的語(yǔ)言稱為面向?qū)ο蟮恼Z(yǔ)言。
(三)、功能
本系統(tǒng)由燈光控制、保安控制、環(huán)境控制、家電控制、用戶登錄及管理等各模塊組成。
燈光控制摘要:實(shí)現(xiàn)對(duì)室內(nèi)外所有燈光的時(shí)間周期性控制和用戶的直接控制;保安控制摘要:實(shí)現(xiàn)對(duì)室內(nèi)外所有視頻監(jiān)控設(shè)備的周期性工作控制及異常處理,和防盜防火設(shè)備的控制及異常處理;環(huán)境控制摘要:實(shí)現(xiàn)對(duì)家庭環(huán)境設(shè)備(包括花園、陽(yáng)臺(tái)、室內(nèi)溫濕度報(bào)告)的時(shí)間周期性控制以及各設(shè)備的異常處理;家電控制摘要:實(shí)現(xiàn)對(duì)家庭中各個(gè)聰明家用電器的人性化控制及各設(shè)備的異常處理;用戶登錄及管理模塊摘要:實(shí)現(xiàn)用戶對(duì)各個(gè)模塊中所用設(shè)備的時(shí)間周期性定義以及對(duì)各個(gè)設(shè)備的直接管理和控制。
本系統(tǒng)將采用面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思想編寫各個(gè)模塊的程序,實(shí)現(xiàn)其應(yīng)用的各項(xiàng)功能。
(四)、程序邏輯
圖10、用戶登錄模塊程序流程圖
圖11、燈光控制模塊程序流程圖
圖12、家電控制模塊程序流程圖
(五)、接口
本系統(tǒng)采用基于C/S模式的系統(tǒng)主機(jī)和系統(tǒng)終端的結(jié)構(gòu),接口設(shè)備不僅要完成系統(tǒng)主機(jī)和各個(gè)終端之間的標(biāo)準(zhǔn)化物理連接之外,還要完成數(shù)據(jù)在系統(tǒng)主機(jī)和各個(gè)終端之間的傳送。故接口采用集成式、標(biāo)準(zhǔn)化的設(shè)備來(lái)完成,實(shí)現(xiàn)其功能。
(六)、測(cè)試要點(diǎn)
本系統(tǒng)的最終實(shí)現(xiàn)是將各個(gè)信號(hào)功能于各個(gè)實(shí)體,即各個(gè)家電設(shè)備包括照明燈、空調(diào)、灑水噴頭、門窗監(jiān)聽(tīng)器、攝像頭等具體設(shè)備。所以系統(tǒng)測(cè)試時(shí),可模擬具體設(shè)備的狀態(tài)信號(hào),將這些模擬的狀態(tài)信號(hào)功能于本系統(tǒng)中,達(dá)到測(cè)試的目的。
六、軟件測(cè)試
(一)、測(cè)試計(jì)劃
1、測(cè)試方案
本系統(tǒng)的最終實(shí)現(xiàn)是將各個(gè)信號(hào)功能于各個(gè)實(shí)體,即各個(gè)家電設(shè)備包括照明燈、空調(diào)、灑水噴頭、門窗監(jiān)聽(tīng)器、攝像頭等具體設(shè)備。所以系統(tǒng)測(cè)試時(shí),可模擬具體設(shè)備的狀態(tài)信號(hào),將這些模擬的狀態(tài)信號(hào)功能于本系統(tǒng)中,達(dá)到測(cè)試的目的。