軟件可靠性和安全性設(shè)計(jì)指南_第1頁
軟件可靠性和安全性設(shè)計(jì)指南_第2頁
軟件可靠性和安全性設(shè)計(jì)指南_第3頁
軟件可靠性和安全性設(shè)計(jì)指南_第4頁
軟件可靠性和安全性設(shè)計(jì)指南_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、文檔1文檔編號(hào)產(chǎn)品版本密級(jí)XK-DN-2000-10-11-09V 1.0產(chǎn)品名稱:共頁軟件可靠性和安全性設(shè)計(jì)指南文檔作者:日期:/ /開發(fā)/測(cè)試經(jīng)理:日期:/產(chǎn)品經(jīng)理:日期:/管理辦:日期:/請(qǐng)?jiān)谶@里輸入公司名稱版權(quán)所有不得復(fù)制軟件可靠性和安全性設(shè)計(jì)指南軟件可靠性和安全性設(shè)計(jì)指南1 范圍1 .1主題內(nèi)容此處加入主題內(nèi)容1 .2適用范圍此處加入適用范圍2 引用標(biāo)準(zhǔn)GBxxxx 信息處理一一數(shù)據(jù)流程圖、程序流程圖、系統(tǒng)流程圖、程序網(wǎng)絡(luò)圖和系統(tǒng)資源圖的文件編制符號(hào)及 約定。GB/Txxx 軟件工程術(shù)語GB/Txxxxxx 計(jì)算機(jī)軟件質(zhì)量保證計(jì)劃規(guī)范GB/T xxxxx計(jì)算機(jī)軟件配置管理計(jì)劃規(guī)范GB

2、/T xxxxx 信息處理一一程序構(gòu)造及其表示的約定GJBxxxx系統(tǒng)安全性通用大綱GJBxxxxx 系統(tǒng)電磁兼容性要求GBxxxx電能質(zhì)量標(biāo)準(zhǔn)大綱GBxxxxx電能質(zhì)量標(biāo)準(zhǔn)術(shù)語3 定義此處加入定義3 .1失效容限此處加入失效容限3 .2扇入此處加入扇入3 .3扇岀此處加入扇岀3 .4安全關(guān)鍵信息此處加入安全關(guān)鍵信息3 .5安全關(guān)鍵功能此處加入安全關(guān)鍵功能3 .6軟件安全性此處加入軟件安全性4 設(shè)計(jì)準(zhǔn)則和要求4 .1對(duì)計(jì)算機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)的有關(guān)要求4 .1.1硬件軟件功能的分配原則此處加入硬件軟件功能的分配原則4 .1.2硬件軟件可靠性指標(biāo)的分配原則此處加入硬件軟件可靠性指標(biāo)的分配原則4 .1.

3、3容錯(cuò)設(shè)計(jì)此處加入容錯(cuò)設(shè)計(jì)4 .1.4安全關(guān)鍵功能的人工確認(rèn)此處加入安全關(guān)鍵功能的人工確認(rèn)4 .1.5設(shè)計(jì)安全性內(nèi)核此處加入設(shè)計(jì)安全性內(nèi)核4 .1.6記錄系統(tǒng)故障此處加入記錄系統(tǒng)故障4 .1.7禁止回避檢測(cè)岀的不安全狀態(tài)此處加入禁止回避檢測(cè)岀的不安全狀態(tài)4 .1.8安全性關(guān)鍵軟件的標(biāo)識(shí)原則此處加入安全性關(guān)鍵軟件的標(biāo)識(shí)原則4 .1.9分離安全關(guān)鍵功能此處加入分離安全關(guān)鍵功能4 .2對(duì)硬件設(shè)計(jì)的有關(guān)要求此處加入對(duì)硬件設(shè)計(jì)的有關(guān)要求4 .3軟件需求分析4 .3.1一般要求此處加入一般要求4 .3.2功能需求此處加入功能需求4.3.2.1 輸入此處加入輸入4.3.2.2 處理此處加入處理4.3.2.3

4、 輸岀此處加入輸岀4.3.2.4 特殊要求此處加入特殊要求4 33性能需求此處加入性能需求4.3.3.1 精度此處加入精度4.3.3.2 容量此處加入容量4.3.3.3 時(shí)間特性此處加入時(shí)間特性4.3.3.4 靈活性此處加入靈活性4 .3.4 接口需求此處加入接口需求4.3.4.1 與外部設(shè)備的接口此處加入與外部設(shè)備的接口4.3.4.2 與其它系統(tǒng)的接口此處加入與其它系統(tǒng)的接口4.3.4.3 人機(jī)接口此處加入人機(jī)接口 4 .3.5數(shù)據(jù)需求此處加入數(shù)據(jù)需求4 .3.6環(huán)境需求此處加入環(huán)境需求4.3.6.1 硬件此處加入硬件4.3.6.2 軟件此處加入軟件4 .3.7軟件可靠性和安全性需求此處加入

5、軟件可靠性和安全性需求4 .3.8其它需求此處加入其它需求4 39采樣的確定原則此處加入采樣的確定原則 4 .4軟件設(shè)計(jì)4 41一般要求此處加入一般要求442功能設(shè)計(jì)與分配此處加入功能設(shè)計(jì)與分配 4 43控制流與數(shù)據(jù)流此處加入控制流與數(shù)據(jù)流 4 44資源分配及余量此處加入資源分配及余量 445設(shè)計(jì)限制此處加入設(shè)計(jì)限制4 46安全關(guān)鍵功能的設(shè)計(jì)此處加入安全關(guān)鍵功能的設(shè)計(jì)4 .4.7冗余設(shè)計(jì)4.4.7.1 恢復(fù)塊此處加入恢復(fù)塊4.4.7.2 信息冗余此處加入信息冗余4 48 接口設(shè)計(jì)4.4.8.1 一般要求此處加入一般要求4.4.8.2 人機(jī)界面設(shè)計(jì)此處加入人機(jī)界面設(shè)計(jì)4.4.8.3 報(bào)警設(shè)計(jì)此處

6、加入報(bào)警設(shè)計(jì)4.4.8.4 軟件接口設(shè)計(jì)此處加入軟件接口設(shè)計(jì)4 .4.9軟件健壯性設(shè)計(jì)4.4.9.1 電源失效處理4.4.9.2 系統(tǒng)不穩(wěn)定的處理此處加入系統(tǒng)不穩(wěn)定的處理4.4.9.3 接口故障處理此處加入接口故障處理4.4.9.4錯(cuò)誤操作處理此處加入錯(cuò)誤操作處理4 410 簡(jiǎn)化設(shè)計(jì)4.4.10.1 模塊的單入口和單岀口此處加入模塊的單入口和單岀口4.4.10.2 模塊的獨(dú)立性此處加入模塊的獨(dú)立性4.4.10.3 模塊的扇入扇岀此處加入模塊的扇入扇岀4.4.10.4 模塊的耦合方式此處加入模塊的耦合方式 4.4.10.5 模塊的內(nèi)聚方式此處加入模塊的內(nèi)聚方式 4 .4.11 數(shù)據(jù)設(shè)計(jì)4.4.1

7、1.1 屬性控制此處加入屬性控制4.4.11.2 數(shù)值運(yùn)算范圍控制此處加入數(shù)值運(yùn)算范圍控制4.4.11.3 精度控制此處加入精度控制4.4.11.4 合理性檢查此處加入合理性檢查4.4.11.5 特殊問題此處加入特殊問題4 .5軟件實(shí)現(xiàn)4 .5.1語言要求此處加入語言要求4 .5.2McCabe 指數(shù)McCabe指數(shù)為8。4 .5.3 參數(shù)化此處加入?yún)?shù)化4 .5.4公用數(shù)據(jù)和公共變量此處加入公用數(shù)據(jù)和公共變量4 .5.5 標(biāo)志此處加入標(biāo)志4 .5.6文件此處加入文件4 .5.7數(shù)據(jù)區(qū)隔離此處加入數(shù)據(jù)區(qū)隔離4 .5.8安全關(guān)鍵信息的要求此處加入安全關(guān)鍵信息的要求4 .5.9程序單元的規(guī)模此處加

8、入程序單元的規(guī)模4 .5.10命名要求此處加入命名要求4 .5.11程序格式化要求此處加入程序格式化要求4 .5.12程序注釋要求與方法此處加入程序注釋要求與方法4 .5.13程序設(shè)計(jì)風(fēng)格此處加入程序設(shè)計(jì)風(fēng)格4 .5.14 多余物的處理4.5.14.1 文檔中未記載特征的清除此處加入文檔中未記載特征的清除4.5.14.2 覆蓋的處理此處加入覆蓋的處理8軟件可靠性和安全性設(shè)計(jì)指南軟件可靠性工程2010-06-23來源:網(wǎng)絡(luò)軟件可靠性工程隨著計(jì)算機(jī)應(yīng)用的普及,軟件可靠性研究與工程實(shí)踐倍受軟件工程界和可靠性工程界的關(guān)注???以說,80年代是軟件工程研究的年代,90年代是軟件可靠性工程的年代。但是 ,

9、作為一門新興的學(xué)科,軟件可靠性工程 領(lǐng)域還存在很多問題。本期專題從總體上系統(tǒng)地闡述了軟件可靠性工程的產(chǎn)生、發(fā)展及要解決的問題,文章由中國(guó)船舶工業(yè)總公司第七一六研究所的孫志安博士撰寫,包括以下5篇文章:1. 軟件可靠性工程綜述本文概括介紹了軟件可靠性研究與工程實(shí)踐的歷史、現(xiàn)狀及展望,并提岀了一些需要關(guān)注 的問題。2. 實(shí)時(shí)軟件的可靠性設(shè)計(jì)實(shí)時(shí)軟件的可靠性設(shè)計(jì)是軟件可靠性工程設(shè)計(jì)中最具代表性的內(nèi)容,本文介紹的設(shè)計(jì) 方法對(duì)實(shí)時(shí)系統(tǒng)及其它系統(tǒng)均有意義。3軟件可靠性模型的評(píng)價(jià)準(zhǔn)則本文針對(duì)目前種類繁多、數(shù)量龐大的軟件可靠性模型,提岀了一種評(píng)價(jià)準(zhǔn)則。這不僅有利于研究和應(yīng)用,而且對(duì)澄清目前的混亂狀態(tài)也是一種有

10、益的嘗試和探討。4. 軟件復(fù)雜性的度量與控制本文提岀了幾種較為有效的軟件復(fù)雜性度量與控制方法,為軟件的可靠性設(shè)計(jì)奠定了基礎(chǔ)。5. 需求分析與軟件可靠性保證本文所介紹的需求分析中的軟件可靠性保證,是軟件可靠性設(shè)計(jì)中最容易被人忽視、但又最容易導(dǎo)致不可靠的一個(gè)重要因素。目前,大多數(shù)設(shè)備和系統(tǒng)的功能都是由軟件規(guī)定的,因此,信息社會(huì)越來越依賴于軟件。但是,軟件可靠性日益嚴(yán)重地制約著軟件產(chǎn)品更廣泛地應(yīng)用,甚至帶來了一些災(zāi)難性的后果。事實(shí)證明,復(fù)雜軟件對(duì)大小工程系統(tǒng)都是一個(gè)薄弱環(huán)節(jié)。即使是通過完備測(cè)試的軟件,也常常受到錯(cuò)誤的困擾。同時(shí),一個(gè)日益增長(zhǎng)的需求是,軟件應(yīng)具有檢定合格的高可靠性。為解決軟件危機(jī)而產(chǎn)生

11、和發(fā)展起來的軟件工程,成功地解決了軟件開發(fā)中存在的許多問題。它不僅對(duì)軟件開發(fā)、設(shè)計(jì)和生產(chǎn)有直接影響,而且對(duì)提高軟件可靠性有顯著成效。實(shí)踐表明,使用軟件工程方法,可達(dá)到一般的可靠性要求;但當(dāng)軟件可靠性要求更高時(shí),則必須在實(shí)施軟件工程的同時(shí),采取 一些專門的可靠性工程技術(shù)和方法,以保證所要求的可靠性。70年代初,以軟件工程的大力發(fā)展和成功應(yīng)用為契機(jī),利用傳統(tǒng)可靠性工程技術(shù)、方法和工具,軟件可靠性工程得以產(chǎn)生和發(fā)展。它是為保證經(jīng)濟(jì)、及時(shí)地實(shí)現(xiàn)軟件可靠性目標(biāo)而采取的系統(tǒng)化技術(shù)、方法和管理措施,旨在開發(fā)以保證和提高軟件可靠性為目標(biāo)的技術(shù),并通過工程化方法加以應(yīng)用。它是一個(gè)工程領(lǐng)域,是軟件工程的一個(gè)重要分

12、支。其研究范疇覆蓋了軟件可靠性預(yù)計(jì)、分配、分析、設(shè) 計(jì)、評(píng)價(jià)、測(cè)試、檢定,以及可維護(hù)性設(shè)計(jì)、安全性設(shè)計(jì)和可靠性工程管理等方面。一、軟件可靠性模型軟件可靠性模型是軟件可靠性工程中倍受關(guān)注、研究最早、成果最多、目前仍最活躍的一個(gè)領(lǐng)域。從Hudson的工作開始,到1971年發(fā)表J-M模型至今,已公開發(fā)表了 100余種模型。它不僅是解決軟件可靠性預(yù)計(jì)、分配、分析與評(píng)價(jià)等基本問題的最強(qiáng)有力的工具,更是軟件可靠性設(shè)計(jì)的指南。它旨在根據(jù)軟件可靠性數(shù)據(jù)、以統(tǒng)計(jì)方法給岀軟 件的可靠性估計(jì)值或預(yù)測(cè)值,是從本質(zhì)上理解軟件可靠性行為的關(guān)鍵,是軟件可靠性工程實(shí)踐的基本活動(dòng)。1. 模型分類模型分類是軟件可靠性工程研究與實(shí)

13、踐的前提。軟件可靠性模型數(shù)量多、表達(dá)形式不同,且新模型不斷發(fā)表;適用于某些軟件故障數(shù)據(jù)集合的模型 ,不適用于其它故障數(shù)據(jù)集合;同一模型適用于同一軟件項(xiàng)目開發(fā)的某個(gè)階段,不適用于其它階段;而且,有些模型是針對(duì)特定的軟件或過程而開發(fā)的。這些無疑為模型的應(yīng)用設(shè)置了障礙。為了系統(tǒng)、 深刻地理解軟件可靠性模型,有必要對(duì)現(xiàn)有模型進(jìn)行科學(xué)、合理的分類。目前,關(guān)于如何進(jìn)行模型分類與選擇,尚無明確的指導(dǎo)原則,一般按數(shù)學(xué)結(jié)構(gòu)、模型假設(shè)、參數(shù)估計(jì)、失效機(jī)理、參數(shù)形式、數(shù)據(jù)類型、建模對(duì)象、模型適用性 和時(shí)域等進(jìn)行分類。但是這些分類方法均缺乏足夠的科學(xué)性、系統(tǒng)性和適用性。筆者認(rèn)為,基于實(shí)用的目的,結(jié)合建模方法、適用范圍

14、、模型假設(shè)和模型特性等,在多維構(gòu)架的基礎(chǔ)上進(jìn)行綜合分類,將是模型分類研究的方向。2可靠性度量IEEE于1989年發(fā)表的39種度量都直接或間接與軟件可靠性度量相關(guān),主要的度量有失效率、 失效強(qiáng)度、殘留缺陷、可靠度、平均無失效時(shí)間及可用度等?,F(xiàn)在,一般的做法是,把它們按技術(shù)度量和管理度量落實(shí)到軟件生命周期的每個(gè)階段。其目的都是面向用戶和開發(fā)人員,并以他們共同熟悉的形式對(duì)軟件可靠性目標(biāo)和任務(wù)加以度量。軟件故障與差錯(cuò)的分析及定義是軟件可靠性度量的基礎(chǔ)。軟件故障是軟件中能引起一個(gè)及一個(gè)以上失效的缺陷,或是引起一個(gè)功能單元不能執(zhí)行的意外條件,它是在軟件設(shè)計(jì)過程中形成的。軟件故障在數(shù)據(jù)結(jié)構(gòu)或程序輸岀中的表現(xiàn)

15、即 為軟件差錯(cuò)。常見的軟件差錯(cuò)包括非法轉(zhuǎn)移、誤轉(zhuǎn)移、死循環(huán)、空間溢岀、數(shù)據(jù)執(zhí)行和無理數(shù)據(jù)等。在軟件可靠性 分析和設(shè)計(jì)中,常常利用故障模型來對(duì)不同的故障表現(xiàn)進(jìn)行抽象。故障模型可以建立在系統(tǒng)的各個(gè)級(jí)別上。建立的 級(jí)別越低,進(jìn)行故障處理的代價(jià)就越低,但模型所覆蓋的故障也越少。常用的故障模型有基于邏輯級(jí)、基于數(shù)據(jù)結(jié)構(gòu) 級(jí)和基于系統(tǒng)級(jí)的故障模型。3模型建立軟件可靠性模型的建立是通過對(duì)所選模型關(guān)聯(lián)參數(shù)的統(tǒng)計(jì)來確定失效情況、可靠性目標(biāo)和實(shí)現(xiàn)這一目標(biāo)的時(shí)間,并利用可靠性模型來制定測(cè)試策略,同時(shí)確定軟件交付的預(yù)期可靠性。此外,它對(duì)經(jīng)費(fèi)估算、資源計(jì)劃、進(jìn)度安排和軟件維護(hù)等也很重要。軟件可靠性建??蓺w結(jié)為模型的比較

16、與選擇、 參數(shù)選擇及模型應(yīng)用。模型參數(shù)取決于軟件性能、過程特性、修改活動(dòng)和程序變化等。由于軟件本身的特性,以及缺乏可靠性數(shù)據(jù),因此建立完全滿足這些因素的可靠性模型非常困難,且難以驗(yàn)證。軟件可靠性模型的導(dǎo)岀,是在定義軟件失效概率密度或分布函數(shù)、或確定危險(xiǎn)函數(shù)的基礎(chǔ)上,把它描述為一個(gè)隨機(jī)過程,或使它與Bayes估計(jì)、Markov過程或時(shí)間序列模型等相關(guān)聯(lián)。值得注意的是,軟件可靠性模型對(duì)高可靠性的驗(yàn)證和測(cè)試策略的制定還有很大困難。雖然可以通過軟件容錯(cuò)來克 服這種困難,但其有效應(yīng)用尚待深入研究。4.模型統(tǒng)一目前,種類和數(shù)量繁多的軟件可靠性模型導(dǎo)致了理論研究和實(shí)際應(yīng)用的困難。因此,很有必要對(duì)這種明顯的混

17、亂狀態(tài)進(jìn)行澄清,而統(tǒng)一模型是最有希望的解決辦法。它試圖為軟件可靠性模型所涉及的范圍、結(jié)構(gòu)等建立一個(gè)統(tǒng)一的 框架,從中反映岀現(xiàn)有模型在理論和實(shí)際應(yīng)用間的差別,并能在對(duì)象和特性分析的基礎(chǔ)上,為用戶提供合適的模型。各類模型之間關(guān)系密切,模型合并將有助于突岀其關(guān)系。在軟件可靠性模型中,軟件的故障行為常常被描述為隨機(jī)過程也可用馬爾可夫過程來描述。為了能導(dǎo)出模型的解析表達(dá)式,先驗(yàn)分布主要采用均勻分布、y分布和B分布。從J-M模型、Shooman模型和Musa模型的表達(dá)式、假設(shè)條件、使用方法等來看,都具有X=k*y的形式。在這種意義下,它們是等價(jià)的。二項(xiàng)式模型與泊松模型可相互轉(zhuǎn)化。從Bayse觀點(diǎn)來看,Ha

18、ngverg&Sigpurwalla指出,從二項(xiàng)式模型可推導(dǎo)出指數(shù)類的泊松形式模型,Bayse模型類中的L-V模型即是二項(xiàng)式模型中的 Pareto類模型。從現(xiàn)有模型來預(yù)計(jì)軟件可靠性,往往存在偏差。當(dāng)給定或已知數(shù)據(jù)的基本分布時(shí),極大似然估計(jì)是模型參數(shù)估計(jì)最 基本的方法,它顯然有利于對(duì)預(yù)計(jì)的改進(jìn)。最小二乘法能很好地代替極大似然估計(jì),它通過故障強(qiáng)度擬合來估計(jì)模型參數(shù)。對(duì)中小樣本的情況,它具有較小的偏差和較快的收斂性。Bayes分析方法提供了一種把先驗(yàn)知識(shí)綜合到估計(jì)過程中的方法,為把不同數(shù)據(jù)源綜合起來提供了有效的手段,但其分析和計(jì)算極為復(fù)雜。二、軟件可靠性設(shè)計(jì)軟件可靠性工程的根本目的是設(shè)計(jì)可靠

19、的軟件。軟件可靠性設(shè)計(jì)通過采用相應(yīng)的技術(shù)和工具來減少錯(cuò)誤的發(fā)生,從而盡量避免錯(cuò)誤(即避錯(cuò))。避錯(cuò)設(shè)計(jì)是軟件可靠性設(shè)計(jì)的基本方法,但只能達(dá)到一定的限度。要想進(jìn)一步提高可靠性,只有采用容錯(cuò)技術(shù)。當(dāng)然,按軟件工程原理進(jìn)行軟件開發(fā)是保證軟件可靠性的基本方法。1軟件可靠性分配軟件可靠性分配是將需求分析中形成的可靠性指標(biāo)分配到各個(gè)軟件部件,是軟件可靠性工程設(shè)計(jì)的基礎(chǔ),是在充分考慮軟件及其開發(fā)過程的特征并繼承和發(fā)展可靠性工程已有成果的基礎(chǔ)上發(fā)展起來的。目前,主要有快速分配法以及基于重要度、運(yùn)行時(shí)間和復(fù)雜度分配等方法 ,而后者是普遍使用的方法。脫離實(shí)際、孤立地對(duì)軟件可靠性進(jìn)行分配毫無意義,因?yàn)椴煌能浖诠δ?/p>

20、、性能、規(guī)模和結(jié)構(gòu)等方面均存在很大差異。就每個(gè)具體的軟件而言 ,是否需要進(jìn)行可靠性分配、如何分配 ,必須對(duì)實(shí)施該軟件的過程、環(huán)境和條件等加 以分析,并應(yīng)遵循確保重點(diǎn)、難度均等、留有余地、逐步完善的分配原則。2. 重用設(shè)計(jì)60年代的軟件危機(jī)導(dǎo)致了軟件重用設(shè)計(jì)的產(chǎn)生和發(fā)展。軟件重用即所謂"軟件總線技術(shù)",是在軟件設(shè)計(jì)過程中對(duì)現(xiàn)有成果進(jìn)行充分再利用的活動(dòng),是提高軟件生產(chǎn)率、降低開發(fā)成本和提高軟件可靠性的最有效途徑之一。特別在 面向?qū)ο蟪绦蛟O(shè)計(jì)方法獲得廣泛應(yīng)用后,軟件重用日益受到人們的重視,并逐漸成為可靠軟件設(shè)計(jì)的重要方法。軟件 的重用途徑包括合成技術(shù)和生成技術(shù)。合成技術(shù)是利用組裝

21、方式來重用軟件構(gòu)件對(duì)已有構(gòu)件僅做少量修改或不做修 改,然后"插裝"在一起,構(gòu)造岀新的目標(biāo)系統(tǒng)。 生成技術(shù)是由程序生成器獲得軟件重用,是對(duì)模式的重用,由生成器導(dǎo)岀模式的專有或定制版本,以實(shí)現(xiàn)模式重用。合成技術(shù)也許更有前途 ,其關(guān)鍵是組件的接口標(biāo)準(zhǔn)?,F(xiàn)在 ,主要的組件接口標(biāo)準(zhǔn)有 OLE/COM、CORBA和 OpenDoc。有了這些標(biāo)準(zhǔn),軟件開發(fā)人員即可獨(dú)立地開發(fā)或利用組件。從軟件重用的層次來看,軟件重用包括重用數(shù)據(jù)、重用設(shè)計(jì)、重用代碼和重用規(guī)范說明等。但是,軟件重用正面臨著通用性與專用性、構(gòu)件的分類與查找、理解、修改、規(guī)模、資金,以及其它潛在的問題。因此,目前的主要工作是尋找

22、能大幅度提高軟件可靠性和開發(fā)效率、且便 于實(shí)際操作的方法。軟件重用已在子程序庫、報(bào)告生成器、編譯器等方面取得了可喜的進(jìn)展,但最系統(tǒng)化、工程化的軟件重用活動(dòng)是基于重用庫的軟件重用。90年代,軟件重用實(shí)踐有三個(gè)趨勢(shì):一是軟件重用的實(shí)踐慣例化、 用戶化;二是將重用技術(shù)集 成到軟件開發(fā)過程中,逐步實(shí)施軟件過程的自動(dòng)化與形式化;三是將領(lǐng)域分析標(biāo)準(zhǔn)化,開發(fā)支持領(lǐng)域分析的方法和工 具。重用的實(shí)現(xiàn)程度依賴于開發(fā)規(guī)范的完善,快速原型法的成功在一定程度上有賴于重用思想的實(shí)現(xiàn),以及基于重用思想的系統(tǒng)拆裝工具的支持。面向?qū)ο蟮某绦蛟O(shè)計(jì)是重用設(shè)計(jì)的一種具體方法。它在重用的大框架下,將可重用而又互不相交的客體聚集為不同屬

23、性的類,抽取類的最大共性集合構(gòu)造基類,再分層構(gòu)造有共性的子類。目前,軟件重用的構(gòu)件涉及到領(lǐng)域分析、抽象、重用庫的組織、可重用構(gòu)件的分類、檢索、定位和理解、接口、 組織、環(huán)境、重用理論支持等問題 ,它們的克服與解決將是軟件重用的重點(diǎn)和熱點(diǎn)。3. 形式化設(shè)計(jì)軟件復(fù)雜性通常掩蓋了軟件設(shè)計(jì)中的固有錯(cuò)誤,因此,要獲得較高的軟件故障獨(dú)立性往往很困難。越來越多的軟件專家認(rèn)為,由于軟件太復(fù)雜,不能在現(xiàn)實(shí)世界中得到有效的測(cè)試,最佳的解決辦法是采用形式化的程序設(shè)計(jì)、編程系統(tǒng) 及驗(yàn)證方法。使用以數(shù)學(xué)為基礎(chǔ)的描述是解決軟件設(shè)計(jì)的精確性和正確性的最好辦法。為了使軟件設(shè)計(jì)的每個(gè)階段都能得到有效的測(cè)試和驗(yàn)證,最高一級(jí)的技術(shù)

24、要求(即軟件需求分析)必須采用形式化的分析、說明和表達(dá)。形式化方 法用嚴(yán)密的數(shù)學(xué)方程和形式化語言來描述軟件的需求。操作語義、數(shù)學(xué)語義和公理語義是目前主要的三種形式化方法。操作語義為了描述語句在語言中的影響而使用 一種按語言執(zhí)行的假想機(jī)器,它已逐漸被數(shù)學(xué)語義所取代。數(shù)學(xué)語義是使一種已知語言的每一短語都與一個(gè)適當(dāng)?shù)?數(shù)學(xué)目標(biāo)聯(lián)系起來,從而使語義學(xué)形式化。短語即所聯(lián)系的目標(biāo),而目標(biāo)即為短語的標(biāo)志。這種方法正逐漸被公理語義所取代。操作語義和數(shù)學(xué)語義為待定義的語言提供模型,而公理語義以一組公理和推斷規(guī)則隱式地定義一種程序語言,從而驗(yàn)證程序特性,特別是給定程序的正確性,實(shí)現(xiàn)了一種給定的輸入/輸岀關(guān)系。形式

25、化規(guī)范對(duì)高層次數(shù)學(xué)抽象上定義的數(shù)據(jù)目標(biāo)和在抽象句法上定義的函數(shù)等提供依據(jù),只有低層次的"無語句"才用于設(shè)計(jì)抽象變量和"具體句法”的抽象語句。因此,隨著程序設(shè)計(jì)的逐步細(xì)化與深入,我們感到,不能把形式化規(guī)范 所用的方法與抽象的正確性證明分開。目前,許多形式化規(guī)范語言正在得到應(yīng)用,也有了許多試圖用于編程語言的語 義學(xué)方面的嘗試,但還沒有一種解決辦法得到軟件工程界的普遍認(rèn)可。三、軟件測(cè)試軟件測(cè)試是程序的一種執(zhí)行過程,目的是盡可能發(fā)現(xiàn)并改正被測(cè)試軟件中的錯(cuò)誤。它是軟件生命周期中一項(xiàng)非常 重要且非常復(fù)雜的工作,對(duì)軟件可靠性保證具有極其重要的意義。在目前形式化方法和程序正確性證

26、明技術(shù)還無望 成為實(shí)用性方法的情況下,軟件測(cè)試在將來相當(dāng)一段時(shí)間內(nèi)仍然是軟件可靠性保證的有效方法。1.測(cè)試過程軟件測(cè)試包括模塊測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試和交驗(yàn)測(cè)試。模塊測(cè)試通過對(duì)模塊的局部數(shù)據(jù)結(jié)構(gòu)、主要邏輯路 徑、接口和邊界等進(jìn)行測(cè)試來驗(yàn)證模塊的功能、性能和可靠性等指標(biāo),以證實(shí)其工作滿足設(shè)計(jì)要求。集成測(cè)試是對(duì)接口正確性、數(shù)據(jù)傳遞的正確性和集成質(zhì)量、時(shí)間匹配等進(jìn)行測(cè)試。系統(tǒng)測(cè)試是軟件與工程系統(tǒng)、其它軟件和某些 應(yīng)用系統(tǒng)的對(duì)接聯(lián)調(diào)測(cè)試,主要用以驗(yàn)證設(shè)備之間或系統(tǒng)之間的信息傳遞、時(shí)間分配、功能要求等是否滿足要求。 交驗(yàn)測(cè)試是在軟件交驗(yàn)時(shí),按照用戶需求對(duì)軟件進(jìn)行的全面的最終測(cè)試。通常,它測(cè)試軟件的功能、

27、性能、操作和可靠性等,同時(shí),也測(cè)試軟件系統(tǒng)的可移植性、兼容性、錯(cuò)誤恢復(fù)處理和協(xié)調(diào)的可維護(hù)性等。2測(cè)試方法軟件測(cè)試的方法主要有:著眼于程序外部結(jié)構(gòu)、不考慮內(nèi)部邏輯結(jié)構(gòu)、針對(duì)軟件界面和軟件功能進(jìn)行測(cè)試的"黑箱 "法;全面了解程序內(nèi)部邏輯結(jié)構(gòu)、對(duì)所有邏輯路徑進(jìn)行測(cè)試的"白箱"法。一般通過設(shè)計(jì)驅(qū)動(dòng)程序產(chǎn)生測(cè)試數(shù)據(jù),并把它們傳遞給被測(cè)試模塊,同時(shí)輸岀測(cè)試結(jié)果。用偽模塊代替被測(cè)試模塊 調(diào)用的模塊,采用原來的模塊接口 ,執(zhí)行少量數(shù)據(jù)處理,結(jié)果返回給被測(cè)試模塊。驅(qū)動(dòng)程序和偽模塊的設(shè)計(jì)必須簡(jiǎn)單有 效,否則會(huì)增加測(cè)試的復(fù)雜性。集成測(cè)試有自頂向下和自底向上兩種測(cè)試方法。自頂向

28、下的測(cè)試是按照控制結(jié)構(gòu),從主控模塊開始,向下把模塊逐個(gè)連接起來。把附屬于主控模塊的小模塊連接起來的方式有深度優(yōu)先法和寬度優(yōu)先法。 自頂向下的測(cè)試可較早地檢查主要的控制和判決點(diǎn),尤其是采用深度優(yōu)先法,可較早地執(zhí)行和證明軟件的完整功能。但為了測(cè)試高層模塊,有時(shí)需要低層模塊參加工作,而此時(shí)低層模塊是偽模塊,因此沒有足夠的信息可以向上傳遞。有 效的解決辦法是,把一些測(cè)試項(xiàng)目推遲到真模塊取代偽模塊后再進(jìn)行。自底向上的測(cè)試是從基本模塊開始連接和測(cè)試。因?yàn)槭菑牡蛯哟伍_始,逐級(jí)向上進(jìn)行測(cè)試,因此不再需要下一層次的偽模塊,但需要驅(qū)動(dòng)程序參與測(cè)試。這種方法測(cè)試范圍從小到大,比較直觀,但不能過早地發(fā)現(xiàn)軟件的總體設(shè)計(jì)

29、錯(cuò)誤。因此,對(duì)于軟件的整體測(cè)試,最佳的辦法是將上述兩種方法有機(jī)地結(jié)合起來,最高幾層參與自頂向下測(cè)試,其它模塊參與自底向上測(cè)試。3測(cè)試工具測(cè)試自動(dòng)化是人們追求的目標(biāo)和發(fā)展的方向。目前,盡管開發(fā)岀了不少軟件測(cè)試工具,但這些工具還主要用于對(duì)程序進(jìn)行靜態(tài)分析、為測(cè)試用例和測(cè)試數(shù)據(jù)提供信息,以及測(cè)試結(jié)果處理等。為了提高測(cè)試的準(zhǔn)確性和測(cè)試效率,急需集成的全過程自動(dòng)測(cè)試工具。所幸,生產(chǎn)基于 Windows界面的C/S應(yīng)用軟件自動(dòng)測(cè)試工具的 SQA公司與生產(chǎn)組件的 Ratinal公司合并,為組件的 建立、組合、測(cè)試和管理提供了綜合解決方案。另外 ,PureAtria公司為在 Windows NT和Unix平臺(tái)

30、上用C、C+和 FORTRAN等開發(fā)的應(yīng)用軟件的測(cè)試做出了突出貢獻(xiàn)。 這兩家公司的互補(bǔ)為用戶提供了新一代全過程測(cè)試工具,為集成的全過程自動(dòng)測(cè)試工具的成功開發(fā)奠定了基礎(chǔ)。在各方努力下,軟件測(cè)試獲得了巨大的發(fā)展,在軟件可靠性工程中發(fā)揮了巨大作用。目前,主要是缺乏有效的指導(dǎo)原則,使軟件測(cè)試具有一定的盲目性。四、程序正確性證明程序正確性證明技術(shù)是軟件可靠性保證的另一重要方法,主要有語法正確性證明、語義正確性證明、數(shù)學(xué)證明和基于公理的正確性證明等方法。語法正確性和語義正確性證明主要用于軟件編碼階段及其后續(xù)階段、基于語用基礎(chǔ)之上的正確性證明。語義正確性證明始于本世紀(jì)60年代,至今仍處于研究和試驗(yàn)階段。自高

31、級(jí)語言編譯程序問世以來,對(duì)形式化定義的語言,語法正確性證明技術(shù)已日趨成熟 ,并得到廣泛應(yīng)用。沒有數(shù)學(xué)驗(yàn)證的軟件可靠性工程無異于空話,數(shù)學(xué)驗(yàn)證的嚴(yán)謹(jǐn)性將為提高軟件可靠性發(fā)揮積極的作用。引入集合與函數(shù)的驗(yàn)證方法,為逐步擴(kuò)大推理建立了基礎(chǔ)。用集合、棧和隊(duì)列進(jìn)行軟件設(shè)計(jì),為大規(guī)模軟件的驗(yàn)證奠定了基礎(chǔ)。但程序語言的某些具體特點(diǎn)給程序正確性證明造成了嚴(yán)重的困難。程序正確性證明工具不斷推陳出新,自動(dòng)化證明工具正在成為這一領(lǐng)域的研究熱點(diǎn)。不過,在自動(dòng)化證明尚不可能的情況下,人工證明和統(tǒng)計(jì)測(cè)試的有機(jī)結(jié)合為程序正確性證明帶來了曙光,為可靠程序的設(shè)計(jì)開拓了新的視野。五、軟件的可維護(hù)性設(shè)計(jì)軟件維護(hù)是軟件交付后改正缺陷

32、、克服故障、增強(qiáng)功能、改善性能或其它屬性,以及為使其適應(yīng)新環(huán)境而對(duì)其進(jìn)行修改或擴(kuò)充的過程,是軟件生命周期的最后一個(gè)階段,是軟件可靠性工程的主要內(nèi)容之一。軟件維護(hù)包括糾錯(cuò)性維護(hù)、適應(yīng)性維護(hù)、完善性維護(hù)和預(yù)防性維護(hù)。在軟件維護(hù)過程中,有三種維護(hù)過程模型:快速固定模型:首先將原系統(tǒng)代碼更新成新系統(tǒng)代碼,然后生成需求規(guī)格說明等文件,并進(jìn)行測(cè)試:交互提高模型: 對(duì)老系統(tǒng)代碼進(jìn)行測(cè)試、分析后,產(chǎn)生新系統(tǒng)的需求規(guī)格說明,然后按正向工程產(chǎn)生新的系統(tǒng)文檔及代碼;全重用模 型:對(duì)老系統(tǒng)的設(shè)計(jì)文檔、代碼、測(cè)試文檔等全面進(jìn)行逆向工程設(shè)計(jì),從而得到新的軟件系統(tǒng)。軟件維護(hù)技術(shù)可分為面向維護(hù)的技術(shù)和維護(hù)支持技術(shù)。面向維護(hù)的

33、技術(shù)是在軟件開發(fā)階段用來減少錯(cuò)誤、提高 軟件可維護(hù)性的技術(shù),涉及軟件開發(fā)的每個(gè)階段。維護(hù)支持技術(shù)是在維護(hù)階段用來提高維護(hù)效率和質(zhì)量的技術(shù),包括信息收集、錯(cuò)誤分析、維護(hù)評(píng)價(jià)、代碼與文檔修改、維護(hù)確認(rèn)、維護(hù)測(cè)試、遠(yuǎn)距離維護(hù)等內(nèi)容。軟件的可理解性、可測(cè)試性和可修改性等是決定軟件可維護(hù)性的基本因素。軟件的可維護(hù)性除了與良好的設(shè)計(jì)、 完善的文檔、嚴(yán)格的測(cè)試相關(guān)外,還與軟件生命周期中的所有活動(dòng)密切相關(guān)。在軟件生命周期的每個(gè)階段,都必須充分考慮軟件的可維護(hù)性問題,并進(jìn)行可維護(hù)性設(shè)計(jì)。由于軟件的復(fù)雜性等因素所造成的困難,維護(hù)工作極大地依賴于維護(hù)工具和方法的支持。由于維護(hù)人員往往只著眼于需要理解和修改的部分,因此便引岀了程序觀察問題。解決這一問題最一般的方法是高層圖表示,也有些研究著眼于改造源代碼的可視性。此外,支持軟件維護(hù)的超文本技術(shù)、基于抽象的高層抽象技術(shù),以及基于數(shù)據(jù)庫查詢的輔助維護(hù)工具等都代表了軟件維護(hù)工具的發(fā)展方向。軟件維護(hù)實(shí)際上是軟件重用的實(shí)踐,對(duì)軟件重用方法和技術(shù)的深入研究,有利于改善軟件維護(hù)的現(xiàn)狀。六、軟件失效與安全性分析軟件安全性是軟件運(yùn)行時(shí)不發(fā)生事故或不導(dǎo)致事故發(fā)生的能力。對(duì)關(guān)鍵軟件進(jìn)行全過程的安全性設(shè)計(jì)與分析、 驗(yàn)證與評(píng)價(jià)、控制與管理非常重用。軟件安全性設(shè)計(jì)應(yīng)與軟件

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論