基于在软件工程中对贝叶斯网络的循证决策

基于在软件工程中对贝叶斯网络的循证决策

摘要:在软件工程中的推荐系统应该设计成集成依据并成为从业人员的经验。贝叶斯网络为以证据为基础的决策提供了自然统计框架,通过结合现有证据的综合概要与相关的不确定性(结果的不确定性)。在这次学习中,我们从事计算生物学中的铅含量、医疗决策和软件工程中贝叶斯网络的研究应用,根据1)软件工程中主要解决的挑战,2)贝叶斯网络技术过去用于学习变量之间的因果关系,3)贝叶斯网络技术过去用于推理参数,4)变量类型作为BN编码。我们施行了系统定位研究用来研究这四个方面中的每一个和用SE中的两个域来比较BNs当前的使用方法。随后,我们强调了在SE中的BNs使用的局限性并且提出一种混合的BN去改进SE中的基于正式的决策方式。在两个工业案例中,我们开发了样本混合BNs和对它们的性能进行评价。结果是我们的实证分析表明了混合BNs是强大的框架,这个框架结合了有定量数据的专业知识。就像在SE中的研究人员越来越意识到BNs的基本动力学,这个提出的模型也将会向前推进并且顺其自然的为循证决策作出贡献。

指数条款-----循证决策,贝叶斯统计,软件可靠性,软件韵律学,发布后的缺陷。

1、 介绍

决策起着积极作用并且在许多相互关联的因素之间是一项复杂的任务(以往的经验,依据数据的历史事实和环境问题)。一名决策者经常面临一系列可能的行为(选择/决定),并且每一个行为联系着可能的(短期的与长期的)结果,这个结果是不确定的。这个决策的标准原理需要每一个行为引起每一个结果所获得的的概率和对每一个结果的实用性。概率提供了在决策过程期间处理不确定性的量化证据。这个挑选的行为,即,这个决定,将最终在给定的环境下有着最高的实用性。对于提供严格框架的决策过程是必要的,这个框架能够提供重要的性质和性质上的领悟作为指导计算的假设分析和灵敏度分析。

    随着循证医学兴趣上的探索,Kitchenham等人认为软件从业人员也需要收集证据,通过案例学习、观察、现场试验、通过系统综述积累证据和在在特殊环境下统和分析提供给他们的决定。即使有成百上千的出版物在软件工程的论题中,根据不同的设置在这些出版物中,关于可用性,局限性,风险性,收益以及所提出的技术医生也没有根据。因此,我们需要“基于证据的软件工程”去提供和提高由软件从业人员在使用和采用具体的技术所做的决定。

因此到目前为止,循证医学软件已经为进行实证研究提供了指导方针和为当前的研究结果,系统的聚集也提供了指导方针。与医疗保健相似,软件工程中的循证决策必须把这个研究方法放到实践中去,为了缩短两者之间的差距。为了完成这个,推荐系统/预测模型应该在某种程度上设计成他们能够集成证据,随即,事实和概率系统地收集或者是从真实的数据中进行测量和观察,成为从业者的经验。

贝叶斯方法向循证决策提供一个自然的统计框架通过现有证据的综合概要和联系不确定(的结果)通过对实用性的评估。更具体地说,贝叶斯网络提供了如下优点:1)保持意见、统计分布、之前的假设和在一个简易模型中专业知识的判断,2)在变量之间的因果关系编码为了预测未来的行为,3)“通过网络信息传播”随即,在网络游戏看到所有可能的方案和它们的结果得到了最佳的行动。最后但并非最不重要的,4)模仿人类思考的过程,超越了人类的基于事实推理能力,通过大量的历史数据获得的错误情报。

由于以上对好处的描述,BNs已经严格的广泛用于许多领域中,例如生物计算,更具体地说是生物信息学,和医疗保健,BNs根据研究设计与指导方针变的更成熟了。在这些领域中,BNs已经被着手研究了,根据过去用来建造网络结构的技术和用来估算最后参数的技术。我们认为经验软件工程研究应该遵循这些主要领域的领导,这些领域以BN应用占主导地位。

BNs也是非常有用的并且实际的机制提供了软件工程中的决策,因为在变量之间的因果关系中具有代表性,它们对于软件从业人员具有意义。这些图形模型防止圈内人通过向从业人员提供灵活性来执行性能权衡分析。因此,这些模型自从1980s就已经在解决各种问题上普遍使用了,例如预测缺陷,项目成本/工作量,时间,生产力。在软件风险评估上的开拓性研究已经由Fenton和Neil来指导,他们两个人在其最近的一本书中总结了贝叶斯网络决策的重要性,和通过工具AgenaRisk提供了从真实的应用中获得的的例子。

一个最近由Radlinski所作的关于工作量评估的调查,总结了BNs的强大尚且还不能很好的被理解并且被软件工程界所公认。这些模型主要是用来作黑盒模型,并且它们的开发由专业知识高度主导。我们对软件性能上的初步分析也确认了这个事实,这个事实就是BNs比我们现在的理解更为强大,但是我们需要更多地来源于相关研究的证据汇总来支持这些说法。基于当前的情势,我们的目的是提出改进BNs在实践中使用的解决方案。

在这项研究中,我们开始于一个一般性的问题“我们如何来利用BNs的强大提高在软件工程中的循证决策?”,进一步缩小我们的研究重点,来回答一下问题:“BNs在软件工程领域中当前的用途是什么?”和“我们怎样改进和提高BNs在软件工程中的用途?”。

为了回答这些问题,我们设定了以下的研究目标:

1)  延长Radlinski工作和我们通过指导在软件工程主题中BNs的使用进行全面的定位研究;

2)  确认当前在软件工程中最好的实践,然后,使用技术来定义因果关系,参数估计,和推导产生结果的概率

3)  突出局限性,通过对我们的领域上的BNs的使用与其他应用上BNs的使用进行比较,特别是生物计算和医疗保健决策方面。

4)  制定一个新的方法,用来考虑在软件工程中存在的当前的局限性和提高决策的风险。

5)  在两个产业的案例研究中的评估性能的新方法。

在本文中,我们提出我们的研究成果,如下。我们提出了在软件工程中BNs的系统映射。我们总结了用于构建贝叶斯网络的最先进的技术,并且把它们与其他领域上对BNs的应用进行比较。根据我们的调查结果,我们设计出了一款混合型BN,这种BN提出了不同的技术(来自其他领域的灵感),为了构造这个网络结构和评估两个产业案例中的性能。紧接着,我们讨论了在系统映射中潜在的有效威胁和BN建造步骤和通过总结从业人员和研究人员对这项工作所做的贡献得出的结论

 2、    背景

          因此,到目前为止,在软件工程中BNs的决策在细节上还没有研究。在这一节中,我们首先描述贝叶斯网络的基础,和怎样用这些模型做出预测。然后,我们介绍之前在生物学计算和医疗保健方面对BN是的使用,和总结调查的结果,是在软件工程中以一个具体问题进行学习BNs,随即,努力估算软件性能

2.1         基于贝叶斯网络的准备工作

BNs是图形模型,它表示一组变量概率之间的关系在BN变量X={X1,X2,…,Xn}表示为节点,而变量之间的因果关系表示为有向边。在一个BN结构中,变量中的一组条件独立主张被编码。尤其是,对给定的模型结构,我们计算的联合概率分布如下:

      在这里,parents(Xi)表示父母节点(Xi),p(X)被叫做X的联合分布,是父母节点X的条件概率的乘积,这个条件概率可以被定义为一个分布,如果Xi给定连续得值,或者是如果需要分类值而作为一个概率表。如图Fig.1,表明一个简易的BN有不同的变量类型。这个例子的联合分布可以写为p(A,B,C,D,E)=p(C|D,E)p(D|B)p(E|A)p(A)p(B)。

当构造一个BN时,定量和定性两个方面需要被考虑,定性方面解决了确定在变量和建筑模型的最终结构中的因果关系定量方面,解决了参数评估,例如填充前条件概率表分类情况,或者是在连续情况中参数的分布。大体上,一种概率的计算称为推理。理论上,这两个方面可以由数据推断出。但是,如果这些数据是不足以进行推理的,专业的判断经常被使用。而且,工具也被用来构建带有不同的运算法则和不足的推断统计的结构。

2.2在其他领域的BNs

BNs已广泛用于计算生物学中的决策(在生物医学和生物信息学的临床研究)和医疗(医疗系统运营管理)。在计算生物学中,BNs已用于在基因,建立疾病模型,和基因表达分析解释方面有重要的相互作用。在医疗领域中,它们也在诊断疾病和不同的治疗方案也很受影响,主要用于处理不确定性的影响。威尔金森和温克勒总结了贝叶斯网络在建筑结构和推理技术这两个领域中的的决策使用,并且还讨论了BNs实际使用时可扩展。

Wilkinson研究了关于计算机生物学方面的文献,并且得出贝叶斯的方法,尤其是Monte Carlo (MC) Markov Chain方法,例如吉布斯抽样Metropolis Hasting算法,都被广泛的应用于复杂的数据和多个来源的推理。这个最受欢迎的BNs的定义是基于离散变量的,即使BNs可以描述任何的概率的条件独立结构。另一个受欢迎的类型是动态BNs,这种BNs用于生物模型Wilkinson也提到在构造BNs过程中,存在着计算需求的挑战;但是,BN工具使用的增加或多或少解决了这个问题。Xiong等人提出了一个在生物信息学上很有影响力的工作,这些人配制RNA剪接模式成为统计推断的一个问题和介绍BNs来预测独特的分层模式不同的组织类型。

     温克勒讨论了为什么贝叶斯方法不经常使用在医疗决策中,并且可以做什么来增加对它们的使用。Winkler也提及到哲学上的不同和在实际问题上防止这些方法的广泛使用。以一个实践的观点看,三个主要的解决方案是会鼓励研究员在医疗保健方面按照以下几点来使用贝叶斯理论:1)更好的开发贝叶斯,2)程序使贝叶斯分析更容易理解和使用(例如,工具),3)“可以接受”,然后,用决策者的教育使他们信服,这个教育是贝叶斯方法是有利的,受欢迎的,而不是其他更多的统计方法。

2.3在软件工程中的贝叶斯网络

在软件工程中,即使有成百上千的研究表示BNs的使用会解决不同的问题,Radlinski是一名唯一的研究并总结了BNs在“软件开发工作量估算的问题方面的应用。这则研究否定了23项采用贝叶斯网络的项目规划的出版物,然后,预测项目成果,生产率,持续时间,和缺陷。作者详细地调查了这些研究,根据他们主要的的目的,结构类型,用数据/知识库建筑模型,和验证性能指标。分析显示自从2002年大量被发表的论文已经在不断增加,65%的出版物是在2008到2010年出版的。大多数的模型是基于专业的判断来构建的,并且这些参数也是由专家定义的,这些专家的信念也是通过经验数据的支持。

  Radlinski在建造BNs上讨论了专业知识的优势因为如果有大量的概率表需要被填写,那么这将是耗时并且也会产生矛盾。他也表示数值变量的离散化中设置几组区间用来降低精度,除非有更动态的方法,如在[ 24 ]提出的。就像在医疗保健领域中,Radlinski表示对从业人员来说理解和解释这些模型的概率输出是困难的。

  我们的研究是受这一事实的影响,这个事实就是BN是一个实践性的并且是自然统计框架,这个框架指导着在软件工程中的循证决策。Hence,在许多方面,本文的是对以前工作的补充。首先,我们扩展我们以前的工作和覆盖所有的软件工程主题,并且在113年前分析了117篇出版文章,因为最早的出版日期可以追溯到1999年。第二,我们确认了主要的软件工程领域,在这个领域中BNs被广泛的应用于决策方面。第三,我们为参数和结构学习,通过我们的结果与计算生物学和医疗保健的比较从而突出的局限性确认了国家最先进的技术。第四,我们确认了方法来改进在软件工程中BNs的使用,和制定了一个新的混合模型。最后,我们在两个产业的案例研究中评估所提出的方法和报告我们的研究结果。

3、在SE中关于BNs的系统映射

  3.1  研究方法

     我们实行了定位研究,用来实现我们的研究项目#1和#2,就像在第一节中定义的那样,映射研究是一种次要的研究,它的目的是为任何一种研究搜索到一个更广泛的领域来施行,为了得到先进国家的实践或主题。这是进行判断是否这个研究问题对于文献概述是广泛的,或者对这个领域探索较少。映射研究遵循了相同的原则过程和作为系统文献概述的协议;但是,这个目标和研究问题更多的是通用的,搜索策略的标准与系统文献相比是不严格的。定位研究的主要目的只是区分相关的文献中定义的类别,与系统的文献相对,定位研究是初步研究,根据研究结果和调查是否这些成果是一致的。

      基于Kitchenham等人和Wohlin等人的开拓性的指导方针。我们提出了一个系统映射研究,为了更好地理解BNs在软件工程中的使用。我们根据由Petersen等人制作的定义审查协议。系统映射研究是:“研究问题的界定”,进行搜索相关的论文”,“论文”的筛选(纳入/排除标准),定义的分类方案”(类别),和“数据提取和映射的过程。

   3.2 研究问题

      我们进一步将研究的第一个问题(BNS在软件工程领域目前使用的是什么?)子问题,并回答他们在第3节:

    rq1a:哪一个主题说明了软件工程的研究采用了贝叶斯网络?

    rq1b:哪一种技术被用于在贝叶斯网络的结构学习?

    rq1c:哪一种技术被用于学习贝叶斯网络参数的建设?

    rq1d:在贝叶斯网络中什么类型的变量表示为节点?

    3.3 主要的研究探寻

      我们定义的搜索字符串如下:

       (贝叶斯网络)与软件工程。我们搜索以下四个数据库,因为他们已经被广泛的使用文学方面的其他研究:IEEE Xplore数字图书馆,ACM数字图书馆,科学指导,科学网。对于我们的研究和探寻研究问题的答案,我们没有设置任何时间限制。

   3.4 筛选文件(找相关文件

       我们包括所有的发表于国际会议,讲习班,研讨会和期刊上的论文,具体地描述了在软件工程中使用BNs来解决特别的问题。由于我们只选定了数字出版物数据库,我们没有在这项研究中完成工作或报告工作。如果几篇论文报道了相同的研究(模型细节和验证数据),我们只能包括最近出版的。

       在软件工程之外的文章,并且被不同的语言编著(及时摘要是用英文写的),就会被丢弃。另外,下列主题的论文也会被排除:

l         采用贝叶斯统计的文件(例如,蒙特卡罗方法估计回归系数)但是没有建立一个网络。

l         论文是以前的研究,比较了几种BNs

l         描述一个特定的问题采用简单的贝叶斯的论文。

   3.5  分类设计(哪一个主题说明了软件工程的研究采用了贝叶斯网络

         主要内容是在研究问题的基础上建造的。关于rq1a,我们阅读了摘要,题目,论文的中心思想和由Knowledge Areas定义的(2004年版)文章。因此,第一个定义的内容被作为软件工程的题目。

          关于rq1b和rq1c,刻面分类,结构学习,和第三面,是来自文件的参数学习,阅读元数据(标题,摘要,关键词)是不足以了解哪些技术是在研究过程中是采用的BN结构。因此,我们阅读那些文章中的选节,在那些选节里,作者解释了怎样构造BNs去解决具体问题和提取的方法列表,算法,和/或技术。然后,我们归纳地形成更高层次的分类来覆盖这些方法中的每一个列表中。我们最终的分类在下一节中以文学的角度进行描述。

           关于rq1d,第四方面是指表示为节点的网络变量类型。这方面也是通过阅读整篇文章进行研究。这方面的分类其实是微不足道的,主要有三种类型,可以用一个BN代表节点:1)分类(也称为离散的),2)连续࿰

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值