CN117056236A - 一种轨道交通信号软件的安全变量验证方法及装置 - Google Patents

一种轨道交通信号软件的安全变量验证方法及装置 Download PDF

Info

Publication number
CN117056236A
CN117056236A CN202311302036.0A CN202311302036A CN117056236A CN 117056236 A CN117056236 A CN 117056236A CN 202311302036 A CN202311302036 A CN 202311302036A CN 117056236 A CN117056236 A CN 117056236A
Authority
CN
China
Prior art keywords
preset
variable
safety
function
template
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202311302036.0A
Other languages
English (en)
Other versions
CN117056236B (zh
Inventor
刘莎晨
焦婷
向楠楠
付文佳
韩涛
石文昊
左建东
朱天民
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casco Signal Beijing Ltd
Original Assignee
Casco Signal Beijing Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Casco Signal Beijing Ltd filed Critical Casco Signal Beijing Ltd
Priority to CN202311302036.0A priority Critical patent/CN117056236B/zh
Publication of CN117056236A publication Critical patent/CN117056236A/zh
Application granted granted Critical
Publication of CN117056236B publication Critical patent/CN117056236B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种轨道交通信号软件的安全变量验证方法及装置,涉及轨道交通技术领域,主要目的在于实现通过自动验证轨道交通信号软件的安全变量提高验证质量。本发明主要的技术方案为:获取验证指令;基于验证指令,获取预设安全变量以及对应的至少一个预设函数模板;其中,所述预设函数模板是用于实现所述预设安全变量对应的刷新算法;基于所述预设安全变量以及对应的至少一个所述预设函数模板,利用预设判断规则判断在待验证软件代码中所述预设安全变量关联的刷新算法是否符合所述预设函数模板;若是,则验证合格;若否,则验证不合格。本发明用于轨道交通信号软件。

Description

一种轨道交通信号软件的安全变量验证方法及装置
技术领域
本发明涉及轨道交通技术领域,尤其涉及一种轨道交通信号软件的安全变量验证方法及装置。
背景技术
轨道交通信号系统是一种安全攸关的技术系统,“故障-安全”始终是轨道交通信号系统中铁路信号的关键设计原则。“故障-安全”是指铁路信号设备或系统一旦发生故障后能防止出现灾难性后果,自动导向安全一方的重要设计原则。由于轨道交通信号系统的执行基于软件,因此,许多安全隐患都直接或间接地与软件设计相关。其中,涉险最多的案例是因安全相关信息的超时错误保留所造成的,因此,需要对铁路信号相关软件中的安全相关信息进行隐患排查。
目前,采用代码走查方式进行隐患排查。代码走查是指有经验的人,在脑子里动态的执行代码,按照一定的标准审核代码是否正确。
但是,如果审查的项目过多,采用上述方法无疑会极大的加重审查人员的负担,并且由于严重依赖个人经验,存在人员能力不足造成排查质量的参差问题。
发明内容
鉴于上述问题,本发明提供一种轨道交通信号软件的安全变量验证方法及装置,主要目的是为了实现通过自动验证轨道交通信号软件的安全变量提高验证质量。
为解决上述技术问题,本发明提出以下方案:
第一方面,本发明提供一种轨道交通信号软件的安全变量验证方法,所述方法包括:
获取验证指令;
基于验证指令,获取预设安全变量以及对应的至少一个预设函数模板;其中,所述预设函数模板是用于描述所述预设安全变量对应的刷新算法;
基于所述预设安全变量以及对应的至少一个所述预设函数模板,利用预设判断规则判断在待验证软件代码中所述预设安全变量关联的刷新算法是否符合预设函数模板;
若是,则验证合格;
若否,则验证不合格。
第二方面,本发明提供一种轨道交通信号软件的安全变量验证装置,包括:
第一获取单元,用于获取验证指令;
第二获取单元,用于基于验证指令,获取预设安全变量以及对应的至少一个预设函数模板;其中,所述预设函数模板是用于描述所述预设安全变量对应的刷新算法;
判断单元,用于基于所述预设安全变量以及对应的至少一个所述预设函数模板,利用预设判断规则判断在待验证软件代码中所述预设安全变量关联的刷新算法是否符合预设函数模板;
第一确定单元,用于若在待验证软件代码中所述预设安全变量关联的刷新算法符合所述预设函数模板,则验证合格;
第二确定单元,用于若在待验证软件代码中所述预设安全变量关联的刷新算法不符合所述预设函数模板,则验证不合格。
为了实现上述目的,根据本发明的第三方面,提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述第一方面所述轨道交通信号软件的安全变量验证方法。
为了实现上述目的,根据本发明的第四方面,提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如第二方面所述用于轨道交通信号软件的安全变量验证装置的全部或部分步骤。
借由上述技术方案,本发明提供的轨道交通信号软件的安全变量验证方法及装置,是对于无法自动验证软件,导致验证质量参差不齐的问题。为此,本发明通过获取验证指令;基于验证指令,获取预设安全变量以及对应的至少一个预设函数模板;其中,所述预设函数模板是描述实现所述预设安全变量对应的刷新算法;基于所述预设安全变量以及对应的至少一个所述预设函数模板,利用预设判断规则判断在待验证软件代码中所述预设安全变量关联的算法是否正确;若是,则验证合格;若否,则验证不合格。本发明可以实现通过自动验证轨道交通信号软件的安全变量提高验证质量。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的一种轨道交通信号软件的安全变量验证方法流程图;
图2示出了本发明实施例提供的另一种轨道交通信号软件的安全变量验证方法流程图;
图3示出了本发明实施例提供的设置预设安全变量清单的方法流程图;
图4示出了本发明实施例提供的设置预设函数模板的方法流程图;
图5示出了本发明实施例提供的一种轨道交通信号软件的安全变量验证装置的组成框图;
图6示出了本发明实施例提供的另一种轨道交通信号软件的安全变量验证装置的组成框图;
图7示出了本发明实施例提供的设置预设安全变量清单单元的组成框图;
图8示出了本发明实施例提供的设置预设函数模板三元的组成框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
对于目前对于无法自动验证软件,导致验证质量参差不齐的问题。针对此问题,发明人想到先将待验证软件代码中涉及的所有安全变量全部预先获取,再设置所有安全变量对应的正确的函数模板,然后,以安全变量为媒介,基于该正确的函数模板通过匹配方式自动检查软件代码中的安全变量所在函数是否设计正确。
为此,本发明实施例提供了一种轨道交通信号软件的安全变量验证方法,通过该方法实现提高验证质量,其具体执行步骤如图1所示,包括:
101、获取验证指令。
当软件开发人员完成轨道交通信号软件之后,正式应用之前,需要对该软件中编写的代码进行检查,先检查代码是否符合语言编写的标准,有无逻辑漏洞;再检查代码完成的功能是否符合设计要求。其中,就包括安全相关设计要求,具体涉及的安全相关内容参考标准EN50128,以及铁工电[2020]194号文“编号5.1.13~5.1.15描述了防止安全相关信息的“错误保留”的措施。”,铁路信号安全软件编程暂行技术要求及铁路信号安全软件测试暂行技术要求。
本实施例是针对软件中关于安全变量的检查。 将该轨道交通信号软件作为本实施例的待验证软件,先导入终端,再获取验证指令,所述验证指令用于指示对待验证软件代码进行安全变量所在函数是否设计正确的验证。验证指令的获取过程,可以是终端通过接收用户指令实现的,或者,也可以是终端在其他事件触发下生成验证指令。其中,所述的事件,例如可以是终端检测到待验证软件被载入、开启验证程序等,本实施例对此不做具体限定。
102、基于验证指令,获取预设安全变量以及对应的至少一个预设函数模板。
其中,所述预设函数模板是用于描述所述预设安全变量对应的刷新算法,即作为正确的函数用于验证待验证软件代码。
本实施例对于待验证软件代码中涉及的所有的安全变量已经预先全部提取进行储存。具体而言,提取过程可以是软件开发人员在开发初期根据行业技术标准要求提前列出,也可以是开发完成后,从编写好的代码中总结得出,本实施例不做具体限定。也就是说,在本实施例中,在对待验证软件代码进行验证之前,已经预先设置有该待验证软件代码对应的所有的预设安全变量。
每个预设安全变量都存在对应的刷新算法,该刷新算法是软件开发人员根据技术要求进行设计的。例如:安全变量“g_State”,安全变量含义为系统状态,刷新算法设计为“每周期刷新”。需要说明的是:在待验证软件代码中每个预设安全变量所在的函数应该是实现对应的刷新算法的,但是,由于存在软件开发人员在编写代码中出现错误导致不能实现其刷新算法的情况,因此,才需要验证,然后及时修正。
针对每种刷新算法编写实现该刷新算法的至少一种描述模板,得到预设函数模板,因此,该预设函数模板的数量可以为一个,也可以是多个。因此,一个预设安全变量可能对应一个预设函数模板,也可能对应多个预设函数模板。需要说明的是:当待验证软件代码中预设安全变量所在的函数只要与多个“预设函数模板”中的其中一个相同,就说明该预设安全变量所在函数设计正确。
预设函数模板也是预先储存的,并且可以通过增加标识的方式或者设置类型方式建立预设安全变量与预设函数模板之间的关联信息,用于获取预设安全变量对应的预设函数模板。
从步骤101得到所述验证指令之后,从预先储存的多个预设安全变量中逐一获取预设安全变量,然后通过关联信息获取所述预设安全变量对应的至少一个预设函数模板。
103、基于所述预设安全变量以及对应的至少一个所述预设函数模板,利用预设判断规则判断在待验证软件代码中所述预设安全变量关联的刷新算法是否符合预设函数模板。
从步骤102得到预设安全变量以及对应的至少一个预设函数模板之后,在待验证软件代码中查找预设安全变量所在函数,即为该预设安全变量关联的函数,可能是一个函数,也可能是多个函数。然后将查找到的函数展开为安全变量刷新算法的实现代码,与该预设安全变量对应的预设函数模板进行对比,当存在预设函数模板与该预设安全变量关联的函数对应的代码匹配时,则确定所述预设安全变量关联的刷新算法符合预设函数模板;反之,则不符合预设函数模板。预设安全变量关联的每个关联函数判断方法相同。
104、若在待验证软件代码中所述预设安全变量关联的刷新算法符合预设函数模板,则验证合格。
从步骤103得到在待验证软件代码中所述预设安全变量关联的刷新算法符合预设函数模板(即所述预设安全变量关联的刷新算法与其对应的预设函数模板至少一个匹配)之后,确认验证合格。可以将确认验证合格的预设安全变量进行标记,例如:标记OK、标记合格等,本实施例不做具体限定。
105、若在待验证软件代码中所述预设安全变量关联的刷新算法不符合预设函数模板,则验证不合格。
从步骤103得到在待验证软件代码中所述预设安全变量关联的刷新算法不符合预设函数模板(即所述预设安全变量关联的刷新算法与其对应的预设函数模板一个也匹配不上)之后,确认验证不合格。可以将确认验证不合格的预设安全变量进行标记,例如:标记NOK、标记不合格等,本实施例不做具体限定。
基于上述图1实施例的实现方式可以看出,本发明提供一种轨道交通信号软件的安全变量验证方法,通过编码实现了自动化的判断,实现了软件级部分代码走读由人工到自动化安全验证的过程,避免了由于严重依赖个人经验,存在人员能力不足或审查负担太重造成的排查质量参差问题。
进一步的,为了提高步骤103的判断效率,本发明采用将待验证软件代码先分解成函数模块的方式,按照一定顺序进行匹配;并且还增加了基于验证结果更新预设安全变量和预设函数模板的方法,可以提高后续验证的效率。作为对图1所示实施例的细化及扩展,本发明实施例还提供了另一种轨道交通信号软件的安全变量验证方法,如图2所示,其具体步骤如下:
201、获取验证指令。
本步骤结合上述方法中101步骤的描述,在此相同的内容不赘述。
202、基于验证指令,获取预设安全变量以及对应的至少一个预设函数模板。
本步骤结合上述方法中102步骤的描述,在此相同的内容不赘述。
具体而言,基于所述验证指令,获取预设安全变量清单和多个预设函数模板;其中,所述预设安全变量清单至少包括预设安全变量以及对应的预设函数模板类型;利用所述预设安全变量清单,逐一提取所述预设安全变量以及对应的所述预设函数模板类型;基于所述预设函数模板类型,获取预设安全变量对应的至少一个预设函数模板。
举例说明:
《预设安全变量清单》如表1所示:
表1
需要说明的是:在表1中,用A、B、C等字母表示预设函数模板类型,是为了方便后续获取预设安全变量对应的预设函数模板。
举例说明:
类型B预设函数模板如下所示:
Templete<B, VAL>
If(B#update() eq True)
{
B#setStatus(VAL)
}
Else if (B#update() not eq True and B#remainTimeValid()eq True)
{
B#keepStatus(VAL)
B#remainTimeUpdate(VAL)
}
Else
{
B#setDefaultStatus(VAL)
}
上述预设函数模板的对应的预设安全变量为 VAL。上述语句实现的功能为 每周期根据接收到的数据刷新VAL,若未接收到数据,在宽恕周期内保持VAL的值,超过宽恕周期,导向安全侧。
类型C预设函数模板如下所示:
Templete<C, VAL>
if (C#remainTimeValid() eq True)
{
C#setStatus(VAL)
}
Else
{
C#setDefaultStatus(VAL)
}
上述预设函数模板的对应的预设安全变量为 VAL。上述语句实现的功能为 通信中断超宽恕后,导向安全侧。
203、基于所述预设安全变量以及对应的至少一个所述预设函数模板,利用预设判断规则判断在待验证软件代码中所述预设安全变量关联的刷新算法是否符合预设函数模板。
本步骤结合上述方法中103步骤的描述,在此相同的内容不赘述。
基于所述预设安全变量,利用预设查找规则遍历所述待验证软件代码查找出所述预设安全变量所在的函数,得到所述预设安全变量关联的函数,进一步得到预设安全变量关联代码;
将所述预设安全变量关联的函数与所述预设安全变量对应的预设函数模板进行代码语句匹配;当所述预设安全变量关联的函数与所述预设安全变量对应的预设函数模板中的代码语句完全匹配时,则确定所述预设安全变量关联的刷新算法符合预设函数模板;当所述预设安全变量关联的代码与所述预设安全变量对应的预设函数模板中的代码语句不完全匹配时,则确定所述预设安全变量关联的刷新算法不符合所述预设函数模板。
其中,所述基于所述预设安全变量,利用预设查找规则遍历所述待验证软件代码查找出所述预设安全变量所在的函数,得到所述预设安全变量关联的函数,包括:
获取所述待验证软件代码;
基于所述待验证软件代码中的子作用域,获取多个待匹配预设函数模块;其中,所述待匹配预设函数模块是包含同一预设安全变量在所述待验证软件代码中相关的所有子作用域的父作用域;
基于所述预设安全变量,遍历所有的所述待匹配预设函数模块查找出目标待匹配预设函数模块;其中,所述目标待匹配预设函数模块是所述预设安全变量所在的待匹配预设函数模块;
在所述目标待匹配预设函数模块中查找出所述预设安全变量关联的函数。进而可以基于该函数获取对应的代码,用于与预设函数模板进行代码匹配。
举例说明:
第一步骤:在待验证软件代码中搜索所有安全变量相关的子作用域“{}”;
第二步骤:在得到的所有安全变量相关的子作用域“{}”中,扫描同一安全变量的所有子作用域‘{}’,确定其位置,作为同一安全变量对应的作用域图的叶子节点;且沿着该作用域图中的每个叶子节点向父作用域搜索,直至搜索到目标父作用域;其中,所述目标父作用域是包含该作用域图中的所有叶子节点的父作用域;需要说明的是:假设有N个安全变量,就会都有N个目标父作用域;然后扫描该目标父作用域中的所有子作用域,构建该目标父作用域与其子作用域的关系图,该关系图确定了一个安全变量作用域;
第三步骤:将该安全变量作用域中包含的所有子作用域进行展开,即将含有函数体的代码展开为仅含有基本代码的代码段,以便于将展开的安全变量作用域与函数模板做匹配。需要说明的是展开函数过程中使用实参代替形参进行展开。
下面是实际工程中函数模块中SABC所对应代码段,对应的是类型C预设函数模板,具体内容如下所示:
1. if(pCBA_info->fgive_count>=30) /*在宽恕周期内*/
2. {
3. ......
4. /*处理数据包*/
5. l_SABC_CBA_Accept_Data(pCBA_info, (BYTE*)data_A, 0, 30);
6. ........
7. /* memcmp是比较data_A和pCBA_info->in这两个变量的前MSG_SABC_CBA_LENGTH个位置是否相同。如果相同的话,这个==0就成立,就进入if条件*/
8. if(memcmp(data_A,pCBA_info->in,MSG_SABC_CBA_LENGTH)==0)
9. {
10. /*如果数据相同*/
11. pCBA_info->in_cnt++;
12. }
13. else
14. {
15. /*输出数据不相同*/
16. ......
17. }
18. }
19. else
20. {
21. /*超过宽恕周期*/
22. memset(data_A , 0 ,MSG_SABC_CBA_LENGTH);/*清空安全变量data_A的数据,一共包含MSG_SABC_CBA_LENGTH的长度*/
23. ......
24. }
25. Void l_SABC_CBA_Accept_Data(struct CBA_t* pInfo, BYTE* pData, intindex, int size)
26. {
27. ......
28. pInfo->in = pData[index];
29. ......
30. }
在上面代码中存在一个函数 l_SABC_CBA_Accept_Data,将这个函数的内容展开到代码段中,展开后的代码如下:
1. if(pCBA_info->fgive_count>=30) /*在宽恕周期内*/
2. {
3. ......
4. /*处理数据包*/
5. l_SABC_CBA_Accept_Data(pCBA_info, (BYTE*)data_A, 0, 30);
6. { ......
7. pCBA_info->in = data_A[0];
8. ......
9. }
10. /* memcmp是比较data_A和pCBA_info->in这两个变量的前MSG_SABC_CBA_LENGTH个位置是否相同。如果相同的话,这个==0就成立,就进入if条件*/
11. if(memcmp(data_A,pCBA_info->in,MSG_SABC_CBA_LENGTH)==0)
12. {
13. /*如果数据相同*/
14. pCBA_info->in_cnt++;
15. }
16. else
17. {
18. /*输出数据不相同*/
19. ......
20. }
21. }
22. else
23. {
24. /*超过宽恕周期*/
25. memset(data_A , 0 ,MSG_SABC_CBA_LENGTH);/*清空安全变量data_A的数据,一共包含MSG_SABC_CBA_LENGTH的长度*/
26. ......
27. }
其中,“........”代表省略部分的代码段。
将“l_SABC_CBA_Accept_Data”函数的作用域填充到代码段中(即上述代码的5-9段),在作用域中使用实参代替函数的形参(即上述代码的5-9段),其余部分原样填充到代码段中。形参是在函数声明过程中的参数,实参就是实际传入函数的参数。
下面具体介绍匹配过程。使用模板与上面得到的代码段进行匹配;
以下模板与上面的代码对应,对应表1中的类型C,具体如下所示:
Templete<T, VAL>
if (T#remainTimeValid(greq) )
{
T#setStatus(VAL)
}
Else
{
T#setDefaultStatus(VAL)
}
模板中T代表模板类型,VAL代表模板所关联的安全相关变量。
其中,T#setStatus(VAL)中#setStatus代表针对VAL变量相关的一组正则表达式,用来匹配特定模板下针对变量VAL的特定操作。
例如:
在T#remainTimeValid( greq) 中,参数还可以为eq、leeq、gr、le等,本实施不做具体限定;在这里面T#remainTimeValid()代表一个类型的表达式,表示判断宽恕周期时间是否有效;greq代表大于等于某值时有效,针对greq,假设宽恕周期计时器为timer,表达式为.*?(timer).?>=.*?(\d)*;
T#setStatus(VAL)代表(VAL) = (\d)*、 (VAL)=(\d)*和(VAL).?=.?(\d)*中的任何一种;
T#setDefaultStatus(VAL)形式可以表达如下:
.*?(memset).?(VAL.?,.?[0x0u|0x0|0u|0|0U].?,.?sizeof(VAL));
.*?(g_Refresh_Memory).?(.?VAL.?);
.*?(g_Set_Value)(VAL, FALSE);
(VAL) = [0|0U];
(VAL)=[0|0U]。
类型C的匹配过程详解:
1. 使用安全变量填充安全变量对应的预设函数模板。
2. 通过正则表达式匹配到if开头的,如果找到这一行中存在if语句后,使用正则表达式(.*)提取判断表达式;将提取到的判断表达式使用T#remainTimeValid(greq)进行匹配;匹配成功,转到步骤3,如果不成功转到步骤6;
3. 进一步提取{}域中的代码段,使用T#setStatus(VAL)规则进行匹配;匹配成功,转到步骤4,如果不成功转到步骤6;
4. 在同级作用域中,匹配最后结束语句中是否存在else结尾代码段,如果未匹配到,转到步骤6,如果成功,转到步骤5;
5. 提取else关联的代码段,匹配else关联代码段中接下来部分中是否满足T#setDefaultStatus(VAL)的条件;如果成功,则代表OK;否则,转到步骤6。
6. 代表NOK。
将上面的代码段与(类型C的模板)进行匹配,匹配步骤使用上述类型C的匹配步骤,可以得出结论:输出OK。
另外类型A举例说明如下:
假设预设安全变量g_State所在的函数模块“memset(g_State, 0, sizeof(g_State))”;如表1所示:安全变量g_State对应的类型A的预设函数模板“每周期刷新,导向安全侧”的代码种类包括如下三种:
①memset(VAL)0,sizeof(VAL)));
②g_Refresh_Memory(VAL));
③g_Set_Value(VAL) FALSE);匹配过程为:对待验证代码进行代码扫描,可以得到g_State所在的函数模块,能够匹配到上述三种代码类型中的第二种,即匹配成功。
204、若在待验证软件代码中所述预设安全变量关联的函数正确,则验证合格。
本步骤结合上述方法中104步骤的描述,在此相同的内容不赘述。
205、若在待验证软件代码中所述预设安全变量关联的函数不正确,则验证不合格。
本步骤结合上述方法中105步骤的描述,在此相同的内容不赘述。
将所有验证不合格的所述预设安全变量和其关联的函数进行标记,并形成《审查意见单》,以便后续软件开发人员进行逐条确认。
206、当验证不合格的预设安全变量关联的函数属于新的刷新算法时,则设置新的刷新算法对应的预设函数模板,进行储存。
从步骤205得到《审查意见单》中的验证不合格的预设安全变量关联的函数之后,软件开发人员进行逐条确认。当发现验证不合格的预设安全变量关联的函数未使用通用的刷新算法,而是使用新的刷新算法,导致匹配失败,通过软件开发人员和软件安全验证人员沟通后,由软件安全验证人员人工修改为OK。并可以考虑将新的刷新算法对应的函数更新至预设函数模板库中,以便下次同样算法对应的函数可以匹配成功。
207、当验证不合格的预设安全变量关联的函数中的预设安全变量为不需要刷新的变量时,则将预设安全变量从预设安全变量清单中删除。
从步骤205得到《审查意见单》中的验证不合格的预设安全变量关联的函数之后,软件开发人员进行逐条确认。当发现验证不合格的预设安全变量不需要被刷新的,通过软件开发人员和软件安全验证人员沟通后,关闭相关的缺陷问题。将该预设安全变量从《预设安全变量清单》中删除,以便后续不再检查该预设安全变量,制造不必要的NOK项,提高验证效率。
基于上述图2的实现方式可以看出,本发明提供一种轨道交通信号软件的安全变量验证方法,利用将待验证软件代码先分解成若干函数模块,再进行遍历识别,提供验证效率;并增加验证结果标记,更有效的发现软件处理的缺陷,使得人员可以重点的关注特殊处理或场景,并且及时更新预设安全变量清单和预设函数模板,进一步提升验证效率和质量。
进一步的,为了保证预设安全变量清单中预设安全变量与待验证软件代码中的预设安全变量的一致性和全面性,作为对图1所示实施例的细化及扩展,本发明实施例还提供了一种轨道交通信号软件的安全变量验证方法,主要是介绍如何设置所述预设安全变量清单,如图3所示,其具体步骤如下:
301、基于预设安全需求信息,设置预设安全变量以及预设安全变量对应的安全侧信息和刷新算法。
依据软件项目相关危险源及危害分析过程,确定系统级及软件级的安全需求,形成《预设安全需求列表》,即预设安全需求信息。然后通过安全需求验证活动,确保上级的安全需求被下级需求正确覆盖。并通过软件详细设计文档,关注影响安全措施和接口等安全关键模块,确保软件需求文档和详细设计文档对于安全需求追踪完整性和一致性。再分析安全措施实现相关的接口及系统状态变量,确认预设安全变量。并且依据危险源类型,确定所述预设安全变量对应的安全侧信息。
预设安全变量对应的刷新算法是软件开发人员根据项目需求和行业技术要求进行自主设计的。
302、基于预设安全变量对应的刷新算法,设置预设安全变量对应的预设函数模板类型。
通过步骤301得到预设安全变量对应的刷新算法之后,设置预设安全变量对应的预设函数模板类型,这个类型可以用字母或者数字表示,目的是方便调取预设函数模板。如表1所示,不同的预设安全变量“g_State”和“g_App_Out_Data”的刷新算法相同都为“每周期刷新”,因此,都将对应的预设函数模板类型设置为“A”。
303、基于预设安全变量、所述预设安全变量对应的安全侧信息、刷新算法和预设函数模板类型,构建预设安全变量清单。
从步骤301和302得到预设安全变量、所述预设安全变量对应的安全侧信息、刷新算法和预设函数模板类型之后,还可以将预设安全变量分为以下三种类型:系统安全输入变量、系统安全输出变量、系统安全状态变量。最终形成《预设安全变量清单》如表1所示。
基于上述图3的实现方式可以看出,本发明提供一种轨道交通信号软件的安全变量验证方法,可以保证预设安全变量清单中预设安全变量相对于待验证软件而言不遗漏,并且一致,避免出现验证错误,提高验证质量。
进一步的,为了保证预设函数模板与预设安全变量的刷新算法的一致性和全面性,作为对图1所示实施例的细化及扩展,本发明实施例还提供了另一种轨道交通信号软件的安全变量验证方法,主要是介绍如何设置所述预设函数模板,如图4所示,其具体步骤如下:
401、基于预设安全变量的类型和安全侧信息,设置预设安全变量的防护措施,且构建安全实践模板。
其中,所述安全实践模板包括所有的预设安全变量以及对应的安全措施。
从《预设安全变量清单》中,获取预设安全变量的类型和安全侧信息,结合《铁路信号安全软件编程暂行技术要求及铁路信号安全软件测试暂行技术要求》中防止安全相关信息的“错误保留”的措施,构建系统安全系统状态变量“故障-安全”的所述安全实践模板。
402、基于安全实践模板进行代码编写,得到预设函数模板。
从步骤401得到安全实践模板之后,软件开发人员将所述安全实践模板转化为用于计算机匹配的模板描述语言,得到预设函数模板。
403、基于刷新算法的类型设置预设函数模板类型。
从所述步骤402得到预设函数模板之后,基于刷新算法的类型设置预设函数模板类型,例如:刷新算法的类型为“每周期刷新”,则设置预设函数模板类型为“A”,刷新算法的类型为“每周期根据接收到的数据刷新,若未接收到数据,在宽恕周期内保持,超过宽恕周期”,则设置预设函数模板类型为“B”。设置的目的是为了使预设安全变量与应该对应的预设函数模板建立对应关联关系,方便提取。
基于上述图4的实现方式可以看出,本发明提供一种轨道交通信号软件的安全变量验证方法,可以保证预设函数模板能够实现对应的预设安全变量的刷新算法,避免出现验证错误,提高验证质量。
进一步的,作为对上述图1所示方法的实现,本发明实施例还提供了一种轨道交通信号软件的安全变量验证装置,用于对上述图1所示的方法进行实现。该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。如图5所示,该装置包括:
第一获取单元31,用于获取验证指令;
第二获取单元32,用于基于从所述第一获取单元31得到的验证指令,获取预设安全变量以及对应的至少一个预设函数模板;其中,所述预设函数模板是用于实现所述预设安全变量对应的刷新算法;
判断单元33,用于基于从所述第二获取单元32得到的所述预设安全变量以及对应的至少一个所述预设函数模板,利用预设判断规则判断在待验证软件代码中所述预设安全变量关联的刷新算法是否符合所述预设函数模板;
第一确定单元34,用于若从所述判断单元33得到的在待验证软件代码中所述预设安全变量关联的刷新算法符合所述预设函数模板,则验证合格;
第二确定单元35,用于若从所述判断单元33得到的在待验证软件代码中所述预设安全变量关联的刷新算法不符合所述预设函数模板,则验证不合格。
进一步的,作为对上述图2所示方法的实现,本发明实施例还提供了另一种轨道交通信号软件的安全变量验证装置,用于对上述图2所示的方法进行实现。该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。如图6所示,该装置包括:
第一获取单元31,用于获取验证指令;
第二获取单元32,用于基于从所述第一获取单元31得到的验证指令,获取预设安全变量以及对应的至少一个预设函数模板;其中,所述预设函数模板是用于实现所述预设安全变量对应的刷新算法;
判断单元33,用于基于从所述第二获取单元32得到的所述预设安全变量以及对应的至少一个所述预设函数模板,利用预设判断规则判断在待验证软件代码中所述预设安全变量关联的刷新算法是否符合所述预设函数模板;
第一确定单元34,用于若从所述判断单元33得到的在待验证软件代码中所述预设安全变量关联的刷新算法符合所述预设函数模板,则验证合格;
第二确定单元35,用于若从所述判断单元33得到的在待验证软件代码中所述预设安全变量关联的刷新算法不符合所述预设函数模板,则验证不合格;
第一设置单元36,用于当从所述第一确定单元34得到的验证不合格的所述预设安全变量关联的函数属于新的刷新算法时,则设置所述新的刷新算法对应的预设函数模板,进行储存,用于验证所述待验证软件代码。
删除单元37,用于当从所述第二确定单元35得到的验证不合格的所述预设安全变量关联的函数中的所述预设安全变量为不需要刷新的变量时,则将所述预设安全变量从所述预设安全变量清单中删除。
进一步的,所述判断单元33,包括:
查找模块331,用于基于所述预设安全变量,利用预设查找规则遍历所述待验证软件代码查找出所述预设安全变量所在的函数,得到所述预设安全变量关联的函数;
匹配模块332,用于将从所述查找模块331得到的所述预设安全变量关联的函数与所述预设安全变量对应的预设函数模板进行代码语句匹配;第一确定模块333,用于当从所述匹配模块332得到的所述预设安全变量关联的函数与所述预设安全变量对应的预设函数模板中的代码语句完全匹配时,则确定所述预设安全变量关联的函数正确;
第二确定模块334,用于当从所述匹配模块332得到的所述预设安全变量关联的函数与所述预设安全变量对应的预设函数模板中的代码语句不完全匹配时,则确定所述预设安全变量关联的函数不正确。
进一步的,所述查找模块331,包括:
第一获取子模块3311,用于获取所述待验证软件代码;
第二获取子模块3312,用于基于从所述第一获取子模块3311得到的所述待验证软件代码中的子作用域,获取多个待匹配预设函数模块;其中,所述待匹配预设函数模块是包含同一预设安全变量在所述待验证软件代码中相关的所有子作用域的父作用域;
第一查找子模块3313 ,用于基于所述预设安全变量,遍历所有从所述第二获取子模块3312得到的所述待匹配预设函数模块查找出目标待匹配预设函数模块;其中,所述目标待匹配预设函数模块是所述预设安全变量所在的待匹配预设函数模块;
第二查找子模块3314,用于在从所述第一查找子模块3313得到的所述目标待匹配预设函数模块中查找出所述预设安全变量关联的函数。
进一步的,所述第二获取单元32,包括:
第一获取模块321,用于基于所述验证指令,获取预设安全变量清单和多个预设函数模板;其中,所述预设安全变量清单至少包括预设安全变量以及对应的预设函数模板类型;
提取模块322,用于利用从所述第一获取模块321得到的所述预设安全变量清单,逐一提取所述预设安全变量以及对应的所述预设函数模板类型;
第二获取模块323,用于基于从所述提取模块322得到的所述预设函数模板类型,获取预设安全变量对应的至少一个预设函数模板。
进一步的,作为对上述图3所示方法的实现,本发明实施例还提供了另一种轨道交通信号软件的安全变量验证装置,用于对上述图3所示的方法进行实现。该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。如图7所示,该装置包括:
第二设置单元38,用于设置所述预设安全变量清单,具体包括:
第一设置模块381,用于基于预设安全需求信息,设置预设安全变量以及所述预设安全变量对应的安全侧信息和刷新算法;
第二设置模块382,用于基于从所述第一设置模块381得到的所述预设安全变量对应的刷新算法,设置所述预设安全变量对应的预设函数模板类型;
第一构建模块383,用于基于从所述第一设置模块381得到的所述预设安全变量、所述预设安全变量对应的安全侧信息、刷新算法和从所述第二设置模块382得到的预设函数模板类型,构建所述预设安全变量清单。
进一步的,作为对上述图4所示方法的实现,本发明实施例还提供了另一种轨道交通信号软件的安全变量验证装置,用于对上述图4所示的方法进行实现。该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。如图8所示,该装置包括:
第三设置单元39,用于设置所述预设函数模板,具体包括:
第二构建模块391,用于所述基于所述预设安全变量的类型和安全侧信息,设置所述预设安全变量的防护措施,且构建安全实践模板;其中,所述安全实践模板包括所有的预设安全变量以及对应的安全措施;
编写模块392,用于基于从所述第二构建模块391得到的所述安全实践模板进行代码编写,得到预设函数模板;
设置模块393,用于基于所述刷新算法的类型设置从所述编写模块392得到的所述预设函数模板类型。
进一步的,本发明实施例还提供一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述图1-3中所述的轨道交通信号软件的安全变量验证方法。
进一步的,本发明实施例还提供一种存储介质,所述存储介质用于存储计算机程序,其中,所述计算机程序运行时控制所述存储介质所在设备执行上述图1-3中所述的轨道交通信号软件的安全变量验证方法。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
此外,存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种轨道交通信号软件的安全变量验证方法,其特征在于,所述方法包括:
获取验证指令;
基于验证指令,获取预设安全变量以及对应的至少一个预设函数模板;其中,所述预设函数模板是用于描述所述预设安全变量对应的刷新算法;
基于所述预设安全变量以及对应的至少一个所述预设函数模板,利用预设判断规则判断在待验证软件代码中所述预设安全变量关联的刷新算法是否符合所述预设函数模板;
若是,则验证合格;
若否,则验证不合格。
2.根据权利要求1所述的方法,其特征在于,所述基于所述预设安全变量以及对应的至少一个所述预设函数模板,利用预设判断规则判断在待验证软件代码中所述预设安全变量关联的刷新算法是否符合所述预设函数模板,包括:
基于所述预设安全变量,利用预设查找规则遍历所述待验证软件代码查找出所述预设安全变量所在的函数,得到所述预设安全变量关联的函数;
将所述预设安全变量关联的函数与所述预设安全变量对应的预设函数模板进行代码语句匹配;
当所述预设安全变量关联的函数与所述预设安全变量对应的预设函数模板中的代码语句完全匹配时,则确定所述预设安全变量关联的刷新算法符合所述预设函数模板;
当所述预设安全变量关联的函数与所述预设安全变量对应的预设函数模板中的代码语句不完全匹配时,则确定所述预设安全变量关联的刷新算法不符合所述预设函数模板。
3.根据权利要求2所述的方法,其特征在于,所述基于所述预设安全变量,利用预设查找规则遍历所述待验证软件代码查找出所述预设安全变量所在的函数,得到所述预设安全变量关联的函数,包括:
获取所述待验证软件代码;
基于所述待验证软件代码中的子作用域,获取多个待匹配预设函数模块;其中,所述待匹配预设函数模块是包含同一预设安全变量在所述待验证软件代码中相关的所有子作用域的父作用域;
基于所述预设安全变量,遍历所有的所述待匹配预设函数模块查找出目标待匹配预设函数模块;其中,所述目标待匹配预设函数模块是所述预设安全变量所在的待匹配预设函数模块;
在所述目标待匹配预设函数模块中查找出所述预设安全变量关联的函数。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述基于验证指令,获取预设安全变量以及对应的至少一个预设函数模板,包括:
基于所述验证指令,获取预设安全变量清单和多个预设函数模板;其中,所述预设安全变量清单至少包括预设安全变量以及对应的预设函数模板类型;
利用所述预设安全变量清单,逐一提取所述预设安全变量以及对应的所述预设函数模板类型;
基于所述预设函数模板类型,获取预设安全变量对应的至少一个预设函数模板。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
设置所述预设安全变量清单,具体包括:
基于预设安全需求信息,设置预设安全变量以及所述预设安全变量对应的安全侧信息和刷新算法;
基于所述预设安全变量对应的刷新算法,设置所述预设安全变量对应的预设函数模板类型;
基于预设安全变量、所述预设安全变量对应的安全侧信息、刷新算法和预设函数模板类型,构建所述预设安全变量清单。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
设置所述预设函数模板,具体包括:
基于所述预设安全变量的类型和安全侧信息,设置所述预设安全变量的防护措施,且构建安全实践模板;其中,所述安全实践模板包括所有的预设安全变量以及对应的安全措施;
基于所述安全实践模板进行代码编写,得到预设函数模板;
基于所述刷新算法的类型设置所述预设函数模板类型。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当验证不合格的所述预设安全变量关联的函数属于新的刷新算法时,则设置所述新的刷新算法对应的预设函数模板,进行储存,用于验证所述待验证软件代码;
当验证不合格的所述预设安全变量关联的函数中的所述预设安全变量为不需要刷新的变量时,则将所述预设安全变量从所述预设安全变量清单中删除。
8.一种轨道交通信号软件的安全变量验证装置,其特征在于,包括:
第一获取单元,用于获取验证指令;
第二获取单元,用于基于验证指令,获取预设安全变量以及对应的至少一个预设函数模板;其中,所述预设函数模板是用于描述所述预设安全变量对应的刷新算法;
判断单元,用于基于所述预设安全变量以及对应的至少一个所述预设函数模板,利用预设判断规则判断在待验证软件代码中所述预设安全变量关联的刷新算法是否符合所述预设函数模板;
第一确定单元,用于若在待验证软件代码中所述预设安全变量关联的刷新算法符合所述预设函数模板,则验证合格;
第二确定单元,用于若在待验证软件代码中所述预设安全变量关联的刷新算法不符合所述预设函数模板,则验证不合格。
9.一种存储介质,所述存储介质包括存储的程序,其特征在于,在所述程序运行时控制所述存储介质所在设备执行权利要求1至权利要求7中任一项所述轨道交通信号软件的安全变量验证方法。
10.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至权利要求7中任一项所述轨道交通信号软件的安全变量验证方法。
CN202311302036.0A 2023-10-10 2023-10-10 一种轨道交通信号软件的安全变量验证方法及装置 Active CN117056236B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311302036.0A CN117056236B (zh) 2023-10-10 2023-10-10 一种轨道交通信号软件的安全变量验证方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311302036.0A CN117056236B (zh) 2023-10-10 2023-10-10 一种轨道交通信号软件的安全变量验证方法及装置

Publications (2)

Publication Number Publication Date
CN117056236A true CN117056236A (zh) 2023-11-14
CN117056236B CN117056236B (zh) 2024-01-30

Family

ID=88655665

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311302036.0A Active CN117056236B (zh) 2023-10-10 2023-10-10 一种轨道交通信号软件的安全变量验证方法及装置

Country Status (1)

Country Link
CN (1) CN117056236B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060294355A1 (en) * 2005-06-24 2006-12-28 Zimmer Vincent J Secure variable/image storage and access
CN111818068A (zh) * 2020-07-14 2020-10-23 绿盟科技集团股份有限公司 微场景案例的编排验证方法、装置、介质及计算机设备
CN113642307A (zh) * 2021-08-12 2021-11-12 卡斯柯信号有限公司 基于Python的轨道交通车载安全参数自动化验证方法和系统
CN115964721A (zh) * 2023-02-28 2023-04-14 浙江大华技术股份有限公司 一种程序验证方法及电子设备
CN116048518A (zh) * 2022-11-14 2023-05-02 南京航空航天大学 一种面向天脉操作系统的综合化航空电子系统安全代码自动生成方法
CN116595588A (zh) * 2023-07-17 2023-08-15 卡斯柯信号(北京)有限公司 铁路信号系统开发过程安全分析方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060294355A1 (en) * 2005-06-24 2006-12-28 Zimmer Vincent J Secure variable/image storage and access
CN111818068A (zh) * 2020-07-14 2020-10-23 绿盟科技集团股份有限公司 微场景案例的编排验证方法、装置、介质及计算机设备
CN113642307A (zh) * 2021-08-12 2021-11-12 卡斯柯信号有限公司 基于Python的轨道交通车载安全参数自动化验证方法和系统
CN116048518A (zh) * 2022-11-14 2023-05-02 南京航空航天大学 一种面向天脉操作系统的综合化航空电子系统安全代码自动生成方法
CN115964721A (zh) * 2023-02-28 2023-04-14 浙江大华技术股份有限公司 一种程序验证方法及电子设备
CN116595588A (zh) * 2023-07-17 2023-08-15 卡斯柯信号(北京)有限公司 铁路信号系统开发过程安全分析方法及装置

Also Published As

Publication number Publication date
CN117056236B (zh) 2024-01-30

Similar Documents

Publication Publication Date Title
US11775414B2 (en) Automated bug fixing using deep learning
CN110287125B (zh) 基于图像识别的软件例行化测试方法及装置
CN106844476A (zh) 一种识别文件格式及对应完整性的方法和设备
WO2015190203A1 (ja) 検出装置、修正システム、検出方法およびプログラム
CN116579025A (zh) 一种文件存证方法、装置及设备
CN106886446B (zh) 软件源代码的验证方法及装置
CN111026663A (zh) 一种软件缺陷检测方法、装置、计算机设备和存储介质
CN110909361A (zh) 一种漏洞检测方法,装置和计算机设备
CN111722998A (zh) 代码的质量控制方法、系统、设备及存储介质
CN113641592B (zh) 测试序列的生成方法及装置
CN117056236B (zh) 一种轨道交通信号软件的安全变量验证方法及装置
CN110688823B (zh) Xml文件验证方法及装置
CN115310087A (zh) 一种基于抽象语法树的网站后门检测方法和系统
CN108566549A (zh) 机顶盒设备参数信息的校验方法及装置
CN111913878A (zh) 基于程序分析结果的字节码插桩方法、装置及存储介质
CN109560964B (zh) 一种设备合规检查方法及装置
CN105740260A (zh) 提取模板文件数据结构的方法和装置
CN111177320A (zh) 一种基于区块链的类案同判方法、设备及介质
CN111736914A (zh) 一种联锁软件数据配置与代码的分离和读取方法及系统
CN114707125A (zh) 一种防止反编译的方法、系统、装置及存储介质
KR101306842B1 (ko) 자바 프로그램 검증 조건 생성 시스템 및 방법
US20240045973A1 (en) Symbol narrowing-down apparatus, program analysis apparatus, symbol extraction method, program analysis method, and non-transitory computer readable medium
CN110704302B (zh) 映射关系建立方法、装置及系统崩溃分流的方法与装置
CN113704123A (zh) 接口测试方法、装置、设备以及存储介质
CN113434139A (zh) 一种图像打包的处理方法、装置、服务器及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant