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