Global Sources
電子工程專輯
 
電子工程專輯 > 嵌入式技術
 
 
嵌入式技術  

用消息序列圖描述即時系統與環境的交互作用

上網時間: 2003年09月27日     打印版  Bookmark and Share  字型大小:  

關鍵字:real-time system  Message sequence charts  MSCs  UML  即時系統 

以圖示方法來表示嵌入式系統內部各元件與環境的交互作用,是一種描述和理解嵌入式系統所常用的方法,本文從如何製作一個簡潔、明瞭、直觀、圖示的標準化注釋系統切入,說明如何確定嵌入即時系統的交互作用過程,重點介紹了基於消息序列圖(MSC)的注釋系統的基礎知識以及採用這種系統的好處。圖2(a)圖1中的MSC的各個事件;(b)各個事件的優先順序圖。

描述即時系統的方法之一是列舉其與環境的交互作用。消息序列圖組(Message sequence charts,MSC)是專門用於描述這一交互作用的簡潔、嚴格和圖示的直觀注釋。由於MSC類似於UML,MSC在電信產業中得到了普遍的應用,並且它在其它領域中的應用也日益廣泛。

以圖表形式來表示嵌入式系統內部各元件與環境的交互作用,是一種描述和理解嵌入式系統所常用的方法,這樣的圖表不僅在進行系統設計時很有用,而且在後期分析問題的過程中也發揮著作用。但是如何製作出一個有效的圖表呢?工程師們需要的是一個簡潔、明瞭、直覺、圖示意的標準化的注釋系統,用以確定嵌入即時系統的交互過程。本文將介紹稱為消息序列圖(message sequence chart,MSC)的注釋系統的基礎知識以及採用這種系統的原因。

MSC是一種運算嚴格,表示方法簡潔的圖示技術。它在電信領域的應用十分普及,在即時安全和重要任務系統中的應用日益增加。序列圖和在UML中的應用實例過程圖都是直覺的,並且語義上類似於MSC注釋。

交互作用與交互作用假設圖3:具有共區的一個消息序列圖;與優先順序圖有關。

當以圖形來描述一個嵌入式或即時系統時,我們要列舉出系統環境與外部系統之間的交互作用,還要列舉出一個過程與下一個過程之間的交互作用。要注意交互作用和交互作用假設(interaction scenario)之間的重要區別。

一個交互作用是指產生在參與實體當中的特定的事件序列。例如,溫度計(外部系統)向系統控制器發送一條消息就是一個交互作用,消息也可能是一個交互作用。具體而言,在系統描述當中,還要描述系統的內部元件(子系統)之間的交互作用。對於複雜的系統,這種交互作用產生的形式多種多樣。

一個交互作用假設,從另一方面來講,詳細描述了一個交互作用組,該交互作用組形成了一個交互作用的情節,並通常表示該情節中可能出現的事件序列。例如,壓力計、控制器和閥之間存在各種交互作用,那麼交互作用假設可能是指在壓力太高的情況下三者之間使閥開啟的相互作用過程。

每一個交互作用假設常被分為需要的(‘晴天’)和不需要的(‘雨天’)交互作用假設。理想情況下,將要實現的系統應當符合交互過程中所有需要的條件(‘晴天’)而不出現一個不需要的條件(‘雨天’)。

實體和事件

在一個消息序列圖當中,實體是各種處理過程或子系統,而事件則表示經由實體發送和接收各種消息的行為。其它種類的事件,如與定時器相關的事件,也同樣存在。在一個交互作用假設中,你可以想像實體作為一個執行者:它是一個事件的發送者或接受者。一個事件,從另一方面來講,是指在兩個執行者之間以發送消息的形式進行的通訊。

處理過程(有時稱之為例程)和消息的意義取決於系統。一個處理過程不一定代表電腦程式;它可指任何一個被啟動的代理。消息不一定代表一個實際的數據消息,它可指在兩個實體之間的另一種資訊交換形式。例如,消息有一個命名,但卻沒有更深一層的結構或詳細資料。

除非假定消息總是以發送順序來接收,並且無任何丟失和毀損,消息序列圖與消息傳輸的實際機制或管道是無關的。在消息序列圖注釋中發送消息是不受阻礙的,意即發送者不必等到接受者接受到消息後才發送下一個消息。

應用實例

圖1簡單描述了閥、控制器和壓力計這三個處理過程之間交互作用的消息序列圖。每一個水準線表示該線所連接的實體上產生的事件,最頂部水準線表示的事件是從時間上看產生最早的事件,底部水準線表示的事件是最遲產生的事件。用於實體的臨時事件順序叫做局部順序(local order)。局部順序內的兩個事件間的可視距離並非表示實際的距離。圖4:具有定時器和共區的消息序列圖;與優先順序圖有關。

在圖1當中,閥和壓力計兩個實體各自將稱為閉合狀態(status_close)和高壓狀態(status_high_pressure)的消息發送到控制器。控制器然後向閥發送一個稱為開啟命令(cmd_open)的消息。這個消息序列圖僅描寫了一種交互作用假設,除此之外,尚有許多其它可能出現的情況,諸如閥在哪裡開啟、壓力何時太低、控制器何時發出閉合閥的命令等等。

在消息序列圖中,交互作用假設到底是指什麼呢?看起來,消息序列圖僅代表一個交互作用假設,或消息交換的一個序列。消息序列圖,實際上表示幾個消息序列,它們當中的每一個表示特定的行為。要明確地理解這一點,我們要確定在消息序列圖的各個事件的先後順序。

在圖1中,有3個發送事件的消息和3個接受事件的消息,其命名如圖2(a)所示。我們假定發送事件先於相應接受這一消息的事件,例如e1先於e2。此外,對於表示處理閥的沿垂直線分佈的各個事件,e1先於e6產生。

在圖2所示的優先順序圖表示各個事件的優先順序。這個優先順序圖中的圓點代表事件,如果u先於v產生,箭頭方向則從事件u指向事件v。事件v產生的前提條件是其前面的所有時間已經產生。消息序列圖如果構成優良的話,其相應的優先順序圖就應該具有非循環指向(DAG)的特徵;優先順序圖是連通的,意即無斷點,也無迴路或平行線。對任意兩個圓點u和v,一定有一個從u到v或從v到u的路徑。由於一個事件不可能先於它自己,一個自循環、從圓點指向其自身的箭頭是不允許出現的。

根據優先順序圖,在消息序列圖中的事件可被分為最小事件和最大事件兩類。最小事件沒有先於它產生的事件,最大事件也不可能有產生在其後的其它事件。例如,e1和e3是最小事件,e6是最大事件。如在它們之間不存在任何優先關係的話,兩個事件是不可比較的。因此,事件e1和e3是不可比較的,事件e2和e3也如此。

確定了與消息序列圖有關的優先順序圖,我們將消息序列圖M中R的排序定義為M中各個事件中的一個序列,那麼,M中每個事件在R中僅出現一次,並且對序列的任何一個事件也是如此;對於M而言,所有的先產生事件都遵循該優先順序圖。總而言之,消息序列圖中,有幾種可能的排序。一個消息序列圖的完整意義包含其所有可能出現的排序。例如,圖1中的消息序列圖有如下3種可能的排序:



共區結構

圖1中,控制器首先接收來自閥的狀態關閉(status_close)消息,然後接收來自壓力計的高壓狀態(status_high_pressure)消息。有時我們並不希望在這兩個事件間出現這樣的順序。消息序列圖注釋允許透過應用一個叫做共區(coregion)的結構,因而避免對於一個處理過程而言,各個事件的某個子集出現任何特定的順序。圖5:應用了時間結束事件的消息序列圖;與優先順序圖有關。

共區用表示處理過程的垂直線內虛線段來表示,這些虛線段內的事件是無序的。圖3對圖1進行了修改,它應用一個共區使事件e2和e4變得無序,它也顯示了相關的優先順序圖。現在事件e2和e4是不可比較的,兩者先於e5產生。

定時器結構

許多交互作用假設要用時序約束條件來限定消息流。透過應用三種專用事件:定時器設置、定時器復位和時間結束,你會很容易地在消息序列圖注釋中確定特定的交互作用假設。定時器設置透過將計時標記(hourglass)符號連接到一個單實體的時基上來表示;定時器復位透過將某個X連接到時基上來表示;時間結束用一根彎線將定時器的計時標記符號連接到實體時基來表示。

每一個定時器均有其特定的名字。對於每一個定時器而言,定時器復位和時間結束事件必定先於定時器設置事件。此外,時間結束事件是最後產生的事件。在圖4中,在開始等待從閥和壓力計實體發出消息前,控制器要啟動定時器t1。控制器同時接收到來自閥和壓力計的兩個消息並將定時器復位,事件e7和e8顯示定時器設置和定時器復位事件。圖5顯示了一個簡明的消息序列圖,圖中控制器設定定時器t1(事件e7)並且在定時器t1(事件e9)時間結束前僅接受到來自閥的狀態關閉(status_close)消息。

事件產生條件

條件是一種非正式描述機制,用以顯示一個或一組實體達到的某個狀態或情形。條件寫為一個六邊形框內的文本標籤,可放置於某一實體或一組實體當中。如果條件C被置於實體E當中,那麼除非條件得到滿足,否則E不會進入到下一個事件。也就是說,條件C是實體中下一個事件產生的先決條件。如果將條件C被放置於一組實體E1,...,Ek之中,那麼所有k個實體必須達到符合條件C的局部狀態。只有在那個狀態達到時,任何k實體才能在其相應的局部順序中完成進一步處理。在這樣的情況下,條件C可以被認為是完成進一步處理前確保實體E1,...,Ek達到相同狀態的同步作用機制。SRC="HTTP://www.eettaiwan.com/ARTICLES/2003OCT/A/0310A_DC_S5F6_S.GIF" BORDER=0 ALT="圖6:(a)應用多個條件的某個消息序列圖;(b)相關的優先順序圖" ALIGN="LEFT" VSPACE=12 HSPACE=12>

圖6顯示了圖1中的消息序列圖(稍作重新排序),並增加了一些條件,實體閥和壓力計共享一個稱為可用正確狀態(correct_status_available)的條件。只有當這兩個實體均達到滿足該條件的某一狀態時,它們才能按照其局部順序進一步處理下去。該實體控制器必須達到某一狀態,這個狀態下實體控制器在接收狀態資訊前要滿足準備接收狀態(ready_to_receive_status)條件。這些條件的確切定義在此省略。

在線算子表達式

在線算子表達式(Inline operator expressions)是一種允許終端用戶在消息序列圖內確定補充控制流的機制,而且還可組合或合成多個消息序列圖組。在線算子表達式當中,可以採用五種作業類型來確定控制流,分別是:


*可選擇組合


*平行組合


*循環*可選區域


*例外

從圖解的意義來講,在線算子表達式用一條由虛線水準分割的矩形來描述;算子關鍵字(operator keyword)標準在右上角。

圖7利用具有可選算子的在線表達式合併了圖4和圖5中的消息序列圖組。矩形內的虛線分割兩個交替的路徑,在一次執行過程中,消息序列圖僅處理其中一條路徑。

補充工具圖7: 具有可選算子的在線表達式的一個消息序列圖。

消息序列圖注釋為描述嵌入式系統內部的交互作用提供了更為豐富的工具。消息的收發並不限於任何特定的實體,還包括外部環境。發向外部環境的消息,箭頭止於消息序列圖框上;從外部環境接收消息,箭尾止於消息序列圖框上。

消息可包括附加資訊。例如,透過閥處理所發送的開啟狀態(status_open)和閉合狀態(status_close),消息可以合併成單個命名狀態消息,上述兩個狀態的消息則以‘status(open)’和‘status(closed)’表示,其中的變量包含了消息值。

消息序列圖的動作用矩形表示,矩形內包含了將要被執行的某項任務的文字描述。與某種‘條件’類似,動作矩形被置於某一實體垂直線上。然而,與某種‘條件’不同的是,一個動作是局部的;它只可相連於單個實體而不可跨越多個實體。將此動作作為特殊事件加以處理,我們可將它們包括進與消息序列圖相關的優先順序圖當中。與各種‘條件’類似,動作通常按非正式的描述加以處理。

消息序列圖組中尚存在許多其它的工具,如消息閘(gates for messages)。用戶也可以一種標準化的、以事件為導向的文字句法對消息序列圖加以描述,而不是以這裡所提供的可視注釋加以描述。

高層消息序列圖

基本消息序列圖注釋描述了微小而特殊的基本交互作用,但複雜系統又怎樣處理呢?一個複雜系統通常描述為各種子系統的分級組合,其交互作用描述為子交互作用的分級組合。

高層消息序列圖(HMSC)增強了基本消息序列圖注釋以便描述子交互作用的組合。HMSC注釋也支援自上而下的分級注釋,其意義在於可在不同層的擷取上確定各種交互作用,即透過基礎消息序列圖組描述從最高層開始到最底層的交互作用。

HMSC是一組由有方向的邊相互連接起來的節點集合。每一個節點既是開始符號-,也是終止符號D,圓長方形包含某一個到另一個低層或高層消息序列圖的參考,六邊形包含一個條件,空心圓表示一個連接點或含有兩個或更多平行的高層消息序列圖組(HMSC)的平行框。就組合的方面而言,實體不在HMSC中出現。連接點僅供方便佈局之用,它們沒有語義。HSMC中的各種條件具有整體性,其意義在於適用於所有實體並表示某一整體系統狀態。

圖8所示為控制器行為的HMSC。該行為由幾個透過其它HMSC和MSC來說明的低層行為組成。透過這種方式,HMSC注釋就可以自頂向下分層對行為進行分解。低層的HMSC可含有更深一層的HMSC或MSC。在此要強調的是,因HMSC是循環的,所以它不含終止符。我們已強調過:一個基本MSC總是有限的;但HMSC卻不是這樣,因為某個HMSC可能包含多個循環(顯示是周期性的或循環的行為)。

複審和確認圖8:一個高層消息序列圖例。

計畫要求的複審和確認,包含在那些應用消息序列圖組確定的要求,是質理管理的重要組成部份。對於已用消息序列圖確定的計畫要求,還可用兩種方法來複審和確認,一個是執行模擬,也稱之為原型或模擬,可就特殊情形測試消息序列圖組;另一個是確保消息序列圖組滿足特定的系統特徵(原理)。

後者可採用工具自動檢查HMSC,你可運用與臨時邏輯有關的注釋來表述特性並使用諸如模型檢查和滿意度來驗證所給特性。此外,一些專用算法和工具可用來分析特定的HMSC,以自動檢測若干意外的情況,如死鎖、競爭條件和非局部選擇。

購買指南

消息序列圖為設計即時安全和重大任務系統的工程師提供有價值的服務。類似於在UML中的序列圖和應用實例注釋,消息序列圖組有幾點優於UML的性能。

例如,消息序列圖簡化了在早期設計階段的概念化系統要求。消息序列圖將系統及其外部與該系統相互作用的所有實體描述為一個黑盒子,圖表僅包含了一個有關係統與其外部環境間交互作用的簡潔而非正式的描述。黑盒子和其外部實體作為消息序列圖組中的單個實體,意即你無需知道或明確有關係統的內部結構或行為,當然我們己知的交互作用除外。這樣的高層黑盒子交互作用導向的系統要求在UML中就說明得不夠充分。

消息序列圖組也可作為測試過程的規格(綜合測試)。由於你可以運用消息序列圖模擬、正式驗證或完善規格,你可在即時嵌入系統的生命周期內廣泛運用消息序列圖組。此外,消息序列圖注釋也正因其特殊的應用價值而在幾個領域廣泛運用。例如,在計時消息序列圖組中,上部和下部時限可用每一個消息加以規定,使其更適用於協議和即時系統。此外,由一套消息序列圖組還可製作各種文件。

作者:Girish Keshav Palshikar


Tata研究開發與設計中心


Email: girishp@pune.tcs.co.in




投票數:   加入我的最愛
我來評論 - 用消息序列圖描述即時系統與環境的交互...
評論:  
*  您還能輸入[0]個字
*驗證碼:
 
論壇熱門主題 熱門下載
 •   將邁入40歲的你...存款多少了  •  深入電容觸控技術就從這個問題開始
 •  我有一個數位電源的專利...  •  磷酸鋰鐵電池一問
 •   關於設備商公司的工程師(廠商)薪資前景  •  計算諧振轉換器的同步整流MOSFET功耗損失
 •   Touch sensor & MEMS controller  •  針對智慧電表PLC通訊應用的線路驅動器
 •   下週 深圳 llC 2012 關於PCB免費工具的研討會  •  邏輯閘的應用


EE人生人氣排行
 
返回頁首