周毅
計(jì)算機(jī)技術(shù)的不斷進(jìn)步,軟件開發(fā)及其可靠性已經(jīng)成為關(guān)系計(jì)算機(jī)技術(shù)持續(xù)發(fā)展的核心內(nèi)容。在實(shí)際軟件開發(fā)中,架構(gòu)是保證軟件后期運(yùn)行質(zhì)量與可靠性的重要前提,不良的架構(gòu)基礎(chǔ)上的軟件開發(fā),對后期軟件投入運(yùn)行時的安全可靠性構(gòu)成嚴(yán)重危險(xiǎn),并相應(yīng)的補(bǔ)救成本更是無法估量,因此基于良好架構(gòu)模式之上的軟件開發(fā)是保證去可靠性的重要前提。本文筆者在對軟件可靠性分配相關(guān)理論與原則分析的基礎(chǔ)上,提出基于架構(gòu)的軟件可靠性的分配模型以及其相應(yīng)的優(yōu)化措施。
【關(guān)鍵詞】架構(gòu) 軟件可靠性 分配模型 優(yōu)化措施
軟件架構(gòu)是一種指導(dǎo)大型軟件系統(tǒng)各方面設(shè)計(jì)的抽象模式,它描述的對象是直接構(gòu)成系統(tǒng)的抽象組件。在實(shí)際的操作中軟件架構(gòu)和其他軟件一樣都擔(dān)負(fù)著自身的責(zé)任,對于軟件架構(gòu)師來說,在軟件架構(gòu)時保證其他軟件系統(tǒng)的可靠性、安全性是重要目標(biāo),一旦架構(gòu)出現(xiàn)問題導(dǎo)致軟件可靠性與運(yùn)行的安全性遭到破壞,其后果不堪設(shè)想,而修復(fù)的成本更會對企業(yè)的經(jīng)濟(jì)效益造成巨大的損失,因此基于架構(gòu)的軟件可靠性是軟件安全可靠運(yùn)行的重要前提。
1 軟件可靠性分配模型概述
軟件可靠性分配是基于軟件可靠性之上的,其主要的目的是將軟件系統(tǒng)的可靠性指標(biāo)轉(zhuǎn)化為組成軟件系統(tǒng)的各個組件的可靠性指標(biāo)并用來指導(dǎo)軟件分系統(tǒng)的開發(fā)工作,從而在有限的資源里找尋到最佳的軟件系統(tǒng)設(shè)計(jì)方案,使得整體系統(tǒng)具備較高的可靠性。在這個過程中,通常會以非線性規(guī)劃模型來指導(dǎo)軟件開發(fā)中的可靠性分配,并以函數(shù)的形式來展示成本與軟件各個構(gòu)件之間的關(guān)系。
基于架構(gòu)的軟件可靠性分配則是在保證整體系統(tǒng)的可靠性前提下,以組成軟件構(gòu)架的重要成分為目標(biāo),對各個組成的軟件元素進(jìn)行可靠性分配,達(dá)到可靠性成本預(yù)估一定的前提下,使得開發(fā)軟件的可靠性最高,抑或是在可靠性目標(biāo)一定的前提下,使得可靠性成本最優(yōu)化?;诩軜?gòu)的可靠性分配受到許多因素的影響,主要因素包括組成架構(gòu)的組件可靠性以及組件之間的聯(lián)系、架構(gòu)組成的方式與基本結(jié)構(gòu)這兩方面內(nèi)容,要達(dá)到完善系統(tǒng)可靠性的目標(biāo)則必須從這兩方面因素著手,提高架構(gòu)組件的可靠性、組件之間的關(guān)系等,此外還應(yīng)該考慮到可靠性成本問題,結(jié)合各組件可靠性的成本函數(shù),通過改變組件關(guān)系,使得基于架構(gòu)的系統(tǒng)可靠性預(yù)估成本最小化。
2 基于架構(gòu)的軟件可靠性分配模型及優(yōu)化
在對基于架構(gòu)的軟件可靠性分配模型的相關(guān)定義加以闡述之后,下面筆者再對可靠性模型及優(yōu)化以函數(shù)的形式加以表現(xiàn)。從上文中了解到了可靠性分配模型的優(yōu)化則不僅涉及對各部件的可靠性優(yōu)化,更應(yīng)該考慮到軟件可靠性成本問題。在可靠性模型優(yōu)化中達(dá)到軟件系統(tǒng)的開發(fā)成本最小化是指的在滿足系統(tǒng)的可靠性基礎(chǔ)前提下,著眼于開發(fā)成本的最優(yōu)化問題來尋找最佳的可靠性分配方案。
基于成本最優(yōu)化的軟件可靠性模型,在假設(shè)成本投入與軟件出錯率成絕對反比的基礎(chǔ)上,可以函數(shù)關(guān)系的模式表示為:
在上面這個函數(shù)式中,r表示的軟件的可靠性;C是軟件開發(fā)的成本;其他兩個參數(shù)分別是可靠性成本系數(shù)以及軟件的成本基值。根據(jù)上式,不難看出軟件的可靠性和成本之間的關(guān)系,一個軟件要達(dá)到百分之百的可靠必須投入大量的成本。
軟件可靠性的分配模型與可靠性的成本模型不同,對于一個由n個組件組成的軟件系統(tǒng),軟件可靠性模型一般表示為:
在這個函數(shù)式中,設(shè)定系統(tǒng)的可靠性目標(biāo)是Robj,系統(tǒng)可靠性r與各個組件可靠性的關(guān)系為F(r1,r2...),C為預(yù)期的開發(fā)成本。
基于上述軟件可靠性成本模型構(gòu)建,提出相應(yīng)的動態(tài)算法,對由n個組件組成的軟件系統(tǒng)來說,提高其可靠性則必須提高開發(fā)成本,而在控制成本的前提下,為了達(dá)到系統(tǒng)的可靠性最優(yōu)化,則必須優(yōu)化各組件的可靠性,具體算法如圖1。
So是系統(tǒng)可靠性分配結(jié)果,也就是各組件的可靠性;Ro表示的對應(yīng)系統(tǒng)的可靠性,而Co則是預(yù)期的開發(fā)成本。要保證這組算法的正確性則應(yīng)該確保在這個系統(tǒng)中一個組件的可靠性降低會帶動整個系統(tǒng)的可靠性相應(yīng)降低以及系統(tǒng)開發(fā)成本的減少,在這兩個前提成立的基礎(chǔ)上那么步驟5中的第4部便是對最佳組件的選擇,從而d達(dá)到整個軟件系統(tǒng)可靠性最優(yōu)化的目的。
3 結(jié)語
基于軟件架構(gòu)的可靠性由組成構(gòu)架的各軟件系統(tǒng)的可靠性決定,軟件系統(tǒng)可靠性的提高伴隨著軟件開發(fā)成本的增加,本文的算法論述建立在保證軟件可靠性的前提下,以構(gòu)架各部分組件為對象,降低開發(fā)成本,從而選擇出可靠性最優(yōu)的架構(gòu)組合,提高軟件系統(tǒng)的可靠性,滿足計(jì)算機(jī)技術(shù)發(fā)展的要求。
參考文獻(xiàn)
[1]陳未如,李可明.基于架構(gòu)的軟件可靠性分配模型及優(yōu)化研究[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2009,18(4):92-95.
[2]黃寧,陳未如,石帥等.一種基于動態(tài)規(guī)劃的軟件可靠性分配方法[J].計(jì)算機(jī)應(yīng)用與軟件,2011,28(3):119-120.
[3]陳未如,石帥,黃寧等.基于軟件架構(gòu)的可靠性分配算法[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31(4):706-708.
[4]楊俊茹,張麗麗,張道忠等.基于架構(gòu)的軟件可靠性研究現(xiàn)狀及發(fā)展趨勢[J].煤礦機(jī)械,2012,33(6):21-23.
[5]楊春暉,熊婧,李冬等.基于體系架構(gòu)的軟件可靠性測試時間分配模型[C].//2010中國電子學(xué)會可靠性分會第十五屆可靠性學(xué)術(shù)年會論文集,2010:58-63.
作者單位
江蘇蘇源高科技有限公司 江蘇省南京市 210008