簡介
嵌入式系統需和其運作的環境互動,一般會預期有合理的感測器信號為其輸入,也會依輸入及系統設計來驅動實體系統。為了使系統正常工作,需要將嵌入式系統的環境納入仿真考量範圍內。若嵌入式系統模型和環境模型連線,一起進行仿真,則即稱為模型在環模擬。
模型在環是較節省成本的嵌入式系統測試方式。模型驅動開發的開發及仿真環境有MATLAB/Simulink、ASCET或是自由軟體Scilab/Xcos。
在不同開發階段中,會利用軟體在環(Software in the Loop、SIL)、處理器在環(Processor in the Loop、PIL)、硬體在環(Hardware in the Loop、HIL)的方式進行開發。嵌入式系統會和環境的模型一起進行仿真。
模型驅動工程
模型驅動工程( MDE, Model-Driven Engineering)是軟體工程的一個分支,它將模型與建模拓展到軟體開發的所有方面,形成一個多維建模空間,從而將工程活動建立在這些模型的映射和轉換之上。MDE的基本原則是將模型視為第一實體,將所有軟體產物當做模型或模型要素。
以UML為代表的軟體工程領域模型與建模方面的發展,也被借鑑到或啟發了傳統的系統工程(SE)領域。近年來基於模型的系統工程(MBSE)得到長足的發展,其基本思想和方法,與MDE有許多共同之處。作為一種系統工程方法,MBSE通過創造和利用模型作為工程師的基本交流手段,代替基於文檔的信息交流。基於模型的思想還有另一個基本的套用方向,就是模型驅動套用(MDApps)。與MDE/MDA/MDD著眼於開發過程的思路不同,MDApps將模型作為系統運行期的基本組件,使系統的功能或行為直接基於可以在運行期創建和改變的套用目標事物模型。
基於模型的測試
基於模型的測試(英語: Model-based testing)屬於軟體測試領域的一種測試方法。按照此方法,測試用例可以完全或部分的利用模型自動產生。以上所說的模型通常是指對被測系統(SUT,system under test)某些(通常是功能性的)方面的描述。
模型一般都是對被測系統預期行為動作的抽象描述。這些測試用例的集合就是抽象測試套件(abstract test suite)。抽象測試套件不可以直接執行於需測試的系統,因為,他們不在同一抽象級別。
測試套件(test suites)是由模型生成,而不是由原始碼生成。因此,基於模型的測試又常常被當作黑盒測試的一種形式。但從某種層面來說,這並不十分準確。畢竟,基於模型的測試是與原始碼級的測試覆蓋率,以及對代碼的功能測試都有著很大的關係。
對於複雜的軟體系統中,如何套用基於模型的測試還在探索中。
嵌入式系統
嵌入式系統(Embedded System),是一種嵌入機械或電氣系統內部、具有專一功能和實時計算性能的計算機系統。嵌入式系統常被用於高效控制許多常見設備,被嵌入的系統通常是包含數字硬體和機械部件的完整設備,例如汽車的防鎖死剎車系統。相反,通用計算機如個人計算機則設計靈活,可以智慧型處理各式各樣的運算情況,以滿足廣大終端用戶不同的需要。
現代嵌入式系統通常是基於微控制器(如含集成記憶體和/或外設接口的中央處理單元)的,但在較複雜的系統中普通微處理器(使用外部存儲晶片和外設接口電路)也很常見。通用型處理器、專門進行某類計算的處理器、為手持套用訂製設計的處理器等,都可能套用到嵌入式系統。常見的專用處理器有數位訊號處理器。
嵌入式系統的關鍵特性是處理特定的任務,因此工程師能對其進行最佳化,以降低產品的體積和成本,提升可靠性和性能。
嵌入式系統的物理形態包括便攜設備如計步器、電子手錶和MP3播放器,大型固定裝置如交通燈、工廠控制器,大型複雜系統如混合動力汽車、磁共振成像設備、航空電子設備等。它們的複雜度低至單片機,高至大型底盤或外殼內安裝有多個部件、外設和網路。