首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到18条相似文献,搜索用时 93 毫秒
1.
文章对函数依赖程序不变量和简单非函数依赖程序不变量动态生成理论、方法和技术进行了阐述,提出了一种新的简单非函数依赖程序不变量动态检测的方法.该方法利用数据库中提供的SQL强大查询功能,灵活多变地检测各种常见类型的简单非函数依赖程序不变量,并且可以根据用户的实际需要随时指定新的程序不变量查询条件.  相似文献   

2.
不变量是用于描述程序运行时不变性质的一些重要的逻辑断言.大型程序似然不变量发现的方法是通过对程序运行时的轨迹进行分析来获取的.以数据库理论为基础.将不变量形式分为函教依赖不变量和非函数依赖不变量.提出了函数依赖不变量动态发现方法.解决了目前试探法具有盲目性和效率不高的问题.  相似文献   

3.
不变量的检测是提高软件质量的一种有效方法.针对传统静态检测方法可能带来无效的不变量、缺失不变量等缺陷,文中提出一种以抽象解释理论为基础的非函数依赖不变量的静态检测方法.首先利用词法语法分析得到抽象语法树,然后将抽象语法树转化成抽象域图,接着对抽象域图进行抽象执行得到程序中可执行的路径,最后依据定义的非函数依赖不变量表现形式对可执行路径分析得到程序中潜在的非函数依赖不变量.同时通过一个 C 程序为例对该方法进行验证说明  相似文献   

4.
程序不变量检测技术   总被引:1,自引:0,他引:1  
基于合约的程序设计是提高软件质量的一种重要技术,已经得到了很大的发展。合约描述了程序内部的基本属性、程序良性运行的保证条件以及运行后的期望结果。作为合约的一种表达形式,程序不变量一般包含类不变量、前置条件和后置条件。程序不变量是程序中隐含的属性,它可以应用于程序验证、软件测试技术、逆向工程、程序质量保证等领域。本文结合当前主流的程序不变量研究的相关成果和基于合约的程序不变量程序设计方法,分别从源程序编配技术、测试用例生成技术、程序运行轨迹收集技术和程序不变量分析技术四个方面,对程序不变量挖掘的关键方法和原理进行了详细的剖析。  相似文献   

5.
讨论了程序不变量的内涵,研究并建立了程序不变量动态生成系统的理论模型.主要描述基于合约的似然程序不变量发现的基本理论模型,以及程序不变量发现的主体过程,并结合Java程序设计语言进一步阐明函数依赖程序不变量动态发现的一种方法.通过程序不变量动态生成技术,可以分析程序内部的关联属性,从而有助于设计高质量的程序代码以及规范化的程序架构.  相似文献   

6.
条件函数依赖是函数依赖在语义上的扩充,可以应用于数据清洗工作,在数据库一致性的修复上应用广泛。讨论了条件函数依赖的相关语义规则,重点研究了基于条件函数依赖对违反数据库一致性元组的检测工作,并引入置信度评价机制,对相关的检测规则进行了改进。改进后的检测方法在基于多个函数依赖的检测中显示出了优越性,使得检测工作更为精简,检测标准更加明确。  相似文献   

7.
本文主要讨论基于合约的似然程序不变量的内涵,以及通过程序断言动态生成技术来发现程序不变量的意义。在此主要描述基于合约的似然程序不变量发现的基本理论模型以及该模型与动态不变量检测工具Daikon实体模型的比较,进一步论述程序断言动态生成技术。通过精确的程序断言动态生成,可以分析程序各变量之间的关联属性,以完成不变量的检测。从而有助于设计高质量的程序架构以及规范化的程序代码.  相似文献   

8.
一种区间型程序不变量检测方法   总被引:1,自引:0,他引:1  
程序不变量的发现是提高软件质量的一种有效方法。静态分析是发现程序不变量的一个研究方向。本文以数学理论为基础,结合图形化方法,对区间型不变量给出一种简单有效的静态分析方法,阐述其检测过程,并用实例进行验证说明。  相似文献   

9.
程序切片技术大多是根据程序依赖图(PDG)和系统依赖图(SDG)的图可达性算法来优化得到感兴趣的程序集合,但是构造PDG和SDG需要很大的空间开销。本文提出一种基于逆向程序流和函数依赖集的切片算法,从兴趣点开始扫描逆向程序流来计算程序切片,只计算与切片相关的数据依赖,并且考虑函数调用时切片的计算,提高计算切片的效率。通过实例表明该算法减少了计算程序切片的复杂度,具有一定的可行性和实用性。  相似文献   

10.
发现程序中隐含程序不变量是实现高层次行为合约、提高程序质量的关键.重点研究了不变量的动态发现方法与程序编配原理,并在传统的编配方法基础上实现了交互式的石鼓编配工具.该工具具有预设观测点和观测变量等功能,并通过将运行轨迹收集到数据库中来实现不变量分析.并详细说明了采用内嵌法的编配工具的总体结构及实现过程.实验证明石鼓编配工具能更方便有效地发现不变量.  相似文献   

11.
重点研究了断言的动态检测方法与检测过程,并在关系数据库理论的基础上实现了交互式的断言动态检测工具,即TDDPA。该工具具有动态检测程序断言等功能,并通过将运行轨迹收集到数据库中来实现检测到的各种断言形式分析,说明了TDDPA总体设计结构及实现过程。结果证明TDDPA能更方便有效地发现程序中所蕴涵的断言。  相似文献   

12.
传统程序切片技术在计算BPEL程序切片时会产生切片不完备问题,为此,提出一种基于程序依赖图的BPEL静态程序切片技术。该技术根据BPEL语言的特点,通过建立BPEL程序依赖图,计算BPEL程序切片。案例分析表明,该技术能够获得更加全面的程序切片,从而可以帮助软件工程人员更好地测试、调试和维护BPEL程序。  相似文献   

13.
在当今信息社会中,程序质量是一个具有重要意义的热点问题.基于契约的程序设计是提高程序质量的重要且有效的技术,但是形式化契约的制定是一件十分困难的工作.因此软件质量保证问题一直是令人困扰的难题.本文介绍契约式程序设计的基本概念与方法,并在此基础上,提出利用契约进行程序动态分析的主要思路及其基本过程并给出简单实例,从一种新的维度来思考保障软件质量的方法。  相似文献   

14.
程序理解是一种需要高度智力活动的过程,其效率取决于所理解的程序、理解人员的领域经验和所采用的辅助机制。为了保证该活动的准确性和高效性,理解工具的半自动化支持是关键的。着重探讨和研究基于文法高级概念化抽象的程序理解,从不同层次不同方面来得到源程序的设计意图,实现语言平台的无关性。  相似文献   

15.
A program that accesses an out-of-bound array element can cause unexpected behaviour that is unacceptable to safety-critical or security-critical systems. Two traditional compile-time approaches to array bound checking are flow analysis and program verification. This paper presents a new approach, IFV, that integrates flow analysis and program verification techniques. IFV is generally about as effective as program verification yet runs in about the same time as flow analysis. Its typical runtime is proportional to the product of the program size and the number of declared variables. IFV matches loops to templates, which represent commonly occurring loop patterns, to discover loop invariants automatically, which it then uses to strengthen flow analysis. With only seven templates, it handles many common array-access patterns. Patterns not verified by flow analysis are processed with verification techniques entirely automatically. This paper also describes a prototype IFV system that performs compile-time array bound checking for programs in a subset of C. © 1997 John Wiley & Sons, Ltd.  相似文献   

16.
针对网络恶意软件威胁日益严重等问题,研究了恶意软件常采用的通信方式——隧道技术,并提出了一种基于C4.5的HTTP隧道检测算法.该算法采用决策支持树算法C4.5提取网络流特征字段,根据特征字段生成训练数据建立HTTP隧道分类的决策树检测模型,采用该分类模型检测HTTP隧道流,为检测恶意软件提供依据.实验结果表明,与同类算法相比,该算法不依赖样本空间的分布,能准确地检测HTTP隧道流,具有良好的有效性和稳定性.  相似文献   

17.
针对通信软件的模型驱动测试框架中出现的测试生成问题,对MSC测试模型的测试生成方法进行改进,获得有效的系统测试集。采用符号执行和程序分析相结合的方法,收集生成的约束、测试脚本变量与被测系统变量之间的映射关系,据此生成测试模型,进一步进行模型验证和测试生成。这种方法可以对原有的测试集合进行半自动的扩展,对关心的程序路径进行测试覆盖,从而提高测试集合的有效性和完备性。  相似文献   

18.
Application of neural networks for predicting program faults   总被引:1,自引:0,他引:1  
Accurately predicting the number of faults in program modules is a major problem in the quality control of large software development efforts. Some software complexity metrics are closely related to the distribution of faults across program modules. Using these relationships, software engineers develop models that provide early estimates of quality metrics that do not become available until late in the development cycle. By considering these early estimates, software engineers can take actions to avoid or prepare for emerging quality problems. Most often, the predictive models are based upon multiple regression analysis. However, measures of software quality and complexity exhibit systematic departures from the assumptions of these analyses. With extreme violations of these assumptions, multiple regression models become unstable and lose most of their predictive quality. Since neural network models carry no data assumptions, these models could be more appropriate than regression models for modeling software faults. In this paper, we explore a neural network methodology for developing models that predict the number of faults in program modules. We apply this methodology to develop neural network models based upon data collected during the development of two commercial software systems. After developing neural network models, we apply multiple linear regression methods to develop regression models on the same data. For the data sets considered, the neural network methodology produced better predictive models in terms of both quality of fit and predictive quality.  相似文献   

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

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