蔡文華 徐洪珍 劉超 李坤 王少坡
摘要:目前軟件體系結(jié)構(gòu)動態(tài)演化研究,主要方法是從軟件系統(tǒng)演化的操作或規(guī)則入手,描述或建模面向服務(wù)的軟件系統(tǒng)演化,而往往忽略軟件本身的可信問題。事實上,在軟件演化初始前,對軟件演化進行可信方面的研究,可以大大地降低軟件演化失敗的幾率。該文從軟件的推薦信任的角度考慮軟件的可信度,提出一種軟件推薦可信的計算方法,解決軟件演化非相鄰構(gòu)件的信任問題。
關(guān)鍵詞:軟件體系結(jié)構(gòu);動態(tài)演化;可信;信任
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2014)36-8691-01
隨著互聯(lián)網(wǎng)的普及與發(fā)展,軟件產(chǎn)業(yè)的發(fā)展越來越迅速,傳統(tǒng)的軟件開發(fā)模式已不適用于時代。取而代之的是,軟件以構(gòu)件的形式組裝在一起,形成一個完整的系統(tǒng)。軟件的演化即為構(gòu)件間的相互演化。
軟件演化從一定程度上說,構(gòu)件的演化解決了目前大部分軟件的規(guī)模問題。但同時,它也帶來了一些不穩(wěn)定因素[1]。構(gòu)件演化主要從四個方面進行,包括:構(gòu)件添加、刪除、修改與替換。針對某一具體過程,如何保證構(gòu)件的演化符合人們預(yù)期的結(jié)果,即構(gòu)件演化的可信性成為了研究的重點。北京大學(xué)教授梅宏等認為軟件可信度是傳統(tǒng)軟件質(zhì)量概念的延伸,與傳統(tǒng)軟件僅僅關(guān)注某一特定屬性不同,軟件可信度更關(guān)注于軟件的綜合質(zhì)量屬性及保障[2];劉克等提出軟件可信度是指軟件演化的動態(tài)行為及結(jié)果總是按著人們預(yù)期的結(jié)果進行,在受到阻礙時仍能提供服務(wù)[3]。以上討論的都是可信因素的組成成分,卻沒有對如何利用可信因素實現(xiàn)軟件演化提出一個具體辦法。
本文在前期工作基礎(chǔ)上[4-5],提出了相關(guān)非相鄰構(gòu)件間的推薦可信計算方法,在軟件演化初始前,即對軟件中非相鄰構(gòu)件的可信問題進行探究,根據(jù)結(jié)果,決定構(gòu)件間是否參與演化。此種方法,可以大幅度地提高軟件演化的成功率。
1 面向服務(wù)的軟件演化模型
在面向服務(wù)的軟件體系結(jié)構(gòu)中,軟件是由各種構(gòu)件及其連接件組成,構(gòu)件間通過連接件互聯(lián)。我們約定,體系結(jié)構(gòu)中的每個構(gòu)件都可以通過某種路徑,與其他的構(gòu)件互聯(lián),且每個構(gòu)件都可以提供若干種服務(wù),同時也享受其他構(gòu)件提供的若干種服務(wù)。以三個構(gòu)件為例,面向服務(wù)的軟件演化模型圖如圖1所示。
如圖1所示,在軟件演化模型中,構(gòu)件即能提供服務(wù),同時也接受其他構(gòu)件提供的服務(wù),如構(gòu)件a為構(gòu)件b提供了sa1,sa2…san共n個服務(wù),同時也接受構(gòu)件b提供了sb1,sb2,…sbn共n個服務(wù)。服務(wù)的具體實現(xiàn)過程,這里我們不涉及到,此處不作討論。
2 非相鄰構(gòu)件服務(wù)的推薦信任演化計算
在軟件演化過程當(dāng)中,構(gòu)件能否參與演化,選擇什么樣的構(gòu)件進行演化,對于演化的結(jié)果起到?jīng)Q定性的作用。選擇可信度高的構(gòu)件進行演化,對于演化結(jié)果的正確性有很大的保障;而選擇可信度低的構(gòu)件進行演化,在很大程度上,是得不到預(yù)期的演化結(jié)果。所以,構(gòu)件的可信度是決定構(gòu)件能否參加演化,以及選擇什么樣的構(gòu)件進行演化的重要參考值。
在面向服務(wù)的軟件演化過程中,構(gòu)件間的服務(wù)關(guān)系不可能總是處于同一層次上,不同層次間的交互演化,則需要通過中間件構(gòu)件提供中轉(zhuǎn)服務(wù)。但基于上述情況,則出現(xiàn)了以下問題,即構(gòu)件相信同一層次上的構(gòu)件提供的服務(wù),但不一定相同非同一層次構(gòu)件提供的服務(wù),即A相信B,B相信C,但不一定A就相信C。
對于非相鄰構(gòu)件的演化需求,因為周圍相鄰構(gòu)件沒有提供需求服務(wù),則需要其他非相鄰構(gòu)件提供需求服務(wù),為此,引入推薦信任服務(wù)(Recommendation Trust)概念。
而推薦信任服務(wù)則從是從不同層次的構(gòu)件的服務(wù)角度分析,位于不同層次的構(gòu)件服務(wù)的信任權(quán)重也不一樣。例如以下圖2構(gòu)件推薦信任服務(wù)模型所示。
A與B之間是直接相鄰關(guān)系,B與C也是直接相鄰關(guān)系,A與C則是間接相鄰關(guān)系。A需要通過B中轉(zhuǎn)C提供的服務(wù)。B構(gòu)件在根據(jù)C的信任度結(jié)合信任權(quán)重,得出C的可信度,并反饋給A,即向A推薦C服務(wù)的可信度,A結(jié)合對B的信任權(quán)重,計算出C的最終推薦信任值。例如假定A對B的信任權(quán)重[α=0.7],B對C的信任權(quán)重為[β=0.8],re(C)=4。則[Feedback(c)=0.8*4=3.2],而A對C的推薦信任值為[Re(a,c)=0.7*3.2=2.24]。
在得出構(gòu)件的可信值后,根據(jù)可信值的大小,有針對性的選擇可信度高的構(gòu)件進行演化,可以最大程度的保證構(gòu)件演化的成功率。
3 總結(jié)
隨著時代的發(fā)展,軟件產(chǎn)業(yè)的發(fā)展速度已超出了人們的相像。龐大的軟件系統(tǒng)在帶給人們便利的同時,也帶來了許多不穩(wěn)定因素。因軟件升級而帶來的問題,困擾著軟件開發(fā)者們的思維,利用軟件演化則可以很好的解決這類問題。在加入軟件可信的計算后,根據(jù)計算的結(jié)果,選擇可信度最高的構(gòu)件進行演化,可以很好的保證軟件演化的成功性。
參考文獻:
[1] 李長云,何頻捷,李玉龍.軟件動態(tài)演化技術(shù)[M].北京:北京大學(xué)出版社,2007.
[2] 梅宏,曹東剛.軟件可信性:互聯(lián)網(wǎng)帶來的新挑戰(zhàn)[J].中國計算機學(xué)會通訊,2010,6(2):20-27.
[3] 劉克,單志廣,王戟,等.“可信軟件基礎(chǔ)研究”重大研究計劃綜述[J].中國科學(xué)基金,2008,22(3):145-151.
[4] 徐洪珍,曾國蓀.基于超圖文法的軟件體系結(jié)構(gòu)動態(tài)演化[J].同濟大學(xué)學(xué)報:自然科學(xué)版)2011,5(39):745-750.
[5] 徐洪珍,曾國蓀,陳波.軟件體系結(jié)構(gòu)動態(tài)演化的條件超圖文法及分析[J].軟件學(xué)報,2011,22(6):1210-1223.endprint
摘要:目前軟件體系結(jié)構(gòu)動態(tài)演化研究,主要方法是從軟件系統(tǒng)演化的操作或規(guī)則入手,描述或建模面向服務(wù)的軟件系統(tǒng)演化,而往往忽略軟件本身的可信問題。事實上,在軟件演化初始前,對軟件演化進行可信方面的研究,可以大大地降低軟件演化失敗的幾率。該文從軟件的推薦信任的角度考慮軟件的可信度,提出一種軟件推薦可信的計算方法,解決軟件演化非相鄰構(gòu)件的信任問題。
關(guān)鍵詞:軟件體系結(jié)構(gòu);動態(tài)演化;可信;信任
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2014)36-8691-01
隨著互聯(lián)網(wǎng)的普及與發(fā)展,軟件產(chǎn)業(yè)的發(fā)展越來越迅速,傳統(tǒng)的軟件開發(fā)模式已不適用于時代。取而代之的是,軟件以構(gòu)件的形式組裝在一起,形成一個完整的系統(tǒng)。軟件的演化即為構(gòu)件間的相互演化。
軟件演化從一定程度上說,構(gòu)件的演化解決了目前大部分軟件的規(guī)模問題。但同時,它也帶來了一些不穩(wěn)定因素[1]。構(gòu)件演化主要從四個方面進行,包括:構(gòu)件添加、刪除、修改與替換。針對某一具體過程,如何保證構(gòu)件的演化符合人們預(yù)期的結(jié)果,即構(gòu)件演化的可信性成為了研究的重點。北京大學(xué)教授梅宏等認為軟件可信度是傳統(tǒng)軟件質(zhì)量概念的延伸,與傳統(tǒng)軟件僅僅關(guān)注某一特定屬性不同,軟件可信度更關(guān)注于軟件的綜合質(zhì)量屬性及保障[2];劉克等提出軟件可信度是指軟件演化的動態(tài)行為及結(jié)果總是按著人們預(yù)期的結(jié)果進行,在受到阻礙時仍能提供服務(wù)[3]。以上討論的都是可信因素的組成成分,卻沒有對如何利用可信因素實現(xiàn)軟件演化提出一個具體辦法。
本文在前期工作基礎(chǔ)上[4-5],提出了相關(guān)非相鄰構(gòu)件間的推薦可信計算方法,在軟件演化初始前,即對軟件中非相鄰構(gòu)件的可信問題進行探究,根據(jù)結(jié)果,決定構(gòu)件間是否參與演化。此種方法,可以大幅度地提高軟件演化的成功率。
1 面向服務(wù)的軟件演化模型
在面向服務(wù)的軟件體系結(jié)構(gòu)中,軟件是由各種構(gòu)件及其連接件組成,構(gòu)件間通過連接件互聯(lián)。我們約定,體系結(jié)構(gòu)中的每個構(gòu)件都可以通過某種路徑,與其他的構(gòu)件互聯(lián),且每個構(gòu)件都可以提供若干種服務(wù),同時也享受其他構(gòu)件提供的若干種服務(wù)。以三個構(gòu)件為例,面向服務(wù)的軟件演化模型圖如圖1所示。
如圖1所示,在軟件演化模型中,構(gòu)件即能提供服務(wù),同時也接受其他構(gòu)件提供的服務(wù),如構(gòu)件a為構(gòu)件b提供了sa1,sa2…san共n個服務(wù),同時也接受構(gòu)件b提供了sb1,sb2,…sbn共n個服務(wù)。服務(wù)的具體實現(xiàn)過程,這里我們不涉及到,此處不作討論。
2 非相鄰構(gòu)件服務(wù)的推薦信任演化計算
在軟件演化過程當(dāng)中,構(gòu)件能否參與演化,選擇什么樣的構(gòu)件進行演化,對于演化的結(jié)果起到?jīng)Q定性的作用。選擇可信度高的構(gòu)件進行演化,對于演化結(jié)果的正確性有很大的保障;而選擇可信度低的構(gòu)件進行演化,在很大程度上,是得不到預(yù)期的演化結(jié)果。所以,構(gòu)件的可信度是決定構(gòu)件能否參加演化,以及選擇什么樣的構(gòu)件進行演化的重要參考值。
在面向服務(wù)的軟件演化過程中,構(gòu)件間的服務(wù)關(guān)系不可能總是處于同一層次上,不同層次間的交互演化,則需要通過中間件構(gòu)件提供中轉(zhuǎn)服務(wù)。但基于上述情況,則出現(xiàn)了以下問題,即構(gòu)件相信同一層次上的構(gòu)件提供的服務(wù),但不一定相同非同一層次構(gòu)件提供的服務(wù),即A相信B,B相信C,但不一定A就相信C。
對于非相鄰構(gòu)件的演化需求,因為周圍相鄰構(gòu)件沒有提供需求服務(wù),則需要其他非相鄰構(gòu)件提供需求服務(wù),為此,引入推薦信任服務(wù)(Recommendation Trust)概念。
而推薦信任服務(wù)則從是從不同層次的構(gòu)件的服務(wù)角度分析,位于不同層次的構(gòu)件服務(wù)的信任權(quán)重也不一樣。例如以下圖2構(gòu)件推薦信任服務(wù)模型所示。
A與B之間是直接相鄰關(guān)系,B與C也是直接相鄰關(guān)系,A與C則是間接相鄰關(guān)系。A需要通過B中轉(zhuǎn)C提供的服務(wù)。B構(gòu)件在根據(jù)C的信任度結(jié)合信任權(quán)重,得出C的可信度,并反饋給A,即向A推薦C服務(wù)的可信度,A結(jié)合對B的信任權(quán)重,計算出C的最終推薦信任值。例如假定A對B的信任權(quán)重[α=0.7],B對C的信任權(quán)重為[β=0.8],re(C)=4。則[Feedback(c)=0.8*4=3.2],而A對C的推薦信任值為[Re(a,c)=0.7*3.2=2.24]。
在得出構(gòu)件的可信值后,根據(jù)可信值的大小,有針對性的選擇可信度高的構(gòu)件進行演化,可以最大程度的保證構(gòu)件演化的成功率。
3 總結(jié)
隨著時代的發(fā)展,軟件產(chǎn)業(yè)的發(fā)展速度已超出了人們的相像。龐大的軟件系統(tǒng)在帶給人們便利的同時,也帶來了許多不穩(wěn)定因素。因軟件升級而帶來的問題,困擾著軟件開發(fā)者們的思維,利用軟件演化則可以很好的解決這類問題。在加入軟件可信的計算后,根據(jù)計算的結(jié)果,選擇可信度最高的構(gòu)件進行演化,可以很好的保證軟件演化的成功性。
參考文獻:
[1] 李長云,何頻捷,李玉龍.軟件動態(tài)演化技術(shù)[M].北京:北京大學(xué)出版社,2007.
[2] 梅宏,曹東剛.軟件可信性:互聯(lián)網(wǎng)帶來的新挑戰(zhàn)[J].中國計算機學(xué)會通訊,2010,6(2):20-27.
[3] 劉克,單志廣,王戟,等.“可信軟件基礎(chǔ)研究”重大研究計劃綜述[J].中國科學(xué)基金,2008,22(3):145-151.
[4] 徐洪珍,曾國蓀.基于超圖文法的軟件體系結(jié)構(gòu)動態(tài)演化[J].同濟大學(xué)學(xué)報:自然科學(xué)版)2011,5(39):745-750.
[5] 徐洪珍,曾國蓀,陳波.軟件體系結(jié)構(gòu)動態(tài)演化的條件超圖文法及分析[J].軟件學(xué)報,2011,22(6):1210-1223.endprint
摘要:目前軟件體系結(jié)構(gòu)動態(tài)演化研究,主要方法是從軟件系統(tǒng)演化的操作或規(guī)則入手,描述或建模面向服務(wù)的軟件系統(tǒng)演化,而往往忽略軟件本身的可信問題。事實上,在軟件演化初始前,對軟件演化進行可信方面的研究,可以大大地降低軟件演化失敗的幾率。該文從軟件的推薦信任的角度考慮軟件的可信度,提出一種軟件推薦可信的計算方法,解決軟件演化非相鄰構(gòu)件的信任問題。
關(guān)鍵詞:軟件體系結(jié)構(gòu);動態(tài)演化;可信;信任
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2014)36-8691-01
隨著互聯(lián)網(wǎng)的普及與發(fā)展,軟件產(chǎn)業(yè)的發(fā)展越來越迅速,傳統(tǒng)的軟件開發(fā)模式已不適用于時代。取而代之的是,軟件以構(gòu)件的形式組裝在一起,形成一個完整的系統(tǒng)。軟件的演化即為構(gòu)件間的相互演化。
軟件演化從一定程度上說,構(gòu)件的演化解決了目前大部分軟件的規(guī)模問題。但同時,它也帶來了一些不穩(wěn)定因素[1]。構(gòu)件演化主要從四個方面進行,包括:構(gòu)件添加、刪除、修改與替換。針對某一具體過程,如何保證構(gòu)件的演化符合人們預(yù)期的結(jié)果,即構(gòu)件演化的可信性成為了研究的重點。北京大學(xué)教授梅宏等認為軟件可信度是傳統(tǒng)軟件質(zhì)量概念的延伸,與傳統(tǒng)軟件僅僅關(guān)注某一特定屬性不同,軟件可信度更關(guān)注于軟件的綜合質(zhì)量屬性及保障[2];劉克等提出軟件可信度是指軟件演化的動態(tài)行為及結(jié)果總是按著人們預(yù)期的結(jié)果進行,在受到阻礙時仍能提供服務(wù)[3]。以上討論的都是可信因素的組成成分,卻沒有對如何利用可信因素實現(xiàn)軟件演化提出一個具體辦法。
本文在前期工作基礎(chǔ)上[4-5],提出了相關(guān)非相鄰構(gòu)件間的推薦可信計算方法,在軟件演化初始前,即對軟件中非相鄰構(gòu)件的可信問題進行探究,根據(jù)結(jié)果,決定構(gòu)件間是否參與演化。此種方法,可以大幅度地提高軟件演化的成功率。
1 面向服務(wù)的軟件演化模型
在面向服務(wù)的軟件體系結(jié)構(gòu)中,軟件是由各種構(gòu)件及其連接件組成,構(gòu)件間通過連接件互聯(lián)。我們約定,體系結(jié)構(gòu)中的每個構(gòu)件都可以通過某種路徑,與其他的構(gòu)件互聯(lián),且每個構(gòu)件都可以提供若干種服務(wù),同時也享受其他構(gòu)件提供的若干種服務(wù)。以三個構(gòu)件為例,面向服務(wù)的軟件演化模型圖如圖1所示。
如圖1所示,在軟件演化模型中,構(gòu)件即能提供服務(wù),同時也接受其他構(gòu)件提供的服務(wù),如構(gòu)件a為構(gòu)件b提供了sa1,sa2…san共n個服務(wù),同時也接受構(gòu)件b提供了sb1,sb2,…sbn共n個服務(wù)。服務(wù)的具體實現(xiàn)過程,這里我們不涉及到,此處不作討論。
2 非相鄰構(gòu)件服務(wù)的推薦信任演化計算
在軟件演化過程當(dāng)中,構(gòu)件能否參與演化,選擇什么樣的構(gòu)件進行演化,對于演化的結(jié)果起到?jīng)Q定性的作用。選擇可信度高的構(gòu)件進行演化,對于演化結(jié)果的正確性有很大的保障;而選擇可信度低的構(gòu)件進行演化,在很大程度上,是得不到預(yù)期的演化結(jié)果。所以,構(gòu)件的可信度是決定構(gòu)件能否參加演化,以及選擇什么樣的構(gòu)件進行演化的重要參考值。
在面向服務(wù)的軟件演化過程中,構(gòu)件間的服務(wù)關(guān)系不可能總是處于同一層次上,不同層次間的交互演化,則需要通過中間件構(gòu)件提供中轉(zhuǎn)服務(wù)。但基于上述情況,則出現(xiàn)了以下問題,即構(gòu)件相信同一層次上的構(gòu)件提供的服務(wù),但不一定相同非同一層次構(gòu)件提供的服務(wù),即A相信B,B相信C,但不一定A就相信C。
對于非相鄰構(gòu)件的演化需求,因為周圍相鄰構(gòu)件沒有提供需求服務(wù),則需要其他非相鄰構(gòu)件提供需求服務(wù),為此,引入推薦信任服務(wù)(Recommendation Trust)概念。
而推薦信任服務(wù)則從是從不同層次的構(gòu)件的服務(wù)角度分析,位于不同層次的構(gòu)件服務(wù)的信任權(quán)重也不一樣。例如以下圖2構(gòu)件推薦信任服務(wù)模型所示。
A與B之間是直接相鄰關(guān)系,B與C也是直接相鄰關(guān)系,A與C則是間接相鄰關(guān)系。A需要通過B中轉(zhuǎn)C提供的服務(wù)。B構(gòu)件在根據(jù)C的信任度結(jié)合信任權(quán)重,得出C的可信度,并反饋給A,即向A推薦C服務(wù)的可信度,A結(jié)合對B的信任權(quán)重,計算出C的最終推薦信任值。例如假定A對B的信任權(quán)重[α=0.7],B對C的信任權(quán)重為[β=0.8],re(C)=4。則[Feedback(c)=0.8*4=3.2],而A對C的推薦信任值為[Re(a,c)=0.7*3.2=2.24]。
在得出構(gòu)件的可信值后,根據(jù)可信值的大小,有針對性的選擇可信度高的構(gòu)件進行演化,可以最大程度的保證構(gòu)件演化的成功率。
3 總結(jié)
隨著時代的發(fā)展,軟件產(chǎn)業(yè)的發(fā)展速度已超出了人們的相像。龐大的軟件系統(tǒng)在帶給人們便利的同時,也帶來了許多不穩(wěn)定因素。因軟件升級而帶來的問題,困擾著軟件開發(fā)者們的思維,利用軟件演化則可以很好的解決這類問題。在加入軟件可信的計算后,根據(jù)計算的結(jié)果,選擇可信度最高的構(gòu)件進行演化,可以很好的保證軟件演化的成功性。
參考文獻:
[1] 李長云,何頻捷,李玉龍.軟件動態(tài)演化技術(shù)[M].北京:北京大學(xué)出版社,2007.
[2] 梅宏,曹東剛.軟件可信性:互聯(lián)網(wǎng)帶來的新挑戰(zhàn)[J].中國計算機學(xué)會通訊,2010,6(2):20-27.
[3] 劉克,單志廣,王戟,等.“可信軟件基礎(chǔ)研究”重大研究計劃綜述[J].中國科學(xué)基金,2008,22(3):145-151.
[4] 徐洪珍,曾國蓀.基于超圖文法的軟件體系結(jié)構(gòu)動態(tài)演化[J].同濟大學(xué)學(xué)報:自然科學(xué)版)2011,5(39):745-750.
[5] 徐洪珍,曾國蓀,陳波.軟件體系結(jié)構(gòu)動態(tài)演化的條件超圖文法及分析[J].軟件學(xué)報,2011,22(6):1210-1223.endprint