首页 | 官方网站   微博 | 高级检索  
相似文献
 共查询到18条相似文献,搜索用时 156 毫秒
1.
程序的语义层是程序的词法层和语法层的抽象表达,而蕴涵在软件中的语义层构成了人脑思维与机器思维交互过程的中间变换,从程序的语义层出发,利用行为结构的高层表达进行软件理解,进而抽取设计决策,成为了软件逆向工程理论研究的热门课题,形式化格局识别技术在不同程度上表达了上述思想。基于以上分析,对格局识别技术作进一步探究,并在原有基础上提出了新的改进算法与实施技术。  相似文献   

2.
程序的语义层是程序的词法层和语法层的抽象表达,而蕴涵在软件中的语义层构成了人脑思维与机器思维交互过程的中间变换,从程序的语义层出发,利用行为结构的高层表达进行软件理解,进而抽取设计决策,成为了软件逆向工程理论研究的热门课题,形式化格局识别技术在不同程度上表达了上述思想。基于以上分析,对格局识别技术作进一步探究,并在原有基础上提出了新的改进算法与实施技术。  相似文献   

3.
谢刚  蒋强  石磊 《计算机科学》2018,45(8):179-185, 207
目前,针对面向方面程序,许多研究者已定义了各种各样的形式语义。但是,没有一种语义能被软件设计者和开发者所理解。针对该问题,在已有研究的基础上,应用统一程序理论中的设计来定义面向方面的动态语义。同时,以一个例子来说明该语义的使用。  相似文献   

4.
程序理解是从软件程序中获得抽象在程序中的功能和知识的过程,对软件维护有着重要的意义。研究表明,软件维护消耗了软件预算的50%到80%,而其中大概47%到62%的维护时间用于对软件系统的理解上。提出了一种面向Java程序的包概要方法,尝试从软件的语义层次出发,利用信息索引领域的潜在语义分析和数据挖掘领域的聚类算法对软件程序中的语义信息进行提取分析。对相似词汇的代码文件进行聚类,并从中提取话题对Java程序中的包进行刻画;对这些话题进行语义恢复,并利用MiniPar,一个英文词法分析器,来辅助生成程序中包的概要信息。实验结果表明该方法能够改进程序理解的效率。  相似文献   

5.
代码迷惑是一种以增加理解难度为目的的代码变换技术,主要来保护软件免遭逆向分析。恶意代码的作者为了躲避检测经常采用代码迷惑技术对程序进行转换。但是商用反病毒软件采用基于特征码的模式匹配技术而忽略了恶意代码的语义,因此最容易受到代码迷惑或病毒变种的攻击。文章中提出一种基于语义匹配的检测算法,能准确的检测出经过代码迷惑处理的恶意代码。该方法应用数据流分析技术,以变量定义使用链为单元检测每个模板及程序节点。最后通过部分实验展示了原型系统的检测效果。  相似文献   

6.
一个设计模式自动识别技术研究框架   总被引:1,自引:1,他引:0  
在程序代码中自动识别设计模式可以为面向设计模式的软件理解、维护和重构等活动提供自动化支持.比较系统地分析了该领域十余年来的研究状况和存在的问题,提出了一套以准确和通用的设计模式识别技术为目标,以层次化识别特征的确定、基于静态分析技术的语义特征发掘与识别技术、基于语义特征和排除性约束的软件框架描述技术、基于描述逻辑的设计模式形式化技术等为内容的研究框架.介绍了各项技术的基本思想和主要内容,论述了其可行性.  相似文献   

7.
软件模式用于捕捉开发面向对象软件的经验,可以被复用。文中分析了应用XML,RDF(S)和DAML+OIL三者描述软件模式的区别,并提出应用DAML+OIL来描述软件模式以及软件模式之间的关系,使软件模式的描述具有精确的语义,从而使计算机可以理解Web上的软件模式,为以后研究基于语义Web和具有推理能力的搜索奠定了基础。  相似文献   

8.
一种可行的自动程序理解途径   总被引:1,自引:0,他引:1  
自动程序理解是软件工程和人工智能的非常活跃的研究领域,本文提出了一种独立于程序设计语言,具有明显结构性和流图结构的中间表示plan来表示程序代码,本文首次提出了应用图文法分析技术于自动程序理解的方法,并给出了基于人工智能技术来进行自动程序理解的模型。  相似文献   

9.
软件测试是软件开发过程的一个重要组成部分,是进行软件有效性检查、提高软件质量的重要手段。随着软件规模的不断增大、复杂度的不断提高,传统的软件测试技术在处理大规模复杂软件系统时会出现许多问题。程序切片是一种程序分解术,主要是通过寻找程序内部的相关性来分解程序,从而达到快速错误定位或理解程序的目的。主要探讨将程序切片技术引入到软件测试中,尤其是分析在回归测试中切片方法是如何提高效率的。  相似文献   

10.
基于抽象解释的代码迷惑有效性比较框架   总被引:8,自引:0,他引:8  
高鹰  陈意云 《计算机学报》2007,30(5):806-814
代码迷惑是一种以增加理解难度为目的的程序变换技术,用来保护软件免遭逆向剖析.代码迷惑是否有效是代码迷惑研究中首要解决的问题.目前对有效性证明的研究大都是基于非语义的方式.文章将语义与有效性证明联系起来,建立了基于语义的代码迷惑有效性比较框架,该框架能够为迷惑算法在静态分析这样的限定环境下提供有效性证明,而且也能严格比较迷惑算法之间的有效性,最后使用实例描述比较框架如何应用到证明代码迷惑的有效性.  相似文献   

11.
对于遗产软件的理解和维护在软件研究领域中已经变得越来越重要,综述了程序理解的策略及工具,引入了程序切片的思想,并在此基础上对传统的切片方法进行改进以更好地完成程序理解的任务。  相似文献   

12.
金芝  刘芳  李戈 《软件学报》2019,30(1):110-126
程序理解是软件工程中的关键活动,在软件开发、维护、重用等任务中发挥着重要的作用.程序理解自软件工程出现以来,就一直是该领域的研究热点.随着软件应用的日益复杂和不断普及,程序理解研究的需求发生了新的变化,程序的自理解或自认知逐渐成为新的关注点,有必要对程序理解进行重新审视.从工程、学习和认知以及方法和技术这3个角度定位程序理解任务;随后,通过文献分析展示其研究布局,进而分别从认知过程、理解技术以及软件工程任务中的应用这3个方面,综合论述程序理解研究的发展脉络和研究进展.  相似文献   

13.
一种精简二进制代码的程序理解方法   总被引:3,自引:0,他引:3  
李卷孺  谷大武  陆海宁 《计算机应用》2008,28(10):2608-2612
精简二进制代码形式的软件是软件分析和程序理解需要处理的一类具有代表性的对象,基于高级语言源代码和调试符号信息的传统分析方法在处理此类软件时受到了极大限制。提出一种精简二进制形式软件的理解方法,首先将分析对象转变为运行期进程,引入实际运行中的进程信息;然后引入程序的行为特征,以程序表现出的外在行为和对外接口作为辅助信息,将此类外部特征映射到程序代码;最后基于切片思想和调试技术,获得程序切片并分析。这种方法为分析理解过程扩展了信息量,降低了复杂度,解决了分析此类软件时信息缺失和难以建立理解模型的问题。  相似文献   

14.
The increasing criticality of software applications, the increasing size and complexity of such applications, and the increasing reliance of software engineering paradigms on third party software assets combine to place a high premium on the ability to analyze software products to an arbitrary level of thoroughness and precision. Yet despite several decades of research, the goal of analyzing the functional properties of software products to an arbitrary level of thoroughness and precision remains unfulfilled. In this paper, we discuss the use of a relation-theoretic approach inspired from Mills?? logic to analyze while loops, and we support our approach by an operational prototype tool. The proposed method and tool have applications in program comprehension, reverse engineering, program verification, software maintenance, and programmer education.  相似文献   

15.
开发算法程序是计算机科学领域中最具挑战性的问题之一。为了提高算法程序的可靠性和生产效率,人们正在追求其开发的自动化。算法程序变换是实现算法程序开发自动化的重要途径,已成为程序设计方法学和软件自动化领域中的重要课题,目前已取得很大进展。本文介绍了算法程序变换的相关概念,给出了算法程序变换的分类,并从方法学、语言、算法设计能力、支撑工具及其适用领域等方面分析和比较了几个有代表性的算法程序变换研究项目,讨论了当前研究的不足以及今后的研究方向。  相似文献   

16.
一种基于分层切片模型思想的源程序信息分析方案   总被引:2,自引:0,他引:2  
作为软件理解的手段之一,程序切片技术通过寻找程序内部的相关性来分解程序,再通过对分解所得程序切片的分析达到对整个程序的分析和理解。程序切片算法必须建立在对源程序信息正确、完整分析的基础上。详细地描述了一种基于分层切片模型思想的程序信息提取方案。该方案已成功运用到一种Java程序切片工具模型JSTM(Java Slicing Tools Model)中。  相似文献   

17.
王涛  韩兰胜  付才  邹德清  刘铭 《计算机科学》2016,43(5):80-86, 116
软件漏洞静态分析是信息安全领域的重点研究方向,如何描述漏洞及判别漏洞是漏洞静态分析的核心问题。提出了一种用于描述和判别漏洞的漏洞静态检测模型。首先对软件漏洞的属性特征进行形式化定义,并对多种软件漏洞和其判定规则进行形式化描述;其次,针对传统的路径分析存在的状态空间爆炸问题,提出了一个新的程序中间表示——漏洞可执行路径集,以压缩程序状态空间。在该模型的基础上,设计了一个基于漏洞可执行路径集的软件漏洞静态检测框架,利用定义的漏洞语法规则求解漏洞可执行路径集上的漏洞相关节点集,利用漏洞判定规则对漏洞相关节点集进行判别得出漏洞报告。实验分析验证了该漏洞检测模型的正确性和可行性。  相似文献   

18.
Program comprehension is a key activity throughout software maintenance and reuse. The knowledge acquired through comprehending programs can guide engineers to perform various kinds of software maintenance and reuse tasks. The effective comprehension strategy and the associated efficient approach, as well as the sophisticated tool support, are the indispensable elements for an entire solution to program comprehension to reduce the high costs of this nontrivial activity. This paper presents an objective-oriented comprehension strategy, contrasting to the traditional comprehensive understanding strategy in the literature. It is a kind of on-demand understanding for specific tasks and more effective in practice. In addition, using multiple information sources to understand programs is proposed with the corresponding framework. From these two points of views, we propose a feature-oriented program comprehension approach using requirement documentation. This approach aims at a specific category of feature-related software maintenance and reuse tasks. Case studies are conducted to evaluate the proposed solution. Results from the studied cases show that the experimental prototype provides more explicit advices for software engineers when performing these tasks.  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司    京ICP备09084417号-23

京公网安备 11010802026262号