软件功能安全需求分析方法、装置、设备及可读存储介质制造方法及图纸

技术编号:38393677 阅读:12 留言:0更新日期:2023-08-05 17:46
本发明专利技术提供了一种软件功能安全需求分析方法、装置、设备及可读存储介质,涉及软件开发技术领域,包括获取若干源代码,对若干源代码进行去重操作后得到若干示例代码;对每个示例代码拟定文档注释,根据所述文档注释筛选出安全需求代码,并为每个安全需求代码生成安全标签;将预处理后的安全需求代码和对应的安全标签、文档注释存入软件安全数据库中;获取软件开发需求文档,提取软件开发需求文档中涉及安全需求的待匹配文档注释和待匹配安全标签;根据所述待匹配安全标签和待匹配文档注释从软件安全数据库中查询得到推荐的安全需求代码,本发明专利技术实现了软件安全需求的自动化分析,减少开发人员的导致的安全性设计缺陷的同时,提高了软件开发效率。了软件开发效率。了软件开发效率。

【技术实现步骤摘要】
软件功能安全需求分析方法、装置、设备及可读存储介质


[0001]本专利技术涉及软件开发
,具体而言,涉及软件功能安全需求分析方法、装置、设备及可读存储介质。

技术介绍

[0002]在信息系统的软件开发过程中,以需求、设计、开发、测试、部署等阶段为主要对象,以业务安全和信息安全为出发点。在软件开发的安全领域,关键在于抓好源头。软件开发安全的源头在于安全需求分析,故而如何做好安全需求分析工作,对开发后的系统安全有着极其重要的影响。在开发过程中, 现有的安全需求分析工作均由人工分析完成,但由于开发人员的对于软件安全功能的专业知识不足,针对所提出的安全需求需要花费大量的时间进行代码编写,且所编写的代码也无法克服安全需求的漏洞, 从而导致了上线的业务可能存在安全隐患。

技术实现思路

[0003]本专利技术的目的在于提供一种软件功能安全需求分析方法、装置、设备及可读存储介质,以改善上述问题。为了实现上述目的,本专利技术采取的技术方案如下:第一方面,本申请提供了一种软件功能安全需求分析方法,包括:获取若干源代码,对若干源代码进行去重操作后得到若干示例代码;对每个示例代码拟定文档注释,根据所述文档注释筛选出安全需求代码,并为每个安全需求代码生成安全标签;对每个安全需求代码进行预处理,将预处理后的安全需求代码和对应的安全标签、文档注释存入软件安全数据库中;获取软件开发需求文档,提取软件开发需求文档中涉及安全需求的待匹配文档注释和待匹配安全标签;根据所述待匹配安全标签和待匹配文档注释从软件安全数据库中查询得到推荐的安全需求代码。
[0004]第二方面,本申请还提供了一种软件功能安全需求分析装置,包括:去重模块:获取若干源代码,对若干源代码进行去重操作后得到若干示例代码;筛选模块:对每个示例代码拟定文档注释,根据所述文档注释筛选出安全需求代码,并为每个安全需求代码生成安全标签;存储模块:对每个安全需求代码进行预处理,将预处理后的安全需求代码和对应的安全标签、文档注释存入软件安全数据库中;提取模块:获取软件开发需求文档,提取软件开发需求文档中涉及安全需求的待匹配文档注释和待匹配安全标签;匹配模块:根据所述待匹配安全标签和待匹配文档注释从软件安全数据库中查询得到推荐的安全需求代码。
[0005]第三方面,本申请还提供了一种软件功能安全需求分析设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现所述软件功能安全需求分析方法的步骤。
[0006]第四方面,本申请还提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述基于软件功能安全需求分析方法的步骤。
[0007]本专利技术的有益效果为:本专利技术通过将开源网站中的涉及软件安全需求的代码进行文档注释、标签匹配后生成软件安全数据库,再根据用户上传的开发需求文档自动分析出软件项目的安全性需求,将其与软件安全数据库中的文档注释进行匹配,得到语义关联度最高的代码,从而实现安全需求的自动化分析,减少开发人员的导致的安全性设计缺陷的同时,提高了软件开发效率。
[0008]本专利技术的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术实施例了解。本专利技术的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
[0009]为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本专利技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0010]图1为本专利技术实施例中所述的软件功能安全需求分析方法流程示意图;图2为本专利技术实施例中所述的软件功能安全需求分析装置结构示意图;图3为本专利技术实施例中所述的软件功能安全需求分析设备结构示意图。
[0011]图中标记:800、软件功能安全需求分析设备;801、处理器;802、存储器;803、多媒体组件;804、I/O接口;805、通信组件。
具体实施方式
[0012]为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本专利技术实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本专利技术的实施例的详细描述并非旨在限制要求保护的本专利技术的范围,而是仅仅表示本专利技术的选定实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0013]应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本专利技术的
描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0014]实施例1:本实施例提供了一种软件功能安全需求分析方法。
[0015]参见图1,图中示出了本方法包括:S1.获取若干源代码,对若干源代码进行去重操作后得到若干示例代码,所述源代码可从开源网站中获取得到;具体的,所述步骤S1包括:S11.对每个源代码进行分词操作得到若干个词条,本实施例中,将代码切分为一定大小的词条,即检测粒度,检测粒度分为固定粒度和自由粒度,本实施例中采用自由粒度;S12.计算每个源代码的词条的权重,根据词条的权重筛选出源代码的关键词;具体的,所述步骤S12包括:S121.获取当前源代码中的所有词条,并计算每个词条在当前源代码中出现的频率:;(1)式中,表示当前源代码中的全部词条的数量,表示当前源代码中第个词条出现的次数,表示第个词条在当前源代码中出现的频率。
[0016]S122.获取所有源代码的个数,计算每个词条在所有源代码出现的反文档频率;;(2)式中,表示第个词条在所有源代码出现的反文档频率,表示源代码的数量。
[0017]S123.根据词条的频率和反文档频率计算得到每个词条的权重;;(3)式中,表示第个词条的权重。
[0018]S124.对词条的权重进行降序排序,根据排序结果筛选出源代码的关键词,具体的,由词条的权重来决定源代码的关键词,可过滤掉代码中关键字如条件语句if 、循环语句for、定义函数def等,有效的寻找出真正的关键词。
[0019]S13.对每个关键词进行哈希计算得到对应的特征值,加权求和所有关键词的特征值得到源代码的特征向量;S14.对源代码的特征向量进行降维操作后得到源代码的特征值,具体的,将源代码的特征向量中大于0的编码置为1,小于0的编码置为0,由此得到源代码的特征值中的每个编码值为0或1;S15.计算任意两个源代码的特征值之间的汉明距离,若汉明距离小于预设阈值,则去掉其中一个源代码,汉明距离具体计算方式为:...

【技术保护点】

【技术特征摘要】
1.一种软件功能安全需求分析方法,其特征在于,包括:获取若干源代码,对若干源代码进行去重操作后得到若干示例代码;对每个示例代码拟定文档注释,根据所述文档注释筛选出安全需求代码,并为每个安全需求代码生成安全标签;对每个安全需求代码进行预处理,将预处理后的安全需求代码和对应的安全标签、文档注释存入软件安全数据库中;获取软件开发需求文档,提取软件开发需求文档中涉及安全需求的待匹配文档注释和待匹配安全标签;根据所述待匹配安全标签和待匹配文档注释从软件安全数据库中查询得到推荐的安全需求代码。2.根据权利要求1所述的软件功能安全需求分析方法,其特征在于, 对若干源代码进行去重操作,包括:对每个源代码进行分词操作得到若干个词条;计算每个源代码的词条的权重,根据词条的权重筛选出源代码的关键词;对每个关键词进行哈希计算得到对应的特征值,加权求和所有关键词的特征值得到源代码的特征向量;对源代码的特征向量进行降维操作后得到源代码的特征值;计算任意两个源代码的特征值之间的汉明距离,若汉明距离小于预设阈值,则去掉其中一个源代码。3.根据权利要求2所述的软件功能安全需求分析方法,其特征在于, 计算每个源代码的词条的权重,根据词条的权重筛选出源代码的关键词,包括:获取当前源代码中的所有词条,并计算每个词条在当前源代码中出现的频率;获取所有源代码的个数,计算每个词条在所有源代码出现的反文档频率;根据词条的频率和反文档频率计算得到每个词条的权重;对词条的权重进行降序排序,根据排序结果筛选出源代码的关键词。4.根据权利要求1所述的软件功能安全需求分析方法,其特征在于,提取软件开发需求文档中涉及安全需求的待匹配文档注释,包括:清洗软件开发需求文档中的无效字符;对清洗后的开发需求文档依次进行分词处理得到总词汇序列;分析总词汇序列中的每个词汇的词性,得到动词和名词;根据权重分别对动词和实体名词进行降序排序,得到动词序列和名词序列;从动词序列中获取第一预设排序数量的动词作为第一关键词汇,从名词序列中获取第二预设排序数量的名词作为第二关键词汇;采用基于贝叶斯分类器的词义消歧法分别对第一关键词汇和第二关键词汇进行消歧处理,得到第一关键词汇和第二关键词汇的含义;根据第一关键词汇和第二关键词汇的含义对总词汇序列进行语义分析,得到涉及安全需求的主干语句;由所有的涉及安全需求的主干语句构成待匹配文档注释。5.根据权利要求1所述的软件功能安全需求分析方法,其特征在于, 根据所述待匹配
安全标签和待匹配文档注释...

【专利技术属性】
技术研发人员:付杰贝松涛靳岩
申请(专利权)人:上海比瓴科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1