嵌入式系統 | 基于SCADE Display模型的驗證

在上期#嵌入式系統Ansys SCADE系列專題內容中,我們為大家帶來了《基于SCADE Suite模型的驗證》的介紹,本次主題將針對基于SCADE Display模型的驗證做相關分享,分別從基于SCADE Display模型的基礎驗證活動、認證級測試環境QTE,以及基于SCADE Display的含Suite模型的白盒聯合仿真等方面做闡述。


1

基于SCADE Display模型的基礎驗證活動

由于SCADE Display同樣是使用基于模型的開發和驗證方式,所以使用SCADE Display后,驗證手段也是在評審、分析和測試的基礎上多了模型仿真。絕大部分驗證活動概念相關的內容可參考《基于SCADE Suite模型的驗證》第一章節的內容,本文不再贅述。下面先介紹大規模自動化驗證前的測試活動。

1.1 模型檢查與模型更正

模型檢查是模型仿真測試的基礎。但不同于SCADE Suite有一系列必需檢查的嚴格的語法語義規則,SCADE Display模型檢查的規則是可定制的,規則主要涉及兩大類:1. 檢查是否滿足常用圖形設計建模要求,例如圓、弧的半徑不應為0,一些命名規則定義等;2. 檢查是否滿足通用的圖形繪制性能要求,例如沒有多余的坐標轉換,遮罩數量要有限制。通過工具欄菜單Project->Project Properties->Design Checker Rules application可以啟用或者禁用需要的規則。

嵌入式系統 | 基于SCADE Display模型的驗證的圖1

圖表1: SCADE Display模型設計規則的定制選擇

選定這些規則后,用戶可以通過圖形化方式(菜單Project->Checker->Check layer)或命令行方式來調用模型檢查功能,檢查對象可以是當前層,也可以是選定的部分元素組成的上下文環境。

嵌入式系統 | 基于SCADE Display模型的驗證的圖2

圖表2: SCADE Display檢查模型是否符合定制的設計規則

檢查無誤,會返回正確的提示。

嵌入式系統 | 基于SCADE Display模型的驗證的圖3

圖表3 SCADE Display模型定制規則檢查無誤

檢查有誤,則會彈出專門的對話框,提示錯誤對象、錯誤原因和推薦的修改方法。

嵌入式系統 | 基于SCADE Display模型的驗證的圖4

圖表4 SCADE Display模型定制規則檢查有誤,并提供修改建議

 

模型更正是包含模型檢查的活動,區別在與1.模型更正無法以命令行方式調用;2.模型更正提供一鍵遵循推薦方法改正的功能;3. 模型更正后可能會引入新的警告或者錯誤。通過菜單Project->Corrector->Correct layer啟動模型更正后的,SCADE Display先進行模型檢查。

嵌入式系統 | 基于SCADE Display模型的驗證的圖5

圖表5 SCADE Display更正模型是否符合定制的設計規則

檢查無誤,會返回正確的提示。

嵌入式系統 | 基于SCADE Display模型的驗證的圖6

圖表6 SCADE Display模型更正檢查無誤

 

檢查有誤,則會彈出專門的對話框,提示錯誤對象、錯誤原因和推薦的修改方法,如果用戶愿意根據推薦的方法修改,支持單擊Apply按鈕一鍵修改應用。

嵌入式系統 | 基于SCADE Display模型的驗證的圖7 圖表7 SCADE Display模型定制更正檢查有誤,并提供修改建議和修改操作

 

SCADE Display認證級的代碼生成器也含有檢查模型的功能,因此也可以使用代碼生成器對模型的正確性進行檢查。該功能是在命令行方式中使用ScadeDisplayKCG命令的check選項。

嵌入式系統 | 基于SCADE Display模型的驗證的圖8

圖表8 SCADE Display代碼生成器進行模型規則檢查

1.2 模型非交互式仿真

如果用戶使用SCADE Display設計的是非交互式的人機界面,則可以使用提供的Animation功能進行模型仿真,觀察圖像隨著輸入參數的變化而變化。

視頻1: 基于SCADE Display模型的非交互式仿真


1.3 模型交互式仿真

如果用戶使用SCADE Display設計的是交互式的人機界面,則可以使用提供的Simulation功能進行模型仿真,觀察圖像隨著輸入、輸出參數的變化而變化。值得一提的是,該仿真器還可以自動捕捉鼠標、鍵盤兩個外設的信息,進行交互式仿真。

視頻2: 基于SCADE Display模型的交互式仿真


1.4 生成獨立可執行程序

如果用戶在SCADE Display模型中已經嵌入了控制邏輯代碼(可以是手寫編碼,也可以是SCADE Suite設計,或是兩者的混合),則可以使用SCADE Display提供的Standalone功能一鍵編譯生成獨立可執行程序,獨立可執行程序包括基于Windows操作系統和基于Android操作系統兩個方式。不過,生成基于Android操作系統的獨立可執行程序,需要預先安裝Android Studio IDE, Android Software Development Kit (SDK)Android Native Development Kit (NDK)三款軟件包。

視頻3: 使用SCADE Display生成Windows獨立可執行程序


2

認證級測試環境QTE


嵌入式系統 | 基于SCADE Display模型的驗證的圖9

圖表9: SCADE認證級測試環境工作流

 

2.1 測試用例的創建

基于SCADE Display模型的測試用例的基本語法規則可以參考《基于SCADE Suite模型的驗證》中的2.1章節。在此基礎上,為測試圖形相關的模型,新增了圖形像素比對相關的測試語法,其內容如下

SSM::check image {"<refimg>"} sustain=forever|<integer> filter={"<filterimg>"} cmd={"<cmdimg>"}

 

該命令用于比對當前周期的圖像與預先保存好的圖像的像素差


  • refimg是必須有的參數,定義預先保存好的圖像的相對路徑,如果是使用SCADE Display Simulation工具生成的測試用例,則該參數缺省的相對路徑為images/references/

  • sustain參數是可選的

    如果sustain值等于forever,則每周期都比對當前圖像與參考圖像的像素差,直至測試執行完畢。

    如果sustain值等于integerinteger必須是大于0的整數,即執行integer周期的當前圖像與參考圖像像素差的比對

    如果沒有寫sustain參數,則僅在下一個周期執行一次當前圖像與參考圖像的像素差比對

  • filter參數是可選的,過濾功能是指圖像比對不是全部區域,而是在特定區域的圖像比對,通常過濾圖像的格式為.png過濾區域分兩種情況,區域內的過濾(include),使用白色圖片(R=255,G=255,B=255);區域外的過濾(exclude),使用黑色圖片(R=0,G=0,B=0)

 

  • filterimg值,定義預先保存好的待過濾區域圖像的相對路徑,如果是使用SCADE Display Simulation工具生成的測試用例,則該參數缺省的相對路徑為images/filters/


  • cmd參數是可選的,支持使用類似ImageMagick的第三方軟件進行像素比對操作,具體內容此處不展開介紹了。

嵌入式系統 | 基于SCADE Display模型的驗證的圖10

圖表10 SCADE Test中關于SCADE Display模型圖形像素比對操作的測試用例

 

如果完全由用戶自己手工編碼來設計基于SCADE Display模型的測試用例,既耗時費力,又不直觀。推薦使用SCADE Display提供的Simulation功能中測試場景記錄功能來定義測試用例原型,再基于該原型進行修改編輯形成最終的測試用例。操作方法為右鍵單擊測試規程中的Record記錄,然后在彈出菜單中選擇Insert->Scenario Generated from Simulation…按鈕,接下來的操作參考1.3節的內容即可。

嵌入式系統 | 基于SCADE Display模型的驗證的圖11

圖表11 SCADE Test中使用SCADE Display的Simulation功能自動保存用戶測試操作

2.2 執行在主機上的功能測試和像素對比

使用SCADE QTE在主機上進行功能測試的結果如下圖,既有圖形化的報告,也有文本化的報告。可以從結果報告中看到測試用例編號,待測變量名稱,實際輸出,期望輸出,精度約束等信息。

嵌入式系統 | 基于SCADE Display模型的驗證的圖12

圖表12 使用SCADE QTE在主機上執行SCADE Display模型功能測試和像素比對后的文本報告


嵌入式系統 | 基于SCADE Display模型的驗證的圖13

圖表13 使用SCADE QTE在主機上執行SCADE Display模型功能測試和像素比對后的圖形報告

視頻4: 使用SCADE QTE在主機上執行SCADE Display模型功能測試和像素比對


2.3 執行在主機上的模型覆蓋分析

使用SCADE QTE在主機上進行模型覆蓋分析結果如下圖,可以便捷地通過顏色來區分覆蓋分析的完整度,綠色是完全覆蓋,紅色是未覆蓋,紫色是不可覆蓋且沒有解釋。

嵌入式系統 | 基于SCADE Display模型的驗證的圖14

圖表14 使用SCADE QTE在主機上執行SCADE Display模型覆蓋分析后的全局報告

嵌入式系統 | 基于SCADE Display模型的驗證的圖15

圖表15 使用SCADE QTE在主機上執行SCADE Display模型覆蓋分析后的部分設計畫面的結果報告

視頻5: 使用SCADE QTE在主機上執行SCADE Display模型的覆蓋分析 


2.4 基于目標機上的測試

如果需要在目標機上進行軟硬件集成測試時,SCADE QTE支持將主機上測試完畢后得到的測試用例轉換為可連接目標機的第三方程序對應的測試用例,以便用戶能簡單快捷地進行目標機上的測試。對SCADE Display模型的測試用例,現在可支持向IBM RTRT等軟件的測試用例轉換。


3

基于SCADE Display的含Suite模型的白盒聯合仿真


最后,可以將SCADE Suite模型設計的控制邏輯嵌入到SCADE Display中做復雜的人機界面行為的設計。然后通過SCADE Display的Simulation功能進行含Suite模型的白盒聯合仿真。

視頻6: 基于SCADE Display的含Suite模型的白盒聯合仿真

 

參考文獻

[1] Leanna Rierson.安全關鍵軟件開發與審定——DO-178C 標準實踐指南[M].崔曉峰譯.北京:電子工業出版社,2015.

[2] 蔡喁,鄭征,蔡開元,等.機載軟件適航標準DO-178B/C 研究[M].上海:上海交通大學出版社,2013.

[3] DO-178C.Software Considerations in Airborne Systems and Equipment Certification[S]. December 13, 2011.

[4] RTCA (Firm). SC-205, EUROCAE (Agency). Working Group 71. Model-based Development and Verification Supplement to DO-178C and DO-278A[M]. RTCA, Incorporated, 2011.


登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

1
1