陳 濤
(91404 部隊,河北 秦皇島 066000)
軟件圖形用戶界面是系統(tǒng)應(yīng)用程序的重要組成部分,是軟件與用戶進行信息交流的接口。由于受傳統(tǒng)觀念的影響,一直以來,圖形用戶界面不被軟件開發(fā)人員所重視,認為是否具有強大的功能,能否完成軟件需求是評價軟件質(zhì)量好壞的唯一標(biāo)準(zhǔn)。由于嵌入式設(shè)備小體積、高可靠性等特點,使得設(shè)備系統(tǒng)資源有限,數(shù)據(jù)處理能力有限,安裝在嵌入式設(shè)備上的軟件受硬件條件的限制,圖形用戶界面必須注重滿足:高性能、輕型、占用資源少等特點。所以在軟件圖形用戶界面設(shè)計和可操作性等方面對嵌入式軟件提出了更高的要求。
這表明優(yōu)秀的圖形用戶界面已經(jīng)成為嵌入式軟件開發(fā)的一個重要組成部分,它不僅能為用戶創(chuàng)造良好、輕松的操作環(huán)境,提供有效、可靠的信息依據(jù),而且還能提高軟件的可靠性與安全性,避免造成嚴重后果。
嵌入式軟件的應(yīng)用與開發(fā)是當(dāng)今計算機軟件發(fā)展的一個熱點,嵌入式軟件是指駐留運行在嵌入式計算機中的執(zhí)行程序,主要被嵌入到武器系統(tǒng)、飛機、艦船、導(dǎo)彈、宇宙飛船、某些指揮與控制系統(tǒng)等之內(nèi)的數(shù)據(jù)處理機。它不僅可以為用戶提供多任務(wù)調(diào)度機制,而且可以進行實時的任務(wù)間通信,使繁雜的多任務(wù)處理機制更加快捷高效[1]。
在某嵌入式軟件測試項目中,正常執(zhí)行功能測試、人機界面測試等測試用例時,系統(tǒng)軟件時間更新頻率正常,軟件的圖形界面也隨之正常顯示,未發(fā)現(xiàn)明顯缺陷。當(dāng)進行強度測試時,出現(xiàn)了圖形界面顯示殘留、重疊(見圖1),參數(shù)顯示刷新頻率不一致等問題。
分析其原因,一方面,由于強度測試中被測軟件是在多負載、長時間運行的情況下連續(xù)運行測試用例的,圖形界面刷新發(fā)生頻率高而導(dǎo)致刷新的時間間隔很小,使嵌入式設(shè)備顯示資源瞬間消耗過多過快,處理運行速度變慢,極易出現(xiàn)軟件界面顯示異常的現(xiàn)象,甚至出現(xiàn)軟件崩潰、系統(tǒng)死機等嚴重缺陷。另一方面,人機交互屬于異步事件,當(dāng)操作鍵盤、鼠標(biāo)時,軟件處理會出現(xiàn)明顯的不協(xié)調(diào)。尤其是實時系統(tǒng)的正確性不僅取決于其邏輯運算結(jié)果而且也取決于輸出運算結(jié)果的時間[2]。這就要求嵌入式系統(tǒng)及其分系統(tǒng)的軟件在總體程序設(shè)計上綜合考慮。在不改變原有程序功能的情況下,對應(yīng)用程序進行優(yōu)化設(shè)計、算法改進,使修改后的程序運行效率更高,以滿足系統(tǒng)總體的開發(fā)效果。
圖1 圖形與表格顯示重疊示意圖
應(yīng)用程序的算法設(shè)計策略是以一步接一步的方式詳細描述程序如何將輸入轉(zhuǎn)化為所要求的輸出的過程,是程序設(shè)計的核心。在進行程序設(shè)計時,通常可以采用多種算法來實現(xiàn)某種功能,而不同算法的差別也是很大的。一個好的程序設(shè)計算法尤為重要。評價一種算法需考慮如下5 種因素。
第一,算法必須具有正確性,應(yīng)該能夠正確的解決問題。算法是解決問題的指導(dǎo)方法,程序是算法的具體實現(xiàn)。如果算法不能正確指導(dǎo)程序編寫和實施,設(shè)計出的程序也不是一個好的程序。
第二,算法必須具有可讀性。算法應(yīng)具有良好的可讀性,以幫助開發(fā)人員理解,在開發(fā)人員修改閱讀程序時,能夠快速的理解和掌握該算法。
第三,算法必須具有健壯性。在用戶輸入非法數(shù)據(jù)時,算法能適應(yīng)的做出反應(yīng)或進行處理。
第四,算法必須考慮硬件存儲量因素。存儲量標(biāo)準(zhǔn)是指算法執(zhí)行過程中所需最大存儲空間。在存儲和運算資源有限的嵌入式設(shè)備上,能夠正確實現(xiàn)所需功能的前提下,盡可能減小程序代碼占用的存儲空間。
第五,算法還要考慮效率標(biāo)準(zhǔn),效率包括時間復(fù)雜度和空間復(fù)雜度等。在空間復(fù)雜度一定時,算法時間復(fù)雜度越低,執(zhí)行效率就越高,執(zhí)行時間就越短,軟件性能就越高。
通過對本項目的分析,一方面,安裝在嵌入式設(shè)備中的軟件,受到設(shè)備處理器運算能力的限制,對軟件進行滿負荷操作,使嵌入式圖形設(shè)備的處理速度變慢。另一方面,程序軟件開發(fā)人員為了代碼編寫和維護更加方便直觀、界面設(shè)計更加美觀,采用了大量的代碼封裝、龐大的類庫和復(fù)雜的運算,在一定程度上影響了軟件的處理速度[3]。通過改進代碼連接,減少不必要的循環(huán)語句;簡化庫文件,避免不必要的庫文件訪問;優(yōu)化界面,減少圖形控件使用等方法,對程序算法進行優(yōu)化,可以有效減輕界面刷新的負載,提高軟件性能。
在當(dāng)今信息社會中,嵌入式計算機及其實時軟件承擔(dān)著過程控制、數(shù)據(jù)采集和處理、數(shù)據(jù)通信以及系統(tǒng)安全保障等任務(wù)。目前,嵌入式軟件的應(yīng)用范圍更廣、規(guī)模更大,已經(jīng)成為整個系統(tǒng)的神經(jīng)中樞?,F(xiàn)代信息化社會對嵌入式軟件的要求很高,微小的錯誤可能導(dǎo)致災(zāi)難性結(jié)果[4],因此對質(zhì)量和可靠性要求更嚴,而軟件界面刷新技術(shù)已經(jīng)成為影響嵌入式軟件安全性和可用性的重要因素。
本例通過在不影響系統(tǒng)總體的開發(fā)效果的基礎(chǔ)上,對原算法進行優(yōu)化,減少程序代碼量,解決了圖形界面刷新問題,從而提高了系統(tǒng)的運行效率[5]。