首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 171 毫秒
1.
在传统调试过程中,缺陷定位通常作为程序修复的前置步骤.最近,一种新型调试框架(统一化调试)被提出.不同于传统调试中缺陷定位和程序修复的单向连接方式,统一化调试首次建立了定位与修复之间的双向连接机制,从而达到同时提升两个领域的效果.作为首个统一化调试技术, ProFL利用程序修复过程中伴随产生的大量补丁执行信息逆向地提升已有缺陷定位技术的效果.统一化调试技术不仅修复了可被修复的缺陷,而且也为不能被自动修复技术修复的缺陷提供了有效的调试线索.虽然统一化调试是一个很有前景的研究方向,但其在补丁验证过程中涉及到了大量的测试用例执行(比如百万量级的测试执行),因此时间开销问题严重.提出一种针对于统一化调试框架的加速技术(AUDE),该技术通过减少对缺陷定位效果无提升的测试执行,以提升统一化调试的效率.具体来说,AUDE首先通过马尔可夫链蒙特卡洛采样方法构建补丁执行的初始序列,随后在补丁执行过程中将已执行的补丁信息作为反馈信息,自适应性地估计每一个未执行补丁可能提供有效反馈信息的概率.在广泛使用的数据集Defects4J上对该技术进行了验证,发现AUDE在显著加速ProFL的同时,并没有降低其在缺...  相似文献   

2.
近年来,图像文本建模研究已经成为自然语言处理领域一个重要的研究方向.图像常被用于增强句子的语义理解与表示.然而也有研究人员对图像信息用于句子语义理解的必要性提出质疑,原因是文本本身就能够提供强有力的先验知识,帮助模型取得非常好的效果;甚至在不使用图像的条件下就能得出正确的答案.因此研究图像文本建模需要首先回答一个问题:图像是否有助于句子语义的理解与表示?为此,本文选择一个典型的不包含图像的自然语言语义理解任务:自然语言推理,并将图像信息引入到该任务中用于验证图像信息的有效性.由于自然语言推理任务是一个单一的自然语言任务,在数据标注过程中没有考虑图像信息,因此选择该任务能够更客观地分析出图像信息对句子语义理解与表示的影响.具体而言,本文提出一种通用的即插即用框架(general plug and play framework)用于图像信息的整合.基于该框架,本文选择目前最先进的五个自然语言推理模型,对比分析这些模型在使用图像信息前后的表现,以及使用不同图像处理模型与不同图像设置时的表现.最后,本文在一个大规模公开数据集上进行了大量实验,实验结果证实图像作为额外知识,确实有助于句子语义的理解与表示.此外,还证实了不同的图像处理模型和使用方法对整个模型的表现也会造成不同的影响.  相似文献   

3.
传感器网络调试研究综述   总被引:3,自引:0,他引:3  
越来越多面向不同应用领域的传感器网络被部署在真实环境中,帮助人们以新的方式观测周围的物理世界.然而,这些系统常常会出现各种不可预期的故障,能否快速有效地对这些故障进行检测、定位和修复,是传感器网络调试需要研究的重要内容.在概述了传感器网络调试问题之后,文章总结、比较了传感器网络调试过程中常用的系统状态信息获取技术,然后从故障检测、故障定位和故障修复3个方面综述了代表性关键技术及相关工具,最后探讨了该领域未来的研究方向.  相似文献   

4.
丁晖  陈林  钱巨  许蕾  徐宝文 《软件学报》2013,24(7):1484-1494
缺陷定位是软件调试过程中的重要环节,它通过利用程序信息和测试信息来定位软件中的错误.借助于事件信息量,提出一种基于事件信息量的缺陷定位方法——SIQ(suspiciousness based on information quantity).SIQ方法根据测试信息中不同事件的类型及其发生的概率,结合语句的执行信息,动态计算和调整缺陷定位的结果.通过大量的实验分析和对比,SIQ方法在多个数据集上表现出了很好的稳定性,与几种现有的缺陷定位方法相比,SIQ方法的缺陷定位效果也更加准确.  相似文献   

5.
在火力发电厂电气设备安装调试的过程中,常会出现一些安全问题.通过分析、研究电气安装调试中存在的问题,提出了解决对策.  相似文献   

6.
互联网时代, 数据呈爆发式的增长, 怎样从这些数据中抽取出有用的信息, 已是人工智能研究中的一个核心问题. 知识图谱作为解决这一问题的重要方法, 已成为人工智能技术发展的核心推动力. 信息抽取是知识图谱构建过程中的首要环节, 它实现了从海量的数据中抽取出结构化实体以及实体之间的关系. 本文探讨知识图谱中信息抽取的发展趋势, 对实体抽取、关系抽取和事件抽取及其关键技术进行了综述, 分析和讨论了当前存在的问题、挑战以及未来发展的方向.  相似文献   

7.
在软件开发和维护过程中,缺陷修复人员通常根据由终端用户或者开发/测试者提交的缺陷报告来定位和修复缺陷.因此,缺陷报告本身的质量对修复人员能否快速准确定位并修复缺陷具有重要的作用.围绕缺陷报告质量的刻画及改进,研究人员开展了大量的研究工作,但尚未进行系统性的归纳.旨在对这些工作进行系统性地梳理,展示该领域的研究现状并为未来的研究方向提供参考意见.首先,总结了已有缺陷报告存在的质量问题,如关键信息缺失、信息错误等;接着,总结了对缺陷报告质量进行自动化建模的技术;然后,描述了一系列对缺陷报告质量进行改进的方法;最后,对未来研究可能面临的挑战和机遇进行了展望.  相似文献   

8.
对现有二进制程序安全缺陷静态分析方法进行了综述和分析,提出了整个程序分析过程中的关键问题以及二进制程序安全分析的主要研究方向.通过对二进制程序缺陷静态分析流程的总结,发现二进制程序信息恢复是整个分析过程的关键,构造内容丰富的、通用的中间表示是二进制程序缺陷分析的重要研究方向.  相似文献   

9.
查找程序中缺陷代码所在的位置是一项值得深入开展的研究,同时也是实际软件调试过程中所面临的一个难题,这一过程往往需要耗费大量的时间和人力资源.研究软件缺陷定位的一类重要方法是基于谓词的统计学缺陷定位方法(简称PBSFL).PBSFL通过比较程序运行成功与失败时谓词的执行信息差异来获得谓词与缺陷的关联程度.然而实验研究发现,固定算法中信息利用的强度会造成信息利用不足或过分利用现象的发生,导致现有PBSFL方法对某些缺陷定位不够准确.针对这一问题,文中设计了一种基于谓词执行信息分析的自适应缺陷定位算法,该算法通过分析测试用例运行时谓词的执行情况来动态地为每个谓词选择合适的信息利用强度.实验结果表明,该方法在Siemens和space两个程序包上表现出很好的定位效果以及定位稳定性.  相似文献   

10.
伍晓泉  魏峻 《软件学报》2014,25(3):457-471
在多核和并发技术得到广泛应用的今天,如何有效地调试并发程序,成为一个重要且亟待解决的研究课题.并发程序的不确定性及其行为的复杂性,使得传统的调试技术难以得到有效的应用;而软件维护场景中错误发现与错误调试过程的分离使得错误重现难以实现,面向缺陷报告的调试需求使得自动的错误定位技术难以应用,加剧了调试的困难.针对软件维护阶段由缺陷报告导向的程序调试场景,提出了可视化的并发程序调试方法.该方法能够根据缺陷报告中的信息对程序进行切片,缩小需要分析的代码范围;通过静态分析构造出程序行为的全局视图,帮助程序员发现隐含的程序执行路径;根据事件结构的语义简化程序行为视图,使得行为模型规模可控;根据图形中的分支,引导用户关注路径中的关键操作,从而更快地发现程序中的缺陷.与动态调试方法相比,该方法能够避免错误重现的代价.借助缺陷报告中的信息以及事件结构模型的特点,该方法能够尽量减少状态爆炸的发生.已开发出的交互式并发程序调试工具原型JESVis Debugger,初步实现了所提出的方法.  相似文献   

11.
软件多缺陷定位(Multiple Fault Localization,简称MFL)尝试在含有多个缺陷的软件程序中自动标识出这些缺陷所在的位置.传统的缺陷定位研究一般假设被测软件内仅含有一个缺陷,而实际情况下软件内往往包含多个缺陷,因此MFL问题更加贴近实际场景.当程序中存在多个缺陷时,由于缺陷数量难以准确估计,同时缺陷之间可能存在互相干扰,因此对MFL问题的研究更具挑战性.已有研究表明传统单缺陷假设下的缺陷定位技术会随着程序中缺陷数目的增多而出现定位效果下降的问题.因此,需要对已有缺陷定位技术加以改进使其在MFL问题中具有更好的缺陷定位效果.本文以MFL研究问题为核心,对相关研究成果进行了系统的梳理.首先将已有的MFL技术细分为三类,分别是基于缺陷干扰假设的多缺陷定位方法,基于缺陷独立假设的多缺陷定位方法和不基于任何假设的多缺陷定位方法;然后依次总结了每一类方法的主要设计思想和相关研究成果,随后分析了MFL研究中经常使用的评测指标和评测对象;最后,本文从扩大评测对象的编程语言范围、考虑更多的软件程序、寻找更多的工业应用场景等多个角度对MFL的未来研究方向进行了展望.  相似文献   

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

13.
This article is a survey on the recent progress of some hot topics of software engineering. The survey is based on the review on the papers of three premier conferences on software engineering from 2012 to 2013. Through the quantitative analysis on these papers, there are three hot topics identified, software testing, debugging, and analysis. Focusing on these three topics, this article summarizes some new achievements in these fields, analyzes the characteristics of these works, and points out some directions for future research.  相似文献   

14.
Program comprehension research can be characterized by both the theories that provide rich explanations about how programmers understand software, as well as the tools that are used to assist in comprehension tasks. In this paper, I review some of the key cognitive theories of program comprehension that have emerged over the past thirty years. Using these theories as a canvas, I then explore how tools that are commonly used today have evolved to support program comprehension. Specifically, I discuss how the theories and tools are related and reflect on the research methods that were used to construct the theories and evaluate the tools. The reviewed theories and tools are distinguished according to human characteristics, program characteristics, and the context for the various comprehension tasks. Finally, I predict how these characteristics will change in the future and speculate on how a number of important research directions could lead to improvements in program comprehension tool development and research methods. Dr. Margaret-Anne Storey is an associate professor of computer science at the University of Victoria, a Visiting Scientist at the IBM Centre for Advanced Studies in Toronto and a Canada Research Chair in Human Computer Interaction for Software Engineering. Her research passion is to understand how technology can help people explore, understand and share complex information and knowledge. She applies and evaluates techniques from knowledge engineering and visual interface design to applications such as reverse engineering of legacy software, medical ontology development, digital image management and learning in web-based environments. She is also an educator and enjoys the challenges of teaching programming to novice programmers.  相似文献   

15.
面向对象软件的逆向工程   总被引:7,自引:0,他引:7  
在现代软件工程中,逆向工程是软件维护、软件重工程、软件重用和软件重结构中的起点,它本身是一个设计知识发现、知识抽象的过程,而面向对象软件和传统软件相比有着自己的语言特点和不同的设计知识内容.通过对面向对象程序中知识类别和逆向工程过程的分析,总结出了面向对象软件逆向工程的基本知识内容,并以此为分类线索,综述了目前此领域中具有代表性的技术、工具和研究方向.最后指出了本领域将来发展的方向.  相似文献   

16.
面向对象软件度量是理解和保证面向对象软件质量的重要手段之一.通过将面向对象软件的度量值与其阈值比较,可简单直观评价其是否有可能包含缺陷.确定度量阈值方法主要有基于数据分布特征的无监督学习方法和基于缺陷相关性的有监督学习方法.两类方法各有利弊:无监督学习方法无需标签信息而易于实现,但所得阈值的缺陷预测性能通常较差;有监督学习方法通过机器学习算法提升所得阈值的缺陷预测性能,但标签信息在实际过程中不易获得且度量与缺陷链接技术复杂.近年来,两类方法的研究者不断探索并取得较大进展.同时,面向对象软件度量阈值确定方法研究仍存在一些亟待解决的挑战.对近年来国内外学者在该领域的研究成果进行系统性的总结.首先,阐述面向对象软件度量阈值确定方法的研究问题.其次,分别从无监督学习方法和有监督学习方法总结相关研究进展,并梳理具体的理论和实现的技术路径.然后,简要介绍面向对象软件度量阈值的其他相关技术.最后,总结当前该领域研究过程面临的挑战并给出建议的研究方向.  相似文献   

17.
Learning and knowledge building have become critical competences for people in the knowledge society era. In this paper, we propose a sociolinguistic dialogue model for understanding how learning evolves and how cognitive process is constructed in on-line discussions. The knowledge extracted from this model is used to assess participation behavior, knowledge building and performance. The ultimate purpose is to provide effective feedback, evaluation and monitoring to the discussion process. Seven hundred students from the Open University of Catalonia in Spain participated in this study. Results showed that learning and knowledge building may be greatly enhanced by presenting selected knowledge to learners as for their particular skills exhibited during interaction. In addition, this valuable provision of information is used as a meta cognitive tool for tutors and moderators for monitoring and evaluating the discussion process more conveniently. This contribution presents our conceptual model for interaction management as well as key design guidelines and evaluation results. Implications of this study are remarked and further research directions are proposed.  相似文献   

18.
Software evolution is made up of changes carried out during software maintenance. Such accumulation of changes produces substantial modifications in software projects and therefore vast amounts of relevant facts that are useful for the understanding and comprehension of the software project for making additional changes. In this scenario, evolutionary visual software analytics is aimed to support software maintenance, with the active participation of users, through the understanding and comprehension of software evolution by means of visual analytics and human computer interaction. It is a complex process that takes into account the mining of evolutionary data, the subsequent analysis of the mining process results for producing evolution facts, the use of visualizations supported by interaction techniques and the active participation of users. Hence, this paper explains the evolutionary visual software analytics process, describes a framework proposal and validates such proposal through the definition and implementation of an architecture.  相似文献   

19.
The authors discuss empirical research about the cognitive structures and strategies used by programmers during fault location. Empirical evidence indicates the cognitive processes involved in fault detection consist of a comprehension process and a fault location process. The two processes are distinct and separate. The comprehension process is extremely important and was found to be superior in experts due to the semantic encoding they utilize. The semantic representations used by experts consist of abstract hierarchies based on functional meaning. Fault location is less important and usually takes the form of hand simulation or causal reasoning. The fault locating strategies used by experts and novices were similar. The better debugging performance by experts is due to their superior abilities at comprehension. Research indicates that the semantic organizations used by experts can be successfully taught to novices and used by them to improve performance.

The authors also examine two methods, slicing and team reviews, which seek to improve the debugging process. Each was found to affect comprehension and fault location differently. A review of slicing research revealed that it is performed during the fault location process, and does not apply to the comprehension process as some believe. Automating slicing was found to be a technique with potential benefits for debugging. The survey of the team dynamics during inspections and other reviews found them to be effective by enhancing the comprehension process, by improving fault location, and by providing more than one chance to catch each error.  相似文献   

20.
软件调试是复杂过程,可能会受到很多种因素的影响,例如调试资源分配、调试工具的使用情况、调试技巧等.在软件调试过程中,当检测到的故障被去除时,新的故障可能会被引进.因此,研究故障引进的现象对建立高质量的软件可靠性增长模型具有重要意义.但是到目前为止,模拟故障引进过程仍是一个复杂和困难的问题.虽然有许多研究者开发了一些不完美调试的软件可靠性增长模型,但是一般都是假设故障内容(总数)函数为线性、指数分布或者是与故障去除的数量成正比.这个假设与实际的软件调试过程中故障引进情况并不完全一致.提出一种基于Weibull分布引进故障的软件可靠性增长模型,考虑故障内容(总数)函数服从Weibull分布,并用相关的实验验证了提出的模型的拟合和预测性能.在用两个故障数据集进行的模拟实验中,实验结果指出:提出的模型和其他模型相比,有更好的拟合和预测性能以及更好的鲁棒性.  相似文献   

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

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