Reactive Systems, Inc. (RSI)是一家銷售嵌入式系統設計自動化軟體的工具與服務(ESDA)美國公司,公司成立於1999年,重點產品為Reactis以及Reactis for C。
Reactis 是RSI公司提供給Matlab/Simulink模型進行測試和驗證地工具。由於系統開發工作的複雜度愈來愈高,目前愈來愈多的嵌入式系統軟體採用Matlab/Simulink模型當作開發工具, 透過自動程式碼轉換,這些嵌入式系統軟體已經可以在汽車、航太、消費性電子產品設備中之微處理器執行。
RSI公司所開發之Reactis產品線專為這些嵌入式系統軟體設計者提供進行自動測試以及驗證。Reactis產品的導入將可以提升工程師的產能,並且大幅節省公司在測試上所花費之成本,更可以增加公司產品的軟體品質。
CAE 最新的一個流行分支是基於模型的設計(Model-based Design),注重於嵌入式控制設計,非常適合於機電儀一體化設備的開發。傳統的設計方法是先設計的硬體系統原型實體,然後進行測試並在後續的設計中不斷改進,但是在硬體階段發現問題很難,而且需要大量的時間和成本。
模型設計之初先建立演算法模型、物理模型以及環境模型,然後基於MATLAB與Simulink平台,進行系統測試與模擬,在後續的設計中不斷進行模擬, 再用自動程式碼產生器產生實際系統所需的軟體程式碼。實際上是將測試提前到了模擬階段,設計製造人員能儘早發現並解決問題。基於模型的設計在最後階段要進 行硬體原型測試,主要是為了驗證良好的設計,並不是要找出不良的設計。
基於模型的設計過程中,模型的測試和驗證至關重要,Reactis,是業界領先的軟 體測試與驗證工具,支援Simulink/Stateflow和 TargetLink 模型的測試和驗證,2007年還發佈了Reactis for C Plugin,提供模型中C程式碼部分(包括S函數和State-flow中的C程式碼)的白箱(WhiteBox)分析功能。
主要特點
-
根據Simulink/Stateflow或TargetLink的模型自動建立測試案例(Test Suite)
-
用戶可以自行定義測試目標
-
用戶可以自行定義測試案例的建立準則
-
自動化的測試和驗證功能,更快完成模型和系統的詳盡分析,幫助客戶節約大量的時間和成本
-
支持MC/DC (Modified Condition Decision Coverage)準則
-
提供詳細的覆蓋範圍報告,包括測試集覆蓋到的以及未覆蓋的內容
-
有中斷點設置功能,用戶可以單步執行或是選擇以模組為單位執行
-
與傳統的調試工具介面相似,用戶使用方便
-
附有詳細的例子和教程,可幫助用戶儘快學習並掌握
功能介紹
Reactis Tester for Simulink/ Stateflow 根據嵌入式控制軟體的Simulink/Stateflow模型自動建立測試集(test suites),該測試集不但滿足不同測試目標的覆蓋要求,同時還除去不必要的重複測試。
|
Reactis Tester for C 涵蓋率的判斷準則包含敘述(statement)、決定(decision)、條件(condition)與 MC/DC (Modified condition/decision coverage)。 當 Reactis Tester 產生測試劇本時, 意味著 Reactis Tester 已針對你的 C 語言進行一連串測試來找出並標示為執行時之錯誤( runtime error)。 記憶體錯誤 (memory errors) 是使用 C 語言時常發生的錯誤,而這一類的錯誤又很難被找出來,只要程式碼存取無效記憶體位址時便會產生記憶體錯誤。 由於 C 語言具有直接存取記憶體的功能,雖然可以因此增加程式效能,但也因為可直接任意存取程式的記憶體,而造成記憶體錯誤非常容易在 C 程式碼中發生。典型的記憶體錯誤包括超出陣列索引邊界、緩衝區溢位、dangling heap pointers(存取已經釋放掉的動態記憶體區)、dangling stack pointers(存取已被釋放掉的函數裡的局部變數)與針對不正確的數值使用指標轉換 (pointer cast). Reactis Tester 不僅可以偵測上述之錯誤型態,而且可以產生能在 Reactis Simulator 一步一步執行測試,以利精確指出造成錯誤真正的原因。 |
Reactis Simulator for Simulink/ Stateflow 使用戶能夠視覺化執行Simulink/Stateflow模型。Reactis Simulator的使用者介面是與傳統的程式語言介面相似,用戶在模擬測試Simulink/Stateflow模型時,可選擇單步執行(step-by-step)或者以模組為單位執行(block-by-block),也可以設置中斷點。 Reactis Simulator 還可以 |
Reactis Simulator for C
- 允許執行單一敘述;進入函式執行,執行到函式終了,執行到跳出函式;一次執行一個敘述或執行多個敘述
|
Reactis Validator for Reactis Validator自動在模型中搜索違反了用戶指定規則的部分,當Validator發現有違規情況發生,會自動建立一個測試案例來證明該違規事件發生的條件,然後就可以在Reactis Simulator中執行該測試案例,瞭解事件發生的順序來查找問題的原因。 這個工具可以幫助使用者早期發現設計錯誤和設計與需求不一致之處,並減少了設計審查所需的手中工作。 |
Reactis Validator for C 消除執行時期錯誤固然重要,但僅僅只是往產生高品質的軟體邁進了一步而已,程式不當掉但產生錯誤結果的程式還是無法被接受。 Reactis Validator 提供了一套系統化的法則讓你可以檢查程式是否正確運作,這套檢查法則跟 C 語言裡的assert 機制很類似。
|
客戶分佈 加拿大、法國、德國、英國、匈牙利、印度、日本、韓國、美國、中國臺灣等國家和地區。
日本客戶 AISIN,AISIN AW,DENSO,HITACHI,HONDA ELESYS,ISUZU,JATCO,MAZDA,NISSAN,SUZUKI,TOYOTA,TRANSTRON,TTDC等。
[案例一] 福特汽車公司
-
通用模型變數範圍和設計要求的比對
-
汽車巡航系統的速度限制
-
飛機的飛行中的動力推進分析
-
X-射線的輻射劑量是否超過安全範圍
-
手機在跨服務區時的泊接可靠性