[发明专利]基于数据驱动的软件安全需求推荐方法在审
申请号: | 201910854599.8 | 申请日: | 2019-09-10 |
公开(公告)号: | CN110750712A | 公开(公告)日: | 2020-02-04 |
发明(设计)人: | 李晓红;肖洪波 | 申请(专利权)人: | 天津大学 |
主分类号: | G06F16/9535 | 分类号: | G06F16/9535;G06F16/958;G06K9/62 |
代理公司: | 12201 天津市北洋有限责任专利代理事务所 | 代理人: | 李素兰 |
地址: | 300072*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 安全需求 软件产品 话题 软件安全 软件功能 产品功能 功能描述 实现软件 数据驱动 研究方向 传统的 相似度 构建 聚类 抽取 取出 筛选 文本 | ||
1.一种基于数据驱动的软件安全需求推荐方法,其特征在于,该方法包括以下步骤:
步骤1、建立功能话题模型;同时,依据安全需求部分标记出该产品对应的安全需求;
步骤2、进行软件功能话题聚类,具体包括:
通过LDA算法自动地将软件功能描述聚类,获得LDA功能主题模型,并从中得到这些软件产品共享的功能话题;依据训练好的功能话题模型,对于测试集中的每个软件产品,从而获得这些软件产品的功能描述与每个话题的相关程度,也就是相应软件产品的功能话题特征Fi,并且得到训练集中每个软件产品的功能话题向量,获得功能话题特征矩阵F,表达式如下
其中,F表示同一类别的所有软件产品的功能话题特征矩阵,tpi,j表示软件产品si属于某个功能话题pj可能的概率,0≤tpi,j≤1;Fi=<tpi,1,...,tpi,N>表示软件产品si与所有共享功能话题tpi,N的相关性;每一行所有tpi,j之和为1,N表示产品共享的功能话题数量,M表示每个类别的软件产品的数量;
步骤3、构建软件功能特征-安全需求模型,具体过程为:
首先,被标记的安全需求即安全功能组件和安全保证组件被表示为特征向量SR,表达式如下:
其中,E表示Common Criteria中定义的安全保证组件的总数,X表示Common Criteria中定的安全功能组件的总数,M表示每个类别软件产品的总数,sfci,k表示软件产品si需要的具体的安全功能需求,如果sfci,k=0,表示软件产品si不需要这个安全功能组件sfci,k,如果sfci,k=1,表示软件产品si需要安全功能组件sfci,k。其中,sacm,o表示软件产品si需要的具体的安全保证需求。同时,如果sacm,o=0,表示不需要这个安全功能组件sacm,o,如果sacm,o=1,表示软件产品si需要安全功能组件sacm,o;
依据软件产品-功能话题和软件产品-安全需求之间的关系,构建功能话题-安全需求之间映射关系,得到软件功能特征和安全需求之间的映射关系,表达式如下
si={Fi,SRi}={<tpi,1,...,tpi,N>,<sfci,1,...,sfci,X>,<saci,1,...,saci,E>}
(3)
其中,Fi=<tpi,1,…,tpi,N>表示功能特征,N表示同一个类别的所有软件产品不同功能话题的数量,0≤tpi,j≤1表示一个产品si与一个特定的功能话题的相关程度。SRi={SFRi,SARi}={sfci,1,…,sfci,X>,<saci,1,…,saci,E>}表示软件需要的安全需求,SFRi表示软件的安全功能需求,SARi表示软件的安全保证需求;
步骤4、通过计算给定产品的功能话题特征和训练集中所有产品功能话题特征之间的相似度以及基于阈值的筛选获得功能相似的软件产品,具体过程为:
首先,依据软件功能特征-安全需求模型推测给定产品功能话题特征,即si=<tpi,1,…,tpi,N>,然后计算给定软件产品与其他产品功能特征之间的相似度,找到实现相似功能的软件产品,与给定软件产品的相似度大于给定阈值θsim的软件产品作为候选软件产品,所有候选软件产品构成的候选软件产品集且作为筛选结果;
为每个软件产品的每一个安全需求即安全功能组件SFCs和安全保证组件SACs计算推荐值,该推荐值越高的安全需求SRs作为候选;
步骤5、软件安全需求推荐,具体过程为:
计算候选软件产品与相邻的软件产品的安全需求的推荐值,软件产品安全需求的推荐值是由每个候选软件产品的每个SFCs和SACs的可能概率组成的,计算一个特定的候选软件产品的每个安全功能组件SFCs和安全保证组件SACs的推荐概率,表达式如下:
其中,Sim(si,sa)表示软件产品si和sa之间的相似度,P*(si)表示候选软件产品的产品集,如果l(sa,SRa,b)=1,则表明软件产品sa使用到了安全需求SRb,否则l(sa,SRa,b)=0;
当计算出软件产品si候选的所有安全需求的可能的推荐概率后,进行排序,得到最终选择安全需求推荐向量,表达式如下:
L(si)=<l(si,sfci,1),…,l(si,sfci,X),l(si,saci,1),…,l(si,saci,C)> (5)
其中,l(si,sfci,b)≥l(si,sfci,a)≥θNP,1≤b≤a≤Q,,l(si,saci,b)≥l(si,saci,a)≥θNP,1≤b≤a≤R,θNP表示概率推荐值的阈值。
通过实验对比的方法,对给定软件产品的安全需求推荐向量自适应地确定阈值即θNP,比较出推荐值大的安全需求SRi=<sfci,1,…,sfci,Q,saci,1,...,,saci,R>,作为特定的候选软件产品si最终推荐的安全需求。
2.如权利要求1所述的一种基于数据驱动的软件安全需求推荐方法,其特征在于,可替代地,所述步骤2使用Labeled LDALDA算法自动地将软件功能描述聚类,获得多标签的Labeled LDA功能主题模型。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津大学,未经天津大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910854599.8/1.html,转载请声明来源钻瓜专利网。