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

文档序号:9453001阅读:来源:国知局
br>[0043] 在该技术方案中,首先根据入口代码类在建立的软件系统代码集的代码引用拓扑 关系资源库中查找出其直接引用代码类,进一步遍历该代码引用拓扑关系资源块,以根据 该直接引用代码类递归查找出该入口代码类的所有间接引用代码类,以有效地确保抽取出 的入口代码类的调用链路的全面完整性。
[0044] 在上述任一技术方案中,优选地,所述步骤104具体包括:根据所述功能关键字通 过扫描代码配置文件、查找数据库注册表和/或分析软件系统源代码的方式确定所述入口 代码类;建立所述功能关键字的关键字类型、所述功能关键字和所述入口代码类之间的所 述映射实体。
[0045] 在该技术方案中,通过在软件系统显示界面输入的功能关键字确定入口代码类的 方式至少包括以下之一或其组合:通过扫描代码配置文件、查找数据库注册表和分析软件 系统源代码的方式,所依据的原理为:功能节点和/或功能按钮(即界面元素)都会在对应 的代码内容里通过配置文件或数据库注册进去,或者直接在代码内容里设置功能节点和/ 或功能按钮,即建立了功能与代码的映射关系;然后根据即可建立功能关键字及其关键字 类型和入口代码类的映射实体,以进一步在抽取入口代码类的调用链路完成对与功能关键 字相匹配的所有受影响的代码范围,以供软件开发人员根据该定位完善软件系统,以提升 软件开发效率。
[0046] 在上述任一技术方案中,优选地,所述功能关键字的关键字类型包括:功能节点和 /或功能按钮;以及所述功能关键字包括:软件需求变更和/或软件测试问题描述的所述功 能节点的标题和/或所述功能按钮的名称。
[0047] 在该技术方案中,功能关键字的关键字类型包括但不限于:功能节点和功能按钮 或其组合,当然还可以包括事件,而功能关键字则至少应该包括:软件需求变更描述的功能 节点的标题和/或功能按钮的名称、和/或软件测试问题描述的功能节点的标题和/或功 能按钮的名称,当然也可以包括其他能够用于定位到入口代码类的功能关键字,以确保方 案实施的可行性。
[0048] 图2示出了根据本发明的一个实施例的定位软件开发中代码受影响范围的系统 的框图。
[0049] 如图2所示,根据本发明的一个实施例的定位软件开发中代码受影响范围的系统 200,包括:接收模块202、处理模块204和定位模块206。
[0050] 其中,接收模块202,用于接收输入的功能关键字;处理模块204,用于根据所述功 能关键字确定入口代码类,并建立所述功能关键字与所述入口代码类的映射实体;定位模 块206,用于根据所述入口代码类在软件系统代码集中抽取所述入口代码类的调用链路,以 根据所述映射实体和所述调用链路定位与所述功能关键字匹配的代码受影响范围。
[0051] 在该技术方案中,当在软件系统显示界面接收到用户(比如,软件开发人员)输入 的功能关键字时,可以根据该功能关键字确定用于定位代码受影响范围的入口代码类,并 建立该入口代码类与该功能关键字的映射实体,然后根据入口代码类在软件系统代码集中 抽取该入口代码类的完整的调用链路,进而根据上述映射实体与调用链路确定与该功能关 键字匹配的所有的受影响的代码范围,如此,通过功能关键字而无需依赖任何软件开发文 档找到对应的入口代码类进而通过分析代码内容,找到代码间的所有调用关系,即可快速 准确地定位所有受影响的代码范围,从而提高软件开发效率,同时有效地避免了因软件开 发文档与最终代码不同步而导致代码受影响范围定位不准确的问题。
[0052] 在上述技术方案中,优选地,所述定位模块206具体包括:分析模块2062、创建模 块2064和抽取模块2066。
[0053] 其中,分析模块2062,用于通过ASM框架在所述软件系统代码集中进行扫描分析, 以获取所述软件系统代码集中的所有代码类之间的调用关系;创建模块2064,用于根据所 述软件系统代码集中的所述所有代码类之间的调用关系建立所述软件系统代码集的代码 引用拓扑关系资源库;抽取模块2066,用于根据所述入口代码类在所述代码引用拓扑关系 资源库中抽取所述调用链路。
[0054] 在该技术方案中,首先通过ASM框架(一个Java(-种可以撰写跨平台应用软件 的面向对象的程序设计语言)字节码操纵框架)对软件系统代码集进行代码内容的扫描分 析,以分析出软件系统代码集中的一个代码类引用了哪些其他代码类、在哪个方法中调用 的以及该其他代码类又调用了哪些代码类(即间接调用了哪些代码类),进而获取该软件 系统代码集中的所有代码类之间的调用关系,以形成代码引用拓扑关系资源库,然后即可 根据由功能关键字确定的入口代码类在形成的代码引用拓扑关系资源库中抽取其调用链 路,以最终确定与功能关键字匹配的所有的受影响的代码范围,即全面而精准的对受到影 响的代码进行定位,避免有遗漏而影响软件产品的质量。
[0055] 在上述任一技术方案中,优选地,所述抽取模块2066具体包括:查找模块20662和 遍历模块20664。
[0056] 其中,查找模块20662,用于根据所述入口代码类在所述代码引用拓扑关系资源库 中查找获取所述入口代码类的直接引用代码类;遍历模块20664,用于遍历所述代码引用 拓扑关系资源库,根据所述直接引用代码类递归查找所述入口代码类的所有间接引用代码 类,以抽取所述调用链路。
[0057] 在该技术方案中,首先根据入口代码类在建立的软件系统代码集的代码引用拓扑 关系资源库中查找出其直接引用代码类,进一步遍历该代码引用拓扑关系资源块,以根据 该直接引用代码类递归查找出该入口代码类的所有间接引用代码类,以有效地确保抽取出 的入口代码类的调用链路的全面完整性。
[0058] 在上述任一技术方案中,优选地,所述处理模204具体包括:确定模块2042和映射 模块2044。
[0059] 其中,确定模块2042,用于根据所述功能关键字通过扫描代码配置文件、查找数 据库注册表和/或分析软件系统源代码的方式确定所述入口代码类;映射模块2044,用于 建立所述功能关键字的关键字类型、所述功能关键字和所述入口代码类之间的所述映射实 体。
[0060] 在该技术方案中,通过在软件系统显示界面输入的功能关键字确定入口代码类的 方式至少包括以下之一或其组合:通过扫描代码配置文件、查找数据库注册表和分析软件 系统源代码的方式,所依据的原理为:功能节点和/或功能按钮(即界面元素)都会在对应 的代码内容里通过配置文件或数据库注册进去,或者直接在代码内容里设置功能节点和/ 或功能按钮,即建立了功能与代码的映射关系;然后根据即可建立功能关键字及其关键字 类型和入口代码类的映射实体,以进一步在抽取入口代码类的调用链路完成对与功能关键 字相匹配的所有受影响的代码范围,以供软件开发人员根据该定位完善软件系统,以提升 软件开发效率。
[0061] 在上述任一技术方案中,优选地,所述功能关键字的关键字类型包括:功能节点和 /或功能按钮;以及所述功能关键字包括:软件需求变更和/或软件测试问题描述的所述功 能节点的标题和/或所述功能按钮的名称。
[0062] 在该技术方案中,功能关键字的关键字类型包括但不限于:功能节点和功能按钮 或其组合,当然还可以包括事件,而功能关键字则至少应该包括:软件需求变更描述的功能 节点的标题和/或功能按钮的名称、和/或软件测试问题描述的功能节点的标题和/或功 能按钮的名称,当然也可以包括其他能够用于定位到入口代码类的功能关键字,以确保方 案实施的可行性。
[0063] 下面结合图3至图6对本发明的技术方案进行详细说明。
[0064] 图3示出了根据本发明的一个实施例的根据功能关键字查找入口代码类的原理 示意图。
[0065] 图4示出了根据本发明的一个实施例的创建界面元素与入口代码类映射关系的 分析过程示意图。
[0066] 图5示出了根据本发明的一个实施例的在代码引用拓扑关系资源库中抓取代码 调用链路的分析过程示意图。
[0067] 图6示出了根据本发明的一个实施例的创建代码引用拓扑关系资源库的过程示 意图。
[0068] 如图3所示,根据本发明的一个实施例的根据功能关键字查找入口代码类的原 理:不管是功能节点还是功能按钮,都会在代码内容里设置名称,或者是通过注册的方式把 名称和代码建立关系,这样通过界面上显示出来的功能关键字,就可以找到对应的入口代 码,这样比从文档中的关键字找代码文件名更加准确。具体地,首先输入软件系统界面相关 的功能关
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1