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