APP下载

网构软件选择的可信性评估算法

2015-01-04孙国利

电子设计工程 2015年12期
关键词:可信性贝叶斯实体

孙国利,王 逊

(江苏科技大学 江苏 镇江 212003)

随着Internet技术的发展,软件系统的规模不断变大,软件的复杂度随着程序的规模的增加呈指数级上升,软件开发的成本和进度更加难以控制,软件质量越来越不可靠,软件危机也随之而来。为了解决这一危机,M.D.Mcllroy提出了软件复用、软件构件、构件工厂等概念,他指出了发展软件构件产业,通过构件组合和演化来构造软件系统[3]的思想。基于构件的软件开发(Component-based Software Development,CBSD)就是用一些已经存在的软件构件来组装新的软件系统,构件被作为封装的、规范的、可重用的软件模块,其实现的信息对用户来说是透明的,用户只需了解构件所提供的功能、非功能、部署和使用方法等信息。因此,使用构件可以减少软件开发成本、缩短软件开发时间、提高软件复用率[1]。网构软件是利用构件实现满足动态、开放和多变的网络环境、满足用户个性化需求的软件系统。

然而,随着构件产业的发展,越来越多的供应商提供相同或相似服务的构件,如何选择合适的构件成为一个具有挑战性的问题。人们经过研究发现,可信性评估[5]可作为网构软件的衡量标准。从过去的研究中我们可以发现,许多不同的评估方法被提出。如:文献[4]提出一个软件可信的评估框架并给出了其实现方案;文献[5]提出了一种基于软件分级模型的可信性评估的方法;文献[6]建立了一个可信性过程管理框架,其着重点在于通过提高软件过程的可信性来提升整个软件的可信性;文献[7]的可信证据模型是基于验证的,其给出的可信性评估方法从一定程度上来说能反映人对软件的认知程度;文献[8]的可信性评估对象是开源构件。但是,以上的研究成果或多或少都存在一些不足之处。如:文献[4]是针对Internet环境下的特定软件形态的软件过程进行可信性评估的;文献[5]对于可信属性中的安全性等没有充分的考虑,主要考虑了其可靠性的属性;文献[7]没有给出可信性评估的具体实现方案,仅仅给出了其概念模型;文献[8]中有的评估结果仅仅是可信或不可信,即二值的,不能充分体现软件的可信度。

针对以上情况,本文提出了基于贝叶斯网络的可信性评估模型来计算网构软件的可信性值,根据得到的结果指导网构软件的选择。该模型首先对网构软件进行结构分析,根据其模块划分和结构层次等建立相应的可信性评估体系;其次,采用自底向上的计算的方法确定各个软件实体的可信性评估值;最后,利用客观数据对评估指标进行修正,得到统一的可信性评估结果,再根据结果做出最优选择。

1 软件可信性评估指标体系

1.1 可信性评估指标体系

众所周知,软件可信性不仅包含软件可靠性、安全性和生存性等关键性质的简单叠加,它还包括了软件能力、软件配置等软件工程的相关因素。为了反映软件的静态和动态特性,并能够对软件做出静态和动态的可信性评估,指标体系的性质研究是软件可信性评价的基本评价粒度,对能否给出软件的正确的可信性评估具有重要意义。

本文在软件可信性评估指标体系的模型结构设计上,采用了层次式体系结构的评价思路,将软件系统按照一定的规则,分割成若干层面来选取评价维度和指标。而对于搭建的可信性评估指标体系[2]要满足以下要求:

1)模型是动态的,它能够反映软件开发过程中的多个即时状态。

2)模型需引入一整套完整的评价机制[2],其中包括评价目标、评价属性和对软件产品及开发过程的评价标度。

3)模型应易于理解,并且具有一定的实用性。

这对这些要求,本文采用贝叶斯网络的算法计算各个层次的软件实体的可信性评估值,该方法不仅能够计算出各个基层软件实体的可信性评估值,且这些评估值是相互关联的,使最终计算出来的评估值更加科学,能更好的指导网构软件的选择。

1.2 可信性评估指标计算方法

由于网构软件往往是由底层软件实体通过一定的规则组合成上层软件,且底层构件之间往往存在互相影响的可能性,这一特性符合贝叶斯网络[2]的原理,所以这里将系统满足可信性指标时提供可信服务的条件概率当作系统的可信性,则可设可信性指标为 P(A)={P(Ai),i=1,2,3,4,…,n},通过贝叶斯公式推理计算可得到系统可信性指标P(Bs|Ai)为:

我们假设某个系统中,各层的软件实体以及上下层软件实体具有如下图所示的关系:

根据贝叶斯推理,我们可以做出如下假定:其中,待考察的量应该遵循某种特定的概率分布,并且可根据这些概率和已经观察到的数据所做出的推理来获取最优值,以达到做出最优决策[9]的目的。

图1 系统结构图Fig.1 The diagram of system structure

在使用贝叶斯方法时,假设的最终概率不仅仅与观察数据有关,还要考虑先验知识在其中的作用。即:1)每个候选假设其自身的先验概率;2)观察数据上的各个可能假设的概率分布。对于上层元素,其预测是由多个假设一起通过某种规则做出的,再通过加权算法来计算出上层元素的概率。因此,要计算整个系统的可信性,各可信性指标值的获取尤为重要。在本文中,初值是通过软件测试的方式获取的。

所以,图1中实体M1的可信性可由其先验概率计算而得,并通过评估指标进行修正。设M1的可信性为则由(1)式可以得到,

其中,P(BM1)是先验指标,是对可靠性、可移植性、效率、易用性、功能性、可复用性和维护性等传统可信指标进行初始评估而得到的指标称之为评估指标,而通过评估指标可以获得 P(A|BM1)和 P(A)。 假设各评估指标为 P(Ae)={P(Aei)|i=1,2,3,…,n},各先验指标为 P(Ap)={P(Api)|i=1,2,3,…,n},则可变换(2)式为:

在网构软件的系统中,计算上层实体的可信性时,我们还应当考虑到其基础实体可信性对其自身的影响,即基础实体由某种规则而组合在一起时的实体间的结构相依性和语义相依性[1]所产生的对上层实体的影响,我们称之为集成可信性指标。

从图1中我们可以看出:实体N2在计算自身的实体可信性时,还需使用到M1和M2的条件概率对其可信性进行修正。这里假设实体N2的可信性为P(BN2|A),其依赖的集体可信性指标为 P(BBp)={P(BBpi)|i=1,2,3,…,n}。 由此,实体 N2的可信性为:

则可以计算出实体 M1,M2,M3,N2,N3,Q 的可信性值,如下:

1)底层实体的可信性:

2)第二层实体的可信性:

3)顶层实体的可信性:

可以通过以上的方法对选出来的多种网构软件的组合进行可信性值的计算,从而选出最优组合。

2 应用实例

利用一个地名管理系统中的业务逻辑模块对上述研究成果进行验证,该业务逻辑模块中包含邮件发送服务、地图服务、天气预报服务以及GPS定位服务等。对于系统的内部构件,采用网络服务的形式,业务逻辑模块之间的交互是通过标准WebService接口[11]进行的。

一是从必要性角度而言,由于《立法法》对于政府规章备案后审查、审查标准和程序、审查结果处理、不同审查主体审查结果冲突协调等均没有涉及,《法规规章备案条例》对于行政系统与人大系统备案审查工作之间的关系、审查结果的冲突解决以及协调机制等也均没有涉及,迫切需要从国家层面通过统一的立法来界定明晰。统一的立法安排能够为限制行政权滥用、保护行政相对人合法权益、协调人大系统监督和行政系统监督关系提供一个较为合理的法制化平台。

2.1 系统功能模块分析

采用自底向上的方式对软件结构进行分析,本文主要是利用该系统的业务逻辑模块,所以下面主要对以上提及的4个服务进行分析。

1)邮件发送服务:主要提供主动或被动的邮件发送服务,主动体现在用户与用户之间的邮件服务,被动则指系统向用户发送一些服务类邮件或是提醒用户。

2)地图服务:主要提供地图服务,这里可以利用百度、谷歌或者高德提供的WebService接口。

3)天气预报服务:主要为用户提供实时的天气情况,这里可以选取一些网络供应商所提供的天气预报服务。

4)GPS服务:主要提供定位功能,可以调用Internet上提供的免费的API给用户提供实时准确的定位导航服务。

2.2 可信性评估值计算

采用自底向上的方式逐层计算逻辑模块的可信性,通过检索的方式获取多个需要的网构软件基础实体,以地图服务为例,假设获取基础实体 K1、K2、K3,其中K1指谷歌地图服务,K2指百度地图服务,K3指高德地图服务。首先计算K1、K2、K3的可信性,它们的可信性是首先通过先验指标的汇总计算,再经过评估指标对其进行修正而得到。其中,获取到的先验指标为可靠性 0.92、可移植性 0.90、功能性 0.94、效率0.92、可复用性0.91。通过对其开发管理情况(包括文档、测试、开发、编程规范等等)所获得的事实证据对先验概率进行修正,建立如表1所示的条件概率表。

表1所示为在不同条件下使用软件的可信性评估条件概率。表中的值为满足对应情况的程度,其值域范围是[0,1]。例如:第1条数据表示软件在具有系统架构、良好测试、过程管理、熟练员工、规范编程的情况下其可信性可以得到保证的程度。由于篇幅所限,仅仅列出几条具有代表性的数据。

根据式(3)对地图服务实体进行可信性计算,公式如下:

表1 可信性评估条件概率表Tab.1 The table of conditional probability of trustworthy assessment

对表1中的数据进行计算得到(其中每一条数据对应一种构件条件情况):

1)第一条数据: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)第二条数据: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)第三条数据: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)第四条数据: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)第五条数据: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

由以上数据可比较得出,满足第一种情况下的构件选择最优。

2.3 可信性评估结果分析

从上述数据分析可以得出,构件实体所满足的评估指标越多,即软件实体在设计、开发、测试、管理过程中越规范,则实体的可信性值越高,相应的软件质量水平也就越高,这一点完全符合软件质量保证理论[10]的思想,而计算结果也证明了这一点。

本文的计算方法使得用户可以根据软件实体的现实情况做出正确评估,而不是仅仅依靠网络构件供应商所提供的数据,该方法能够更好的指导用户进行网构软件的选择。

3 结 论

本文通过使用贝叶斯网络的计算方法,对网构软件的可信性进行评估计算,实验证明了该方法的可行性,在指导网构软件选择方面具有明显的优势。

本文还存在不足在之处,条件概率表中数据的取值是通过软件测试的方式获取的,如果能设计出一种算法,对初值进行精确量化,将会使整个系统的可信性评估值更加精确,这将是下一步研究努力的方向。

[1]付凌霄,彭鑫,赵文耘.基于Agent的网构软件需求监控框架[J].计算机研究与发展,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]司冠南,任宇涵,许静,等.基于贝叶斯网络的网构软件可信性评估模型[J].计算机研究与发展,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]文志诚,李长云,满君丰.基于贝叶斯网的分布式软件行为运行时可信性分析[J].小型微型计算机系统,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]田俊峰,李珍,刘玉玲.一种可信软件设计方法及可信性评价[J].计算机研究与发展,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服务组合的可信评估方法[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.

猜你喜欢

可信性贝叶斯实体
基于可信性的锅炉安全质量综合评价研究
基于贝叶斯解释回应被告人讲述的故事
在区间上取值的模糊变量的可信性分布
前海自贸区:金融服务实体
Five golden rules for meeting management
实体的可感部分与实体——兼论亚里士多德分析实体的两种模式
基于可信性理论的风电场电能质量模糊综合评估
两会进行时:紧扣实体经济“钉钉子”
振兴实体经济地方如何“钉钉子”
基于贝叶斯估计的轨道占用识别方法