基于静态代码分析的自动化对象接口规范提取工具

来源 :2008全国软件与应用学术会议(NASAC08) | 被引量 : 0次 | 上传用户:cjc013
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
在面向对象程序中,对象的接口行为对于理解对象行为,对象行为验证、测试以及指导其他开发者正确使用对象所提供的外部行为都有十分重要的意义。然而在很多遗产系统中,对象接口规范常常缺失或随着长期的代码维护而出现不一致。因此,有效的自动化接口行为逆向恢复对于面向对象程序的维护具有重要意义。针对这一问题,本文提出了一种基于静态源代码分析的对象接口规范自动提取工具。该工具通过读入源代码分析获取对象(类)内部各接口方法之间直接和间接的依赖关系,然后在对象(类)内部依赖关系的基础上构建接口的状态机图。由于对象(类)内部的依赖关系是接口行为约束的主要根源,而静态分析具有全面,准确的优点,因此该工具获得的接口规范具有较好的准确性,而相关的实验结果也很好地验证了这一点。
其他文献
采用传统的系统架构构建的EAI和B2Bi平台存在系统封闭、厂商依赖性强、耦合度高、重用性差的缺点,无法和上下游企业IT系统建立统一的接口。介绍了面向服务的架构(SOA)和企业服务总线(ESB),讨论了基于CORBA与SOA建立SCUT-EAI框架的优点,给出了该EAI的系统架构设计与应用。SCUT-EAI摆脱传统集成方法的局限,实现了面向服务的EAI。
程序员在进行软件维护时往往需要考虑代码之间的依赖关系而修改多处代码。目前软件中普遍存在大量采用不同编程语言编写的辅助文件,采用程序分析的方法难以发现与其有关的依赖关系。本文采用频繁模式挖掘的方法对软件演化历史进行挖掘,发现修改模式,即在历史上相对频繁的同时发生修改的方法和辅助文件集合。本文采用抽象语法树比较的方法提取发生修改的方法,以开源项目Eclipse为例进行分析,提取其修改模式,抽样统计修改
卡恩进程网络(KPN)是一种应用于数据流建模的模型。由于理想的KPN需要无限制容量的用于通信的管道,而这种要求用计算机是无法实现的,所以T.M.Parks提出了一种有界调度策略。然而,这种有界调度又会导致一种理想KPN里不存在的假死锁,即由于写阻塞导致的死锁。本文针对PN中存在的假死锁,提出一种消息复杂度为O(n)的死锁检测算法DRAP,该算法能找到当前死锁的瓶颈所在,通过增加瓶颈管道的容量来解除
随着大规模数据集在高性能并行计算中应用的日趋广泛,优化大规模数据集的存储结构成为提高上层应用运行效率的重要途径。本文实现的LDFS分布式存储结构打破了单机存储和传统分片分布式存储系统的局限,针对大规模数据的特性对存储方式进行了改进.LDFS使月冗余副本的方式以实现高效的并发读写和容错能力,带外传榆、捎带指令、负载均衡、客户端校验等技术的应用进一步提高了系统的访问效率和稳定性。同时,LDFS还具有良
为了克服全球计算环境中计算节点的动态性的特征,引入了计算节点可信任度模型,该模型分别收集节点的历史任务完成情况和专门测试节点对计算节点的测试情况这两条独立的证据,并利用Dempster-Shafer(D-S)合成法则对影响计算节点可信任度的这两条因素进行综合处理,得到该节点基于时间段的可信任度。可信任模型可以用于网格平台的任务调度、任务迁移及网格平台的性能预测等。通过一种轻量级的桌面网格平台上的基
Agent理论和技术研究自上世纪九十年代以来非常活跃并取得了广泛成果,但当前的Agent技术难以展现其自适应性特征,以动态绑定机制为基础实现的Agent策略描述语言(ASDL),可以使Agent在运行时根据环境和状态的变化,按照预定义的决策,动态绑定、释放、激活或钝化行为规约,从而实现自主决策和运行机制自适应。ASDL语言的编译器通过JavaCC工具实现,运行时编译为Java代码。本文介绍了ASD
软件体系结构(SA)通过对系统构件及其交互的抽象,提供了一个描述大型、复杂系统的高层次模型,SA的动态描述常被用来指导分析和测试。
本文结合N版本编程软件的特点,对软件中存在的各类错误以及它们对软件可靠性造成的不同影响进行了详尽的阐述。并分析了不完全排错对N版本软件可靠性建模造成的影响,与许多现有N版本软件可靠性模型只分析软件的稳态可靠性不同,本文考虑了随著排错过程的进行软件可靠性的增长过程,建立了一种基于非齐次泊松分布过程的既考虑可靠性增长又考虑不完全排错的N版本编程软件可靠性模型。通过一个2版本编程系统的失效数据集对如何应
能通过编译的C++程序代码可能依然隐含了安全上、设计上或是风格上的缺陷,它们隐蔽性高,并且将导致程序运行时出现内存泄漏、抛出运行时异常等现象,或者导致程序可维护性差。为了有效查找这些缺陷,本文探讨了可定制缺陷规则的C++代码缺陷自动检测技术,介绍了两种缺陷定位方式以及相应的缺陷规则扩展方法,设计并实现了一种代码缺陷自动检测工具CDD,最后通过实验证明了这两种缺陷定位方式以及规则扩展方法是有效的。
本文提出了一种使用AADL建模工具对智能家庭嵌入式系统进行需求分析、模型设计、分析与验证的方法。该方法基于AADL对智能家庭嵌入式软件、软件与硬件的交互关系建模,并对系统模型进行验证、分析,进而设计和开发智能家庭嵌入式软件系统,实现对整个有源家居电器设备的智能化控制和网络化管理,提高嵌入式软件开发质量。