定位软件开发中代码受影响范围的方法及系统的制作方法_4

文档序号:9453001阅读:来源:国知局
键字,例如功能节点的标题、功能按钮的名字等。通过分析界面元素和代码的关 系,找到界面显示的功能关键字与入口代码类的映射关系(即建立映射实体),界面元素与 入口代码类的映射关系的实体如下表1所示,具体可以通过以下方式找到该映射关系:如 有的软件系统是把界面元素对应的代码通过配置文件或者数据库注册进去的,如功能按钮 对应的处理器代码,则可以通过分析配置文件或者数据库信息,找到映射关系,或者有的软 件系统是直接在代码里设置界面(显示)元素,如传统的⑶I(GraphicalUserInterface, 图形用户界面)系统,在代码里设置功能按钮的名字,则可以通过分析源代码找到功能关 键字对应的入口代码类;然后根据入口代码类,在通过分析整个软件集合(软件系统代码) 而生成的所有代码的代码引用拓扑关系资源库中,抓取入口代码类的整个代码调用链路, 进而获取到所有相关的代码范围(即与功能关键字匹配的代码受影响范围),具体流程见 图4。
[0069] 表1界面元素与入口代码类的映射关系的实体
[0070]
[0071] 而在代码引用拓扑关系资源库中抓取代码调用链路的分析过程,如图5所示,但 是,首先应创建代码引用拓扑关系资源库,具体流程如图6所示,即通过ASM框架对代码集 (软件系统代码集)进行代码(内容)扫描分析,其中,ASM框架是一个Java字节码操控框 架,ASM框架从(代码)类文件中读入信息后,能够解析类中的所有元素:类名称、(调用) 方法、属性以及Java字节码(指令)等,如此,即可通过ASM框架分析出类引用了哪些其他 的类(直接引用代码类)、在哪个方法中调用的以及又调用了对方的哪个类(间接引用代码 类),以抽取类与引用类的关系,其类引用关系实体如下表2所示,最终根据抽取的类与引 用类的关系创建代码引用拓扑关系资源库。
[0072] 表2类引用关系实体
[0073]
[0074] 进一步地,构建类(入口代码类)的调用链条,即通过递归查找整个类引用关系的 拓扑结构(代码引用拓扑关系资源库),由入口代码类查找其引用的类,进而通过引用的类 遍历引用类集合(即遍历整个引用关系的拓扑结构),递归查找引用类的引用类,最终构造 出所有相关的代码影响范围。
[0075] 如前所述,通过对所有代码内容的分析,找到代码间的所有错综复杂的调用关系, 然后根据需求变更或者测试问题描述的功能关键字,找到对应的入口代码,然后通过代码 间的调用拓扑关系,找到所有影响范围。这样就实现了从功能关键字到影响代码范围的精 准定位,且不在依赖于软件文档,有效地避免了因软件文档与最终代码实现的不同步而导 致定位结果不准确不可靠,而只有通过真正运行的代码,才能更准确分析出需求变更或者 测试问题的代码影响范围,从而提高软件开发效率。
[0076] 以上结合附图详细说明了本发明的技术方案,在需求发生变更或软件测试出现问 题时,不依赖于软件开发文档即可快速准确地定位所有受影响的代码范围,从而提高软件 开发效率。
[0077] 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技 术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修 改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1. 一种定位软件开发中代码受影响范围的方法,其特征在于,包括: 接收输入的功能关键字; 根据所述功能关键字确定入口代码类,并建立所述功能关键字与所述入口代码类的映 射实体; 根据所述入口代码类在软件系统代码集中抽取所述入口代码类的调用链路,以根据所 述映射实体和所述调用链路定位与所述功能关键字匹配的代码受影响范围。2. 根据权利要求1所述的定位软件开发中代码受影响范围的方法,其特征在于,所述 根据所述入口代码类在软件系统代码集中抽取所述入口代码类的调用链路,以根据所述映 射实体和所述调用链路定位与所述功能关键字匹配的代码受影响范围具体包括: 通过ASM框架在所述软件系统代码集中进行扫描分析,以获取所述软件系统代码集中 的所有代码类之间的调用关系; 根据所述软件系统代码集中的所述所有代码类之间的调用关系建立所述软件系统代 码集的代码引用拓扑关系资源库; 根据所述入口代码类在所述代码引用拓扑关系资源库中抽取所述调用链路。3. 根据权利要求2所述的定位软件开发中代码受影响范围的方法,其特征在于,所述 根据所述入口代码类在所述代码引用拓扑关系资源库中抽取所述调用链路具体包括: 根据所述入口代码类在所述代码引用拓扑关系资源库中查找获取所述入口代码类的 直接引用代码类; 遍历所述代码引用拓扑关系资源库,根据所述直接引用代码类递归查找所述入口代码 类的所有间接引用代码类,以抽取所述调用链路。4. 根据权利要求1至3中任一项所述的定位软件开发中代码受影响范围的方法,其特 征在于,所述根据所述功能关键字确定入口代码类,以建立所述功能关键字与所述入口代 码类的映射实体具体包括: 根据所述功能关键字通过扫描代码配置文件、查找数据库注册表和/或分析软件系统 源代码的方式确定所述入口代码类; 建立所述功能关键字的关键字类型、所述功能关键字和所述入口代码类之间的所述映 射实体。5. 根据权利要求4所述的定位软件开发中代码受影响范围的方法,其特征在于, 所述功能关键字的关键字类型包括:功能节点和/或功能按钮;以及 所述功能关键字包括:软件需求变更和/或软件测试问题描述的所述功能节点的标题 和/或所述功能按钮的名称。6. -种定位软件开发中代码受影响范围的系统,其特征在于,包括: 接收模块,用于接收输入的功能关键字; 处理模块,用于根据所述功能关键字确定入口代码类,并建立所述功能关键字与所述 入口代码类的映射实体; 定位模块,用于根据所述入口代码类在软件系统代码集中抽取所述入口代码类的调 用链路,以根据所述映射实体和所述调用链路定位与所述功能关键字匹配的代码受影响范 围。7. 根据权利要求6所述的定位软件开发中代码受影响范围的系统,其特征在于,所述 定位模块具体包括: 分析模块,用于通过ASM框架在所述软件系统代码集中进行扫描分析,以获取所述软 件系统代码集中的所有代码类之间的调用关系; 创建模块,用于根据所述软件系统代码集中的所述所有代码类之间的调用关系建立所 述软件系统代码集的代码引用拓扑关系资源库; 抽取模块,用于根据所述入口代码类在所述代码引用拓扑关系资源库中抽取所述调用 链路。8. 根据权利要求7所述的定位软件开发中代码受影响范围的系统,其特征在于,所述 抽取模块具体包括: 查找模块,用于根据所述入口代码类在所述代码引用拓扑关系资源库中查找获取所述 入口代码类的直接引用代码类; 遍历模块,用于遍历所述代码引用拓扑关系资源库,根据所述直接引用代码类递归查 找所述入口代码类的所有间接引用代码类,以抽取所述调用链路。9. 根据权利要求6至8中任一项所述的定位软件开发中代码受影响范围的系统,其特 征在于,所述处理模块具体包括: 确定模块,用于根据所述功能关键字通过扫描代码配置文件、查找数据库注册表和/ 或分析软件系统源代码的方式确定所述入口代码类; 映射模块,用于建立所述功能关键字的关键字类型、所述功能关键字和所述入口代码 类之间的所述映射实体。10. 根据权利要求9所述的定位软件开发中代码受影响范围的系统,其特征在于, 所述功能关键字的关键字类型包括:功能节点和/或功能按钮;以及 所述功能关键字包括:软件需求变更和/或软件测试问题描述的所述功能节点的标题 和/或所述功能按钮的名称。
【专利摘要】本发明提供了一种定位软件开发中代码受影响范围的方法和一种定位软件开发中代码受影响范围的系统,其中,所述定位软件开发中代码受影响范围的方法包括:接收输入的功能关键字;根据所述功能关键字确定入口代码类,并建立所述功能关键字与所述入口代码类的映射实体;根据所述入口代码类在软件系统代码集中抽取所述入口代码类的调用链路,以根据所述映射实体和所述调用链路定位与所述功能关键字匹配的代码受影响范围。通过本发明的技术方案,在需求发生变更或软件测试出现问题时,不依赖于软件开发文档即可快速准确地定位所有受影响的代码范围,从而提高软件开发效率。
【IPC分类】G06F11/36
【公开号】CN105205000
【申请号】CN201510673640
【发明人】王海文
【申请人】用友网络科技股份有限公司
【公开日】2015年12月30日
【申请日】2015年10月16日
当前第4页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1