国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于SFMEA/SFTA方法的智能移動(dòng)終端系統(tǒng)可靠性分析

2015-11-02 05:51:58謝安明胡春卉張夢(mèng)洋賀鑫
信息安全與通信保密 2015年4期
關(guān)鍵詞:可靠性終端定位

謝安明, 胡春卉, 張夢(mèng)洋, 賀鑫

(上海信息安全工程技術(shù)研究中心,上海201204)

0 引言

隨著計(jì)算機(jī)和信息技術(shù)的快速發(fā)展,智能化移動(dòng)終端設(shè)備成為日常生活的主流元素,為人們的生活帶來(lái)極大的樂(lè)趣和便利。智能移動(dòng)終端設(shè)備的功能日益增多,應(yīng)用軟件的數(shù)量急劇增加,軟件可靠性問(wèn)題非常突出,終端設(shè)備的安全問(wèn)題也被更加關(guān)注。

軟件失效模式及影響分析(SoftWare Failure Model and Effects Analysis,SFMEA)基于硬件失效模式及影響分析(Failure Model and Effects Analysis,F(xiàn)MEA)而提出,是一種最常用的軟件可靠性分析方法。FMEA最初被美國(guó)軍方用于船舶、微電子等領(lǐng)域,在軟件測(cè)試中獲得了良好的效果。Reifer在1979年的文章中描述了FMEA模型,并將其應(yīng)用于軟件系統(tǒng)[1]。軟件開(kāi)發(fā)生命周期中應(yīng)用SFMEA方法,對(duì)于定位軟件潛在故障有極大的幫助,可有效提高軟件的可靠性。

本文提出了一種將SFMEA和軟件故障樹(shù)分析(SoftWare Failure Tree Analysis,SFTA)相結(jié)合的技術(shù),并在實(shí)際的軟件項(xiàng)目中進(jìn)行了實(shí)踐,指導(dǎo)軟件開(kāi)發(fā)和測(cè)試人員找出故障,對(duì)分析的結(jié)果進(jìn)行總結(jié),提出了改進(jìn)措施,保證軟件質(zhì)量。

1 SFMEA和SFTA方法介紹

SFMEA是一種自底向上的可靠性分析方法,以失效模式為依據(jù),得到失效模式對(duì)系統(tǒng)的影響和后果,通過(guò)具體分析軟件系統(tǒng)中功能模塊,綜合分析可預(yù)見(jiàn)的故障及對(duì)系統(tǒng)將產(chǎn)生的影響,從而確定其過(guò)賬原因[2]。利用SFMEA可以針對(duì)模塊進(jìn)行故障模式分析,得到所需要的所有故障模式,然后對(duì)每種故障模式進(jìn)行原因分析,給出對(duì)應(yīng)的可能原因。

SFTA通常以圖形方式表現(xiàn)軟件系統(tǒng)的故障特性,它可以分析單一故障點(diǎn)引發(fā)系統(tǒng)故障的原因,也可以組合多個(gè)故障關(guān)鍵點(diǎn)查找系統(tǒng)故障發(fā)生原因。它是一張表明軟件中有哪些模塊的故障、外部事件或者他們的組合導(dǎo)致軟件發(fā)生故障的邏輯圖,針對(duì)要診斷的關(guān)鍵疑難問(wèn)題,建立故障樹(shù),分析出與其對(duì)應(yīng)的故障路徑[4]。

對(duì)軟件系統(tǒng)進(jìn)行可靠性分析,僅采用SFMEA或SFTA都不能達(dá)到對(duì)系統(tǒng)故障定位的最佳效果,SFMEA的缺點(diǎn)是工作量龐大,故障模式和故障影響常有遺漏現(xiàn)象。SFTA的不足在于,容易遺漏造成最終故障的底層原因。因此,文中結(jié)合SFMEA和SFTA分析方法,提出了一種基于SFMEA/SFTA軟件故障分析模型。

2 移動(dòng)終端可靠性分析模型建立

移動(dòng)終端硬件系統(tǒng)的CPU通常具有體積小、低功耗、集成度高等特點(diǎn),其軟件應(yīng)用于特定的環(huán)境,也有其自身的特點(diǎn)。在進(jìn)行軟件可靠性分析時(shí),也要特別注意移動(dòng)終端系統(tǒng)的這些特點(diǎn)。

將SFMEA與SFTA有機(jī)的結(jié)合起來(lái),運(yùn)用CFE(原因-模式-影響)綜合診斷后實(shí)現(xiàn)故障定位,通過(guò)剖面分析、數(shù)據(jù)流控制等方法實(shí)現(xiàn)具體的故障定位。診斷模型如圖1所示。

圖1 嵌入式軟件故障診斷模型

本文采用逆向的綜合分析方法,先采用SFTA方然,隨后針對(duì)故障樹(shù)中的關(guān)鍵故障點(diǎn),運(yùn)用SFMEA方法,分析關(guān)鍵故障點(diǎn)對(duì)軟件系統(tǒng)可能造成其他影響,最后對(duì)比SFTA中的失效線索是否存在。其分析過(guò)程如圖2所示。具體的過(guò)程描述如下:

(1)運(yùn)用SFTA方法,以系統(tǒng)關(guān)鍵疑難故障點(diǎn)作為頂事件繪制故障樹(shù);

(2)針對(duì)關(guān)鍵故障點(diǎn)展開(kāi)SFMEA分析,定義事件類(lèi)型嚴(yán)重性等級(jí)定義表,明確故障原因、故障模式、嚴(yán)酷度和故障影響;

(3)將SFMEA分析結(jié)果進(jìn)行CFE的診斷;

(4)對(duì)定位的模塊進(jìn)行剖面分析定位到具體的函數(shù)或代碼,找到故障位置,提出改進(jìn)措施。

圖2 逆向綜合分析方法原理圖

3 實(shí)例應(yīng)用

3.1 應(yīng)用對(duì)象介紹

本部分以實(shí)際項(xiàng)目智能移動(dòng)終端安全軟件(IMS)的軟件設(shè)計(jì)為分析對(duì)象,運(yùn)用以上方法進(jìn)行可靠性分析。應(yīng)用對(duì)象為IMS的控制軟件,主要實(shí)現(xiàn)的功能是語(yǔ)音和文件的加密傳輸,良好的界面顯示。軟件采用linux C語(yǔ)言開(kāi)發(fā)。

3.2 應(yīng)用過(guò)程

首先,開(kāi)發(fā)人員選擇測(cè)試過(guò)程中的“黑屏死機(jī)現(xiàn)象”作為關(guān)鍵故障點(diǎn)建立故障樹(shù)分析故障原因,如圖3所示。

圖3 IMS故障樹(shù)

第二步的工作是開(kāi)發(fā)人員針對(duì)IMS軟件的需求進(jìn)行SFMEA,確定故障嚴(yán)重性等級(jí)表。如表1所示。

表1 IMS軟件嚴(yán)重性類(lèi)別定義

然后,根據(jù)故障樹(shù)中的各個(gè)底事件,分析故障產(chǎn)生原因、故障導(dǎo)致的影響、嚴(yán)重性及系統(tǒng)改進(jìn)措施,得出SFMEA分析結(jié)果,如表2所示。

根據(jù)分析結(jié)果,測(cè)試人員將關(guān)鍵故障點(diǎn)對(duì)應(yīng)到相應(yīng)的功能模塊,為具體故障點(diǎn)原因的定位節(jié)約了時(shí)間和成本。最后,利用剖面分析、數(shù)據(jù)流控制等技術(shù)將故障定義到具體的程序源碼,開(kāi)發(fā)人員可根據(jù)定位位置進(jìn)行相應(yīng)的改進(jìn),提高軟件的質(zhì)量。

對(duì)于分析中的“加密建鏈不成功”,“數(shù)據(jù)傳輸錯(cuò)誤”,“窗口互操作太多”等這些事件作為新的頂事件,建立新的故障樹(shù),深入分析故障的原因,定位故障位置,并采取了相應(yīng)的改進(jìn)措施,提高系統(tǒng)的可靠性。

表2 IMS軟件SFMEA分析結(jié)果

3.3 應(yīng)用結(jié)果小結(jié)

在對(duì)IMS軟件進(jìn)行可靠性的過(guò)程中,深刻的體會(huì)軟件的后期測(cè)試和維護(hù)是一項(xiàng)龐大而必要的工作。如果在軟件開(kāi)發(fā)中能夠進(jìn)行全面的可靠性分析,對(duì)于提高系統(tǒng)的可靠性和之后的軟件維護(hù)有重要的意義。

綜合IMS軟件的可靠性分析和測(cè)試資料,我們將一些引起軟件失效頻率較高的環(huán)節(jié)做以總結(jié),并提出了相應(yīng)的加強(qiáng)措施。作為以后開(kāi)發(fā)應(yīng)用的重要參考。

(1)共享資源沖突

基于移動(dòng)終端系統(tǒng)對(duì)實(shí)時(shí)性的要求,系統(tǒng)運(yùn)行通常是多任務(wù)并發(fā)的,并允許中斷嵌套。這在很大程度上就會(huì)引起共享資源的沖突。例如,全局變量的使用是一個(gè)很大的隱患。不同優(yōu)先級(jí)的任務(wù)公用這個(gè)全局變量時(shí),低優(yōu)先級(jí)的任務(wù)常被高優(yōu)先級(jí)的任務(wù)中斷,中斷返回后,全局變量很可能被高優(yōu)先級(jí)的任務(wù)所改變,程序的運(yùn)行可能發(fā)生不被期望的結(jié)果。

因此,在程序設(shè)計(jì)中,要盡可能少用全局變量?;蛘咴谌肿兞靠赡鼙徊煌瑑?yōu)先級(jí)的函數(shù)調(diào)用的時(shí),可以采用加鎖、互斥的信號(hào)量等保護(hù)措施,避免資源的競(jìng)爭(zhēng)。或者采用動(dòng)態(tài)優(yōu)先級(jí)調(diào)配的措施,將低優(yōu)先級(jí)中斷的優(yōu)先級(jí)提高,完成中斷后再恢復(fù)原來(lái)的優(yōu)先級(jí)次序。

(2)動(dòng)態(tài)內(nèi)存分配

鑒于嵌入式系統(tǒng)資源有限的特點(diǎn),我們通常會(huì)用到動(dòng)態(tài)內(nèi)存分配的方法。那么也就相應(yīng)的存在一些潛在的不安全因素。在嵌入式系統(tǒng)程序設(shè)計(jì)中,通常會(huì)設(shè)置為一個(gè)永久存活的大循環(huán)以滿足系統(tǒng)運(yùn)行的需求,如果只是一味的進(jìn)行了動(dòng)態(tài)內(nèi)存分配而未釋放相應(yīng)的空間,那對(duì)于有限的資源無(wú)疑是一個(gè)挑戰(zhàn),一旦資源被用盡,程序也面臨崩潰。還有一個(gè)常犯的錯(cuò)誤是在一個(gè)函數(shù)內(nèi)部定義,在其他函數(shù)內(nèi)釋放空間,很容易造成空間多次釋放,導(dǎo)致指針變?yōu)橐爸羔?。這個(gè)問(wèn)題在界面程序的窗口操作中尤其需要注意。

因此,要謹(jǐn)慎的處理動(dòng)態(tài)內(nèi)存分配的邏輯設(shè)計(jì)。盡量少用動(dòng)態(tài)分配,而采用局部變量、局部指針代替。界面設(shè)計(jì)中要盡量簡(jiǎn)化窗口的嵌套互操作。

(3)數(shù)組越界、數(shù)據(jù)溢出

數(shù)組越界、數(shù)據(jù)溢出雖然是很簡(jiǎn)單的問(wèn)題,但同樣也是很容易忽視的問(wèn)題。這兩種錯(cuò)誤隱蔽性強(qiáng),但危害性極大,通常都會(huì)導(dǎo)致程序崩潰。

在程序設(shè)計(jì)中,要慎重考慮所定義的數(shù)據(jù)長(zhǎng)度的合理性,如果引用數(shù)組的下標(biāo),要對(duì)其范圍進(jìn)行判斷后再使用。要盡量避免浮點(diǎn)運(yùn)算,浮點(diǎn)運(yùn)算本身計(jì)算龐大,影響系統(tǒng)運(yùn)行速度,而且處理不當(dāng)很容易發(fā)生溢出。

(4)異常處理

異常處理是程序設(shè)計(jì)中非常必要的。例如,當(dāng)硬件設(shè)備打開(kāi)失敗或者文件讀寫(xiě)錯(cuò)誤時(shí),如果未在程序中進(jìn)行相應(yīng)的異常處理,通常會(huì)導(dǎo)致產(chǎn)品功能缺失,開(kāi)發(fā)周期加長(zhǎng)。

異常的處理不僅在程序中,在編譯調(diào)試階段,我們也要打開(kāi)編譯器的警告選項(xiàng)來(lái)即使捕捉所有的程序設(shè)計(jì)不合理的地方。良好的編程習(xí)慣會(huì)做完全的異常處理,同時(shí)將出錯(cuò)信息寫(xiě)入到日志文件中,方便測(cè)試人員查找故障原因,定位故障位置。

(5)協(xié)作與溝通

一項(xiàng)軟件工程的完成通常是幾個(gè)人協(xié)作完成的。在一個(gè)設(shè)計(jì)團(tuán)隊(duì)中,僅有分工是不能夠很好的完成任務(wù)的,需要大家的相互協(xié)作與溝通。

一個(gè)好的團(tuán)隊(duì)需要一個(gè)好的領(lǐng)導(dǎo)來(lái)指導(dǎo)軟件開(kāi)發(fā)的方向和進(jìn)度,更多的是需要開(kāi)發(fā)者們交流思想,取長(zhǎng)補(bǔ)短,尤其在軟件產(chǎn)品設(shè)計(jì)時(shí),團(tuán)隊(duì)的力量才是不可估量的。我們很少聽(tīng)說(shuō),一個(gè)人獨(dú)自完成的成果是多么出眾的,當(dāng)一件產(chǎn)品完成時(shí),融入多人的智慧的成果才是最完美的。

4 結(jié)語(yǔ)

本文針對(duì)智能移動(dòng)終端系統(tǒng)的特點(diǎn),提出了一種基于SFMEA/SFTA方法的軟件可靠性分析方法,實(shí)現(xiàn)故障定位,指導(dǎo)軟件開(kāi)發(fā)人員找出故障。通過(guò)IMS軟件實(shí)例應(yīng)用,給出了該實(shí)例分析結(jié)果,同時(shí)總結(jié)了軟件設(shè)計(jì)過(guò)程中幾個(gè)重要環(huán)節(jié),提出了相應(yīng)措施,加快故障定位,提高系統(tǒng)的可靠性,保證軟件質(zhì)量。

[1] P.L.Goddard.Software FMEA techniques[C]//Proceedings Annual Reliability and Maintainability Symposium.American:IEEE Reliability Society.2000:118-123.

[2] X.A.Hecht.Computer Aided Software FMEA for Unified Modeling Language Based SoftWare[J].IEEE Transactions on Software Engineering.2004,30(5):243 -248.

[3] J.McDermid.Software hazard and safety analysis[C]//Formal Techniques in Real- Time and Fault- Tolerantant Systems,_Lecture Notes in Computer Science.Germany:Springer Berlin Heidelberg.2002:23 -34.

[4] 韓峰巖,王昕.計(jì)算機(jī)實(shí)時(shí)控制系統(tǒng)軟硬件綜合FMEA.計(jì)算機(jī)工程[J].2003,20(29):50-52.

[5] 張寶燕,田竭,任雁.基于面向?qū)ο筌浖脑敿?xì)級(jí)SFMEA方法研究[J].科技信息.2009,17:37-38.

[6] 李濤.基于Linux終端的安全加固與接入技術(shù)的研究[D].北京:華北電力大學(xué).2014.

[7] 石柱,馬寬,鄭重.軟件 FMEA實(shí)例研究[J].航天控制.2010,28(2):75 -79.

[8] 周啟惠.智能移動(dòng)終端敏感資源保護(hù)技術(shù)研究[D].青島:中國(guó)海洋大學(xué).2014.

[9] 黃錫滋.軟件可靠性、安全性、與質(zhì)量保證[M].第1版.北京:電子工業(yè)出版社,2002:3-54.

猜你喜歡
可靠性終端定位
《導(dǎo)航定位與授時(shí)》征稿簡(jiǎn)則
X美術(shù)館首屆三年展:“終端〉_How Do We Begin?”
Smartrail4.0定位和控制
通信控制服務(wù)器(CCS)維護(hù)終端的設(shè)計(jì)與實(shí)現(xiàn)
可靠性管理體系創(chuàng)建與實(shí)踐
找準(zhǔn)定位 砥礪前行
電子制作(2017年2期)2017-05-17 03:55:06
多功能北斗船載終端的開(kāi)發(fā)應(yīng)用
電子制作(2016年15期)2017-01-15 13:39:14
青年擇業(yè)要有準(zhǔn)確定位
基于可靠性跟蹤的薄弱環(huán)節(jié)辨識(shí)方法在省級(jí)電網(wǎng)可靠性改善中的應(yīng)用研究
班玛县| 静安区| 高台县| 湾仔区| 法库县| 土默特左旗| 大石桥市| 衡山县| 桦川县| 剑川县| 孟州市| 九江县| 彩票| 牡丹江市| 河曲县| 喜德县| 宣化县| 卢氏县| 谢通门县| 西城区| 连云港市| 兴山县| 龙南县| 瓦房店市| 城步| 临猗县| 朔州市| 林西县| 曲麻莱县| 固阳县| 神池县| 牟定县| 武平县| 邯郸县| 纳雍县| 长乐市| 锡林浩特市| 广灵县| 磐安县| 攀枝花市| 同仁县|