?? 8.虛擬儀器系統集成.txt
字號:
,可以將測試子系統模塊封裝在平臺的模塊元件中,在整個系統中與其它元件一起
使用,從而建構出大規模的測試系統應用程序。
為了提高系統應用程序的設計與開發效率,軟件工程學中提出了不少分析與開發模
型方法,如框圖結構法、E-R法(實體關系法)、狀態遷移圖法、時序圖法、
Petri網法、結構語言描述法等,在分析比較多種方法的優缺點的基礎上,考慮虛
擬儀器系統軟件結構特性,本文提出了一種虛擬儀器系統軟件結構描述語言VSDL(
Virtual instrument system Software architecture Description Language),
用于虛擬系統應用程序的設計與開發。
4、 虛擬儀器系統集成測試:虛擬儀器系統集成過程中,必須進行系統集成測試,
包括硬件結構測試與軟件結構測試,本文重點討論的是軟件結構的測試。軟件結構
集成測試的主要目的是檢查軟件單位之間的接口是否正確,它根據集成測試計劃,
一邊將模塊或其它軟件單位組合成越來越大的系統,一邊運行該系統,以分析所組
成的系統是否正確,各組成部分是否合拍。集成測試的策略主要有自頂向下和自底
向上兩種。在整個系統集成之后,還必須進行系統測試,以驗證軟件系統的正確性
和性能等滿足其規約所指定的要求,檢查軟件的行為和輸出是否正確,被稱為測試
的“先知者問題”。因此,系統測試應該按照測試計劃進行,其輸入、輸出和其它
動態運行行為應該與軟件規約進行對比。功能測試是軟件系統測試的主要方法之一
。其基本思想是根據軟件的功能需求,選擇適當的測試數據,以檢查軟件是否完成
了其功能需求中所提出的所有功能要求,功能測試往往不僅要求對功能規約中列出
的功能進行測試,還要求對設計和實現中引進的功能進行測試。隨機測試是另一種
軟件系統測試的重要方法,其基本思想是對軟件的輸入空間進行隨機取樣,以此作
為軟件系統測試數據。隨機取樣可按照軟件實際使用時的概率分布進行,也可按照
其它概率分布進行,前者稱為代表性隨機測試,后者稱為非代表性隨機測試。在虛
擬儀器系統提交給最終用戶后,還必須進行驗收測試,在軟件維護階段還需要進行
回歸測試。
8.3 虛擬儀器系統軟件結構描述語言
為了正確地描述系統軟件結構,提高系統軟件設計與開發的效率,軟件工程師提出
了多種軟件結構分析與設計模型,最直觀的一類即是采用箱-線(boxes-lines)框
圖法進行抽象的描述,其中箱代表的是系統軟件元件,線代表的是元件之間的連接
。這種模型方法可用表達式8.1描述。
這種方法比較直觀,但對于元件與連接均描述過于簡單含糊。對于元件來說,這種
方法只給出了抽象概念表示,并沒有給出實現方式;對于連接來說,這種方法也沒
有給出明確定義,連接究竟是代表數據流、功能流、屬性繼承、屬性包含還是屬于
過程調用,沒有清楚定義,往往在一個系統中,包含了多種連接方式,使系統軟件
結構十分模糊。因此,采用箱-線框圖法只適用于初步的軟件分析工作。
隨著面向對象技術的發展,面向對象技術成為了軟件設計與開發的流行方法,軟件
元件以封裝的類與對象的概念出現,整個軟件系統由多個類與對象的集合構成,對
象與對象之間通過定義在類中的成員函數進行數據交互,可用表達式8.2表示。
這種方法在軟件分析階段通過對象的認定,確定問題空間中應當存在的類和類層次
結構,在設計階段通過類的認定和類層次結構的組織,確定了解空間中應當存在的
類和類層次結構,并確定外部接口和主要的數據結構。與抽象的框圖定義相比,它
實用性強,所有類定義的數據結構與操作均可在具體的編程語言中實現。然而,對
于具體的虛擬儀器系統而言,對于具體類的認定和類層次結構的組織并不容易,特
別是要求儀器工程師將問題空間抽象為可實現的類,工作量是相當大,而且由于數
據接口封裝在類中,數據交互并不直接,給設計與編程均帶來了一定難度。在以前
參與過的透平壓縮機組狀態監測的項目中采用了面向對象軟件分析與設計方法,實
際開發工作量比預期的大得多。
為了更好地描述軟件結構模型,軟件工程師提出了軟件結構描述語言的概念,將軟
件結構中的模塊與連接以結構化文本的形式進行描述,其中如基于事件模型的
Rapide、基于結構設計的ArTek等,均在一定的系統中得以實用。本文在綜合分析
虛擬儀器系統軟件結構特點的基礎上,提出了一種虛擬儀器系統軟件結構描述語言
,簡稱VSDL。
同樣,VSDL由兩部分描述組成,即軟件結構元件集(Component)及元件之間的接
口模塊(Interface-Module),如表達式8.3所示。
VSDL的提出,有以下幾個理論基礎:
1. 要進行軟件結構描述,系統軟件結構本身必須具有幾個特點:軟件結構必須是
可分離結構,軟件結構組成元件之間必須獨立,各元件的操作是獨立的過程。對于
虛擬儀器系統軟件結構而言,上下層采用了函數化的層次化結構,左右層采用了模
塊化方案,因此系統是完全可分離的。各軟件元件之間通過統一形式的接口進行獨
立的數據運算,接口模塊上以數據流形式傳遞數據。
2. 虛擬儀器系統的任務明確,結構清晰,系統集成人員可以方便地進行任務與功
能分解,分解結果可以直接以描述語言的形式存在,而不必再進行類封裝,因此設
計過程比較簡單。
3. 對于虛擬儀器設計人員來說,在硬件模塊的設計過程中,往往采用VHDL等硬件
描述語言方式進行硬件模塊設計,而VSDL與VHDL在結構上有一定的相似處,容易被
儀器設計人員掌握。
4. 用于系統應用程序開發的圖形化平臺程序的內部描述方式也往往采用了文本文
件形式的結構化描述,采用VSDL描述的結果文本,在結構上與圖形化平臺的描述文
本十分類似,VSDL的描述結果文本經解析可以直接被圖形化平臺作為源代碼進行調
用。
5. VSDL本身不是一種可編譯的語言,它的描述方式比圖形化平臺的描述文本要抽
象。VSDL本身不包含可執行代碼,元件也沒有包含執行部件,它的解析執行是通過
定義元件類型來進行的。因此,VSDL提供了虛擬儀器軟件結構與圖形化軟件平臺的
接口,最終實現依賴于具體的圖形化平臺。
VSDL由三大部分構成,一是模塊描述,二是元件描述,三是連線描述,其中元件描
述是核心部分,而模塊描述是擴展部分,是系統可選的。整個語言結構采用了結構
化的文本。程序文本由多個段落組成,每個段落由段落起始符開始,以段落終止符
結束,中間包含多個屬性項,段落類型包括模塊段落、元件段落與連線段落兩大類
。在模塊段落中,定義了模塊基本屬性段落、輸入端口段落、輸出端口段落、包含
元件集屬性段落。在元件段落中,定義了元件的通用屬性段落、輸入端口段落、輸
出端口段落和自定義屬性段落。在連線段落中,定義了元件之間的連接關系。屬性
項由左項與右項組成,中間以等號“=”分隔,左項為屬性名,右項為屬性值。整
個描述語言結構如圖8.2所示。
圖8.2 VSDL描述語言結構圖
模塊段落以字符串“MODULE{”為段落起始符,以“MOUDLE}”為段落終止符,其間
定義了一系列屬性段落:
1、 基本屬性段落:段落以“BASEATTR{” 為段落起始符,以“BASEATTR}”為段
落終止符,其間定義了模塊標識符,這個標識符是唯一的,以標識不同的模塊;模
塊顯示名,用于流程圖顯示。
2、 輸入端口段落:段落以“INPORT{” 為段落起始符,以“INPORT}”為段落終
止符,其間定義了輸入端口名稱、數據類型、連接狀態與連線名稱。
3、 輸出端口段落:段落以“OUTPORT{” 為段落起始符,以“OUTPORT}”為段落
終止符,其間定義了輸出端口名稱、數據類型、連接狀態與連線名稱。
4、 包含元件集段落:段落以 “INCOMSET{” 為段落起始符,以“INCOMSET}”為
段落終止符,其間定義了模塊所包含的元件標識符。
元件段落以字符串“COMPONENT{”為段落起始符,以“COMPONENT}”為段落終止符
,其間定義了一系列屬性段落:
1、 基本屬性段落:段落以“BASEATTR{” 為段落起始符,以“BASEATTR}”為段
落終止符,其間定義了元件標識符,這個標識符是唯一的,以標識不同的元件;元
件顯示名,用于流程圖顯示;元件類型標識,用于標識系統元件類型。在VSDL中,
共定義了基本顯示元件、數據定義元件、數據分析處理元件、基本設備元件及儀器
接口元件五類40多種類型,是基于不同的圖形化平臺所包含的元件類型公約集而提
出的,即VSDL中定義的元件類型在不同的圖形化平臺中必定有對應的元件類型,如
VSDL定義的文本顯示元件V_TEXT對應于HP VEE的TEXTDISPLAY和VPP的VI_TEXT類型
。在圖形化實際運行中,通過對VSDL元件類型的解析,在圖形化平臺運行模式下執
行各自的元件執行代碼;其它還有元件顯示大小、元件顯示位置等屬性。
2、 輸入端口段落:段落以“INPORT{” 為段落起始符,以“INPORT}”為段落終
止符,其間定義了輸入端口名稱、數據類型、連接狀態與連線名稱。
3、 輸出端口段落:段落以“OUTPORT{” 為段落起始符,以“OUTPORT}”為段落
終止符,其間定義了輸出端口名稱、數據類型、連接狀態與連線名稱。
4、 自定義屬性段落:段落以 “SELFATTR{” 為段落起始符,以“SELFATTR}”為
段落終止符,其間定義了與元件相關的特定屬性,如溫度計元件的上下限值等。
連線段落以字符串“LINE{”為段落起始符,以“LINE}”為段落終止符,其間定義
了一系列屬性段落:
1、 連線名稱LINENAME。
2、 連線起始模塊或元件LINEFROMUNIT。
3、 連線終止模塊或元件LINETOUNIT。
4、 連線起始端口LINEFROMPORT。
5、 連線終止端口LINETOPORT。
利用VSDL進行應用程序描述時,采用了自頂向下層層細化的方式,首先定義的是模
塊段落,進一步進行模塊單元的分解,進行詳細的元件段落,模塊段落定義是可以
嵌套的,連線段落的定義既可以針對模塊,又可以針對元件。程序最終的實現是通
過定義在元件段落中的元件類型標識執行的。整個程序結構如下:
MODULE{
BASEATTR{
NAME=MODULE1
DISPLAYNAME=
BASEATTR}
INPORT{
PORTNAME=
PORTTYPE=
PORTSTAT=
LINENAME=
INPORT}
OUTPORT{
PORTNAME=
PORTTYPE=
PORTSTAT=
LINENAME=
OUTPORT}
INCOMSET{
NAME1=COMNAME1
NAME2=COMNAME2
.
.
.
INCOMSET}
MODULE}
.
.
.
COMPONENT{
BASEATTR{
NAME=COMNAME1
DISPLAYNAME=
TYPE=VI_TEXT
LEFT=
TOP=
WIDTH=
HEIGHT= BASEATTR}
INPORT{
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -