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

文档序号:9453001阅读:来源:国知局
系统代码集中 抽取该入口代码类的完整的调用链路,进而根据上述映射实体与调用链路确定与该功能关 键字匹配的所有的受影响的代码范围,如此,通过功能关键字而无需依赖任何软件开发文 档找到对应的入口代码类进而通过分析代码内容,找到代码间的所有调用关系,即可快速 准确地定位所有受影响的代码范围,从而提高软件开发效率,同时有效地避免了因软件开 发文档与最终代码不同步而导致代码受影响范围定位不准确的问题。
[0020] 在上述技术方案中,优选地,所述定位模块具体包括:分析模块,用于通过ASM框 架在所述软件系统代码集中进行扫描分析,以获取所述软件系统代码集中的所有代码类之 间的调用关系;创建模块,用于根据所述软件系统代码集中的所述所有代码类之间的调用 关系建立所述软件系统代码集的代码引用拓扑关系资源库;抽取模块,用于根据所述入口 代码类在所述代码引用拓扑关系资源库中抽取所述调用链路。
[0021] 在该技术方案中,首先通过ASM框架(一个Java(-种可以撰写跨平台应用软件 的面向对象的程序设计语言)字节码操纵框架)对软件系统代码集进行代码内容的扫描分 析,以分析出软件系统代码集中的一个代码类引用了哪些其他代码类、在哪个方法中调用 的以及该其他代码类又调用了哪些代码类(即间接调用了哪些代码类),进而获取该软件 系统代码集中的所有代码类之间的调用关系,以形成代码引用拓扑关系资源库,然后即可 根据由功能关键字确定的入口代码类在形成的代码引用拓扑关系资源库中抽取其调用链 路,以最终确定与功能关键字匹配的所有的受影响的代码范围,即全面而精准的对受到影 响的代码进行定位,避免有遗漏而影响软件产品的质量。
[0022] 在上述任一技术方案中,优选地,所述抽取模块具体包括:查找模块,用于根据所 述入口代码类在所述代码引用拓扑关系资源库中查找获取所述入口代码类的直接引用代 码类;遍历模块,用于遍历所述代码引用拓扑关系资源库,根据所述直接引用代码类递归查 找所述入口代码类的所有间接引用代码类,以抽取所述调用链路。
[0023] 在该技术方案中,首先根据入口代码类在建立的软件系统代码集的代码引用拓扑 关系资源库中查找出其直接引用代码类,进一步遍历该代码引用拓扑关系资源块,以根据 该直接引用代码类递归查找出该入口代码类的所有间接引用代码类,以有效地确保抽取出 的入口代码类的调用链路的全面完整性。
[0024] 在上述任一技术方案中,优选地,所述处理模块具体包括:确定模块,用于根据所 述功能关键字通过扫描代码配置文件、查找数据库注册表和/或分析软件系统源代码的方 式确定所述入口代码类;映射模块,用于建立所述功能关键字的关键字类型、所述功能关键 字和所述入口代码类之间的所述映射实体。
[0025] 在该技术方案中,通过在软件系统显示界面输入的功能关键字确定入口代码类的 方式至少包括以下之一或其组合:通过扫描代码配置文件、查找数据库注册表和分析软件 系统源代码的方式,所依据的原理为:功能节点和/或功能按钮(即界面元素)都会在对应 的代码内容里通过配置文件或数据库注册进去,或者直接在代码内容里设置功能节点和/ 或功能按钮,即建立了功能与代码的映射关系;然后根据即可建立功能关键字及其关键字 类型和入口代码类的映射实体,以进一步在抽取入口代码类的调用链路完成对与功能关键 字相匹配的所有受影响的代码范围,以供软件开发人员根据该定位完善软件系统,以提升 软件开发效率。
[0026] 在上述任一技术方案中,优选地,所述功能关键字的关键字类型包括:功能节点和 /或功能按钮;以及所述功能关键字包括:软件需求变更和/或软件测试问题描述的所述功 能节点的标题和/或所述功能按钮的名称。
[0027] 在该技术方案中,功能关键字的关键字类型包括但不限于:功能节点和功能按钮 或其组合,当然还可以包括事件,而功能关键字则至少应该包括:软件需求变更描述的功能 节点的标题和/或功能按钮的名称、和/或软件测试问题描述的功能节点的标题和/或功 能按钮的名称,当然也可以包括其他能够用于定位到入口代码类的功能关键字,以确保方 案实施的可行性。
[0028] 通过以上技术方案,在需求发生变更或软件测试出现问题时,不依赖于软件开发 文档即可快速准确地定位所有受影响的代码范围,从而提高软件开发效率。
【附图说明】
[0029] 图1示出了根据本发明的一个实施例的定位软件开发中代码受影响范围的方法 的流程示意图;
[0030] 图2示出了根据本发明的一个实施例的定位软件开发中代码受影响范围的系统 的框图;
[0031] 图3示出了根据本发明的一个实施例的根据功能关键字查找入口代码类的原理 示意图;
[0032] 图4示出了根据本发明的一个实施例的创建界面元素与入口代码类映射关系的 分析过程示意图;
[0033] 图5示出了根据本发明的一个实施例的在代码引用拓扑关系资源库中抓取代码 调用链路的分析过程示意图;
[0034] 图6示出了根据本发明的一个实施例的创建代码引用拓扑关系资源库的过程示 意图。
【具体实施方式】
[0035] 为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实 施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施 例及实施例中的特征可以相互组合。
[0036] 在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可 以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开 的具体实施例的限制。
[0037] 图1示出了根据本发明的一个实施例的定位软件开发中代码受影响范围的方法 的流程示意图。
[0038] 如图1所示,根据本发明的一个实施例的定位软件开发中代码受影响范围的方 法,包括:步骤102,接收输入的功能关键字;步骤104,根据所述功能关键字确定入口代码 类,并建立所述功能关键字与所述入口代码类的映射实体;步骤106,根据所述入口代码类 在软件系统代码集中抽取所述入口代码类的调用链路,以根据所述映射实体和所述调用链 路定位与所述功能关键字匹配的代码受影响范围。
[0039] 在该技术方案中,当在软件系统显示界面接收到用户(比如,软件开发人员)输入 的功能关键字时,可以根据该功能关键字确定用于定位代码受影响范围的入口代码类,并 建立该入口代码类与该功能关键字的映射实体,然后根据入口代码类在软件系统代码集中 抽取该入口代码类的完整的调用链路,进而根据上述映射实体与调用链路确定与该功能关 键字匹配的所有的受影响的代码范围,如此,通过功能关键字而无需依赖任何软件开发文 档找到对应的入口代码类进而通过分析代码内容,找到代码间的所有调用关系,即可快速 准确地定位所有受影响的代码范围,从而提高软件开发效率,同时有效地避免了因软件开 发文档与最终代码不同步而导致代码受影响范围定位不准确的问题。
[0040] 在上述技术方案中,优选地,所述步骤106具体包括:通过ASM框架在所述软件系 统代码集中进行扫描分析,以获取所述软件系统代码集中的所有代码类之间的调用关系; 根据所述软件系统代码集中的所述所有代码类之间的调用关系建立所述软件系统代码集 的代码引用拓扑关系资源库;根据所述入口代码类在所述代码引用拓扑关系资源库中抽取 所述调用链路。
[0041 ] 在该技术方案中,首先通过ASM框架(一个Java(-种可以撰写跨平台应用软件 的面向对象的程序设计语言)字节码操纵框架)对软件系统代码集进行代码内容的扫描分 析,以分析出软件系统代码集中的一个代码类引用了哪些其他代码类、在哪个方法中调用 的以及该其他代码类又调用了哪些代码类(即间接调用了哪些代码类),进而获取该软件 系统代码集中的所有代码类之间的调用关系,以形成代码引用拓扑关系资源库,然后即可 根据由功能关键字确定的入口代码类在形成的代码引用拓扑关系资源库中抽取其调用链 路,以最终确定与功能关键字匹配的所有的受影响的代码范围,即全面而精准的对受到影 响的代码进行定位,避免有遗漏而影响软件产品的质量。
[0042] 在上述任一技术方案中,优选地,所述根据所述入口代码类在所述代码引用拓扑 关系资源库中抽取所述调用链路具体包括:根据所述入口代码类在所述代码引用拓扑关系 资源库中查找获取所述入口代码类的直接引用代码类;遍历所述代码引用拓扑关系资源 库,根据所述直接引用代码类递归查找所述入口代码类的所有间接引用代码类,以抽取所 述调用链路。<
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1