軟件分析技術(shù)進(jìn)展

軟件分析技術(shù)進(jìn)展

ID:11606521

大?。?68.00 KB

頁數(shù):16頁

時間:2018-07-12

軟件分析技術(shù)進(jìn)展_第1頁
軟件分析技術(shù)進(jìn)展_第2頁
軟件分析技術(shù)進(jìn)展_第3頁
軟件分析技術(shù)進(jìn)展_第4頁
軟件分析技術(shù)進(jìn)展_第5頁
資源描述:

《軟件分析技術(shù)進(jìn)展》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫

1、《計算機(jī)學(xué)報》2009年9期Vol.32,No.9軟件分析技術(shù)進(jìn)展*資助項目:國家重點基礎(chǔ)研究發(fā)展規(guī)劃973項目(No.2009CB320703);國家自然科學(xué)基金委創(chuàng)新研究群體研究科學(xué)基金項目(No:60821003);國家863高技術(shù)項目(No.2006AA01Z175)梅宏1王千祥1張路1王戟21.北京大學(xué)信息科學(xué)技術(shù)學(xué)院,高可信軟件教育部重點實驗室,北京1008712.國防科技大學(xué)計算機(jī)學(xué)院,并行與分布處理國防科技重點實驗室,長沙410073摘要軟件分析技術(shù)的研究已有較長歷史,相關(guān)成果也在軟件生命周期的不同階段中得到了廣泛應(yīng)用。軟件生命周期中不同活動所需要的軟件分析技術(shù)既不完全相同

2、,又有許多交疊,且不同的分析技術(shù)之間互相影響。文章在討論了軟件分析的基本概念之后,主要從靜態(tài)分析與動態(tài)分析兩個方面介紹了一些主要的軟件分析技術(shù),以及部分相關(guān)分析工具。結(jié)合軟件的質(zhì)量問題,文章還探討了一些分析技術(shù)與軟件質(zhì)量屬性的相關(guān)性,以便于人們在分析特定的軟件質(zhì)量屬性時,選取合適的技術(shù)與工具。最后,文章展望了軟件分析技術(shù)的發(fā)展趨勢。關(guān)鍵詞軟件分析,靜態(tài)分析,動態(tài)分析,軟件質(zhì)量中圖法分類號TP3011.引言軟件是一種十分特殊的人工制品:它是人類“智力活動”的產(chǎn)物,是對客觀事物的虛擬反映,是知識的固化與凝練。盡管軟件迄今已有50多年的發(fā)展歷史,但目前人們對于軟件的許多認(rèn)識還十分有限。例如:對于

3、任何一個給定的軟件,我們能否完全了解它的特性?軟件分析就是一個以軟件特性為關(guān)注點的研究領(lǐng)域?!胺治觥?,通俗來說,是以某種方式將復(fù)雜對象分解為更小的部分,以更好地理解該對象的過程。分析技術(shù)很早就被應(yīng)用于數(shù)學(xué)、邏輯等方面的研究,近代以來逐步被更多的學(xué)科(例如:化學(xué)、物理等)所大量采用。軟件作為一個新發(fā)展起來的學(xué)科,在研究過程中引入分析技術(shù)是十分自然的。目前軟件生命周期中的許多活動(分析、設(shè)計、實現(xiàn)、測試、部署、維護(hù)等)都離不開分析技術(shù)。然而,軟件分析的能力是有限的:對于任何一個有一定規(guī)模的軟件,希望獲得關(guān)于它的完備描述通常是不現(xiàn)實的[18]。特別是,對于自動分析而言,許多問題是不可判定的。其中

4、最典型的例子是停機(jī)不可判定問題:不存在一個這樣的算法,對于任意的圖靈機(jī)以及任意的輸入,可以判斷該圖靈機(jī)是否停機(jī)[64]。但從軟件分析這么多年所取得的進(jìn)展可以看出,盡管軟件分析的能力有限,它仍然是軟件領(lǐng)域十分有用的技術(shù):將程序從高級語言向機(jī)器語言的翻譯過程需要分析,判斷一個程序是否符合需求規(guī)約需要分析技術(shù),想了解程序是否存在安全漏洞需要分析技術(shù),維護(hù)過程更是需要大量的分析技術(shù),等等。本文將軟件分析定義為“對軟件進(jìn)行人工或者自動分析,以驗證、確認(rèn)、或發(fā)現(xiàn)軟件性質(zhì)(或者規(guī)約、約束)的過程或活動”。下面對上述定義中幾個術(shù)語進(jìn)行解釋。首先是“軟件”:軟件最初主要是指程序,后來逐步擴(kuò)大到文檔等其它形態(tài)

5、軟件制品。軟件分析也從程序分析發(fā)展到了更大的范圍,例如:對文檔(含需求規(guī)約、設(shè)計文檔、代碼注釋等)的分析、對運行程序的分析,等等?!白詣印币彩呛苤匾母拍睿很浖治龅臍v史幾乎與軟件的歷史一樣長:自從有了軟件就有了軟件分析。最初的分析主要是人工進(jìn)行的,但人工分析往往需要花費大量的時間與精力,因此,后來人們越來越多地關(guān)注自動分析。其中,編譯技術(shù)的發(fā)展大大帶動了軟件的自動分析技術(shù),目前的許多分析技術(shù)都可以在編譯技術(shù)中找到基本雛形。所謂“驗證”(Verification),是要回答“軟件制品是否與軟件需求規(guī)約一致”的問題,而“確認(rèn)”(Validation)則要回答“軟件的特性是否符合用戶需求”的問

6、題。在英文中,人們經(jīng)常用“Dothethingright”來解釋“驗證”,而用16《計算機(jī)學(xué)報》2009年9期Vol.32,No.9“Dotherightthing”來解釋“確認(rèn)”?!鞍l(fā)現(xiàn)”(Discover)是指在沒有事先設(shè)定軟件某個性質(zhì)的前提下,通過分析發(fā)現(xiàn)軟件的某種性質(zhì)。之所以強(qiáng)調(diào)“性質(zhì)”,是因為分析的結(jié)果通常表示為軟件是否符合或者具有某種性質(zhì)(或者規(guī)約、約束),而這種性質(zhì)不是軟件本身自明的。在本文討論的軟件分析中,分析對象僅限于軟件制品,不涉及對軟件過程、軟件人員與軟件組織等的分析。目前與軟件分析相關(guān)的綜述性文獻(xiàn)中,多數(shù)只對軟件分析的一個子集進(jìn)行比較深入的介紹。例如[1]集中在對源

7、代碼分析的介紹,[2]主要介紹形式化的分析方法,[53]著重從語義的角度介紹程序分析,[54]集中在模型為中心的程序分析上。本文在這些工作的基礎(chǔ)之上,嘗試對軟件分析涉及的主要方法進(jìn)行盡可能全面的總結(jié)、分類。另外,考慮到近年來軟件質(zhì)量為人們所熱切關(guān)注,本文在介紹分析技術(shù)之外,特別關(guān)注那些與質(zhì)量相關(guān)的分析技術(shù),并結(jié)合不同的軟件質(zhì)量屬性,探討不同的質(zhì)量屬性適合運用什么類型的分析技術(shù)。最后,文章結(jié)合軟件形態(tài)、軟件運行環(huán)境等幾個驅(qū)

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。