蔡文华 徐洪珍 刘超 李坤 王少坡
摘要:目前软件体系结构动态演化研究,主要方法是从软件系统演化的操作或规则入手,描述或建模面向服务的软件系统演化,而往往忽略软件本身的可信问题。事实上,在软件演化初始前,对软件演化进行可信方面的研究,可以大大地降低软件演化失败的几率。该文从软件的推荐信任的角度考虑软件的可信度,提出一种软件推荐可信的计算方法,解决软件演化非相邻构件的信任问题。
关键词:软件体系结构;动态演化;可信;信任
中图分类号: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