實(shí)例介紹UML時(shí)序圖用法
本文和大家重點(diǎn)討論一下UML時(shí)序圖的應(yīng)用,運(yùn)用UML的軟件開(kāi)發(fā)技術(shù),我們可以把模塊與實(shí)際應(yīng)用功能緊密聯(lián)系起來(lái)。以便通過(guò)設(shè)計(jì)出的功能模塊與代碼之間的映射關(guān)系描述出最終的軟件代碼框架,同時(shí)確保代碼改進(jìn)時(shí)模塊也可以隨之更新。
基于UML時(shí)序圖的網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)
UML是UnifiedModelingLanguage的簡(jiǎn)稱(chēng),是00P(Object-Orientedprogramming面向?qū)ο缶幊?技術(shù)及至所成,可用于確定、展示和記錄軟件系統(tǒng),是一種便于軟件系統(tǒng)規(guī)約化、可視化的構(gòu)造及建模標(biāo)識(shí)。而其中的圖形標(biāo)記,尤其適用與面向?qū)ο蟮能浖O(shè)計(jì)。
視頻監(jiān)控是樓宇安全防范系統(tǒng)的一個(gè)重要組成部分。隨著計(jì)算機(jī)網(wǎng)絡(luò)布線已深入到各種樓宇建設(shè)之中,如果通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)(包括LAN和WAN)連接位于不同地點(diǎn)的多個(gè)監(jiān)控小系統(tǒng),這樣無(wú)需敷設(shè)專(zhuān)門(mén)線路,僅憑借已有的LAN和WAN,使得任意一臺(tái)賦予權(quán)限的主機(jī)都可以游刃有余地在網(wǎng)上采集現(xiàn)場(chǎng)的監(jiān)控畫(huà)面,從而實(shí)現(xiàn)了遠(yuǎn)程網(wǎng)絡(luò)視頻監(jiān)控。
運(yùn)用UML的軟件開(kāi)發(fā)技術(shù),我們可以把模塊與實(shí)際應(yīng)用功能緊密聯(lián)系起來(lái)。對(duì)于視頻監(jiān)控這樣的具體設(shè)計(jì),我們可以用UML特有的圖形標(biāo)識(shí)將其中的各個(gè)功能模塊化,形成相應(yīng)的結(jié)構(gòu)型語(yǔ)言,以便通過(guò)設(shè)計(jì)出的功能模塊與代碼之間的映射關(guān)系描述出最終的軟件代碼框架,同時(shí)確保代碼改進(jìn)時(shí)模塊也可以隨之更新。
UML的基本原理
UML建模機(jī)制描述
UML有靜態(tài)和動(dòng)態(tài)兩種分析方法和建模機(jī)制。靜態(tài)建模分析主要通過(guò)類(lèi)圖、對(duì)象圖、用例圖等來(lái)描述,一般用于系統(tǒng)的核心模塊設(shè)計(jì);動(dòng)態(tài)建模通過(guò)合作圖、狀態(tài)圖、活動(dòng)圖、UML時(shí)序圖來(lái)表述,可以用來(lái)描述系統(tǒng)對(duì)象間的關(guān)系模式。動(dòng)態(tài)建模機(jī)制中的時(shí)序圖
現(xiàn)在讓我們著重談?wù)剟?dòng)態(tài)建模機(jī)制中的時(shí)序圖(sequencediagram)。時(shí)序圖是一種交互圖,時(shí)序圖的重點(diǎn)是標(biāo)記出某個(gè)行為的對(duì)象類(lèi)和這些對(duì)象類(lèi)之間所傳遞的消息及其時(shí)間順序。另外時(shí)序圖允許直觀地表示出對(duì)象的生存期,在生存期內(nèi),對(duì)象可以對(duì)輸入消息做出響應(yīng),并且可以發(fā)送消息。正是對(duì)象生存期的引入,時(shí)序圖具備了時(shí)間順序的概念,從而可以清晰地表示出對(duì)象在其生存期的某一個(gè)時(shí)刻的動(dòng)態(tài)行為。這種時(shí)間概念的精確性使時(shí)序圖在描述對(duì)象動(dòng)態(tài)行為的時(shí)間特性方面具備了卓越的能力。
UML時(shí)序圖是一個(gè)二維圖形。一維處于水平方向表示對(duì)象;另一維處于垂直方向表示對(duì)象的生存期,因而可看成是時(shí)間軸。在一個(gè)對(duì)象圖中,所有的對(duì)象將從左到右排開(kāi),而每個(gè)對(duì)象的生存期就猶如一條生命線。只要對(duì)象沒(méi)有被撤消,這條生命線就可以從上至下延伸,如圖1所示。
視頻監(jiān)控設(shè)計(jì)
視頻監(jiān)控網(wǎng)絡(luò)框架
憑借已有的計(jì)算機(jī)網(wǎng)絡(luò),我們?cè)O(shè)計(jì)一個(gè)基于組播技術(shù)的剛絡(luò)視頻監(jiān)控系統(tǒng)方案原理圖,如圖2所示。從系統(tǒng)結(jié)構(gòu)上看,該系統(tǒng)主要有兩大部分:視頻服務(wù)器和客戶機(jī)端,他們之間依靠IP組播網(wǎng)絡(luò)連接。在網(wǎng)絡(luò)上任何一個(gè)客戶機(jī)端都能看見(jiàn)視頻服務(wù)器上視頻信號(hào)(一點(diǎn)對(duì)多點(diǎn)的組播模式。當(dāng)然采用多點(diǎn)對(duì)多點(diǎn)的組播傳輸模式,還可以看見(jiàn)其他站點(diǎn)的視頻信號(hào))??蛻魴C(jī)端還必須接受具有上控機(jī)房的控制命令,執(zhí)行相關(guān)的監(jiān)控動(dòng)作。該臨控系統(tǒng)中還要設(shè)計(jì)出對(duì)現(xiàn)場(chǎng)監(jiān)控能主動(dòng)做出預(yù)先或滯后處理的模塊。
在通信階段,視頻服務(wù)器與客戶機(jī)端可以采用簡(jiǎn)單而可靠的通信方式如TCP,進(jìn)行登錄并認(rèn)證身份,一旦確認(rèn)客戶端PC的有效身份后,視頻服務(wù)器與客戶機(jī)端之間通信進(jìn)人初始化階段;在初始化階段,視頻服務(wù)器將依據(jù)安全策略和通信策略動(dòng)態(tài)產(chǎn)生決策,去影響客戶機(jī)端;在這些一系列的動(dòng)態(tài)交互結(jié)束后,系統(tǒng)進(jìn)入組播通信階段,主控機(jī)房通過(guò)組播通信線程來(lái)接受和發(fā)送視頻信號(hào)。
軟件平臺(tái)的建模
根據(jù)客戶端PC和主控機(jī)房的視頻服務(wù)器直接通信的特點(diǎn),可對(duì)網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)作動(dòng)態(tài)建模。網(wǎng)3就是以UML時(shí)序圖來(lái)描述此系統(tǒng)的軟件需求。本視頻監(jiān)控網(wǎng)絡(luò)采用的是客戶機(jī)/服務(wù)器(C/S)剛絡(luò)通信模式,由客戶機(jī)端向服務(wù)器提出請(qǐng)求,服務(wù)器對(duì)請(qǐng)求做出確認(rèn)并執(zhí)行相應(yīng)的任務(wù)。例如向客戶機(jī)端發(fā)送組播地址,建立連接后計(jì)算機(jī)用戶就可以在客戶終端監(jiān)控各個(gè)遠(yuǎn)程監(jiān)測(cè)點(diǎn),客戶終端接受遠(yuǎn)程監(jiān)控點(diǎn)傳來(lái)的視頻數(shù)據(jù),并可以向視頻服務(wù)器傳送控制命令,視頻服務(wù)器根據(jù)用戶要求向當(dāng)前設(shè)備發(fā)出控制命令,從而實(shí)現(xiàn)網(wǎng)絡(luò)遠(yuǎn)程監(jiān)控。
在各對(duì)象相互通信時(shí),個(gè)人首先登錄到客戶機(jī)端(當(dāng)然登錄本身包含諸多時(shí)序事件,例如用戶與客廣機(jī)端之間輸入戶名、問(wèn)口令、輸入口令,客戶機(jī)端與服務(wù)器之間查證口令、判斷口令等。由于篇幅所限,圖3沒(méi)標(biāo)出);個(gè)人登錄事件的后續(xù)事件是,客戶機(jī)向視頻服務(wù)器發(fā)送連接請(qǐng)求,得到服務(wù)器允許后,客戶機(jī)開(kāi)始發(fā)送相關(guān)數(shù)據(jù),服務(wù)器將該數(shù)據(jù)轉(zhuǎn)交后臺(tái)處理,并發(fā)給服務(wù)器下一個(gè)事件動(dòng)作的指令,例如發(fā)送組播地址;調(diào)用WSASendTo()函數(shù)使得服務(wù)器向客戶機(jī)端通過(guò)IP組播網(wǎng)絡(luò)發(fā)送視頻數(shù)據(jù);最后調(diào)用SARecvFrom()函數(shù)使得客戶機(jī)開(kāi)始接受視頻數(shù)據(jù);啟動(dòng)播放線程。
軟件實(shí)現(xiàn)
在實(shí)際應(yīng)用中,編程人員就可以根據(jù)上文的時(shí)序圖所捕述的需求來(lái)編制底層網(wǎng)絡(luò)應(yīng)用程序,去實(shí)現(xiàn)監(jiān)控系統(tǒng)網(wǎng)絡(luò)的底層通信。編制底層網(wǎng)絡(luò)應(yīng)用程序通常要借助于網(wǎng)絡(luò)數(shù)據(jù)通信編程接口,而在不同的操作系統(tǒng)中所提供的網(wǎng)絡(luò)編程接口是有所不同的,如在MicrosoftWindows環(huán)境下的網(wǎng)絡(luò)編程接口就是Windows套接字(WindowsSocket,簡(jiǎn)稱(chēng)Winsock)。Winsock提供了包括TCP/IP、IPX等多種通信協(xié)議下的編程接口。除支持WinsockAPI外,還定義了一套可支持IP組播的與協(xié)議無(wú)關(guān)的API。
【編輯推薦】
- 解析UML時(shí)序圖的四大元素
 - 術(shù)語(yǔ)匯編 解析UML時(shí)序圖組成
 - UML基礎(chǔ) UML時(shí)序圖的用途和組成元素
 - 專(zhuān)家提醒 小心掉進(jìn)UML建模誤區(qū)
 - 技術(shù)分享 基于UML時(shí)序圖的網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)如何實(shí)現(xiàn)
 
 


















 
 
 
 
 
 
 