发明名称 |
一种构件间动态依赖关系的自动分析方法 |
摘要 |
本发明公开了一种构件间动态依赖关系的自动分析方法,该方法在程序运行时,能自动计算程序在当前执行环境下精确的动态依赖关系。该方法,在程序运行前,通过静态分析的方法构建程序的动态依赖自动机。当程序运行时,其对应的动态依赖自动机自动运行,同时根据当前的执行情况自适应地更新程序的动态依赖关系。该方法的所有工作都是自动完成,与已有的方法相比,在开发效率和正确性上有了很大的提高。利用此项方法,开发了Java构件间动态依赖关系的自动抽取工具——DDET。DDET对Java字节码直接进行分析和操作,对于任意一个支持动态更新的Java构件系统,运行时可自动获得其精确的依赖关系。 |
申请公布号 |
CN102880493A |
申请公布日期 |
2013.01.16 |
申请号 |
CN201210362752.3 |
申请日期 |
2012.09.25 |
申请人 |
南京大学 |
发明人 |
马晓星;曹春;吕建;苏萍 |
分类号 |
G06F9/445(2006.01)I |
主分类号 |
G06F9/445(2006.01)I |
代理机构 |
南京苏高专利商标事务所(普通合伙) 32204 |
代理人 |
夏雪 |
主权项 |
一种构件间动态依赖关系的自动分析方法,其特征在于包括如下步骤:1)静态分析阶段,构建程序的动态依赖自动机,所述动态依赖自动机包括状态,事件和转移,其中状态指程序在一个代码块中稳定不变的动态依赖关系,事件指可能引起程序的动态依赖关系发生变化的节点,转移是指当事件发生时,程序从一个状态转移到新的状态;2)静态分析阶段,计算动态依赖自动机中的动态依赖关系的Future信息,所述动态依赖关系包括Future信息和Past信息,其中Future信息是指程序在当前执行环境下,将来可能使用的构件集合,Past信息则指其过去使用过的构件集合;3)静态分析阶段,将已经分析出的动态依赖自动机和驱动动态依赖自动机正确自动运行的触发信息插入原程序中;4)动态分析阶段,当程序运行时,其对应的动态依赖自动机在触发信息的驱动下自动运行,同时自适应地获得当前执行环境下的动态依赖关系。 |
地址 |
210046 江苏省南京市栖霞区仙林大道163号南京大学仙林校区603信箱计算机系 |