夏雪剛,裴清福,薛美英
基于嵌入式軟件性能方法與工具設計的研究
夏雪剛,裴清福,薛美英
為了對嵌入式軟件性能進行有效的測試,從而盡可能的提升嵌入式軟件的性能,故而對嵌入式軟件性能的分析方法和工具進行進一步的研究是非常有價值的。首先對軟件性能分析方法進行了介紹,然后提出了一款FTC軟件性能分析工具,并對該分析工具的系統設計進行了研究,最后對軟件系統測試中的功能性測試用例進行了簡要的分析,證明了該分析工具在嵌入式軟件性能分析上具有一定的實用價值和研究價值。
嵌入式軟件;性能;分析方法;工具設計
伴隨著計算機技術和信息技術的進步,嵌入式軟硬件系統已經被廣泛的應用于各個領域,應用軟件性能的分析對嵌入式開發起著至關重要的作用。目前硬件技術的發展日臻穩定,而軟件質量問題卻逐漸暴露出來,嵌入軟件性能受到了越來越多專家學者的關注和重視。因此,本文所提出的課題十分具有研究價值。
1.1硬件/軟件分析方法
通常情況下硬件分析方法采用專門的硬件機制,通過實時或者采樣檢測的方式分析所捕獲的總線數據信息。硬件性能分析方法的速度比較快,但是這種方法對硬件具有較強的依賴性,在很大程度上限制了分析功能的實現。除此之外,如果采用實時監測的方式,那么系統負載過大;而如果采用采樣檢測方式的話,就無法確保數據的準確性和完整性。
軟件分析方法通常采用的是插裝技術,其主要原理是將信息采集代碼插入到被檢測軟件的關鍵位置。軟件分析方法采用了數據實測,其對硬件沒有依賴性,因此,該方法較硬件分析方法而言,就有較高的準確性、可移植性和靈活性,并且成本也比較低。然而,采用這種分析方法就需要對目標軟件的代碼進行修改,致使被檢測程序的運行環境缺乏真實性。
1.2動態/靜態分析方法
動態分析方法主要是指通過對被測程序性的狀態和行為進行跟蹤,從而獲取程序運行時性能的數據信息,進而準確地找到能夠對程序性能得到有效提升的熱點代碼。動態分析方法對額外開銷的要求比較嚴格,同時所需要處理的信息量也比較大。軟件測試是動態分析方法最主要的表現形式,如今已經得到了廣泛的推廣和應用。
靜態分析方法指的是在不執行目標軟件的前提下對被測程序的語句關系和結構進行分析,與動態分析方法相比,這種方法所需要處理的信息量比較少。最早出現的軟件性能分析方法都屬于靜態分析方法,而目前,應用范圍最廣的靜態分析方法是形式化方法。形式化方法是以數學化程序理論為基礎的,故而該方法的實際應用往往會受到數學化程序理論發展的直接影響。
1.3源代碼/目標碼分析方法
源代碼分析方法是現階段最常用的軟件性能分析方法,該方法的基本原理是從數據關系、控制結構等方面對被測軟件源代碼進行分析,從而實現對軟件性能的檢測和評估。如今,源代碼分析方法的研究已經比較成熟,工具應用也比較普遍。
目標碼分析方法主要是分析軟件目標代碼的行為和結構,且目標碼和源代碼在行為和結構上存在著差異,這就說明對目標碼級別的軟件進行分析是非常有必要的。現階段,目標碼分析對生成目標碼部分的分析工具比較少,而是側重于需求設計的理論分析證明。
2.1物理體系結構
如圖1所示:

圖1 物理體系結構
FTC軟件性能分析工具的物理設備主要包含了分析終端設備、WEB服務器、數據服務器、測試人員的終端電腦、ETM設備以及嵌入式移動設備。其中,開發人員和測試人員的終端服務器(電腦)所使用的操作系統可以是不相同的,WEB服務器和數據服務器僅僅是虛擬服務器,在物理上屬于分布式服務器組。從而,用戶在實際應用的過程中就不用對其真正的物理限制進行關注,能夠很容易的做到硬件性能的有效提升。
2.2軟件架構
FTC軟件性能分析工具主要分為“基于WEB服務器的數據分析與統計”和“數據采集、解析與本地分析統計”兩大軟件功能。這兩大軟件功能部分只是在數據格式上存在依賴關系,而在其他方面不存在任何依賴關系,因此,這兩大軟件功能部分在軟件設計和實現上是能夠完全獨立的,實現了低耦合、高內聚,下面本文就對這兩部分軟件的總體架構分別進行分析:
(1)基于WEB服務器的數據分析和統計該功能部分軟件的實現,如圖2所示:

圖2 “基于WEB服務器的數據分析與統計”軟件實現圖
圖中灰色的模塊部分指的是軟件實現的模塊。
其中,分析統計與顯示交互模塊通過jQuery框架來使用戶的視圖現實和交互功能得到實現;頁面生成模塊的功能是生成用戶使用時各種統計和分析視圖的頁面;文件數據模塊的功能是讀取和存放FTC工具解析過的trace文件。
(2)數據采集、解析與本地分析統計
該部分的軟件功能屬于整個軟件功能的核心,占到了整個軟件功能部分的90%以上,該功能部分軟件的總體軟件架構如圖3所示:

圖3 “數據采集、解析與本地分析”總體軟件架構圖
Log模塊的功能是對Bug進行分析;調用與控制模塊的功能是對其他軟件進行調用和控制,同時與其他軟件進行通訊;信息解析與處理模塊的主要功能是對trace信息進行解析;功能接口模塊的功能是實現各功能模塊的相互連接;用戶圖形界面模塊的功能是對有關的界面和圖形窗口進行顯示。
本文選取軟件系統測試中的功能性測試為研究對象,對嵌入式軟件的使用功能進行測試,下面本文對其中的測試用例進行簡要的介紹。
測試用例1:正確加載用戶配置信息。
準備數據:設定好的用戶profile文件,其中用戶的數量應該在5個以上。
前提條件:FTC軟件性能分析工具能夠在用戶測試機器上正常運行。
操作步驟:打開FTC工具,利用下拉菜單對不同的永華profile進行選擇。
希望結果:每個用戶profile的配置信息能夠通過FTC工具的用戶配置信息窗口正確的顯示出來。
測試結果:通過
測試用例2:查看全部trace信息列表
準備數據:解析過的trace分析信息。
前提條件:測試數據已經被上傳至服務端。
操作步驟:打開電腦上安裝的火狐瀏覽器,輸入網址:http://beftc01等待瀏覽器顯示結果。
希望結果:正確顯示每個trace的相關信息。
測試結構:通過。
總而言之,FTC不僅僅是一款軟件性能分析工具,更是基于TRACE32仿真調試工具、ETM模塊以及硬件設備,再加上WEB服務器、數據服務器、數據接卸、FTC控制面板而構成的一個組件工具。本文通過實測用例證明了這款分析工具的有效性和實用性,對嵌入式軟件性能的分析起到了一定的幫助作用。
[1] 周延年,朱怡安.基于灰熵絕對關聯分析在嵌入式計算機性能評價中的應用[J].計算機科學,2011,38(11):206-207.
[2] 李海波.嵌入式移動設備軟件性能分析工具軟件[D].北京:北京郵電大學,2012.
[3] 康春暉.嵌入式軟件性能測試工具的設計與實現的分析與設計[D].成都:電子科技大學,2010.
[4] 張惠臻,王超,陳雁.嵌入式軟件性能分析方法研究與工具設計[J].計算機應用與軟件,2013,30(10):284-287.
[5] 向東, 劉海燕. C/C++ 靜態代碼安全檢查工具研究[J].計算機工程與設計, 2005,26(8): 2110-2112.
[6] 蔡建平. 嵌入式軟件測試實用技術[M].:北京: 清華大學出版社, 2010.
[7] 張煥國,李晶,潘丹鈴,等.嵌入式系統可信平臺模塊研究[J].計算機研究與發展,2011,48(7):1269-1278.
[8] 李苗.基于證據推理的嵌入式軟件可信性評估方法[J].計算機應用研究,2011,28(12):4604-4607.
[9] 劉嘯濱,郭兵,沈艷,等.嵌入式軟件體系結構級能耗建模方法[J].軟件學報,2012,23(2):230-239.
[10] 董佳梁,李彥峰,楊秋松,等.面向航天系統的嵌入式操作系統實時性評測[J].計算機工程與設計,2013,34(1):114-120.
[11] 王潔,崔凱,周寬久,等.基于遺傳算法的嵌入式軟件中斷過載動態檢測[J].清華大學學報(自然科學版),2011,1(51) :1363-1368.
Research on Performance Test Method and Tool Design of Embedded Software
Xia Xuegang, Pei Qingfu , Xue Meiying
(Department of Electrical And Information Engineering, Shanxi Railway Institute, Weinan 714000, China)
In order to test the embedded software performance effectively, so as to enhance the performance of embedded software, it is valuable to further research the analysis methods and tools of the embedded software performance. Firstly, the software performance analysis methods are introduced, then a FTC analysis tool of software performance is proposed, and the system design of it is studied. Finally, a brief analysis is made to the functional test case in the software system test. It is proved that the analysis tool has some practical value and research value in the embedded software performance analysis.
Embedded Software; Performance; Analysis; Tool Design
TP399
A
1007-757X(2016)06-0053-02
2016.02.03)
夏雪剛(1979-),男(漢族),陜西渭南人,陜西鐵路工程職業技術學院,電氣與信息工程系,講師,碩士,研究方向:軟件、計算機網絡,渭南,714000
裴清福(1982-),男,渭南人,陜西鐵路工程職業技術學院,電氣與信息工程系,講師,碩士,研究方向:計算機軟件、網絡,渭南,714000
薛美英(1972-),大同人,陜西鐵路工程職業技術學院,電氣與信息工程系,講師,碩士,研究方向:計算機應用,渭南,714000