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