首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 406 毫秒
1.
基于面向对象程序的对象间语义级关系,提出了一种对象级粗粒度切片方法,用于解决以往传统程序切片构造过程复杂,切片结构庞大,可理解性不强等问题.该方法并非基于传统的程序依赖图或系统依赖图,而是建立在对象间的关联、组合等语义级关系的基础之上.依据对象间语义级关系构造程序的对象图,在对象图的基础上获取程序的前向对象级粗粒度切片和后向对象级粗粒度切片,并结合了对象间的组合关系使得所得后向对象级粗粒度切片更加精简.  相似文献   

2.
类间数据依赖分析是类间数据流测试的基础。本文通过分析类簇级测试中的异常传播对程序数据依赖的影响,提出一种包括异常结构在内的类间C++程序数据依赖分析方法,根据类间关系增量式地构造类间数据依赖图,并给出类间数据依赖图的构造算法。最后,在程序切片中应用了该数据依赖分析方法。结果证明,该方法通过分析异常传播对数据依赖的影响能够带来切片精度的提高。  相似文献   

3.
傅妤婧  张俊  王毅恒 《计算机科学》2018,45(Z11):511-517
实体间存在各种各样的依赖关系,尤其是在软件开发过程中,软件实体间的依赖关系对软件的变更影响分析以及风险分析等都具有重大影响。依赖图作为最常用的依赖关系表示方法,其节点与边的定义与属性计算不尽相同,且大部分方法中并没有考虑到节点与边的时态属性。针对时态实体依赖图,文中系统地提出了时态实体依赖关系的形式化定义并分析了其特性,然后分析了时态实体依赖图的节点中心性、节点重要性、节点依赖度和边的重要性等4个度量指标,同时,针对MAVEN数据集分析了上述各个指标随时间变化的规律。  相似文献   

4.
基于数据链的软件故障定位方法   总被引:2,自引:0,他引:2  
杨波  吴际  刘超 《软件学报》2015,26(2):254-268
软件中存在的故障很多与数据流紧密相关,对数据流故障定位是一个具有相当难度的研究问题.通过分析变量的定义-使用关系和变量间的依赖关系,并跟踪程序运行时各种操作对变量值的影响,即,变量操作状态的变化等基本信息,提出了一种综合考虑变量操作状态变化以及变量操作状态间依赖关系的数据链模型,利用该模型对程序中数据流故障进行定位.经过实验验证,所提出的基于数据链的故障定位方法的定位结果与基于定义-使用对、基于程序切片、基于概率依赖图和基于语句覆盖这4种典型的故障定位方法进行了对比,取得了更好的定位效果.  相似文献   

5.
任务DAG图是刻画程序中各任务间依赖关系的一种手段,DAG图上除了标有任务间的依赖关系,还记录了各任务的计算量和任务之间的通信量,这些信息共同构成了任务调度的依据,国内外有许多基于任务DAG图的调度算法研究,但通过分析串行程序的相关性来构造任务DAG图的研究却不多见.分析了串行程序中存在的数据相关性和控制相关性,就程序中的顺序,分支,循环三种基本结构进行分别讨论,提出了一种串行程序任务DAG图的构造算法.  相似文献   

6.
付晓东  邹平 《计算机应用》2007,27(B06):302-303,307
对类图结构复杂性进行度量可以辅助对系统概念模型进行质量评价。提出一种改进的赋权类依赖图构造方法,并提出一套基于赋权类依赖图路径分析的类图结构复杂度度量指标体系,该指标体系着眼于类间关系的整体结构。同时给出各项指标的计算方法。  相似文献   

7.
程序依赖关系分析在对程序进行测试、维护、分析和优化过程中起着重要作用。梯形图(LD)程序中数据定义和数据引用会导致梯级之间存在数据依赖关系和潜在并行性。针对该问题,通过构造数据依赖关系有向图构建数据依赖关系,提取LD图梯级间的数据流和数据依赖信息,并从数据依赖关系有向图中获得LD图并行梯级。实验结果表明,通过并行提取可使LD图的扫描周期缩短至原来的20%~50%。  相似文献   

8.
并行性分析技术一般通过对程序的控制与数据流图或相关依赖图的分析来实现,因而需要从程序中抽取出相应依赖图的算法的支持.本文基于上下文相关图文法RGG形式框架,定义了一种任务级的并行编程图语言GPPL来直接描述顺序或并行程序的控制与数据流图,而且设计了相应的并行性分析算法以挖掘GPPL图程序的并行性特征.GPPL图语言可视为并行程序设计与程序代码生成之间的协同语言,从而使并行性挖掘避免了从程序中抽取出相应依赖图的过程.与已有的描述顺序或并行程序的图语言及其分析算法相比,GPPL图程序形式更为简洁和直观,易于设计,描述能力也更强;基于GPPL图的并行性分析算法的分析能力更强,而且具有可扩展性.  相似文献   

9.
王佳欣  冯毅  由睿 《计算机应用》2019,39(6):1719-1727
管理人员通常使用一些网络安全指标作为度量网络安全的重要依据。通用漏洞评分系统(CVSS)是目前人们普遍认同的网络度量方式之一。针对现有的基于CVSS的网络安全度量无法精确测量网络受到攻击的概率和影响两方面得分的问题,提出一种基于依赖关系图和CVSS的改进基础度量算法。首先发掘攻击图中漏洞节点的依赖关系,构建依赖关系图;然后根据依赖关系修改CVSS中漏洞的基础度量算法;最后聚合整个攻击图中的漏洞得分,得到网络受到攻击的概率及影响两方面的得分。采用模拟攻击者进行仿真实验,结果表明,该算法在算法精确度和可信度方面明显优于汇总CVSS分数算法,更加接近实际仿真结果。  相似文献   

10.
近年来,深度神经网络特别是图神经网络在方面级情感分析任务上取得了较大进展,但是仍存在未充分利用外部知识信息、句法依赖树的边关系信息以及知识图谱结构信息的缺陷.针对上述问题,本文提出了一种知识增强的双图卷积网络BGCN-KE(Knowledge-enhanced Bi-Graph Convolutional Network).首先,提出一种融合句法依赖关系与外部知识的子图构造算法,得到节点间语义关系更紧密的知识子图.其次,提出了双图卷积网络,分别利用两个图卷积网络在句法依赖知识子图中引导评论文本的节点学习邻接节点的外部知识,以及在评论文本的句法依赖图中融合特定方面相关的语义信息,从而增强评论文本的特定方面知识表示和语义表示.再次,BGCN-KE引入边关系注意力机制,更好地捕获特定方面和上下文词语间的语义关系.最后,提出了一种多级特征融合机制,充分融合特定方面相关的外部知识、语义信息和边关系特征.多个公共数据集上的实验证明,BGCN-KE的性能优于最新的对比模型.  相似文献   

11.
A formal, general model of program dependences is presented and used to evaluate several dependence-based software testing, debugging, and maintenance techniques. Two generalizations of control and data flow dependence, called weak and strong syntactic dependence, are introduced and related to a concept called semantic dependence. Semantic dependence models the ability of a program statement to affect the execution behavior of other statements. It is shown that weak syntactic dependence is a necessary but not sufficient condition for semantic dependence and that strong syntactic dependence is necessary but not sufficient condition for a restricted form of semantic dependence that is finitely demonstrated. These results are used to support some proposed uses of program dependences, to controvert others, and to suggest new uses  相似文献   

12.
The decomposition slice graph and concept lattice are two program representations used to abstract the details of code into a higher-level view of the program. The decomposition slice graph partitions the program into computations performed on different variables and shows the dependence relation between computations, holding when a computation needs another computation as a building block. The concept lattice groups program entities which share common attributes and organizes such groupings into a hierarchy of concepts, which are related through generalizations/specializations. This paper investigates the relationship existing between these two program representations. The main result of this paper is a novel program representation, called concept lattice of decomposition slices, which is shown to be an extension of the decomposition slice graph, and is obtained by means of concept analysis, with additional nodes associated with weak interferences between computations, i.e., shared statements which are not decomposition slices. The concept lattice of decomposition slices can be used to support software maintenance by providing relevant information about the computations performed by a program and the related dependences/interferences, as well as by representing a natural data structure on which to conduct impact analysis. Preliminary results on small to medium size code support the applicability of this method at the intraprocedural level or when investigating the dependences among small groups of procedures.  相似文献   

13.
JAVA语言是目前一种主要的面向对象编程语言,由于JAVA语言复杂的结构,使得对JAVA程序进行程序切片非常困难.本文提出一种层次的构造JAVA系统依赖图的算法,基于JAVA程序本身的层次结构,自顶向下构造系统依赖图,然后基于构造的系统依赖图,用一种改进的两阶段算法得到JAVA程序切片.  相似文献   

14.
计量单位是一种国际性的通用语言。本文列举了化工计算中常用的计量单位,针对化工计算中不同制度间计量单位换算的需求,利用Borland C Builder5.0开发了计量单位换算软件-UltraConverter。软件具有操作简,便、界面友好、功能强大等优点。实践证明,可以广泛应用于各领域。  相似文献   

15.
An efficient algorithm to remove redundant dependences in simple loops with constant dependences is presented. Dependences constrain the parallel execution of programs and are typically enforced by synchronization instructions. The synchronization instructions represent a significant part of the overhead in the parallel execution of a program. Some program dependences are redundant because they are covered by other dependences. It is shown that unlike with single loops, in the case of nested loops, a particular dependence may be redundant at some iterations but not redundant at others, so that the redundancy of a dependence may not be uniform over the entire iteration space. A sufficient condition for the uniformity of redundancy in a doubly nested loop is developed  相似文献   

16.
The use of dynamic dependence analysis spans several areas of software research including software testing, debugging, fault localization, and security. Many of the techniques devised in these areas require the execution of large test suites in order to generate profiles that capture the dependences that occurred between given types of program elements. When the aim is to capture direct and indirect dependences between finely granular elements, such as statements and variables, this process becomes highly costly due to: (1) the large number of elements, and (2) the transitive nature of the indirect dependence relationship.The focus of this paper is on computing dynamic dependences between variables, i.e., dynamic information flow analysis or DIFA. First, because the problem of tracking dependences between statements, i.e., dynamic slicing, has already been addressed by numerous researchers. Second, because DIFA is a more difficult problem given that the number of variables in a program is unbounded. We present an algorithm that, in the context of test suite execution, leverages the already computed dependences to efficiently compute subsequent dependences within the same or later test runs. To evaluate our proposed algorithm, we conducted an empirical comparative study that contrasted it, with respect to efficiency, to three other algorithms: (1) a naïve basic algorithm, (2) a memoization based algorithm that does not leverage computed dependences from previous test runs, and (3) an algorithm that uses reduced ordered binary decision diagrams (roBDDs) to maintain and manage dependences. The results indicated that our new DIFA algorithm performed considerably better in terms of both runtime and memory consumption.  相似文献   

17.
The problem of identifying the conditions under which semantic or behavioural dependences arise between different program statements has interesting applications in various areas such as program understanding, software maintenance, software audits and software testing. We present an extension to the program dependence graph (PDG), called the dependence condition graph (DCG), that enables identifying the conditions for dependence between program points. We show that these conditions are not only correct with respect to the program's semantics, but also more precise than identified by other known techniques. We also present evidence that the DCG is a practical representation and can be built for large programs, and sketch many different applications of the DCG.  相似文献   

18.
传统的软件错误定位技术通常利用测试覆盖信息计算程序语句发生错误的可疑度进行软件错误定位,但是这种定位技术没有充分考虑程序本身固有的依赖信息,缺乏语句筛选,从而使错误定位的精度受限.提出了一种基于层次切片谱的错误定位技术,以提高面向对象程序中的错误定位效率.这种技术首先分析程序不同粒度层次元素(包、类、方法以及语句)之间的依赖信息,对可能发生错误的元素进行筛选,缩小错误查找范围;在此基础上,建立了层次切片谱模型,并定义了一种可疑度度量方法;最后根据该可疑度结果从大到小的顺序进行错误定位.通过实验验证了基于层次切片谱的错误定位技术的有效性,且比基于程序谱的Tarantula 技术、Union 技术、Intersection 技术效率更高.  相似文献   

19.
Automated measurement programs are an efficient way of collecting, processing, and visualizing measures in large software development companies. The number of measurements in these programs is usually large, which is caused by a diversity of the needs of the stakeholders. In this paper, we present the application of the self‐healing concepts to assure the availability of measurements to the stakeholders without the need for effort‐intensive and costly manual interventions of the operators. We study the measurement infrastructure at one of the development units of a large infrastructure provider. In this paper, we present how the Monitor, Analyze, Plane, and Execute with Knowledge model was instantiated in a simplistic manner to reduce the need for manual intervention in the operation of the measurement systems. Based on the experiences from the 2 cases studied in this paper, we show how an evolution toward self‐healing measurement systems is done both with a dedicated failure taxonomy and with an effective straightforward handling of the most common errors in the execution. The mechanisms studied and presented in this paper show that self‐healing provides significant improvements to the operation of the measurement program and reduces the need for daily oversight by an operator for the measurement systems.  相似文献   

20.
In this paper, new techniques for static program testing are presented. The techniques are based on the program dependence graph, which models the structure of the program in terms of data and control dependences between program instructions. First, a new approach for redundant code detection is proposed. The main idea is based on the observation that each program instruction should have influence on the output of the program, otherwise it is considered redundant. Second, an input-output relationship analysis, which reflects the influence of specific input data on specific output data of the program, is proposed. It is shown that the presented techniques can increase the number of detectable errors as compared with error detection through data flow analysis alone.  相似文献   

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

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