本發(fā)明屬于軟件可信性領(lǐng)域,尤其涉及一種軟件可信性量化評估與設(shè)計方法。
背景技術(shù):
:在航天控制軟件等軟件設(shè)計領(lǐng)域,因其領(lǐng)域特殊性,對軟件本身的可信性要求非常高。軟件可信性是評價軟件運行是否符合預(yù)期、是否具有抵御外界環(huán)境干擾的能力以及能力大小的綜合指標,其中涉及到軟件的諸多屬性。如何對軟件可信性進行量化評估是評判軟件可信性首要解決的問題,而軟件可信性設(shè)計從根本上提高了軟件可信性,避免了出現(xiàn)不可信軟件?,F(xiàn)有關(guān)于軟件可信性的研究多是對于軟件可信性相關(guān)屬性的研究?!犊尚跑浖A(chǔ)研究》重大研究計劃中指出正確性、可靠性、安全性、時效性、完整性、可用性、可預(yù)測性、生存性等屬性構(gòu)成了軟件可信性,需要考慮這些屬性的綜合度量空間?!痘诙嗑S屬性的軟件可信性度量模型》的研究中,將影響軟件可信性的屬性分為關(guān)鍵屬性和非關(guān)鍵屬性,其中關(guān)鍵屬性包括功能性、可維護性、可靠性、可生存性、可控性,每個關(guān)鍵屬性又通過一些子屬性來刻畫,如安全性是可生存性的一個子屬性;非關(guān)鍵屬性由用戶根據(jù)自己需要來選取。根據(jù)軟件可信性的不同屬性,從不同的角度建立軟件可信性度量模型來反映軟件自身的可信性。但是,在實際可信性設(shè)計過程中,如果采用軟件可信度分配方法給軟件可信子屬性分配可信度并不合理。因為設(shè)計人員并不能根據(jù)精確的數(shù)值為可信子屬性制定對應(yīng)的可信性要求,這種分配方法對可信子屬性不具有可操作性。為了克服現(xiàn)有技術(shù)中的上述缺陷,本發(fā)明提出了一種軟件可信性量化評估與設(shè)計方法。本發(fā)明采用軟件屬性可信度分配方法,為可信子屬性分配子屬性可信等級。技術(shù)實現(xiàn)要素:本發(fā)明提出了一種軟件可信性量化評估與設(shè)計方法,包括如下步驟:可信性量化需求步驟:根據(jù)軟件的領(lǐng)域特性對軟件進行可信性需求分析,獲得可信性量化分析結(jié)果;所述可信性需求包括軟件屬性、軟件子屬性定義,每個子屬性對應(yīng)的度量元定義,可信度級別;軟件可信性量化總體設(shè)計步驟:根據(jù)所述可信性量化分析結(jié)果建立可信度分配模型,確定軟件可信度分配方法、軟件屬性可信度分配方法;軟件可信性量化實現(xiàn)步驟:根據(jù)所述可信度分配模型和分配規(guī)則,分配軟件可信度、軟件屬性可信度,及確定各個軟件子屬性的可信等級;軟件可信性量化評估步驟:對已有軟件可信度、軟件屬性可信度、軟件子屬性可信等級進行分析和評估。本發(fā)明提出的所述軟件可信性量化評估與設(shè)計方法中,所述可信度分配模型以如下式(1)表示:式(1中),y[i,j]表示第i個可信屬性的第j個可信子屬性的可信度,α[i,j]表示第i個可信屬性的第j個可信子屬性的權(quán)重值,mi表示第i個可信屬性相關(guān)的可信子屬性的個數(shù),t表示第i個可信屬性需要達到的最低可信度,表示第i個可信屬性相關(guān)的可信子屬性需要達到的最低可信度,表示可信子屬性約束的通用表達,是與第i個可信屬性相關(guān)的不同可信子屬性可以有不同的子屬性可信等級約束。本發(fā)明提出的所述軟件可信性量化評估與設(shè)計方法中,所述軟件可信性量化總體設(shè)計步驟中,進一步建立可信等級模型,根據(jù)軟件可信屬性可信度以及可信子屬性的權(quán)重,按照可信等級模型,最終得到每一個可信子屬性的可信度和可信性實現(xiàn)指南。本發(fā)明提出的所述軟件可信性量化評估與設(shè)計方法中,所述可信等級模型用于體現(xiàn)可信子屬性可信度與可信等級的對應(yīng)關(guān)系:其中,當軟件子屬性可信等級達到a,子屬性可信度為1.0;當軟件子屬性可信等級達到b,子屬性可信度為0.95;當軟件子屬性可信等級達到c,子屬性可信度為0.85;當軟件子屬性可信等級達到d,子屬性可信度為0.70;當軟件子屬性可信等級達到e,子屬性可信度為0.45。本發(fā)明提出的所述軟件可信性量化評估與設(shè)計方法中,所述軟件可信性量化總體設(shè)計步驟包括如下步驟:步驟2a:根據(jù)可信性量化需求分析的結(jié)果,得到軟件的可信屬性、可信子屬性、可信屬性權(quán)重、可信子屬性權(quán)重、軟件整體可信性量化的要求;步驟2b:確定軟件的可信度分配模型、軟件可信度分配方法、可信等級模型及屬性可信度分配方法;步驟2c:根據(jù)軟件可信度分配方法將規(guī)定的軟件可信度自頂向下、從整體到局部逐步分配到軟件各個可信屬性,確定可信屬性的可信度;步驟2d:通過軟件屬性可信度分配方法將規(guī)定的可信屬性可信度分配到可信子屬性,由此確定可信子屬性的可信等級和可信性實現(xiàn)指南;步驟2e:得到每一個可信子屬性的可信性要求,生成可信性實現(xiàn)指南。本發(fā)明提出的所述軟件可信性量化評估與設(shè)計方法中,軟件可信性量化實現(xiàn)步驟包括如下步驟:步驟3a:獲得可信子屬性分別在各可信等級的數(shù)量{q1,q2,…,qs},初始化假設(shè)可信子屬性的可信等級均為最低等級;步驟3b:計算各個可信子屬性分配在{q1,q2,…,qs}中的所有情況;步驟3c:通過循環(huán),依次計算所有情況,同時記錄循環(huán)次數(shù):根據(jù)本次循環(huán)中{q1,q2,…,qs}的具體數(shù)值和可信等級模型,為可信子屬性賦值y[i,j];ii)計算當前可信屬性的可信度yi;iii)如果可信度yi沒有達到可信性要求,則回到步驟ii,進入下次循環(huán);如果可信度yi達到了可信性要求,計算的值,記為σ;iv)設(shè)σmin為當前記錄的最小可信子屬性之和;若σ<σmin,則更新σmin的值,記錄當前可信子屬性的結(jié)果,回到步驟ii,進入下次循環(huán);若σ=σmin,則記錄當前可信子屬性的結(jié)果,回到步驟ii,進入下次循環(huán);若σ>σmin,則回到步驟ii,進入下次循環(huán);步驟3d:返回所有可信子屬性之和為σmin的可信子屬性解轉(zhuǎn)換可信等級解,并返回結(jié)果。本發(fā)明中,軟件系統(tǒng)可信是指一個軟件系統(tǒng)的行為總是與用戶預(yù)期的行為和結(jié)果相一致。軟件可信屬性是指用以描述和評價軟件系統(tǒng)可信的一組屬性。軟件可信屬性可被細化成多級軟件可信子屬性。當一個軟件可信子屬性不可細分時,就稱其為子屬性度量元,子屬性度量元只能通過分析軟件的可信證據(jù)來得到。本發(fā)明相較于現(xiàn)有技術(shù),在已有度量方法基礎(chǔ)上,實現(xiàn)了軟件可信性量化總體設(shè)計和軟件可信性量化評估。軟件可信性量化總體設(shè)計包括軟件可信性分配和軟件屬性可信性分配。其中,軟件可信性分配和軟件可信性量化評估互為逆過程,可信性分配和可信性評估產(chǎn)生的結(jié)果在實際的迭代開發(fā)中可以互相借鑒和指導,不斷細化和完善軟件整體的可信性(一致性);本發(fā)明遵循一套完整的開發(fā)流程,即從軟件可信性量化需求,到軟件可信性量化總體設(shè)計,再到軟件可信性量化實現(xiàn),最后進行可信性量化評估(完整性);本發(fā)明建立了軟件可信等級模型,實現(xiàn)了軟件屬性可信度分配,切實提高了軟件可信度(實用性)。附圖說明圖1是軟件可信性量化評估與設(shè)計方法的流程圖;圖2是軟件可信性量化總體設(shè)計的流程圖;圖3是軟件屬性可信度分配算法的流程圖。具體實施方式結(jié)合以下具體實施例和附圖,對本發(fā)明作進一步的詳細說明。實施本發(fā)明的過程、條件、實驗方法等,除以下專門提及的內(nèi)容之外,均為本領(lǐng)域的普遍知識和公知常識,本發(fā)明沒有特別限制內(nèi)容。本發(fā)明提出了影響軟件可信性的屬性模型;建立了五條量化模型構(gòu)造準則:單調(diào)性、凝聚性、靈敏性、替代性、穩(wěn)定性,根據(jù)這五條構(gòu)造準則確定了軟件度量模型;建立了嚴格的軟件度量分級評定表,將軟件可信性評定為五個級別,見下表1。本發(fā)明提出了一種基于屬性重要度的軟件分配方法,其根據(jù)給定的軟件可信度得到軟件屬性的可信度。本發(fā)明的創(chuàng)新之處在于,提出了軟件可信性量化評估與設(shè)計流程;建立了可信等級模型;提出了軟件屬性可信度分配模型和分配方法。表1軟件可信分級評定表本發(fā)明提出了軟件可信子屬性以及子屬性度量元的定義,明確了軟件可信屬性與可信子屬性的對應(yīng)關(guān)系以及子屬性可信度與可信等級的對應(yīng)關(guān)系。其中,軟件可信屬性采用分層模型,其中頂層屬性包括正確性、安全性、可靠性、生存性等屬性;而可靠性又包括成熟性、容錯性等屬性;最后一層為可信子屬性,如可信屬性“可靠性”包含的具體的可信子屬性有三個,權(quán)重分別為0.4、0.35、0.25:(1)變量用途的唯一性,即每個變量有且只有一個用途;(2)命名常量使用的一致性,即命名常量使用時不采用數(shù)值形式;(3)循環(huán)體結(jié)構(gòu)形式的明確性,即采用“{}”結(jié)構(gòu)或類似結(jié)構(gòu)標明循環(huán)體。本發(fā)明根據(jù)“可信分級評定表”中軟件的可信度和可信等級對應(yīng)關(guān)系的建立方法,提出可信子屬性的可信度和可信等級的對應(yīng)關(guān)系,見下表2:表2軟件可信等級模型可信子屬性可信度1.00.950.850.700.45可信子屬性可信等級abcde如圖1所示,本發(fā)明軟件可信性量化評估與設(shè)計開發(fā)方法包括如下步驟:軟件可信性量化需求分析步驟、軟件可信性量化總體設(shè)計步驟、軟件可信性量化實現(xiàn)步驟和軟件可信性量化評估步驟。具體步驟為:(1)軟件可信性量化需求分析步驟:通過軟件可信性量化需求分析,得到:(a)軟件相關(guān)的具體可信屬性和可信子屬性;(b)可信屬性和可信子屬性的權(quán)重;(c)軟件整體可信性量化的要求,比如軟件要求的可信度、可信屬性的約束條件、不同可信等級對應(yīng)的具體可信性標準。(2)軟件可信性量化總體設(shè)計步驟:在建立軟件可信度分配模型和可信等級模型的基礎(chǔ)上,通過軟件可信度分配方法和軟件屬性可信度分配方法,得到每一個可信子屬性的可信性量化實現(xiàn)指南,最終得到軟件整體可信性量化實現(xiàn)的指南。(3)軟件可信性量化實現(xiàn)步驟:通過軟件可信性量化指南使得軟件整體達到要求的可信性。(4)軟件可信性量化評估步驟:通過軟件可信性量化實現(xiàn)后得到的軟件數(shù)據(jù)(軟件、相關(guān)文檔等),在軟件可信度評估模型和可信等級評定表的基礎(chǔ)上,由軟件可信度評估方法對軟件整體進行分析,評定其達到的可信性級別以及是否達到要求的可信性。其中,可信性量化總體設(shè)計步驟是可信性量化實現(xiàn)的依據(jù)和規(guī)則;可信性量化評估是對可信性量化實現(xiàn)的分析和評定。因此,可信性量化設(shè)計和可信性量化評估互為逆過程,在整體開發(fā)流程中需要保證所采用的模型與方法的一致性。一致性的保證使得可信性量化設(shè)計和可信性量化評估產(chǎn)生的結(jié)果在實際的迭代開發(fā)中可以互相借鑒和指導,不斷細化和完善軟件整體的可信性。其中,軟件可信性量化總體設(shè)計步驟是由軟件可信性量化需求自頂向下進行分配得到各屬性的可信度;軟件可信性量化評估是由各屬性的可信度自底向上進行計算得到軟件的可信度??尚判粤炕傮w設(shè)計和可信性量化評估互為逆過程,在整體開發(fā)流程中需要保證所采用的模型與方法的一致性。一致性的保證使得可信性分配和可信性評估產(chǎn)生的結(jié)果在實際的迭代開發(fā)中可以互相借鑒和指導,不斷細化和完善軟件整體的可信性。軟件可信性量化總體設(shè)計步驟是根據(jù)規(guī)定的軟件屬性可信度和可信子屬性的權(quán)重值,自頂向下分配軟件屬性可信度、確定可信子屬性可信等級。假設(shè)可信子屬性可以按照h個子屬性可信等級進行可信度分配:r1,r2,…,rh,這些等級對應(yīng)的可信度記為:t1,t2,…,th。其中,t1>t2>…>th,且0≤ti≤1,i=1,2…,h。假設(shè)可信度設(shè)計成本與可信度呈正相關(guān),為達到設(shè)計成本最低,得到分配模型:y[i,j]是第i個可信屬性的第j個可信子屬性的可信度,α[i,j]是第i個可信屬性的第j個可信子屬性的權(quán)重值,mi是第i個可信屬性相關(guān)的可信子屬性的個數(shù),t是第i個可信屬性需要達到的最低可信度,是第i個可信屬性相關(guān)的可信子屬性需要達到的最低可信度。是可信子屬性約束的通用表達,與第i個可信屬性相關(guān)的不同可信子屬性可以有不同的子屬性可信等級約束。如:y[i,j]∈{1.0,0.95}且y[1,2]∈{1.0,0.95,0.85}。圖2為軟件可信性量化總體設(shè)計流程圖,包括了軟件可信度分配、軟件屬性可信度分配。具體步驟為:步驟2a:根據(jù)可信性量化需求分析的結(jié)果,得到軟件相關(guān)的具體可信屬性和可信子屬性、可信屬性和可信子屬性的權(quán)重、軟件整體可信性量化的要求;步驟2b:確定采用的可信度分配模型,建立軟件的可信度分配模型;步驟2c:通過軟件可信度分配方法將規(guī)定的軟件可信度自頂向下、從整體到局部逐步分配到軟件各個可信屬性,由此確定可信屬性的可信度;步驟2d:通過軟件屬性可信度分配方法將規(guī)定的可信屬性可信度分配到可信子屬性,由此確定可信子屬性的可信等級和可信性實現(xiàn)指南。步驟2e:得到每一個可信子屬性的可信性要求。通過軟件可信性量化總體設(shè)計,可以得到每一個可信子屬性的可信性量化實現(xiàn)指南,最終得到軟件整體可信性量化實現(xiàn)的指南。圖3為軟件屬性可信度分配算法流程圖,用于確定可信子屬性的可信等級和可信性實現(xiàn)指南。具體步驟為:步驟3a:{q1,q2,…,qs}記錄了可信子屬性分別在s個不同等級的數(shù)量,初始化假設(shè)mi個可信子屬性的可信等級都是最低等級s;步驟3b:mi分配在{q1,q2,…,qs}中可以有種不同的情況;步驟3c:通過循環(huán),計算種情況,u記錄循環(huán)次數(shù):i)根據(jù)本次循環(huán)中{q1,q2,…,qs}的具體數(shù)值和可信等級模型,為可信子屬性賦值y[i,j];ii)計算當前可信屬性的可信度yi;iii)yi如果沒有達到要求的可信度,則回到步驟(2),進入下次循環(huán);yi如果達到了要求的可信度,計算的值,記為σ;iv)σmin為當前記錄的最小可信子屬性之和:σ<σmin,則更新σmin的值,記錄當前可信子屬性的結(jié)果,回到步驟ii,進入下次循環(huán);σ=σmin,則記錄當前可信子屬性的結(jié)果,回到步驟ii,進入下次循環(huán);σ>σmin,則回到步驟ii,進入下次循環(huán);步驟3d:返回所有可信子屬性之和為σmin的可信子屬性解轉(zhuǎn)換可信等級解,并返回結(jié)果。精確的可信度數(shù)值難以得到可信性量化指南,而軟件屬性可信度分配方法使得可信子屬性可信度不再是一個精確的數(shù)值,通過可信等級模型得到可信子屬性的可信等級,由此得到對應(yīng)的可信性量化實現(xiàn)指南。實施例1假設(shè)可信屬性“可靠性”包含了三個可信子屬性,權(quán)重分別為0.4、0.35、0.25:(1)變量用途的唯一性,即每個變量有且只有一個用途;(2)命名常量使用的一致性,即命名常量使用時不采用數(shù)值形式;(3)循環(huán)體結(jié)構(gòu)形式的明確性,即采用“{}”結(jié)構(gòu)或類似結(jié)構(gòu)標明循環(huán)體。在軟件可信度分配之后,得到“可靠性”要求的可信度至少達到0.90。在軟件屬性可信度分配之前,需要建立可信等級模型,如下:根據(jù)軟件屬性可信度分配算法,建立軟件屬性可信度分配模型如下:{1.0,0.95,0.85}可以產(chǎn)生10種不同的解,如下:第3至10組解都滿足yi≥0.90。其中第5組解為最優(yōu)解,滿足因此,“可靠性”的三個可信子屬性“變量用途的唯一性”、“命名常量使用的一致性”、“循環(huán)體結(jié)構(gòu)形式的明確性”對應(yīng)的可信等級解為{1.0,0.85,0.85},對應(yīng)的可信性量化指南為{“100%的變量有且只有一個用途”,“85%及以上的命名常量使用時不采用數(shù)值形式”,“85%及以上的循環(huán)體采用‘{}’結(jié)構(gòu)或類似結(jié)構(gòu)標明”}。根據(jù)表1的軟件可信分級評定表,其對應(yīng)的可行度為{非常可信,比較可信,比較可信}本發(fā)明的保護內(nèi)容不局限于以上實施例。在不背離發(fā)明構(gòu)思的精神和范圍下,本領(lǐng)域技術(shù)人員能夠想到的變化和優(yōu)點都被包括在本發(fā)明中,并且以所附的權(quán)利要求書為保護范圍。當前第1頁12