孫國利,王 遜
(江蘇科技大學 江蘇 鎮(zhèn)江 212003)
隨著Internet技術(shù)的發(fā)展,軟件系統(tǒng)的規(guī)模不斷變大,軟件的復(fù)雜度隨著程序的規(guī)模的增加呈指數(shù)級上升,軟件開發(fā)的成本和進度更加難以控制,軟件質(zhì)量越來越不可靠,軟件危機也隨之而來。為了解決這一危機,M.D.Mcllroy提出了軟件復(fù)用、軟件構(gòu)件、構(gòu)件工廠等概念,他指出了發(fā)展軟件構(gòu)件產(chǎn)業(yè),通過構(gòu)件組合和演化來構(gòu)造軟件系統(tǒng)[3]的思想?;跇?gòu)件的軟件開發(fā)(Component-based Software Development,CBSD)就是用一些已經(jīng)存在的軟件構(gòu)件來組裝新的軟件系統(tǒng),構(gòu)件被作為封裝的、規(guī)范的、可重用的軟件模塊,其實現(xiàn)的信息對用戶來說是透明的,用戶只需了解構(gòu)件所提供的功能、非功能、部署和使用方法等信息。因此,使用構(gòu)件可以減少軟件開發(fā)成本、縮短軟件開發(fā)時間、提高軟件復(fù)用率[1]。網(wǎng)構(gòu)軟件是利用構(gòu)件實現(xiàn)滿足動態(tài)、開放和多變的網(wǎng)絡(luò)環(huán)境、滿足用戶個性化需求的軟件系統(tǒng)。
然而,隨著構(gòu)件產(chǎn)業(yè)的發(fā)展,越來越多的供應(yīng)商提供相同或相似服務(wù)的構(gòu)件,如何選擇合適的構(gòu)件成為一個具有挑戰(zhàn)性的問題。人們經(jīng)過研究發(fā)現(xiàn),可信性評估[5]可作為網(wǎng)構(gòu)軟件的衡量標準。從過去的研究中我們可以發(fā)現(xiàn),許多不同的評估方法被提出。如:文獻[4]提出一個軟件可信的評估框架并給出了其實現(xiàn)方案;文獻[5]提出了一種基于軟件分級模型的可信性評估的方法;文獻[6]建立了一個可信性過程管理框架,其著重點在于通過提高軟件過程的可信性來提升整個軟件的可信性;文獻[7]的可信證據(jù)模型是基于驗證的,其給出的可信性評估方法從一定程度上來說能反映人對軟件的認知程度;文獻[8]的可信性評估對象是開源構(gòu)件。但是,以上的研究成果或多或少都存在一些不足之處。如:文獻[4]是針對Internet環(huán)境下的特定軟件形態(tài)的軟件過程進行可信性評估的;文獻[5]對于可信屬性中的安全性等沒有充分的考慮,主要考慮了其可靠性的屬性;文獻[7]沒有給出可信性評估的具體實現(xiàn)方案,僅僅給出了其概念模型;文獻[8]中有的評估結(jié)果僅僅是可信或不可信,即二值的,不能充分體現(xiàn)軟件的可信度。
針對以上情況,本文提出了基于貝葉斯網(wǎng)絡(luò)的可信性評估模型來計算網(wǎng)構(gòu)軟件的可信性值,根據(jù)得到的結(jié)果指導網(wǎng)構(gòu)軟件的選擇。該模型首先對網(wǎng)構(gòu)軟件進行結(jié)構(gòu)分析,根據(jù)其模塊劃分和結(jié)構(gòu)層次等建立相應(yīng)的可信性評估體系;其次,采用自底向上的計算的方法確定各個軟件實體的可信性評估值;最后,利用客觀數(shù)據(jù)對評估指標進行修正,得到統(tǒng)一的可信性評估結(jié)果,再根據(jù)結(jié)果做出最優(yōu)選擇。
眾所周知,軟件可信性不僅包含軟件可靠性、安全性和生存性等關(guān)鍵性質(zhì)的簡單疊加,它還包括了軟件能力、軟件配置等軟件工程的相關(guān)因素。為了反映軟件的靜態(tài)和動態(tài)特性,并能夠?qū)浖龀鲮o態(tài)和動態(tài)的可信性評估,指標體系的性質(zhì)研究是軟件可信性評價的基本評價粒度,對能否給出軟件的正確的可信性評估具有重要意義。
本文在軟件可信性評估指標體系的模型結(jié)構(gòu)設(shè)計上,采用了層次式體系結(jié)構(gòu)的評價思路,將軟件系統(tǒng)按照一定的規(guī)則,分割成若干層面來選取評價維度和指標。而對于搭建的可信性評估指標體系[2]要滿足以下要求:
1)模型是動態(tài)的,它能夠反映軟件開發(fā)過程中的多個即時狀態(tài)。
2)模型需引入一整套完整的評價機制[2],其中包括評價目標、評價屬性和對軟件產(chǎn)品及開發(fā)過程的評價標度。
3)模型應(yīng)易于理解,并且具有一定的實用性。
這對這些要求,本文采用貝葉斯網(wǎng)絡(luò)的算法計算各個層次的軟件實體的可信性評估值,該方法不僅能夠計算出各個基層軟件實體的可信性評估值,且這些評估值是相互關(guān)聯(lián)的,使最終計算出來的評估值更加科學,能更好的指導網(wǎng)構(gòu)軟件的選擇。
由于網(wǎng)構(gòu)軟件往往是由底層軟件實體通過一定的規(guī)則組合成上層軟件,且底層構(gòu)件之間往往存在互相影響的可能性,這一特性符合貝葉斯網(wǎng)絡(luò)[2]的原理,所以這里將系統(tǒng)滿足可信性指標時提供可信服務(wù)的條件概率當作系統(tǒng)的可信性,則可設(shè)可信性指標為 P(A)={P(Ai),i=1,2,3,4,…,n},通過貝葉斯公式推理計算可得到系統(tǒng)可信性指標P(Bs|Ai)為:
我們假設(shè)某個系統(tǒng)中,各層的軟件實體以及上下層軟件實體具有如下圖所示的關(guān)系:
根據(jù)貝葉斯推理,我們可以做出如下假定:其中,待考察的量應(yīng)該遵循某種特定的概率分布,并且可根據(jù)這些概率和已經(jīng)觀察到的數(shù)據(jù)所做出的推理來獲取最優(yōu)值,以達到做出最優(yōu)決策[9]的目的。
圖1 系統(tǒng)結(jié)構(gòu)圖Fig.1 The diagram of system structure
在使用貝葉斯方法時,假設(shè)的最終概率不僅僅與觀察數(shù)據(jù)有關(guān),還要考慮先驗知識在其中的作用。即:1)每個候選假設(shè)其自身的先驗概率;2)觀察數(shù)據(jù)上的各個可能假設(shè)的概率分布。對于上層元素,其預(yù)測是由多個假設(shè)一起通過某種規(guī)則做出的,再通過加權(quán)算法來計算出上層元素的概率。因此,要計算整個系統(tǒng)的可信性,各可信性指標值的獲取尤為重要。在本文中,初值是通過軟件測試的方式獲取的。
所以,圖1中實體M1的可信性可由其先驗概率計算而得,并通過評估指標進行修正。設(shè)M1的可信性為則由(1)式可以得到,
其中,P(BM1)是先驗指標,是對可靠性、可移植性、效率、易用性、功能性、可復(fù)用性和維護性等傳統(tǒng)可信指標進行初始評估而得到的指標稱之為評估指標,而通過評估指標可以獲得 P(A|BM1)和 P(A)。 假設(shè)各評估指標為 P(Ae)={P(Aei)|i=1,2,3,…,n},各先驗指標為 P(Ap)={P(Api)|i=1,2,3,…,n},則可變換(2)式為:
在網(wǎng)構(gòu)軟件的系統(tǒng)中,計算上層實體的可信性時,我們還應(yīng)當考慮到其基礎(chǔ)實體可信性對其自身的影響,即基礎(chǔ)實體由某種規(guī)則而組合在一起時的實體間的結(jié)構(gòu)相依性和語義相依性[1]所產(chǎn)生的對上層實體的影響,我們稱之為集成可信性指標。
從圖1中我們可以看出:實體N2在計算自身的實體可信性時,還需使用到M1和M2的條件概率對其可信性進行修正。這里假設(shè)實體N2的可信性為P(BN2|A),其依賴的集體可信性指標為 P(BBp)={P(BBpi)|i=1,2,3,…,n}。 由此,實體 N2的可信性為:
則可以計算出實體 M1,M2,M3,N2,N3,Q 的可信性值,如下:
1)底層實體的可信性:
2)第二層實體的可信性:
3)頂層實體的可信性:
可以通過以上的方法對選出來的多種網(wǎng)構(gòu)軟件的組合進行可信性值的計算,從而選出最優(yōu)組合。
利用一個地名管理系統(tǒng)中的業(yè)務(wù)邏輯模塊對上述研究成果進行驗證,該業(yè)務(wù)邏輯模塊中包含郵件發(fā)送服務(wù)、地圖服務(wù)、天氣預(yù)報服務(wù)以及GPS定位服務(wù)等。對于系統(tǒng)的內(nèi)部構(gòu)件,采用網(wǎng)絡(luò)服務(wù)的形式,業(yè)務(wù)邏輯模塊之間的交互是通過標準WebService接口[11]進行的。
一是從必要性角度而言,由于《立法法》對于政府規(guī)章備案后審查、審查標準和程序、審查結(jié)果處理、不同審查主體審查結(jié)果沖突協(xié)調(diào)等均沒有涉及,《法規(guī)規(guī)章備案條例》對于行政系統(tǒng)與人大系統(tǒng)備案審查工作之間的關(guān)系、審查結(jié)果的沖突解決以及協(xié)調(diào)機制等也均沒有涉及,迫切需要從國家層面通過統(tǒng)一的立法來界定明晰。統(tǒng)一的立法安排能夠為限制行政權(quán)濫用、保護行政相對人合法權(quán)益、協(xié)調(diào)人大系統(tǒng)監(jiān)督和行政系統(tǒng)監(jiān)督關(guān)系提供一個較為合理的法制化平臺。
采用自底向上的方式對軟件結(jié)構(gòu)進行分析,本文主要是利用該系統(tǒng)的業(yè)務(wù)邏輯模塊,所以下面主要對以上提及的4個服務(wù)進行分析。
1)郵件發(fā)送服務(wù):主要提供主動或被動的郵件發(fā)送服務(wù),主動體現(xiàn)在用戶與用戶之間的郵件服務(wù),被動則指系統(tǒng)向用戶發(fā)送一些服務(wù)類郵件或是提醒用戶。
2)地圖服務(wù):主要提供地圖服務(wù),這里可以利用百度、谷歌或者高德提供的WebService接口。
3)天氣預(yù)報服務(wù):主要為用戶提供實時的天氣情況,這里可以選取一些網(wǎng)絡(luò)供應(yīng)商所提供的天氣預(yù)報服務(wù)。
4)GPS服務(wù):主要提供定位功能,可以調(diào)用Internet上提供的免費的API給用戶提供實時準確的定位導航服務(wù)。
采用自底向上的方式逐層計算邏輯模塊的可信性,通過檢索的方式獲取多個需要的網(wǎng)構(gòu)軟件基礎(chǔ)實體,以地圖服務(wù)為例,假設(shè)獲取基礎(chǔ)實體 K1、K2、K3,其中K1指谷歌地圖服務(wù),K2指百度地圖服務(wù),K3指高德地圖服務(wù)。首先計算K1、K2、K3的可信性,它們的可信性是首先通過先驗指標的匯總計算,再經(jīng)過評估指標對其進行修正而得到。其中,獲取到的先驗指標為可靠性 0.92、可移植性 0.90、功能性 0.94、效率0.92、可復(fù)用性0.91。通過對其開發(fā)管理情況(包括文檔、測試、開發(fā)、編程規(guī)范等等)所獲得的事實證據(jù)對先驗概率進行修正,建立如表1所示的條件概率表。
表1所示為在不同條件下使用軟件的可信性評估條件概率。表中的值為滿足對應(yīng)情況的程度,其值域范圍是[0,1]。例如:第1條數(shù)據(jù)表示軟件在具有系統(tǒng)架構(gòu)、良好測試、過程管理、熟練員工、規(guī)范編程的情況下其可信性可以得到保證的程度。由于篇幅所限,僅僅列出幾條具有代表性的數(shù)據(jù)。
根據(jù)式(3)對地圖服務(wù)實體進行可信性計算,公式如下:
表1 可信性評估條件概率表Tab.1 The table of conditional probability of trustworthy assessment
對表1中的數(shù)據(jù)進行計算得到(其中每一條數(shù)據(jù)對應(yīng)一種構(gòu)件條件情況):
1)第一條數(shù)據(jù):P(Ae)=0.31,P(Ae|B)=0.22
則,P(B|A)={0.31×(0.92×0.90×0.94×0.92×0.91)/0.22}=0.918
2)第二條數(shù)據(jù):P(Ae)=0.37,P(Ae|B)=0.32
則,P(B|A)={0.37×(0.92×0.90×0.94×0.92×0.91)/0.32}=0.753
3)第三條數(shù)據(jù):P(Ae)=0.08,P(Ae|B)=0.12
則,P(B|A)={0.08×(0.92×0.90×0.94×0.92×0.91)/0.12}=0.434
4)第四條數(shù)據(jù):P(Ae)=0.41,P(Ae|B)=0.35
則,P(B|A)={0.41×(0.92×0.90×0.94×0.92×0.91)/0.35}=0.763
5)第五條數(shù)據(jù):P(Ae)=0.55,P(Ae|B)=0.50
則,P(B|A)={0.55×(0.92×0.90×0.94×0.92×0.91)/0.40}=0.896
由以上數(shù)據(jù)可比較得出,滿足第一種情況下的構(gòu)件選擇最優(yōu)。
從上述數(shù)據(jù)分析可以得出,構(gòu)件實體所滿足的評估指標越多,即軟件實體在設(shè)計、開發(fā)、測試、管理過程中越規(guī)范,則實體的可信性值越高,相應(yīng)的軟件質(zhì)量水平也就越高,這一點完全符合軟件質(zhì)量保證理論[10]的思想,而計算結(jié)果也證明了這一點。
本文的計算方法使得用戶可以根據(jù)軟件實體的現(xiàn)實情況做出正確評估,而不是僅僅依靠網(wǎng)絡(luò)構(gòu)件供應(yīng)商所提供的數(shù)據(jù),該方法能夠更好的指導用戶進行網(wǎng)構(gòu)軟件的選擇。
本文通過使用貝葉斯網(wǎng)絡(luò)的計算方法,對網(wǎng)構(gòu)軟件的可信性進行評估計算,實驗證明了該方法的可行性,在指導網(wǎng)構(gòu)軟件選擇方面具有明顯的優(yōu)勢。
本文還存在不足在之處,條件概率表中數(shù)據(jù)的取值是通過軟件測試的方式獲取的,如果能設(shè)計出一種算法,對初值進行精確量化,將會使整個系統(tǒng)的可信性評估值更加精確,這將是下一步研究努力的方向。
[1]付凌霄,彭鑫,趙文耘.基于Agent的網(wǎng)構(gòu)軟件需求監(jiān)控框架[J].計算機研究與發(fā)展,2013,50(5):1055-1065.FU Ling-xiao,PENG Xin,ZHAO WEN-yun.An agent-based requirements monitoring framework for internet-ware[J].Journal of Computer Research and Development,2013,50 (5):1055-1065.
[2]司冠南,任宇涵,許靜,等.基于貝葉斯網(wǎng)絡(luò)的網(wǎng)構(gòu)軟件可信性評估模型[J].計算機研究與發(fā)展,2012,49(5):1028-1038.SI Guan-nan,REN Yu-han,XU Jing,et al.A dependability evaluation model for internet-ware based on Bayesian Network[J].Journal of Computer Research and Development.2012, 49(5):1028-1038
[3]文志誠,李長云,滿君豐.基于貝葉斯網(wǎng)的分布式軟件行為運行時可信性分析[J].小型微型計算機系統(tǒng),2012,33(3):505-511.WEN Zhi-cheng,LI Chang-yun,MAN Jun-feng.Analyzing running-time behavioral credibility for distributed software based on Bayesian Network[J].Journal of Chinese Computer Systems,2012,33(3):505-511.
[4]Cai S B,Zou Y Z,Shao L S,et al.Framework supporting software assets evaluation on trustworthiness[J].Journal of Software,2010,21(2):359-372.
[5]Lang B,Liu X D,Wang H M,et al.A classification model for software trustworthiness[J].Journal of Frontiers of Computer Science and Technology,2010,4(3):231-239.
[6]Yang Y,Wang Q,Li M S.Process trustworthiness as a capability indicator for measuring and improving software trustworthiness[C]//Lecture Notes in Computer Science 5543:Proceedings of the International Conference on Software Process,2009:389-401.
[7]Ding X L,Wang H M,Wang Y Y.Verification oriented trustworthiness evidence and trustworthiness evaluation of software[J].Journal of Frontiers of Computer Science and Technology,2010,4(1):46-48.
[8]Immonen A,Palviainen M.Trustworthiness evaluation and testing of open source components[C]//Proceedings of the 7th International Conference on Quality Software (QSIC’07),2007.
[9]田俊峰,李珍,劉玉玲.一種可信軟件設(shè)計方法及可信性評價[J].計算機研究與發(fā)展,2011,48(8):1447-1451.TIAN Jun-feng,LIZhen,LIU Yu-ling.An design approach of trustworthy software and its trustworthiness evaluation[J].Journal of Computer Research and Development,2011,48(8):1447-1451.
[10]Mei,Hong.Internetware:A Software Paradigm for Internet Computing[J].Computer, EI SCI,2012.
[11]唐佳俊,黃志球,王進.一種Web服務(wù)組合的可信評估方法[J].計算機科學,2013,40(2):163-166.TANG Jia-jun,HUANG Zhi-qiu,WANG Jin.Approach for web service composition trustworthiness evaluation[J].Computer Science,2013,40(2):163-166.