共查询到18条相似文献,搜索用时 156 毫秒
1.
2.
3.
4.
《计算机科学与探索》2017,(2):212-220
程序理解是从软件程序中获得抽象在程序中的功能和知识的过程,对软件维护有着重要的意义。研究表明,软件维护消耗了软件预算的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
代码迷惑是一种以增加理解难度为目的的程序变换技术,用来保护软件免遭逆向剖析.代码迷惑是否有效是代码迷惑研究中首要解决的问题.目前对有效性证明的研究大都是基于非语义的方式.文章将语义与有效性证明联系起来,建立了基于语义的代码迷惑有效性比较框架,该框架能够为迷惑算法在静态分析这样的限定环境下提供有效性证明,而且也能严格比较迷惑算法之间的有效性,最后使用实例描述比较框架如何应用到证明代码迷惑的有效性. 相似文献
11.
纳荣 《计算机工程与设计》2003,24(1):30-32,49
对于遗产软件的理解和维护在软件研究领域中已经变得越来越重要,综述了程序理解的策略及工具,引入了程序切片的思想,并在此基础上对传统的切片方法进行改进以更好地完成程序理解的任务。 相似文献
12.
13.
一种精简二进制代码的程序理解方法 总被引:3,自引:0,他引:3
精简二进制代码形式的软件是软件分析和程序理解需要处理的一类具有代表性的对象,基于高级语言源代码和调试符号信息的传统分析方法在处理此类软件时受到了极大限制。提出一种精简二进制形式软件的理解方法,首先将分析对象转变为运行期进程,引入实际运行中的进程信息;然后引入程序的行为特征,以程序表现出的外在行为和对外接口作为辅助信息,将此类外部特征映射到程序代码;最后基于切片思想和调试技术,获得程序切片并分析。这种方法为分析理解过程扩展了信息量,降低了复杂度,解决了分析此类软件时信息缺失和难以建立理解模型的问题。 相似文献
14.
Lamia Labed Jilani Asma Louhichi Olfa Mraihi Ali Mili 《Innovations in Systems and Software Engineering》2012,8(3):195-212
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.
17.
软件漏洞静态分析是信息安全领域的重点研究方向,如何描述漏洞及判别漏洞是漏洞静态分析的核心问题。提出了一种用于描述和判别漏洞的漏洞静态检测模型。首先对软件漏洞的属性特征进行形式化定义,并对多种软件漏洞和其判定规则进行形式化描述;其次,针对传统的路径分析存在的状态空间爆炸问题,提出了一个新的程序中间表示——漏洞可执行路径集,以压缩程序状态空间。在该模型的基础上,设计了一个基于漏洞可执行路径集的软件漏洞静态检测框架,利用定义的漏洞语法规则求解漏洞可执行路径集上的漏洞相关节点集,利用漏洞判定规则对漏洞相关节点集进行判别得出漏洞报告。实验分析验证了该漏洞检测模型的正确性和可行性。 相似文献
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. 相似文献