共查询到20条相似文献,搜索用时 406 毫秒
1.
基于面向对象程序的对象间语义级关系,提出了一种对象级粗粒度切片方法,用于解决以往传统程序切片构造过程复杂,切片结构庞大,可理解性不强等问题.该方法并非基于传统的程序依赖图或系统依赖图,而是建立在对象间的关联、组合等语义级关系的基础之上.依据对象间语义级关系构造程序的对象图,在对象图的基础上获取程序的前向对象级粗粒度切片和后向对象级粗粒度切片,并结合了对象间的组合关系使得所得后向对象级粗粒度切片更加精简. 相似文献
2.
3.
4.
基于数据链的软件故障定位方法 总被引:2,自引:0,他引:2
软件中存在的故障很多与数据流紧密相关,对数据流故障定位是一个具有相当难度的研究问题.通过分析变量的定义-使用关系和变量间的依赖关系,并跟踪程序运行时各种操作对变量值的影响,即,变量操作状态的变化等基本信息,提出了一种综合考虑变量操作状态变化以及变量操作状态间依赖关系的数据链模型,利用该模型对程序中数据流故障进行定位.经过实验验证,所提出的基于数据链的故障定位方法的定位结果与基于定义-使用对、基于程序切片、基于概率依赖图和基于语句覆盖这4种典型的故障定位方法进行了对比,取得了更好的定位效果. 相似文献
5.
6.
对类图结构复杂性进行度量可以辅助对系统概念模型进行质量评价。提出一种改进的赋权类依赖图构造方法,并提出一套基于赋权类依赖图路径分析的类图结构复杂度度量指标体系,该指标体系着眼于类间关系的整体结构。同时给出各项指标的计算方法。 相似文献
7.
8.
并行性分析技术一般通过对程序的控制与数据流图或相关依赖图的分析来实现,因而需要从程序中抽取出相应依赖图的算法的支持.本文基于上下文相关图文法RGG形式框架,定义了一种任务级的并行编程图语言GPPL来直接描述顺序或并行程序的控制与数据流图,而且设计了相应的并行性分析算法以挖掘GPPL图程序的并行性特征.GPPL图语言可视为并行程序设计与程序代码生成之间的协同语言,从而使并行性挖掘避免了从程序中抽取出相应依赖图的过程.与已有的描述顺序或并行程序的图语言及其分析算法相比,GPPL图程序形式更为简洁和直观,易于设计,描述能力也更强;基于GPPL图的并行性分析算法的分析能力更强,而且具有可扩展性. 相似文献
9.
管理人员通常使用一些网络安全指标作为度量网络安全的重要依据。通用漏洞评分系统(CVSS)是目前人们普遍认同的网络度量方式之一。针对现有的基于CVSS的网络安全度量无法精确测量网络受到攻击的概率和影响两方面得分的问题,提出一种基于依赖关系图和CVSS的改进基础度量算法。首先发掘攻击图中漏洞节点的依赖关系,构建依赖关系图;然后根据依赖关系修改CVSS中漏洞的基础度量算法;最后聚合整个攻击图中的漏洞得分,得到网络受到攻击的概率及影响两方面的得分。采用模拟攻击者进行仿真实验,结果表明,该算法在算法精确度和可信度方面明显优于汇总CVSS分数算法,更加接近实际仿真结果。 相似文献
10.
近年来,深度神经网络特别是图神经网络在方面级情感分析任务上取得了较大进展,但是仍存在未充分利用外部知识信息、句法依赖树的边关系信息以及知识图谱结构信息的缺陷.针对上述问题,本文提出了一种知识增强的双图卷积网络BGCN-KE(Knowledge-enhanced Bi-Graph Convolutional Network).首先,提出一种融合句法依赖关系与外部知识的子图构造算法,得到节点间语义关系更紧密的知识子图.其次,提出了双图卷积网络,分别利用两个图卷积网络在句法依赖知识子图中引导评论文本的节点学习邻接节点的外部知识,以及在评论文本的句法依赖图中融合特定方面相关的语义信息,从而增强评论文本的特定方面知识表示和语义表示.再次,BGCN-KE引入边关系注意力机制,更好地捕获特定方面和上下文词语间的语义关系.最后,提出了一种多级特征融合机制,充分融合特定方面相关的外部知识、语义信息和边关系特征.多个公共数据集上的实验证明,BGCN-KE的性能优于最新的对比模型. 相似文献
11.
Podgurski A. Clarke L.A. 《IEEE transactions on pattern analysis and machine intelligence》1990,16(9):965-979
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.
Krothapalli V.P. Sadayappan P. 《Parallel and Distributed Systems, IEEE Transactions on》1991,2(3):281-289
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.
Wes MasriAuthor Vitae Hiba Halabi Author Vitae 《Journal of Systems and Software》2011,84(7):1171-1190
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.
Srihari Sukumaran Ashok Sreenivas Ravindra Metta 《Computer Languages, Systems and Structures》2010,36(1):96-121
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.
Industrial experiences from evolving measurement systems into self‐healing systems for improved availability 下载免费PDF全文
Miroslaw Staron Wilhelm Meding Matthias Tichy Jonas Bjurhede Holger Giese Ola Söder 《Software》2018,48(3):719-739
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.
《Information Processing Letters》1987,24(2):103-108
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. 相似文献