




已閱讀5頁(yè),還剩63頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
(控制理論與控制工程專業(yè)論文)基于軟件工程設(shè)計(jì)方法的板卡式網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)研究.pdf.pdf 免費(fèi)下載
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
南開(kāi)大學(xué)學(xué)位論文使用授權(quán)書(shū) 根據(jù)南開(kāi)大學(xué)關(guān)于研究生學(xué)位論文收藏和利用管理辦法,我校的博士、碩士學(xué)位 獲得者均須向南開(kāi)大學(xué)提交本人的學(xué)位論文紙質(zhì)本及相應(yīng)電子版。 本人完全了解南開(kāi)大學(xué)有關(guān)研究生學(xué)位論文收藏和利用的管理規(guī)定。南開(kāi)大學(xué)擁有在 著作權(quán)法規(guī)定范圍內(nèi)的學(xué)位論文使用權(quán),即:( 1 ) 學(xué)位獲得者必須按規(guī)定提交學(xué)位論文 ( 包括紙質(zhì)印刷本及電子版) ,學(xué)??梢圆捎糜坝?、縮印或其他復(fù)制手段保存研究生學(xué)位論 文,并編入南開(kāi)大學(xué)博碩士學(xué)位論文全文數(shù)據(jù)庫(kù);( 2 ) 為教學(xué)和科研目的,學(xué)??梢詫?公開(kāi)的學(xué)位論文作為資料在圖書(shū)館等場(chǎng)所提供校內(nèi)師生閱讀,在校園網(wǎng)上提供論文目錄檢 索、文摘以及論文全文瀏覽、下載等免費(fèi)信息服務(wù);( 3 ) 根據(jù)教育部有關(guān)規(guī)定,南開(kāi)大學(xué)向 教育部指定單位提交公開(kāi)的學(xué)位論文;( 4 ) 學(xué)位論文作者授權(quán)學(xué)校向中國(guó)科技信息研究所和 中國(guó)學(xué)術(shù)期刊( 光盤(pán)) 電子出版社提交規(guī)定范圍的學(xué)位論文及其電子版并收入相應(yīng)學(xué)位論文 數(shù)據(jù)庫(kù),通過(guò)其相關(guān)網(wǎng)站對(duì)外進(jìn)行信息服務(wù)。同時(shí)本人保留在其他媒體發(fā)表論文的權(quán)利。 非公開(kāi)學(xué)位論文,保密期限內(nèi)不向外提交和提供服務(wù),解密后提交和服務(wù)同公開(kāi)論文。 論文電子版提交至校圖書(shū)館網(wǎng)站:h t t p :2 0 2 1 1 3 2 0 1 6 1 :8 0 0 1 d n d e x h t m 。 本人承諾:本人的學(xué)位論文是在南開(kāi)大學(xué)學(xué)習(xí)期間創(chuàng)作完成的作品,并已通過(guò)論文答 辯;提交的學(xué)位論文電子版與紙質(zhì)本論文的內(nèi)容一致,如因不同造成不良后果由本人自負(fù)。 本人同意遵守上述規(guī)定。本授權(quán)書(shū)簽署一式兩份,由研究生院和圖書(shū)館留存。 作者暨授權(quán)人簽字: 沈主搓 2 0 1 0 年5 月2 3 日 南開(kāi)大學(xué)研究生學(xué)位論文作者信息 論文題目基于軟件工程設(shè)計(jì)方法的板卡式網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)研究 姓名沈宇祥學(xué)號(hào) 2 1 2 0 0 7 0 2 7 2 答辯日期2 0 1 0 年5 月2 3 日 論文類別 博士口 學(xué)歷碩士口碩士專業(yè)學(xué)位口高校教師口 同等學(xué)力碩士口 院系所信息技術(shù)科學(xué)學(xué)院專業(yè)控制理論與控制工程 聯(lián)系電話 1 3 7 5 2 6 7 0 9 1 7e m a i l s h e n y u x i a n g m a i l n a n k a i e d u c n 通信地址( 郵編) :南開(kāi)大學(xué)西區(qū)公寓3 一l - 1 0 4 備注:是否批準(zhǔn)為非公開(kāi)論文否 注:本授權(quán)書(shū)適用我校授予的所有博士、碩士的學(xué)位論文。由作者填寫(xiě)( 一式兩份) 簽字后交校圖書(shū) 館,非公開(kāi)學(xué)位論文須附南開(kāi)大學(xué)研究生申請(qǐng)非公開(kāi)學(xué)位論文審批表。 根據(jù)南開(kāi)大學(xué)關(guān)于研究生學(xué)位論文收藏和利用管理辦法,我校的博士、碩士學(xué)位 獲得者均須向南開(kāi)火學(xué)提交本人的學(xué)位論文紙質(zhì)本及相應(yīng)電子版。 本人完全了解南開(kāi)人學(xué)有關(guān)研究生學(xué)位論文收藏和利用的管理規(guī)定。南開(kāi)大學(xué)擁有在 著作權(quán)法規(guī)定范同內(nèi)的學(xué)位論文使用權(quán),即:( 1 ) 學(xué)位獲得者必須按規(guī)定提交學(xué)位論文 ( 包括紙質(zhì)印刷本及電子版) ,學(xué)??梢圆蒱 j 影印、縮印或其他復(fù)制手段保存研究生學(xué)位論 文,并編入南開(kāi)大學(xué)博碩十學(xué)位論文全文數(shù)據(jù)庫(kù);( 2 ) 為教學(xué)和科研目的,學(xué)??梢詫?公開(kāi)的學(xué)位論文作為資料在圖郫館等場(chǎng)所提供校內(nèi)師生閱讀,在校園網(wǎng)上提供論文目錄檢 索、文摘以及論文全文瀏覽、下載等免費(fèi)信息服務(wù);( 3 ) 根據(jù)教育部有關(guān)規(guī)定,南開(kāi)大學(xué)向 教育部指定單位提交公開(kāi)的學(xué)位論文;( 4 ) 學(xué)位論文作者授權(quán)學(xué)校向中國(guó)科技信息研究所和 中國(guó)學(xué)術(shù)期刊( 光盤(pán)) 電子出版社提交規(guī)定范f f i 的學(xué)位論文及其電子版并收入相應(yīng)學(xué)位論文 數(shù)據(jù)庫(kù),通過(guò)其相關(guān)網(wǎng)站對(duì)外進(jìn)行信息服務(wù)。同時(shí)本人保留在其他媒體發(fā)表論文的權(quán)利。 1 f 公開(kāi)學(xué)位論文,保密期限內(nèi)不向外提交和提供服務(wù),解密后提交和服務(wù)同公開(kāi)論文。 論文電子版提交至校幽1 5 館網(wǎng)站:h t t p :2 0 2 11 3 2 0 1 6 1 :8 0 0 1 f i n d e x h t m 。 本人承諾:本人的! 學(xué)位論文是在南開(kāi)人學(xué)學(xué)習(xí)期間創(chuàng)作完成的作品,并已通過(guò)論文答 辯:提交的學(xué)位論文電子版與紙質(zhì)本論文的內(nèi)容一致,如因不同造成不良后果由本人自負(fù)。 本人同意遵守上述規(guī)定。本授權(quán)書(shū)簽署一式兩份,由研究生院和圖j 1 5 館留存。 作者暨授權(quán)人簽字:嵫疊 2 0 o 年 么 業(yè)務(wù)邏輯層 么 jl 數(shù)據(jù)訪問(wèn)層 ) 數(shù)據(jù)庫(kù) 圖4 1 三層客戶機(jī)服務(wù)器體系結(jié)構(gòu)圖 表示層是系統(tǒng)的用戶接口部分,擔(dān)負(fù)著用戶與系統(tǒng)間的對(duì)話功能。表示層 主要用于檢查用戶從鍵盤(pán)等設(shè)備輸入的數(shù)據(jù),顯示底層返回的結(jié)果,檢查的內(nèi) 容也只限于數(shù)據(jù)的形式和取值的范圍,不包括有關(guān)應(yīng)用本身的處理邏輯。它一 般只與中間的邏輯層交互,而不直接訪問(wèn)后臺(tái)數(shù)據(jù)庫(kù)。 業(yè)務(wù)邏輯層又可以稱為功能層,是應(yīng)用處理的核心,是連接上層界面與底 層的中介和橋梁。它相應(yīng)用戶發(fā)來(lái)的請(qǐng)求,執(zhí)行相應(yīng)的邏輯處理,并將底層的 執(zhí)行結(jié)果返回給客戶端。這層中包含有確認(rèn)用戶對(duì)應(yīng)用和數(shù)據(jù)庫(kù)存取權(quán)限的功 能,同時(shí)努力使表示層和業(yè)務(wù)邏輯層之間的數(shù)據(jù)交換盡可能地簡(jiǎn)單,做到信息 一次性傳輸。 2 7 第四章面向?qū)ο筌浖O(shè)計(jì)開(kāi)發(fā)方法在板卡式視頻監(jiān)控系統(tǒng)中的應(yīng)用 數(shù)據(jù)訪問(wèn)層的主要組成部分就是數(shù)據(jù)庫(kù)管理系統(tǒng),負(fù)責(zé)管理對(duì)數(shù)據(jù)庫(kù)中數(shù) 據(jù)的讀寫(xiě)工作,該層的主要任務(wù)是實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)、數(shù)據(jù)的訪問(wèn)控制、數(shù)據(jù)完 整性約束和并發(fā)控制等。 三層c s 體系結(jié)構(gòu)具有以下優(yōu)點(diǎn):各個(gè)層次在邏輯上保持相對(duì)獨(dú)立,系統(tǒng)的 結(jié)構(gòu)十分清晰,便于系統(tǒng)維護(hù)和擴(kuò)展;允許各個(gè)層次的應(yīng)用開(kāi)發(fā)同時(shí)進(jìn)行,縮 短了整體軟件的開(kāi)發(fā)周期;功能層能夠有效隔離界面層與數(shù)據(jù)訪問(wèn)層,從邏輯 層面上增強(qiáng)了數(shù)據(jù)庫(kù)的安全性。 4 1 2 詳細(xì)設(shè)計(jì) 詳細(xì)設(shè)計(jì)是軟件設(shè)計(jì)的第二階段,在此之前的總體設(shè)計(jì)階段已將系統(tǒng)劃分 為多個(gè)模塊,并將它們按照一定的原則組裝起來(lái),同時(shí)確定了每個(gè)模塊的功能 及模塊與模塊之間的外部接口。這一階段的工作就是要對(duì)系統(tǒng)中的每個(gè)模塊給 出足夠詳細(xì)的過(guò)程性描述,故也稱之為“過(guò)程設(shè)計(jì)”。 詳細(xì)設(shè)計(jì)的根本目的就是確定應(yīng)該怎樣具體實(shí)現(xiàn)所要求的系統(tǒng),也就是說(shuō), 經(jīng)過(guò)這一階段的工作,應(yīng)該得出對(duì)目標(biāo)系統(tǒng)的精確描述,具體的就是為軟件結(jié) 構(gòu)圖中每一個(gè)模塊確定采用的算法和塊內(nèi)數(shù)據(jù)結(jié)構(gòu),用某種選定的詳細(xì)設(shè)計(jì)工 具更清晰地描述,從而在編碼階段可以把這些描述直接翻譯成某種程序設(shè)計(jì)語(yǔ) 言書(shū)寫(xiě)的源程序。 詳細(xì)設(shè)計(jì)階段的任務(wù)是要設(shè)計(jì)出程序的“藍(lán)圖”,以后程序員將根據(jù)這個(gè)藍(lán) 圖寫(xiě)出實(shí)際的代碼。因此,詳細(xì)設(shè)計(jì)的結(jié)果基本上決定了最終程序代碼的質(zhì)量。 考慮程序代碼質(zhì)量時(shí)必須注意,程序的“讀者 有兩個(gè),即計(jì)算機(jī)和人。在整 個(gè)軟件生存周期中,軟件測(cè)試、診斷程序錯(cuò)誤、修改和軟件維護(hù)等都必須先讀 懂程序。實(shí)際上對(duì)于長(zhǎng)期使用的軟件系統(tǒng),讀程序的時(shí)間可能比寫(xiě)程序的時(shí)間 要長(zhǎng)得多。因此,衡量程序的質(zhì)量不僅僅看它的邏輯是否正確,性能是否滿足 要求,更重要的是看它是否易讀、易理解。詳細(xì)設(shè)計(jì)的目的不僅僅是邏輯上正 確地實(shí)現(xiàn)每個(gè)模塊的功能,更重要的是設(shè)計(jì)的處理過(guò)程應(yīng)該盡可能地簡(jiǎn)明易懂。 結(jié)構(gòu)程序設(shè)計(jì)技術(shù)是實(shí)現(xiàn)上述目的的關(guān)鍵技術(shù),因此,是詳細(xì)設(shè)計(jì)的邏輯基礎(chǔ)。 因?yàn)槌绦蛑饕褂脧S家的s d k 進(jìn)行主要功能的實(shí)現(xiàn),而不同廠家的不同設(shè)備 的s d k 有很大差異性,因此希望系統(tǒng)能夠提供統(tǒng)一的接口來(lái)實(shí)現(xiàn)所需的功能。設(shè) 計(jì)模式里的f a c a d e 模式可以解決這個(gè)問(wèn)題。 f a c a d e 模式的作用是為擁有相同功能的子系統(tǒng)提供一致的接口。f a c a d e 模 第四章面向?qū)ο筌浖O(shè)計(jì)開(kāi)發(fā)方法在板卡式視頻監(jiān)控系統(tǒng)中的應(yīng)用 式的結(jié)構(gòu)圖如圖4 2 所示。這個(gè)功能可以完全滿足要求。因此這里采用f a c a d e 模式解決s d k 封裝的難題。這里用廠家提供的s d k 實(shí)現(xiàn)了對(duì)d v r 的基本操作, 將這些基本操作封裝到一個(gè)類中去,實(shí)現(xiàn)了一個(gè)高層接口,從而對(duì)客戶屏蔽了 復(fù)雜的s d k 圖4 2f a c a d e 模式結(jié)構(gòu)圖 圖4 3 是設(shè)備類的派生關(guān)系圖,大家可以看到,程序抽象出了所有d v r 的共 同特征( 播放、錄像、截圖、云臺(tái)控制、獲取地址、獲取設(shè)備類型、語(yǔ)音對(duì)講 等功能) ,然后封裝到一個(gè)虛基類中,完全屏蔽了底層差異,使編程更加簡(jiǎn)單、 方便。 第四章面向?qū)ο筌浖O(shè)計(jì)開(kāi)發(fā)方法在板卡式視頻監(jiān)控系統(tǒng)中的應(yīng)用 p l a y ( ) s t o p p l a y o r e c o r d ( ) s t o p r e c o r d o c a p p i c t u r e o p t z c o n t r o l o g e t a d d r e s s o g e t t y p e o v o i c e 0 自自 宦官 圖4 3 設(shè)備類的繼承派生示意圖 其它具體的設(shè)計(jì)方法會(huì)在后續(xù)章節(jié)中詳細(xì)介紹。 第二節(jié)視頻監(jiān)控系統(tǒng)的功能和實(shí)現(xiàn) 4 2 1 預(yù)覽 下面講述一下播放控制邏輯的編寫(xiě)。如圖4 4 所示,界面右側(cè)樹(shù)形列表顯示 了整個(gè)監(jiān)控系統(tǒng)的資源,用戶可以點(diǎn)擊每個(gè)資源前面的方框來(lái)打開(kāi)或關(guān)閉該資 源。用戶也可以根據(jù)需要切換顯示通道錄像狀態(tài)、報(bào)警狀態(tài)、圖像視頻參數(shù)設(shè) 定和云臺(tái)設(shè)置界面。下側(cè)是功能按鈕,包括畫(huà)面?zhèn)€數(shù)控制按鈕、錄像、回放、 抓圖、鎖定、對(duì)講、電子地圖和系統(tǒng)設(shè)置。中間占據(jù)最大區(qū)域的是畫(huà)面顯示區(qū) 域。 3 0 第四章面向?qū)ο筌浖O(shè)計(jì)開(kāi)發(fā)方法在板卡式視頻監(jiān)控系統(tǒng)中的應(yīng)用 圖4 4 預(yù)覽界面 程序設(shè)定的邏輯是:如果某個(gè)資源被打開(kāi)( 無(wú)論它是區(qū)域、d v r 或通道) , 那么它的孩子節(jié)點(diǎn)全部打開(kāi);如果同時(shí)其兄弟節(jié)點(diǎn)也已經(jīng)打開(kāi),那么更新其父 節(jié)點(diǎn)的狀態(tài)為打開(kāi)。 為此,在處理播放邏輯時(shí)設(shè)計(jì)了如下兩個(gè)遞歸調(diào)用算法,如圖4 5 所示。 圖4 5 遍歷資源樹(shù)流程圖 它們分別向上向下遍歷整個(gè)資源樹(shù)。假設(shè)當(dāng)前節(jié)點(diǎn)為p : ( 1 ) 檢測(cè)p 的所有兄弟節(jié)點(diǎn),如果所有兄弟節(jié)點(diǎn)的狀態(tài)都是“已播放 ,則更 新p 的父節(jié)點(diǎn)的狀態(tài),然后繼續(xù)按邏輯2 遞歸處理p 節(jié)點(diǎn)的父節(jié)點(diǎn),直至樹(shù)根結(jié)點(diǎn); ( 2 ) 向下遍歷p 的所有孩子節(jié)點(diǎn),如果有未播放的通道則打開(kāi)所有通道,同 時(shí)更新?tīng)顟B(tài)為“己播放 ,然后繼續(xù)按邏輯1 遞歸遍歷p 每個(gè)孩子節(jié)點(diǎn),至根結(jié)點(diǎn) 停止。 其中是視頻參數(shù)設(shè)置界面如圖4 6 。 3 2 圖4 6 視頻參數(shù)設(shè)置 3 3 第四章面向?qū)ο筌浖O(shè)計(jì)開(kāi)發(fā)方法在板卡式視頻監(jiān)控系統(tǒng)中的應(yīng)用 圖4 7 播放邏輯 上圖4 7 是播放某個(gè)d v r 通道的邏輯處理過(guò)程。當(dāng)用戶點(diǎn)擊程序主窗口 c d e c o d e m a t r i x d l g 上的資源樹(shù)節(jié)點(diǎn)( 即通道) 時(shí),程序會(huì)根據(jù)該通道所屬d v r 的 類型創(chuàng)建一個(gè)相應(yīng)的播放類對(duì)象,然后找到( 如果有的話) 一個(gè)未播放的窗口 播放。由于設(shè)計(jì)時(shí)采用了設(shè)計(jì)模式方法中的“工廠模式”,將嵌入式和p c 式d v r 間的硬件差別封裝起來(lái),對(duì)外采用統(tǒng)一的接口,降低了編程難度。 4 2 2 錄像與回放 錄像功能可由許多條件觸發(fā)。最基本的是用戶手動(dòng)錄像,其它還有自動(dòng)錄 像和由于報(bào)警或移動(dòng)偵測(cè)引起的觸發(fā)錄像。圖4 8 是錄像類型示意圖。 具體的錄像文件路徑及文件名命名格式如下: 盤(pán)符( 用戶可以設(shè)置) :m p e 9 4 r e c o r d 年一月一日普通錄像( 或觸發(fā)錄像) d v r 的i p 地址一通道號(hào)一年月日一時(shí)分秒m p 4 下面是一個(gè)具體的錄像文件名及路徑: d :m p e 9 4 r e c o r d 2 0 1 0 0 4 11 普i 霞錄像1 9 2 1 6 8 1 4 1 一0 0 2 0 1 0 0 4 11 _ 1 5 4 3 2 6 m p 4 點(diǎn)擊“本地回放 確定后進(jìn)入本地回放界面,如下:圖中右上角的“打開(kāi) 文件”按鈕用于打開(kāi)本地的文件( 只要知道錄像文件的存放路徑就行) ,再雙擊 文件即可以回放。 右上角的“條件查詢”按鈕用于對(duì)本地錄像文件的查找,點(diǎn)擊按鈕后進(jìn)入 如圖界面,在彈出的對(duì)話框里面按自己的要求條件填寫(xiě)后,點(diǎn)擊左側(cè)樹(shù)型目錄 下要查詢的服務(wù)器,如圖4 9 。 3 5 第四章面向?qū)ο筌浖O(shè)計(jì)開(kāi)發(fā)方法在板卡式視頻監(jiān)控系統(tǒng)中的應(yīng)用 圖4 9 a 查詢條件輸入界面 圖4 9 b 錄像回放 點(diǎn)擊確定后,在右側(cè)的文件列表中會(huì)顯示出符合條件的錄象文件,雙擊要 回放的錄象文件即可以在左邊的回放窗口中看到錄象畫(huà)面。 3 6 結(jié)尾, 圖4 1 0 云臺(tái)控制界面 上圖4 1 0 的控制界面可以控制云臺(tái)以步進(jìn)方式向上、下、左、右轉(zhuǎn)動(dòng),還 能調(diào)節(jié)攝像頭的變倍、光圈縮放及聚焦。 圖4 1 1 為云臺(tái)參數(shù)設(shè)置界面。 3 7 第四章面向?qū)ο筌浖O(shè)計(jì)開(kāi)發(fā)方法在板卡式視頻監(jiān)控系統(tǒng)中的應(yīng)用 圖4 1 1 云臺(tái)參數(shù)設(shè)置界面 云臺(tái)通過(guò)p c 機(jī)的串口與p c d v r 相連,這里使用了云臺(tái)控制協(xié)議p e l c o - d 和 p e l c o - p 協(xié)議。將不同協(xié)議的處理過(guò)程封裝在不同的類中,可以屏蔽了底層差別, 并方便程序的編寫(xiě)。因?yàn)檫@兩個(gè)協(xié)議類似,下面將以p e l c o - p 協(xié)議為例進(jìn)行介紹: p e l c o _ p 協(xié)議的數(shù)據(jù)格式:1 位起始位、8 位數(shù)據(jù)、1 位停止位,無(wú)校驗(yàn)位【2 7 1 。 波特率:9 6 0 0 b s 表4 - 1 命令格式 字節(jié)1字節(jié)2字節(jié)3字節(jié)4字節(jié)5字節(jié)6字節(jié)7字節(jié)8 s t x地址碼 指令碼l指令碼2數(shù)據(jù)碼l數(shù)據(jù)碼2e t x校驗(yàn)碼 說(shuō)明: ( 1 ) 該協(xié)議中所有數(shù)值都為十六進(jìn)制數(shù) ( 2 ) s t x 始終為a o h ( 3 ) 地址碼為攝像機(jī)的邏輯地址號(hào),地址范圍:o o h 一1 f h ( 4 ) 指令碼表示不同的動(dòng)作 ( 5 ) 數(shù)據(jù)碼l 、2 分別表示水平、垂直方向速度( 0 0 - 3 f h ) ,在有關(guān)預(yù)制點(diǎn)的 3 8 操作時(shí),數(shù)據(jù)碼2 表示預(yù)制點(diǎn)值 ( 6 ) e t x 始終為a f h ( 7 ) 校驗(yàn)碼( x o rs u mo fb y t e s2 - 6 ) = 字節(jié)2 字節(jié)3 字節(jié)4 “字節(jié)5 字節(jié)6 以地址碼o x 0 1 為例說(shuō)明具體的命令: o x a o ,o x 0 1 ,o x 0 0 ,o x 0 8 ,o x 0 0 ,o x 3 0 ,o x a f ,0 x 3 9 , 上 o x a o ,o x 0 1 ,o x 0 0 ,o x l o ,o x 0 0 ,o x 3 0 ,o x a f ,o x 2 1 , 下 o x a o ,o x 0 1 ,o x 0 0 ,o x 0 4 ,o x l o ,o x 0 0 ,o x a f ,o x l 5 , 左 o x a o ,o x 0 1 ,o x 0 0 ,o x 0 2 ,o x l o ,o x 0 0 ,o x a f ,o x l 3 , 右 o x a o ,o x 0 1 ,o x 0 0 ,o x 4 0 ,o x 0 0 ,o x 0 0 ,o x a f ,o x 4 1 ,) 變倍短 o x a o ,o x 01 ,o x 0 0 ,o x 2 0 ,o x 0 0 ,o x 0 0 ,o x a f ,o x 21 , 變倍長(zhǎng) o x a o ,o x o1 ,o x 0 2 ,o x 0 0 ,o x 0 0 ,o x 0 0 ,o x a f ,o x 0 3 ,) 聚焦近 o x a o ,o x o1 ,o x o1 ,o x 0 0 ,o x 0 0 ,o x 0 0 ,o x a f ,o x 0 0 ,) 聚焦遠(yuǎn) o x a o ,o x 01 ,o x 0 8 ,o x 0 0 ,o x 0 0 ,o x 0 0 ,o x a f ,o x 0 9 ,) 光圈小 o x a o ,o x 01 ,o x 0 4 ,o x 0 0 ,o x 0 0 ,o x 0 0 ,o x a f ,o x 0 5 , 光圈大 無(wú)命令字發(fā)送燈光關(guān) 無(wú)命令字發(fā)送燈光開(kāi) o x a o ,o x 0 1 ,o x 0 0 ,0 x 9 6 ,o x 0 0 ,o x 2 0 ,o x a f ,o x b 7 , 自動(dòng)巡航 ( o x a o ,o x 0 1 ,o x 0 0 ,0 x 9 9 ,o x 0 0 ,o x 2 0 ,o x a f ,o x b 8 , 關(guān)閉自動(dòng)巡航 o x a o ,o x 0 1 ,o x 0 0 ,o x 0 7 ,o x 0 0 ,o x 0 1 ,o x a f ,o x 0 7 , 轉(zhuǎn)至預(yù)置點(diǎn)0 0 1 o x a o ,o x 0 1 ,o x 0 0 ,o x 0 3 ,o x 0 0 ,o x 0 1 ,o x a f ,o x 0 3 ,) 設(shè)置預(yù)置點(diǎn)0 0 1 o x a o ,o x 0 1 ,o x 0 0 ,o x 0 5 ,o x 0 0 ,o x 0 1 ,o x a f ,o x 0 1 ,) 刪除預(yù)置點(diǎn)0 0 1 以上對(duì)應(yīng)的停命令均是( 上下左右、變倍、聚焦、光圈均有停命令) : o x a o ,o x 01 ,o x 0 0 ,o x 0 0 ,o x 0 0 ,o x 0 0 ,o x a f ,o x o1 , 4 2 4 移動(dòng)偵測(cè)與遮擋 移動(dòng)偵測(cè)這個(gè)功能主要是檢測(cè)有無(wú)移動(dòng)的物體。在設(shè)置移動(dòng)偵測(cè)區(qū)域時(shí)以 3 2 * 3 2 像素塊為單位,按4 c i f ( 7 0 4 * 5 7 6 ) 分辨率計(jì)算,每行有2 2 個(gè)塊( 7 0 4 3 2 ) , p a l 時(shí)1 8 行( 5 7 6 3 2 ) ,n t s c 時(shí)1 5 行( 4 8 0 3 2 ) ,與編碼格式無(wú)關(guān)。經(jīng)過(guò)測(cè)試,這 種方法提高了靈敏度和可靠性,并簡(jiǎn)化了返回的數(shù)據(jù),返回的值是1 8 個(gè)d w o r d , 對(duì)應(yīng)屏幕高度5 7 6 3 2 = 1 8 行( p a l ) ,每個(gè)d w o r d 的0 - 2 1 位對(duì)應(yīng)屏幕寬度7 0 4 3 2 = 2 2 , 其中1 為運(yùn)動(dòng),0 為靜止,也可以調(diào)用原有m o t i o n a n a l y z e r 分析結(jié)果。 3 9 第四章面向?qū)ο筌浖O(shè)計(jì)開(kāi)發(fā)方法在板卡式視頻監(jiān)控系統(tǒng)中的應(yīng)用 硬件的能力是最多設(shè)置1 0 0 個(gè)移動(dòng)偵測(cè)框,而出于實(shí)際需要,每個(gè)通道最多 設(shè)置4 個(gè)就能滿足要求。 圖4 1 2 移動(dòng)偵測(cè)設(shè)置界面 遮擋就是用一塊黑色方塊覆蓋設(shè)定的區(qū)域,防止某些隱私被攝入錄像機(jī)。 方案里最多支持四個(gè)遮擋區(qū)域。 有關(guān)移動(dòng)偵測(cè)和遮擋的詳細(xì)設(shè)計(jì)本文將在后面做詳細(xì)說(shuō)明。 4 2 5 電子地圖 將通道和報(bào)警點(diǎn)以地圖的形式顯示在屏幕上,當(dāng)通道或報(bào)警點(diǎn)發(fā)生報(bào)警事 件,電子地圖會(huì)自動(dòng)彈出,并顯示發(fā)生報(bào)警的區(qū)域地圖,通道或報(bào)警點(diǎn)閃爍, 雙擊通道可對(duì)前端動(dòng)點(diǎn)進(jìn)行控制。 第四章面向?qū)ο筌浖O(shè)計(jì)開(kāi)發(fā)方法在板卡式視頻監(jiān)控系統(tǒng)中的應(yīng)用 圖4 1 3 報(bào)警設(shè)置界面 在實(shí)際運(yùn)用中,p c d v r 一般會(huì)連接a 8 報(bào)警箱進(jìn)行報(bào)警的上傳。下面講述一下 報(bào)警信息的上傳。 如圖4 1 3 所示,如果發(fā)生報(bào)警,回調(diào)函數(shù)m e s s a g e c a l l b a c k ( ) 就會(huì)立刻觸 發(fā),然后調(diào)用c d v r m s g h a n d l e r 中的報(bào)警信息處理函數(shù),將報(bào)警信息按類型進(jìn)行 分類,最后發(fā)往上層界面c c l i e n t m a i n w n d 類,顯示給用戶。 c h i k p c d v rc d v r m s g h a n d l e r c c l i e n t m a i n w n d - m _ p m s g h a n d l e r 卜、卜 + m e s s a g e c a l l b a c k ( ) yy + h a n d l e p c a l a r m ( ) + h a n d l e r ( )+ h a n d l e c l i e n t p c a l a r m o + n o t i f y a l a r m ( ) 圖4 1 4 報(bào)警上傳流程 圖4 1 4 為報(bào)警參數(shù)設(shè)置界面。 4 1 圖4 1 6 為用戶信息設(shè)置。 圖4 1 5 報(bào)警參數(shù)設(shè)置 4 2 第四章面向?qū)ο筌浖O(shè)計(jì)開(kāi)發(fā)方法在板卡式視頻監(jiān)控系統(tǒng)中的應(yīng)用 4 3 1 配置信息的存儲(chǔ) 圖4 1 6 用戶設(shè)置 第三節(jié)技術(shù)難點(diǎn)及實(shí)現(xiàn) 系統(tǒng)要存儲(chǔ)許多數(shù)據(jù),它們分別控制不同功能。圖4 1 3 是系統(tǒng)的數(shù)據(jù)字典。 云臺(tái) 波特率 協(xié)議 串口號(hào) 地址 云臺(tái)數(shù)量 移動(dòng)偵測(cè) p k通j 盞呈 靈敏度 偵測(cè)區(qū)間l 偵測(cè)區(qū)間2 偵測(cè)區(qū)間3 偵測(cè)區(qū)間4 錄像 打包時(shí)間 開(kāi)始盤(pán)符 結(jié)束盤(pán)符 是否自動(dòng)錄像 是否循環(huán)錄像 錄像停止方式 自動(dòng)錄像條件 錄像時(shí)間 遮擋 p k通道呈 遮擋區(qū)間i 遮擋區(qū)間2 遮擋區(qū)間3 遮擋區(qū)間4 音視頻設(shè)定 抓圖保存地址 輪顯時(shí)間間隔 是否打開(kāi)預(yù)覽 是否打開(kāi)監(jiān)聽(tīng) 自動(dòng)鎖定時(shí)間 視頻壓縮設(shè)定 p k 通道呈 圖像壓縮質(zhì)量 壓縮比特率 幀速率 關(guān)鍵幀周期 壓縮尺寸 壓縮模式 壓縮范圍 網(wǎng)絡(luò)設(shè)定 身份驗(yàn)證 是否允許回放 緩沖區(qū)大小 通信端口 用戶 p k用戶序號(hào) 用戶名 用戶密碼 用戶等級(jí) 設(shè)備 p k設(shè)釜l q 設(shè)備名 設(shè)備地址 設(shè)備端口 通道數(shù) 用戶名 用戶密碼 設(shè)各類型 報(bào)警數(shù) 電子地圖名稱 報(bào)警 p k報(bào)鳘莊呈 報(bào)警輸入數(shù) 報(bào)警輸出數(shù) 串口名 報(bào)警持續(xù)時(shí)間 是否允許報(bào)警輸出 是否允許移動(dòng)偵測(cè)報(bào)警 圖4 1 3 數(shù)據(jù)字典 這些數(shù)據(jù)主要是存儲(chǔ)在本地p c d v r 上,雖然每一項(xiàng)所占空間不大,但數(shù)量 很多( 移動(dòng)偵測(cè)、遮擋、報(bào)警這三種設(shè)定是與通道相關(guān)的,通道越多設(shè)定就越 4 3 用 多) ,所以存儲(chǔ)所需的工作量還是很大的。 考慮到這些實(shí)際情況,這里用配置文件“i n i 的存儲(chǔ)方式來(lái)存儲(chǔ)這些設(shè)定 參數(shù)。 下面簡(jiǎn)單介紹一下配置文件的存儲(chǔ)方式:配置文件的分隔單位是字段和鍵, 一個(gè)配置文件下可以有多個(gè)字段,字段名不能重復(fù);而每個(gè)字段下又可以有多 個(gè)鍵,同一字段鍵名不能重復(fù),不同字段可以有相同的鍵名。在實(shí)際使用過(guò)程 中,可以通過(guò)讀取和改寫(xiě)某個(gè)字段下的某個(gè)鍵名來(lái)起到儲(chǔ)存信息的目的。 圖4 1 4 是系統(tǒng)配置文件的截圖。 第四章面向?qū)ο筌浖O(shè)計(jì)開(kāi)發(fā)方法在板卡式視頻監(jiān)控系統(tǒng)中的應(yīng)用 口豳蟹固匱熱愛(ài)貶您黲緲到剄 文件證) 編輯疆) 格式 查看凹幫助 i e h d o rp c ) - i l t y p e - 1一 l s e r v e r i p - 1 9 2 1 6 8 1 2 i v l n d o w l l u e d 3 e r - 9 l s t a r t u p l r e b o o t o a u - 1 。 l r e b o o t h o u r - 一 | 【云臺(tái)】 l b a u d r a t e - 9 6 9 i c o h p o r t - l p r o t o c o l - p i h u m b e r - i 【a l a r m l c o h p o r t - c 0 h l i n h u m b e r - i o u t h u m b e r - l e n a b l e a l a r m o u t p u t - i l m o u e d e t e c t a l a r m - 1 i s t o p s t g l e - 1 i a l a r m l a s t t l m e - 2 | i e n a b l e a u d l o a l a r l - 1 l m t n u t e s t a r t = i i i h t n u t e e n d = 5 9 i h o u r s t a r t - b l o u r e n d - 2 3 i p r o t o c o i - d c 了r l s i n l a r m p o l n t r e a d y t t i e l 】 l b e g i n - 7 ,一 l e n d - 1 2 ,7 i n l a r m p o l n t r e a d y t l m 2 t i b e g l n - 1 2 l e n d - 2 3 i a l a r m p o i n t c h a n n e l r e l a t t o n j l a l a r m p o l n t l - 1 l a l a r m p o i n t 2 - 2 i a l a r n p o i n t 3 - 3 l a l a r m p o i n t 4 = 4 l a l a r m p o i n t 5 - 5 i a l a r m p o l n t 6 = 6 l a l a r m p o t n t 7 - 7 l n l a r m p o i n t s = 8 , l u l d e o c o m p r e s s l o n l 1 9 1 t r a t e - 8 d ,l 圖4 1 4 配置文件 使用上面介紹的配置信息存儲(chǔ)方法后, 配置信息,而且能做到設(shè)置改變即能生效, 4 5 系統(tǒng)就能夠方便快捷地存取本地的 不需重啟程序,同時(shí)也大大減輕了 第四章面向?qū)ο筌浖O(shè)計(jì)開(kāi)發(fā)方法在板卡式視頻監(jiān)控系統(tǒng)中的應(yīng)用 編程負(fù)擔(dān)。 圖4 1 5 是p c d v r 本地錄像參數(shù)設(shè)置界面圖。 圖4 1 5 錄像參數(shù)設(shè)置界面圖 這個(gè)界面可以設(shè)定錄像參數(shù):如打包時(shí)間、是否循環(huán)錄像、是否自動(dòng)錄像、 錄像起始及終止驅(qū)動(dòng)器、自動(dòng)錄像觸發(fā)條件、觸發(fā)錄像停止方式、定時(shí)錄像時(shí) 間段設(shè)置( 一周七天、每天四個(gè)時(shí)間段) 、條件定時(shí)錄像時(shí)間段。 4 3 2 性能優(yōu)化 l 、錄像刪除 程序之前的錄像刪除策略是每隔幾分鐘查看錄像盤(pán)符的剩余空間,如果空 間低于設(shè)定值則刪除時(shí)間最早的那個(gè)錄像,但在實(shí)際應(yīng)用過(guò)程中發(fā)現(xiàn)由于某些 特殊( 但正常) 的原因,某些錄像所占空間可能比較小,而在正常狀態(tài)下一個(gè) 通道一小時(shí)能夠記錄1 0 0 m ( 或者更多) 的數(shù)據(jù),當(dāng)錄像通道有十幾路的話對(duì)磁 盤(pán)的消耗是非常大的,如果刪除文件速度過(guò)慢會(huì)經(jīng)常導(dǎo)致磁盤(pán)被寫(xiě)滿,導(dǎo)致程 序錯(cuò)誤。后來(lái)經(jīng)過(guò)大家討論,決定每次清理時(shí)刪除最早的一天的錄像,這樣每 次能清理出幾個(gè)g 的空間,基本不會(huì)發(fā)生磁盤(pán)滿的現(xiàn)象,而且使得輪巡檢測(cè)的 第四章面向?qū)ο筌浖O(shè)計(jì)開(kāi)發(fā)方法在板卡式視頻監(jiān)控系統(tǒng)中的應(yīng)用 函數(shù)也不需運(yùn)行得太頻繁,降低了系統(tǒng)負(fù)荷。 2 、提高系統(tǒng)運(yùn)行效率 雖然系統(tǒng)比較復(fù)雜,實(shí)現(xiàn)的功能較多,但是占用資源、c p u 使用率卻不能 太高,同時(shí),考慮到人機(jī)交互,為了給用戶一個(gè)方便快捷的操作界面,系統(tǒng)的 反應(yīng)速度不能低。在提高系統(tǒng)運(yùn)行效率方面做了如下工作: ( 1 ) 將一些處理時(shí)間長(zhǎng)、系統(tǒng)負(fù)擔(dān)重、不要求立刻返回結(jié)果的操作開(kāi)辟出另 一個(gè)線程來(lái)進(jìn)行后臺(tái)處理,這樣可以防止程序界面假死; ( 2 ) 出于系統(tǒng)功能的角度考慮,系統(tǒng)最初使用了許多定時(shí)器來(lái)進(jìn)行定時(shí)功 能,它們?cè)黾恿讼到y(tǒng)的負(fù)擔(dān),造成定時(shí)不準(zhǔn)的狀況。在軟件后期系統(tǒng)測(cè)試維護(hù) 階段去掉了不必要的定時(shí)器,使得系統(tǒng)能夠正常高效地執(zhí)行; ( 3 ) 對(duì)一些關(guān)鍵操作的邏輯處理做了優(yōu)化( 例如改變預(yù)覽窗口個(gè)數(shù)) ,使得 系統(tǒng)運(yùn)行速度更快。 4 3 3 移動(dòng)偵測(cè)、遮擋功能中區(qū)域位置的存儲(chǔ) 系統(tǒng)每個(gè)通道能夠存儲(chǔ)四個(gè)移動(dòng)偵測(cè)和四個(gè)遮擋區(qū)域,由于預(yù)覽窗口能夠 控制放大縮小,為了使窗口大小的變化不影響這些特定區(qū)域相對(duì)于整個(gè)窗口的 位置,對(duì)區(qū)域位置的存儲(chǔ)做了特別設(shè)計(jì)。 圖4 1 6 是計(jì)算區(qū)域相對(duì)于整個(gè)窗口位置比例的示意圖。 4 7 g h t 第四章面向?qū)ο筌浖O(shè)計(jì)開(kāi)發(fā)方法在板卡式視頻監(jiān)控系統(tǒng)中的應(yīng)用 圖4 1 6 窗口比例計(jì)算 分別計(jì)算了區(qū)域上下左右四個(gè)邊界分別占整個(gè)窗口高和寬的比例,然后將 這個(gè)比例存下來(lái),公式如下: 土,土,j l ,j ,l ( 4 1 ) w i d t h w i d t hh e i g h t h e i g h t 這樣,無(wú)論窗口大小如何變化,區(qū)域的相對(duì)位置都不變。 4 3 4 錄像遠(yuǎn)程查詢和下載 1 、在監(jiān)控系統(tǒng)在實(shí)際使用中,用戶經(jīng)常會(huì)在客戶端遠(yuǎn)程操作p c d v r 的錄像, 因此就需要錄像遠(yuǎn)程查詢功能。 遠(yuǎn)程錄像搜索的邏輯類似于本地錄像搜索,查詢條件包括查詢的時(shí)間范圍 ( 年月日時(shí)分) 、錄像類型、d v r 信息。程序采用w i n d o w ss o c k e t 編程方法在p c d v r 和客戶端程序之間建立s o c k e t 連接,客戶端向p c d v r 發(fā)送查找命令,p c d v r 在本 地搜索完畢后將搜索結(jié)果通過(guò)局域網(wǎng)上的s o c k e t 連接發(fā)送給查詢的客戶端。 錄像遠(yuǎn)程查詢這個(gè)功能對(duì)編程人員的要求是很高的,因?yàn)樾枰紤]到很多 特殊情況,比如多人同時(shí)查詢一臺(tái)p c d v r 的錄像信息、因?yàn)榫W(wǎng)絡(luò)原因?qū)е碌倪B接 中斷等問(wèn)題。 為此,程序中加入了一些特殊的技術(shù)手段。監(jiān)聽(tīng)事先約定好的端口,當(dāng)發(fā) 現(xiàn)有客戶端發(fā)來(lái)的查詢命令后,首先建立與該客戶端的s o c k e t 連接,新建一個(gè) 線程查找本地錄像文件,然后將結(jié)果通過(guò)該連接返回給客戶端,然后中斷連接。 考慮至i j p c d v r 在錄像外剩余的執(zhí)行能力及搜索算法對(duì)設(shè)備的負(fù)擔(dān),程序設(shè)定每個(gè) p c d v r 最多建立3 條連接。 同時(shí),考慮到網(wǎng)絡(luò)可能會(huì)發(fā)生的問(wèn)題,程序設(shè)定,如果客戶端與p c d v r 的連 接如果非正常中斷3 0 秒以上,則釋放s o c k e t 占用的資源。 2 、在遠(yuǎn)程回放p c d v r 的錄像后想將其中的某段錄像下載到本地供后續(xù)使用, 因此系統(tǒng)需要集成遠(yuǎn)程下載功能。 對(duì)于遠(yuǎn)程下載功能有如下性能要求: ( 1 ) 傳輸準(zhǔn)確性高:由于視頻監(jiān)控系統(tǒng)均是用在一些重要場(chǎng)合,如銀行、超 市、交通路口等,因此錄像中的信息都是十分重要的,如果在遠(yuǎn)程傳輸中有任 何信息的丟失,這個(gè)責(zé)任誰(shuí)也負(fù)不起的。因此,下載的正確性必須做到1 0 0 。 ( 2 ) 下載速度也是遠(yuǎn)程下載的一項(xiàng)重要指標(biāo)。如果用戶在下載一個(gè)1 0 0 m 左右 第四章面向?qū)ο筌浖O(shè)計(jì)開(kāi)發(fā)方法在板卡式視頻監(jiān)控系統(tǒng)中的應(yīng)用 的錄像文件時(shí)能夠有時(shí)間喝一杯咖啡,那么沒(méi)有一個(gè)人會(huì)選擇這款監(jiān)控系統(tǒng)。 因此,在保證正確性的前提下,程序要盡量提高遠(yuǎn)程下載速度。 在編寫(xiě)錄像遠(yuǎn)程查詢和下載功能的時(shí)候,為了能夠傳輸所需的控制命令, 程序中新建了兩個(gè)無(wú)模式對(duì)話框。無(wú)模式對(duì)話框也是一種沒(méi)有界面的對(duì)話框, 可以利用它來(lái)傳遞消息,但它對(duì)開(kāi)發(fā)者是隱形的,對(duì)用戶是透明的。 第四節(jié)軟件測(cè)試與軟件維護(hù) 4 4 1 軟件測(cè)試 在軟件開(kāi)發(fā)的一系列活動(dòng)中,為了保證軟件的可靠性,人們研究并使用了 很多方法進(jìn)行分析、設(shè)計(jì)及編碼實(shí)現(xiàn)。但是由于軟件產(chǎn)品本身是無(wú)形的、復(fù)雜 的、知識(shí)密集的邏輯產(chǎn)品,其中難免有各種各樣的錯(cuò)誤,因此,需要通過(guò)測(cè)試 查找錯(cuò)誤,保證軟件的質(zhì)量。軟件測(cè)試是保證軟件質(zhì)量的關(guān)鍵,它是對(duì)需求分 析、設(shè)計(jì)和編碼的最終復(fù)審2 引。 軟件測(cè)試的原則: ( 1 ) 測(cè)試用例既要有輸入數(shù)據(jù),又要有對(duì)應(yīng)結(jié)果。這樣便于對(duì)照檢查,做到 “有的放矢 。 ( 2 ) 測(cè)試用例不僅要選用合理的輸入數(shù)據(jù),還應(yīng)選擇不合理的輸入數(shù)據(jù)。這 樣能更多地發(fā)現(xiàn)錯(cuò)誤,提高程序的可靠性,還可以測(cè)試出程序的排錯(cuò)能力。 ( 3 ) 除了檢查程序是否做了它應(yīng)該做的工作,還應(yīng)該檢查程序是否做了它不 應(yīng)該做的工作。 ( 4 ) 應(yīng)該遠(yuǎn)在測(cè)試開(kāi)始之前就制定測(cè)試計(jì)劃。實(shí)際上,一旦完成了需求分析 模型就可以開(kāi)始制定測(cè)試計(jì)劃,在建立了設(shè)計(jì)模型之后就可以立即開(kāi)始設(shè)計(jì)詳 細(xì)的測(cè)試方案。因此,在編碼之前就可以對(duì)所有測(cè)試工作進(jìn)行計(jì)劃和設(shè)計(jì),并 嚴(yán)格執(zhí)行,排除隨意性。 ( 5 ) 測(cè)試計(jì)劃、測(cè)試用例、測(cè)試報(bào)告必須作為文檔長(zhǎng)期保存。因?yàn)槌绦蛐薷?以后有時(shí)可能會(huì)引進(jìn)新的錯(cuò)誤,需要進(jìn)行回歸測(cè)試。同時(shí)可以為以后的維護(hù)提 供方便,對(duì)新人或今后的工作都有指導(dǎo)意義。 ( 6 ) p a r et o 原理說(shuō)明,測(cè)試發(fā)現(xiàn)的錯(cuò)誤中8 0 f t t 可能是由程序中2 0 的模塊 造成的,即錯(cuò)誤出現(xiàn)的“群集性 現(xiàn)象。 4 9 第四章面向?qū)ο筌浖O(shè)計(jì)開(kāi)發(fā)方法在板卡式視頻監(jiān)控系統(tǒng)中的應(yīng)用 ( 7 ) 為了達(dá)到最佳的測(cè)試效果,程序員應(yīng)該避免測(cè)試自己的程序。測(cè)試是一 種“挑剔性”的行為,測(cè)試自己的程序存在心里障礙。另外,對(duì)需求規(guī)格說(shuō)明 的理解而引入的錯(cuò)誤則更不容易發(fā)現(xiàn)。因此,應(yīng)該由獨(dú)立的第三方從事測(cè)試工 作會(huì)更客觀、更有效。 測(cè)試是一個(gè)執(zhí)行程序的過(guò)程。軟件測(cè)試的方法一般分為動(dòng)態(tài)測(cè)試和靜態(tài)測(cè) 試。把被測(cè)程序在機(jī)器上運(yùn)行稱為動(dòng)態(tài)測(cè)試,不在機(jī)器上運(yùn)行被測(cè)程序稱為靜 態(tài)測(cè)試。 靜態(tài)測(cè)試就是靜態(tài)分析,它采用的手段有兩種:人工檢測(cè)和計(jì)算機(jī)輔助靜 態(tài)分析。 ( 1 ) 人工測(cè)試指不依靠計(jì)算機(jī)而完全靠人工審查程序或評(píng)價(jià)軟件。人工審查 程序偏重于編碼風(fēng)格、編碼質(zhì)量的檢驗(yàn),除了審查編碼,還要對(duì)各階段的軟件 產(chǎn)品進(jìn)行檢驗(yàn)。人工測(cè)試可以有效地發(fā)現(xiàn)軟件的邏輯設(shè)計(jì)和編碼錯(cuò)誤,發(fā)現(xiàn)計(jì) 算機(jī)不容易發(fā)現(xiàn)的錯(cuò)誤。 ( 2 ) 計(jì)算機(jī)輔助靜態(tài)分析是指利用靜態(tài)分析工具對(duì)被測(cè)程序進(jìn)行特征分析, 從程序中提取一些信息,以便檢查程序邏輯的各種缺陷和可疑的程序構(gòu)造。 動(dòng)態(tài)測(cè)試是指通過(guò)運(yùn)行程序發(fā)現(xiàn)錯(cuò)誤,方法也有兩種:黑盒測(cè)試法和白盒 測(cè)試法。 黑盒測(cè)試也稱功能測(cè)試或數(shù)據(jù)驅(qū)動(dòng)測(cè)試。它不考慮程序內(nèi)部結(jié)構(gòu)和處理過(guò) 程。把被測(cè)程序看成一個(gè)黑盒子,只在軟件接口處進(jìn)行測(cè)試,依據(jù)需求規(guī)格說(shuō) 明書(shū),檢查程序是否滿足功能要求。每個(gè)功能是否都能正常使用,是否滿足用 戶的要求,程序是否能適當(dāng)?shù)亟邮茌斎霐?shù)據(jù)并產(chǎn)生正確的輸出信息,并且保持 外部信息的完整性。 通過(guò)黑盒測(cè)試主要發(fā)現(xiàn)以下錯(cuò)誤: ( 1 ) 是否有不正確或遺漏了的功能; ( 2 ) 在接口上,能否正確地接受輸入數(shù)據(jù),能否產(chǎn)生正確的輸出信息。 ( 3 ) 訪問(wèn)外部信息是否有錯(cuò)。 ( 4 ) 性能上是否滿足要求。 ( 5 ) 界面是否有錯(cuò),是否美觀、友好。 白盒測(cè)試也稱結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試。白盒測(cè)試中,測(cè)試人員需了解程 序的內(nèi)部結(jié)構(gòu)和處理過(guò)程,以檢查處理過(guò)程的細(xì)節(jié)為基礎(chǔ),要求對(duì)程序的結(jié)構(gòu) 特性做到一定程序的覆蓋,對(duì)程序中的所有邏輯路徑進(jìn)行測(cè)試,并檢驗(yàn)內(nèi)部控 第四章面向?qū)ο筌浖O(shè)計(jì)開(kāi)發(fā)方法在板卡式視頻監(jiān)控系統(tǒng)中的應(yīng)用 制結(jié)構(gòu)是否有錯(cuò),確定實(shí)際的運(yùn)行狀態(tài)與預(yù)期的狀態(tài)是否一致。 圖4 1 7 是一個(gè)典型的軟件測(cè)試過(guò)程示意圖。 模塊 - - - - 啼 梭塊 - _ - - - 沒(méi)計(jì)信息軟件需求其他系統(tǒng)元襲 圖4 1 7 軟件測(cè)試過(guò)程 監(jiān)控系統(tǒng)一旦架設(shè)起來(lái)開(kāi)始運(yùn)行,就要求軟件不能出錯(cuò)、不能停止。因此 對(duì)軟件的安全性、穩(wěn)定性要求非常高。為了達(dá)到用戶的要求,在系統(tǒng)后期測(cè)試 過(guò)程中使用工具b o u n d s c h e c k e r 進(jìn)行計(jì)算機(jī)輔助靜態(tài)分析測(cè)試。 b o u n d s c h e c k e r 是c o m p u w a r e 公司開(kāi)發(fā)的一款產(chǎn)品,這個(gè)軟件屬于c o m p u w a r e 的n u m e g a 系列( 自動(dòng)化的白盒測(cè)試工具) 。b o u n d s c h e c k e r 提供清晰的、詳細(xì)的 程序錯(cuò)誤分析,自動(dòng)查明靜態(tài)的堆棧錯(cuò)誤及內(nèi)存資源泄露,并能夠迅速的定位 出錯(cuò)的源代碼,即使在沒(méi)有源代碼的情況下也可檢查第三方組件的錯(cuò)誤【3 1 1 。 錯(cuò)誤檢測(cè)范圍主要包括如下: 1 、指針和泄露錯(cuò)誤: ( 1 ) 接口泄露; ( 2 ) 內(nèi)存泄露: ( 3 ) 資源泄露; ( 4 ) 未分配的指針錯(cuò)誤; 2 、內(nèi)存錯(cuò)誤: ( 1 ) 動(dòng)態(tài)存儲(chǔ)溢出; ( 2 ) 無(wú)效的句柄被鎖定; ( 3 ) 句柄沒(méi)有被鎖定; ( 4 ) 內(nèi)存分配沖突; ( 5 ) 棧空間溢出; ( 6 ) 靜態(tài)存儲(chǔ)溢出; 3 、a p i 和o l e 錯(cuò)誤: 第四章面向?qū)ο筌浖O(shè)計(jì)開(kāi)發(fā)方法在板卡式視頻監(jiān)控系統(tǒng)中的應(yīng)用 ( 1 ) a p i 函數(shù)返回失?。?( 2 ) a p i 函數(shù)未執(zhí)行; ( 3 ) 無(wú)效的變量( 包括指針變量、字符串變量等) ; ( 4 ) o l e 接口方法的變量無(wú)效; ( 5 ) o l e 接口方法失?。?( 6 ) 線程調(diào)用庫(kù)函數(shù)錯(cuò)誤; 4 4 2 軟件維護(hù) 傳統(tǒng)上,軟件系統(tǒng)交付之后對(duì)其實(shí)施更改的學(xué)科叫做軟件維護(hù)。通俗地說(shuō), 軟件維護(hù)是指軟件系統(tǒng)交付使用以后,為了改正軟件運(yùn)行錯(cuò)誤,或者因滿足新 的需求而加入新功能的修改軟件的過(guò)程。 軟件系統(tǒng)開(kāi)發(fā)完成交付用戶使用后,就進(jìn)入軟件的運(yùn)行和維護(hù)階段。軟件 維護(hù)階段是軟件生存周期中時(shí)間最長(zhǎng)的一個(gè)階段,所花費(fèi)的精力和費(fèi)用也是最 多的一個(gè)階段。有關(guān)軟件系統(tǒng)交付之后對(duì)系統(tǒng)實(shí)施更改的特點(diǎn)和成本調(diào)查結(jié)果 說(shuō)明,軟件系統(tǒng)整個(gè)生存周期總成本大約4 0 - - 7 0 要用于軟件維護(hù)。軟件系統(tǒng)經(jīng) 常會(huì)發(fā)生一些變化,如對(duì)隱含錯(cuò)誤的修改、新功能的加入、環(huán)境變化造成的程 序變動(dòng)等。因此,需要充分認(rèn)識(shí)軟件維護(hù)工作的重要性和迫切性,以提高軟件 的可維護(hù)性,盡量減少軟件維護(hù)的工作量和費(fèi)用,從而提高軟件系統(tǒng)的整體效 益【3 5 】。 軟件維護(hù)活動(dòng)可歸結(jié)為四類: ( 1 ) 改正性維護(hù):軟件測(cè)試不可能找出一個(gè)軟件系統(tǒng)中所有潛伏的錯(cuò)誤,所 以軟件在交付使用后,必然會(huì)有一部分隱藏的錯(cuò)誤被帶到運(yùn)行階段中。這些隱 藏的錯(cuò)誤在某些特定的使用環(huán)境下才會(huì)暴露出來(lái)。把在軟件投入使用后才逐漸 暴露出來(lái)的錯(cuò)誤的診斷、定位、改錯(cuò)的過(guò)程,稱為改正性維護(hù)。 改正性維護(hù)中的主要維護(hù)策略有:開(kāi)發(fā)過(guò)程中采用新技術(shù)、利用應(yīng)用軟件 包、提高系統(tǒng)結(jié)構(gòu)化程度、進(jìn)行周期性維護(hù)審查等。 ( 2 ) 適應(yīng)性維護(hù):適應(yīng)性維護(hù)是為了適應(yīng)計(jì)算機(jī)的飛速發(fā)展,使軟件適應(yīng)外 部新的硬件和軟件環(huán)境或者數(shù)據(jù)環(huán)境發(fā)生的變化,而進(jìn)行修改軟件的過(guò)程。 適應(yīng)性維護(hù)中的主要維護(hù)策略有:對(duì)可能變化的因素進(jìn)行配置管理、將因 環(huán)境變化而必須修改的部分局部化,即局限于某些程序模塊等。 ( 3 ) 完善性維護(hù):在軟件漫長(zhǎng)的使用過(guò)程中,為了滿足用戶使用過(guò)程中對(duì)軟 第四章面向?qū)ο筌浖O(shè)計(jì)開(kāi)發(fā)方法在板卡式視頻監(jiān)控系統(tǒng)中的應(yīng)用 件提出的新的功能與性能要求,需要對(duì)原來(lái)的軟件的功能進(jìn)行修改或擴(kuò)充。這 種為擴(kuò)充軟件功能、增強(qiáng)軟件性能、提高軟件運(yùn)行效率和可維護(hù)性而進(jìn)行的維 護(hù)活動(dòng)稱為完善性維護(hù)。 完善性維護(hù)中的主要維護(hù)策略有:盡量采用功能強(qiáng)、使用方便的工具,采 用原型化的開(kāi)發(fā)方法等。 ( 4 ) 預(yù)防性維護(hù):預(yù)防性維護(hù)是為了提高軟件未來(lái)的可維護(hù)性、可靠性等, 或?yàn)榱私o未來(lái)的改進(jìn)奠定更好的基礎(chǔ)而修改軟件的過(guò)程。通常,預(yù)防性維護(hù)定 義為:“把今天的方法學(xué)用于昨天的系統(tǒng)以滿足明天的需要。也就是說(shuō),該類 維護(hù)工作需要采用先進(jìn)的軟件工程方法,對(duì)需要維護(hù)的軟件或軟件中的某一部 分進(jìn)行設(shè)計(jì)、編碼和測(cè)試。 預(yù)防性維護(hù)中的主要維護(hù)策略是:采用提前實(shí)現(xiàn)、軟件重用等技術(shù)。 軟件維護(hù)中存在的問(wèn)題: ( 1 ) 讀懂別人的程序是很困難的,而文檔的不足更增加了這種難度。一般開(kāi) 發(fā)人員都有這樣的體會(huì),修改別人的程序還不如自己重新編寫(xiě)程序。 ( 2 ) 文檔的不一致性是軟件維護(hù)困難的又一個(gè)因素,主要表現(xiàn)在各種文檔之 間的不一致以及文檔與程序之間的不一致性,從而導(dǎo)致維護(hù)人員不知所措,不 知怎樣進(jìn)行修改。這種不一致性是由于開(kāi)發(fā)過(guò)程中文檔管理不嚴(yán)造成的,開(kāi)發(fā) 中經(jīng)常會(huì)出現(xiàn)修改程序而忘了修改相關(guān)的文檔,或者某一個(gè)文檔修改了,卻沒(méi) 有修改與之相關(guān)的其他文檔等現(xiàn)象,解決文檔不一致性的方法就是要加強(qiáng)開(kāi)發(fā) 工作中文檔的版本管理。 ( 3 ) 軟件開(kāi)發(fā)和軟件維護(hù)在人員和時(shí)間上存在差異。如果軟件維護(hù)工作是由 該軟件的開(kāi)發(fā)人員完成,則維護(hù)工作相對(duì)比較容易,因?yàn)檫@些人員熟悉軟件的 功能和結(jié)構(gòu)等。但是,通常開(kāi)發(fā)人員和維護(hù)人員是不同的,況且維護(hù)階段持續(xù) 時(shí)間很長(zhǎng)。 ( 4 ) 軟件維護(hù)不是一件吸引人的工作。由于維護(hù)工作的困難性,維護(hù)經(jīng)常遭 受挫折,而且很難出成果,所以高水平的程序員自然不愿主動(dòng)去做,而公司也 舍不得讓高水平的程序員去做。 在開(kāi)發(fā)p c d v r 的同時(shí)也需要維護(hù)嵌入式d v r 的版本, 這套解決方案在許多地方已經(jīng)投入商業(yè)運(yùn)營(yíng),例如學(xué)校( 浙江某醫(yī)學(xué)院) 、 交通系統(tǒng)( 某城市市內(nèi)交通監(jiān)控) 、銀行( 天津市某行多個(gè)區(qū)屬分行) 、礦山( 山 西某煤礦安全監(jiān)控) 小區(qū)( 某城市開(kāi)發(fā)區(qū)數(shù)字城管監(jiān)控系統(tǒng)) 。這些項(xiàng)目由于其 第四章面向?qū)ο筌浖O(shè)計(jì)開(kāi)發(fā)方法在板卡式視頻監(jiān)控系統(tǒng)中的應(yīng)用 自身特點(diǎn)對(duì)監(jiān)控系統(tǒng)的某項(xiàng)功能有其獨(dú)特要求,有的項(xiàng)目對(duì)電視墻的功能有較 高要求,有的項(xiàng)目則對(duì)錄像、報(bào)警的要求比較高;同時(shí)用戶又希望把不會(huì)用到 的功能盡量屏蔽,避免誤操作。雖然有些功能的改動(dòng)看起來(lái)很簡(jiǎn)單,但對(duì)編程 人員來(lái)說(shuō)是一項(xiàng)艱苦的任務(wù)。 第五章總結(jié)與展望 第五章總結(jié)與展望 總結(jié) 本課題的研究是建立在實(shí)際課題的基礎(chǔ)上,本文結(jié)合當(dāng)今網(wǎng)絡(luò)視頻監(jiān)控系 統(tǒng)的發(fā)展方向,考慮了實(shí)際中遇到的各種問(wèn)題,運(yùn)用面向?qū)ο蟪绦蛟O(shè)計(jì)、軟件 復(fù)用、設(shè)計(jì)模式、協(xié)作開(kāi)發(fā)、軟件測(cè)試等技術(shù)成功實(shí)現(xiàn)了既定功能。為了增加 軟件的易維護(hù)性、可擴(kuò)展性和易用性,本文采用快速原型法的開(kāi)發(fā)模式:為了 兼容多家廠商的硬件設(shè)備,采用了多層架構(gòu),屏蔽了底層硬件的差異,對(duì)用戶 做到透明。 本文的主要工作體現(xiàn)在以下幾個(gè)方面: ( 1 ) 以軟件工程整個(gè)生命周期為主線,分別詳細(xì)介紹了系統(tǒng)的需求分析、概 要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、測(cè)試、維護(hù)等關(guān)鍵環(huán)節(jié),清晰地展示了軟件整個(gè)編寫(xiě)流程, 方便讀者的閱讀。 ( 2 ) 運(yùn)用面向?qū)ο蠹夹g(shù),引入了多種設(shè)計(jì)模式模型、軟件復(fù)用、軟件重構(gòu)等 軟件開(kāi)發(fā)技術(shù)加強(qiáng)了模塊內(nèi)部的聚合性,降低了模塊間的耦合性,提高了系統(tǒng) 設(shè)計(jì)和開(kāi)發(fā)的效率。 ( 3 ) 從系統(tǒng)實(shí)際需要出發(fā),針對(duì)方案開(kāi)展的具體硬件環(huán)境和要完成任務(wù)的特 殊性,對(duì)軟件開(kāi)發(fā)做特別安排,使設(shè)計(jì)更加合理,開(kāi)發(fā)過(guò)程更2 nj 頇利。 展望 未來(lái),視頻監(jiān)控系統(tǒng)會(huì)向前端一體化、視頻數(shù)字化、監(jiān)控網(wǎng)絡(luò)化、系統(tǒng)集 成化方向發(fā)展,對(duì)系統(tǒng)的要求也會(huì)越來(lái)越高。后面還有許多工作要做。 ( 1 ) 隨著監(jiān)控設(shè)備硬件的發(fā)展,圖像清晰度越來(lái)越高,存儲(chǔ)所需空間也越來(lái) 越大,監(jiān)控系統(tǒng)將來(lái)需要支持超大存儲(chǔ)容量的磁盤(pán)陣列。 ( 2 ) 在一些對(duì)電子地圖功能要求高的監(jiān)控環(huán)境中( 如城市交通管理系統(tǒng)、城 市供暖管理系統(tǒng)等) ,由于監(jiān)控點(diǎn)分布范圍較廣,用
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國(guó)防凍劑行業(yè)運(yùn)行現(xiàn)狀及發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告
- 2025-2030年中國(guó)表演服市場(chǎng)運(yùn)行動(dòng)態(tài)及前景趨勢(shì)分析報(bào)告
- 2025-2030年中國(guó)自助回單打印終端市場(chǎng)發(fā)展?fàn)顩r及營(yíng)銷戰(zhàn)略研究報(bào)告
- 2025-2030年中國(guó)聚苯硫醚市場(chǎng)十三五規(guī)劃及投資風(fēng)險(xiǎn)評(píng)估報(bào)告
- 2025-2030年中國(guó)糖醇市場(chǎng)運(yùn)營(yíng)狀況及發(fā)展前景分析報(bào)告
- 別墅裝飾工程施工合同范本
- 房地產(chǎn)置業(yè)顧問(wèn)雇傭合同范本2025
- 2025年電腦設(shè)備購(gòu)銷合同
- 2025年企業(yè)辦公區(qū)域物業(yè)綜合管理合同范本
- 智能家居門(mén)窗安裝服務(wù)合同范本
- 校園食品安全和膳食經(jīng)費(fèi)管理方案3篇
- TSGD7002-2023-壓力管道元件型式試驗(yàn)規(guī)則
- 九年級(jí)化學(xué)下冊(cè) 第12單元 化學(xué)與生活教案 (新版)新人教版
- 金融服務(wù)消費(fèi)糾紛調(diào)解工作規(guī)范
- 后腹腔鏡下輸尿管切開(kāi)取石術(shù)
- 二手車(chē)購(gòu)買(mǎi)收據(jù)合同范本
- 《國(guó)際貿(mào)易實(shí)務(wù)(英文版)》(英文課件) - Ch 1 Introduction to International Trade Practices-Ch 5 Price
- 2022版義務(wù)教育英語(yǔ)課程標(biāo)準(zhǔn)整體解讀課件
- 2024精美復(fù)工復(fù)產(chǎn)安全培訓(xùn)
- 01 H5入門(mén)知識(shí)課件
- 2024年企業(yè)管理咨詢服務(wù)費(fèi)簡(jiǎn)單合同范本
評(píng)論
0/150
提交評(píng)論