Page 91 - 《软件学报》2020年第10期
P. 91
梁冠宇 等:面向操作系统可靠性保障的开源软件供应链 3067
在当前系统中,我们基于规则实现事件提取.结合我们提出的度量信息模型,总结了如表 3 所示的 6 种风险,
表中同时展示了每种风险对应的度量信息模型中相关的属性以及相关的数据来源.如前文所述,我们根据不同
风险的不同数据源,实现了相应的数据驱动,因此也可以方便地为每种风险数据信息打上标签,用于标识风险类
型.事件提取子流程如图 6 所示,首先基于标签判断风险事件类型,若是表 3 所示的前两种风险类型,则基于关键
字实现信息提取,主要包括软件名称和情感词,对照系统预制的情感词表即可得到影响因子;若为后 4 种风险,同
样通过关键字匹配提取软件名称,之后通过对比历史信息或计算得到的统计数据,即可得到风险的影响因子,具
体的统计指标见表 3,需要说明的是,当前指标是根据我们的经验指定的,可以认为是经验初始值,在未来的工作
中,我们将根据系统收集的数据对指标进行调整.影响因子的意义是为了描述监控到的事件对于软件可靠性风
险起正向影响还是负向影响,若事件结果能够帮助降低风险,则认为影响是正向的;否则,认为影响是负向的.为
简化计算,当前,正、负向因子均取值为 1,未考虑不同事件的影响力,随着数据的积累和系统的完善,在未来工作
中我们会通过引入权重的方式,进一步客观地描述每一事件对软件可靠性风险的影响.
Fig.6 The flow diagram for monitoring risks of reliability
图 6 可靠性风险监控流程
如图 7 所示,事件提取流程最终输出的结果包括软件包的名称、事件类型以及影响因子.图 6 中的事件处
理阶段接收到以上信息后,按照以下公式更新可靠性评分:
v′ = v + e (5)
i
i
⎧ ⎪∑ v × P max , N > 0
n
p = ⎨ i= 1 i N (6)
⎪
⎩ 0, N = 0
为计算事件影响的可靠性评分,我们为每个软件包维护了两个变量——V 和 N.其中,V 为数组,记录每种风
险事件捕获后的影响因子累计结果,每一项初始值为 1(为确保公式(6)计算结果在没有任何负面影响时为满分),
公式(5)描述了累计结果更新规则,v i 和 v′ i 分别表示某一种风险事件累计值更改前和更改后的值,e 表示本次捕
获到的该事件的影响因子.另一个变量 N 表示捕获事件的次数,公式(6)描述了受事件影响的可靠性分值更新规
则,式中,p 表示最终分值,v i 与式(5)中的含义相同,n 表示风险类型的数量,P max 表示满分的分值(即当前所设置的
5).当 N 为 0 时,即未捕获过相关事件,显然,该途径对可靠性分值没有任何贡献,故 p 值为 0;当 N 大于 0 时,通过