您的位置:首页 >智能硬件 >

通讯!专利解读 | 苏州空天信息研究院在软件工程领域创新性地提出一种程序运行过程符合性验证方法

2022-09-25 19:59:26    来源:21ic电子网

苏州空天信息研究院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人规模的结构合理、创新能力卓越、流动有序的高水平研发队伍,成为运行管理体系先进高效、重大任务保障有力、并与地方发展紧密融合的高水平研究机构。在与区域发展战略接轨的基础上,汇聚和造就一流人才、培育和转化一流成果、催生和布局一流产业,为国家战略需求和区域经济发展做出一流贡献。

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

策 划 | 姜 丽、马秀强

校 对 | 融媒体工作室

审 核 | 陈 倩

声 明

本文系《电子与信息学报》独家稿件,内容仅供学习交流,版权属于原作者。欢迎评论、转载和分享本公众号原创内容,转载请与本号联系授权,标注原作者和信息来源《电子与信息学报》。

本号发布信息旨在传播交流。如涉及文字、图片、版权等问题,请在20日内与本号联系,我们将第一时间处理。《电子与信息学报》拥有最终解释权。

关键词: 软件工程 中国科学院 程序运行

相关阅读

精彩推送