当前位置:首页 > 原创 > 电子与信息学报
[导读]苏州空天信息研究院23室软件工程技术部在充分发挥自身在技术研发、人才资源优势的基础上,时刻关注和研究国内外软件工程领域的发展动态和技术导向,不断探索新方向,采用新技术,研发优化新产品,于2020年开始着手研发技术体制验证平台等产品。


苏州空天信息研究院23室软件工程技术部在充分发挥自身在技术研发、人才资源优势的基础上,时刻关注和研究国内外软件工程领域的发展动态和技术导向,不断探索新方向,采用新技术,研发优化新产品,于2020年开始着手研发技术体制验证平台等产品。

苏州空天信息研究院23室软件工程技术部于2020年12月1日,申请了一篇名为《一种程序运行过程符合性验证方法》的发明专利,本专利技术提供了一种程序运行流程验证的方法,通过插桩埋点、数据建模等方法直观、定量地展示出程序运行时内部的执行流程信息,自2021年6月应用于技术体制验证平台以来,取得了非常可观的效益,避免了人工误判的风险以及人力的损耗,填补了针对软件运行过程符合性验证的空白。

随着软件应用规模的日益扩大和软件应用环境的日益复杂,如何保证软件质量、软件的规范性以及标准符合性等逐渐成为人们关注的焦点,软件自动化验证技术也因此得到了迅猛的发展。软件插桩技术是软件自动化验证中的关键技术,对于软件运行时监测有着重要的意义。所谓插桩,即在目标程序内部植入探针程序,通过探针程序嗅探目标软件内部的运行逻辑和流程并将特征数据抛出,分析这些特征数据获取目标程序控制流和数据流信息,进而得到逻辑覆盖等动态信息,以此来实现对目标程序的监测。目标代码插桩技术因其高效性和低侵入性得到了很多软件测试开发者的青睐,被广泛应用于软件系统监控、软件测试方法性能评价等领域,然而未应用于软件程序过程符合性验证中。

本发明提出了一种程序运行过程符合性验证方法,包括动态插桩和过程验证两个环节。动态插桩接收并解析用户传入的指令,执行插桩启停过程,并回传过程数据日志;过程验证接收过程数据日志,提取日志中方法间的关系(包括顺序、并行、选择、循环等)建立过程图模型,并将过程图模型与标准规则进行顺序匹配,从而验证程序运行过程的标准符合性。本发明的整体框架及工作情况如图1所示。

图1 本发明的整体架构图

动态插桩的原理如图2所示。动态插桩工作时,接收并处理用户通过URL形式发来的终端请求,终端请求包括插桩动作类型、任务ID、目标软件端口号以及拦截规则等参数;JavaAgent程序解析传入的参数,得到待插桩程序段的绝对位置以及插桩拦截方式,插桩拦截方式包括定位到包进行拦截和定位到具体方法进行拦截,根据拦截方式的不同,调用不同的JavaAgent字节码处理程序对拦截目标代码进行遍历,并将遍历得到的目标字节码添加至JavaAgent机制提供的插桩算法程序中;插桩算法程序获得目标字节码后,判断该字节码的目标程序类是否已经被加载至Java虚拟机中,若尚未加载,则根据JavaAgent程序中预先编写的部署程序将插桩语句块部署到目标字节码中,若已加载,则调用JavaAgent机制提供的attach功能将插桩语句块部署到目标字节码中,插桩语句块包括编辑完成的系统时间获取语句块与日志记录语句块,当目标软件执行到插桩点时,执行植入的代码进行信息获取和日志信息生成,插桩日志作为最终图形化验证对象的数据来源,需为文本文件格式,日志内容由若干条目组成,条目描述信息细化至待测程序函数方法块。

图2 动态插桩示意图

过程验证的原理如图3所示。

图3 过程验证示意图

过程验证工作时,接收并处理过程数据日志,根据插桩日志中记录的请求URI信息区分不同的操作,对于每一次操作,按照执行先后顺序提取日志中的方法名,将方法名用数字编号形成数字链,通过一系列数字链实现对于某次任务不同操作轨迹信息的量化描述,插桩日志预处理原理如图4所示;

图4 插桩日志预处理示意图

根据轨迹信息,采用算法生成过程图模型,算法存在3种关系,第一种是顺序关系“>”,例如,“1>3”表示1出现在3前面,第二种是并行关系“|”,例如,“1|3”表示“1>3”且“3>1”,第三种是选择关系“#”,例如,“1#3”表示从未出现过“1>3”和“3>1”,过程建模原理如图5所示;

图5 过程建模示意图

将目标软件的轨迹过程图模型与软件运行过程标准中既定的规则进行匹配,验证目标软件的执行顺序是否符合规范,若不符合规范则报出相应的错误,错误类型包括两种,一是规则中出现了未执行的方法,二是规则顺序不符合规范。

本专利既是苏州空天信息研究院23室软件工程技术部团队成员心血凝聚的结晶,也是科研创新实力的展示,为技术体制验证平台提供了强有力的科技支撑,也为多个项目提供了核心技术支撑。苏州空天信息研究院23室软件工程技术部将始终注重新产品的研发,并将知识产权作为重中之重,提高核心竞争能力,促进快速稳健发展。


专利联系作者:刘亮 部长


苏州空天信息研究院

2014年6月6日,原中国科学院电子学研究所(以下简称原电子所)与苏州工业园区签订了共建中国科学院电子学研究所苏州研究院(现更名为苏州空天信息研究院,以下简称苏研院)合作协议。协议的签署,标志着苏研院的建设正式启动。

苏研院是原电子所为满足国家国防战略科技需求,破解基地、人才等发展瓶颈,释放创新生产力,与苏州工业园区共同发起成立的地方事业法人单位。中国科学院正在实施以四类机构改革为核心的率先行动计划,其中,由中国科学院电子学研究所、遥感与数字地球研究所、光电研究院重组建设中国科学院空天信息研究院(以下简称空天院),是在空天电子信息技术领域实施的重大体制改革举措之一,对四类机构改革具有示范意义。苏研院作为原电子所的重要组成部分,是空天院优化科研布局的重要承载平台和科研成果转化平台。

苏研院建设总投资10亿元,规划总占地面积约130余亩,位于苏州工业园区纳米城东南角、独墅湖之畔,拟建设成20万平方米理念先进、布局合理、功能配套齐全、环境优美的现代科研园区。苏研院是以开展电子信息技术研发与应用为主的实体机构,主要面向国防、国民经济和区域发展战略需求,致力于电子信息技术领域核心关键技术突破、共性技术研发、应用系统集成和成果产业化转移。


苏研院首期开发建设了4.7万平方米科研、配套设施,拥有一支450余人的高水平技术研发队伍,开拓了平台架构技术、图像解译技术、星地信息处理技术等9个技术方向,科研保障体系全面建成,管理体系有效运行,主持或参与承担国家“863”任务、中科院重大任务、国防重点任务以及省市地区科技项目等科研任务近60项。

苏研院将依托空天院的科研优势,结合区域特色,在国家创新体系和区域源头创新活动中打造“示范效应”,未来形成一支超过1000人规模的结构合理、创新能力卓越、流动有序的高水平研发队伍,成为运行管理体系先进高效、重大任务保障有力、并与地方发展紧密融合的高水平研究机构。在与区域发展战略接轨的基础上,汇聚和造就一流人才、培育和转化一流成果、催生和布局一流产业,为国家战略需求和区域经济发展做出一流贡献。



作 者 | 苏州空天信息研究院二十三室

策 划 | 姜 丽、马秀强

校 对 | 融媒体工作室

审 核 | 陈 倩

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭